1. 账务管理实例

1.1. 实例1:人员编制

SELECT TOP 1000 [accop_id]
      ,[accop_cmpid]
      ,[accop_type]  
      ,[accop_category]
      ,[accop_date]
      ,[accop_objid]
      ,[accop_fiid]
      ,[accop_opdate]
      ,[accop_operation]
      ,[accop_value]
      ,[accop_valuesuspend]
      ,[accop_bizid]
      ,[accop_no]
      ,[accop_ordid]
      ,[accop_jbid]
      ,[accop_back]
  FROM [ebs2java].[dbo].[mps_account_operation]

1.表单设计

思路:首先,通过导入编制明细

/*[mps_account_type]>>[mps_account] ,[mps_account] 即是编制数据目标表
导入后,查找当前导入的每行编制的当前在编人数,并用编制表中的现有编制替换最掉导入的现有编制
1.创建临时表@bianzhi,将明细数据写入其中
2.根据部门及岗位更细@bianzhi
3.a.如果存在错误,将错误信息写入改行一文本字段,并做特殊处理,下次导入前删除此行,并提交前做后端验证
3.b.如果不存在错误,更新当前编制值
4.结束
*/
declare @bcid bigint

declare @branch table (bcid bigint,bcname nvarchar(20))
declare @bianzhi table (ord2id bigint ,
                        dpname nvarchar(100),
                        dpid bigint default 0,
                        otname nvarchar(100),
                        otid bigint default 0 ,
                        dtid bigint default 0)

insert @branch(bcid,bcname)
select bc_id ,bc_company from mps_branch 
union
select 0 bc_id ,'集团总部' bc_compamy

select @bcid = bcid 
from #master, @branch 
where bcid = ord_bcid

delete #detail2 where isnull(ord2_bznd,'') = ''

insert into @bianzhi(ord2id,dpname,otname) 
select ord2_id,ord2_bmmc,ord2_gw from #new

update @bianzhi 
set dpid = dp_id
from mps_depart with(nolock)
where dp_depart = dpname
and dp_bcid = @bcid

update @bianzhi 
set otid = ot_id
from mps_title with(nolock)
where ot_title = otname

update @bianzhi 
set dtid = dt_id
from mps_depart_title with(nolock)
where dt_otid = otid 
and dt_dpid = dpid 

update #new
set ord2_bz = '错误:部门【'+dpname+'】下不存在岗位【'+otname+'】',
    ord2_status = '错误'
from @bianzhi
where dtid = 0
and ord2_id = ord2id 

update #new 
set ord2_bgid = dtid 
from @bianzhi    
where ord2id = ord2_id

update #new
set ord2_bz = '错误:部门+岗位重复',
    ord2_status =  '错误'
from (select dtid  from  @bianzhi where dtid != 0 group by dtid having count(10)>1) rpt
where rpt.dtid = ord2_bgid

merge into #new  as t
using mps_account as s 
on t.ord2_bgid = s.acc_objid and ord2_bznd = s.acc_date and t.ord2_status != '错误'
when matched 
    then update set t.ord2_zbrs = s.acc_value/100    
;

acc_origin+ acc_changed= acc_account

1.2. 实例2:预算配置

1.2.1. 预算配置方法

第一步:系统管理--常用的设置--部门配置

预算部门配置

如下图:

备注:在配置部门预算时,多级部门的预算配置遇到以下三种情况:

情况一

部门 预算情况 预算使用
一级部门 无预算 需要指定【二级部门A】或【二级部门B】获取预算
二级部门A 有预算 使用本部门预算
二级部门B 有预算 使用本部门预算

情况二

部门 预算情况 预算使用
一级部门 有预算 使用本部门预算
二级部门A 有预算 使用本部门预算
二级部门B 无预算 使用【一级部门】预算

情况三

部门 预算情况 预算使用
一级部门 合并预算 使用本部门预算
二级部门A 有预算 使用本部门预算
二级部门B 无预算 使用【一级部门】预算

1.2.2. 第二步:系统管理--常用的设置--费用类别

预算费用配置

1、点击 系统管理->费用类别 进入费用用类别配置界面

1、途中1表示,费用类别的概览,例如:薪酬包含工资与奖励。 2、图中2表示,费用名称与费用代码(费用代码不能重复)。 3、图中3表示,此费用存在于某某公司的某部门下,需一个一个部门进行添加。 4、图中3处的归属部门与费用使用部门各有不同含义,若需要向部门中导入预算,需在费用使用部门中勾选相应公司的对应部门,并标记该公司预算为有预算。

1、上图为设置完成后费用类别在数据库中所存在的形式。费用类别存在于表 mps_account_item 中。 2、其中字段ai_id对应预算表(mps_account)中的acc_fiid字段。

1.2.3. 第三步:导入预算

方法一:通过业务单导入预算

预算的导入可通过直接写sql语句进行插入,也可以通过业务单进行导入,目前仅介绍通过业务单直接导入的方法

1、在导入预算前需要先在流程图的连接线上的账务管理中进行预算导入的配置。 2、在导入预算前需要在开发中书写sql进行数据验证,并将导入费用的ai_id同时写入预算表中。 3、在预算导入的明细表中需要添加一个隐藏字段,用于存放导入预算的ai_id

1、导入预算时需注意 费用编码,费用名称,预算部门需要与前面费用类别配置中的代码,名称,费用使用部门相对应,否则可能会出现预算无法导入成功。 2、导入时只能一个部门一个部门的导入,不能够多个部门同时导入,否则可能会出现预算无法导入成功。

1、预算导入成功后在数据库中存在于预算表(mps_account)中。

方法二:sql直接导入预算

results matching ""

    No results matching ""