1. 账务管理

1.1. 一、账务写入

1.1.1. 1、配置方法:流程图--连线配置--账务处理

1.1.2. 系统做账原理

1.通过【流程图】-【连线配置】-【账务处理】配置,系统会将数据写入"账务操作表"(mps_accountoperation)

2.账务操作表的三个触发器进行逻辑处理,处理结果存放在”账务表"(mps_account)。

SELECT 
       [accop_id]
      ,[accop_cmpid] 
 --预算管控分类 [expn=费用预算|staf=人员编制|loan=员工借款|??=员工年假(废)|??=客户应收款|??=客户应付款]
      ,[accop_type]  
 --帐务对象类型[dpt=部门|dpot=部门岗位|dpt=门店|emp=员工|c2=客户|p2=产品|e2=设备]          
      ,[accop_category]
 -- 账期,如:人员编制年度(2017|2018等)
      ,[accop_date]
 --帐务对象类型ID [部门ID|部门岗位ID|门店ID|员工ID|客户ID|产品ID|设备ID]            
      ,[accop_objid]
      ,[accop_fiid]
      ,[accop_opdate] --操作时间
 --操作类型[0=初始 1=change 11=suspend  100=use  101=use/suspend  use and -suspend]
      ,[accop_operation]
      ,[accop_value] --操作值
      ,[accop_valuesuspend] --挂起值
      ,[accop_bizid]
      ,[accop_no]
      ,[accop_ordid]
      ,[accop_jbid]
      ,[accop_back]
  FROM [ebs2java].[dbo].[mps_account_operation]
操作后值 操作后值 操作后值 操作后值 操作后值
记账方式 acc_origin acc_value acc_used acc_changed acc_suspended
0=初始 accop_value acc_changed+accop_value acc_used acc_changed acc_suspended
1=change变更 acc_origin acc_value+accop_value acc_used acc_changed+accop_value acc_suspended
11=suspend挂账 acc_origin acc_value acc_used acc_changed acc_suspended+accop_value
100=use使用 acc_origin acc_value acc_used+accop_value acc_changed acc_suspended
101=use/suspend use and -suspend acc_origin acc_value acc_used+accop_value acc_changed acc_suspended-accop_value

2. 二、账务获取

2.1.1. 方式一:SQL开发:

exec mps_getaccount '数据库表','记账日期','记账类别','对象类别','费用类别','对象ID' (查找数据)

update #new set ord_jkje=acc\_value-acc\_suspended from #account(写入数据)

2.1.2. SQL开发说明:

exec mps_getaccount 程序参数说明:

create procedure mps_getaccount(

@tbname1 varchar(100) ,  --**数据库表:**不能为空 #master #romaster #detailx 如果是子表,则应该这:#master,#detail2

@accountdate varchar(500) , -- **记账日期:**可以是字段名,也可以是值。例如ord_date 或者2018 或者2018-1

@acctype varchar(500) , -- **记账类别:**人员编制(**staf**)、员工借款(**loan**)、员工年假(**anva**)、客户应收款(**recv**)、客户应付款(**paya**)、费用预算(**expn**)

@acccategory varchar(500) , -- **对象类别:**部门(dpt)、部门岗位(dpot)、门店()、员工(emp)、客户(cst)、产品()、设备()

@fid varchar(500) , --**费用类别:**如果没有费用类别的,则=0  可以是字段名,也可以是值

@objid varchar(500) --**对象ID:**   可以是字段名,也可以是值
  • 通过exec mps_getaccount 程序,查询值展示如下

-- #account(objid bigint,origin int,value int,used int,suspended int,ready int,changed int)

显示字段 字段类型 字段描述
objid bigint 对象ID值
origin int 初始值
value int 最新值=初始值+变更值
used int 使用值
suspended int 挂账值
ready int 在途值
changed int 变更值

2.1.3. 方式二:JS开发:

JS代码:

function getaccount(obj1,accrq1,acctype1,acccategory1,accfid1,accobjid1,call1)

JS代码参数说明:

// obj1     为当前对象,系统可以根据当前对象的情况来自动赋值
// accrq1   记账日期,可以是字段名,也可以是值 ,

// acctype1 费用类型,可以是字段名,也可以是值,
// acccategory1   对象类别,可以是字段名,也可以是值,
// accfid1        费用类别,可以是字段名,也可以是值,
// accobjid1      对象ID,可以是字段名,也可以是值,
// call1(iseof,data1,dsname1)  

// 这是返回来的字段,值是/100的 acc_value,acc_changed,acc_origin,acc_used,acc_suspended,acc_ready,acc_available,acc_real 
// 所有的值都是经常转化的,即已经除了100

业务单参数配置,系统会自动对这种格式的对象赋值: field="acc_value/acc_changed/acc_origin/acc_used/acc_suspended/acc_ready/acc_available/acc_real"

JS开发举例:

例一:在不采用自动赋值的情况下进行查询并赋值

function inputchange(obj1) {
    var name1 = $(obj1).getAttr("name", "");
    if (name1 == 字段名称) {
        var accrq1 = 必要参数;
        var acctype1 = 必要参数;
        var acccategory1 = 必要参数;
        var accfid1 = 必要参数;
        var accobjid1 = 必要参数;
        getaccount(obj1,accrq1,acctype1,acccategory1,accfid1,accobjid1,function(iseof, data, dsname) {
                    if (!iseof && dsname == "t2"){
                    //在这里进行赋值
                    }

        });
    }
}

1、代码中的字段名称必须是业务单中(html)存在的字段名称;必要参数和各参数含义参考上方JS代码参数说明。 2、执行getaccount方法时会返回两个结果集 t1结果及返回的是一些id;t2结果集返回的是通过mps_account表查询的结果。

例二:采用自动赋值的情况下进行查询并赋值

function inputchange(obj1) {
    var name1 = $(obj1).getAttr("name", "");
    if (name1 == 字段名称) {
        var accrq1 = 必要参数;
        var acctype1 = 必要参数;
        var acccategory1 = 必要参数;
        var accfid1 = 必要参数;
        var accobjid1 = 必要参数;
        getaccount(obj1,accrq1,acctype1,acccategory1,accfid1,accobjid1);
    }
}

1、代码中的字段名称必须是业务单中(html)存在的字段名称;必要参数和各参数含义参考上方JS代码参数说明。 2、采用此方法还需在业务单中(html)需要进行赋值的字段里添加 field 属性,具体参数参考上方 业务单参数配置 。

results matching ""

    No results matching ""