【O】费用归集引入概述与扩展实现(5.0)
金蝶云社区-springwind_liu
springwind_liu
3人赞赏了该文章 2,169次浏览 未经作者许可,禁止转载编辑于2014年10月03日 16:25:41
一、费用归集 费用归集对应的元数据:成本管理-产品成本核算-单据-费用归集,其列表展示界面使用简单单据帐表的方式,元数据为:成本管理-产品成本核算-帐表-简单帐表-费用归集,其数据库表结构可以通过单据元数据查找。在进行产品核算前需要先归集各产品生产过程发生的费用,包括基本生产部门、辅助生产部门发生的费用,为后续的费用分配提供基础数据。二、费用归集数据来源 费用归集需要归集各种费用以支持费用分配,其数据来源会较多, 5.0标准产品需要支持以下单据的数据同步至费用归集: 薪酬管理.薪酬费用分配明细固定资产.折旧调整表应收款管理.其他应收单应付款管理.其他应付单总账.总账凭证采购管理.收料单应付款管理.费用应付单费用报销.费用报销单费用报销.费用转移单应付款管理.工序委外应付单

以标准产品需要的支持为基础,数据来源可以分为三类:1、 薪酬管理.薪酬费用分配明细,数据来源S-HR同步的数据,具有特殊性;2、 总账.总账凭证,来源于总账凭证,具有特殊性;3、 数据来源于单据,如其他应收单、其他应付单、费用应付单等,单据具有共同的特征;三、费用归集业务类型 费用归集中可以限定某笔费用的专门用途,可以计入成本也可以不计入成本,目前支持的业务类型及特殊的限定包括以下:1、 普通生产2、 简单生产3、 费用追踪至出库单4、 费用追踪至退货单5、 费用追踪至产品6、 产品作为限定受益方进行费用分配(单笔费用分配至产品对应的工单,5.0补丁新增支持)7、 产品组作为限定收益方进行费用分配数据的来源可以灵活指定费用归集的业务类型,或者可以以某种规则分配拆分至某种业务类型,如费用应付单需要根据出库单的实际占比拆分中对应的工单,费用报销单可以根据产品灵活指定是分配至简单生产或者是产品作为限定受益方。

四、费用归集来源配置 由于数据来源的多样性和指定引入业务类型的不确定性(客户使用较为多变,投入产量相关),需要灵活支持,提供费用归集来源配置来实现此处的两个扩展点,其对应IDE中界面原型如下:

此配置在标准产品中是默认隐藏的,需要支持新的数据来源时可以发布放出,标准产品的数据预设支持标准的数据来源:

由界面原型可以得出其支持扩展的方式如下:1、 标准单据配置对应的字段,通过自动解析实现导入;2、 特殊的单据通过取数逻辑实现的类配置扩展方法;3、 指定业务类型通过单据体的分配实现类来实现;
五、标准单据配置扩展 标准单据的引入配置,可直接参考预设的标准单据设置,如其他应付单:

字段说明:单据标识:单据元数据对应的唯一标识,必录;数据来源:枚举项,与费用归集引入方案中的设置对应起来,扩展时IDE中新增枚举项,必录;业务组织标识:单据对应的业务组织字段标识,元数据中查找,必录;费用项目标识:费用项目对应的标识(不能使用成本项目字段),必录;日期标识:单据业务日期标识,确定费用所属期间,必录;部门标识:部门字段标识,对应成本中心,必录;币别标识:确定汇率的必备字段,必录;会计政策:预设数据折旧调整单特殊使用,非必录; 是否正向计算:确定引入费用归集的金额正负,勾选为正; 取数逻辑实现:AbstractCollDataFrom抽象类的实现,标准单据均配置为Kingdee.K3.FIN.CB.App.Core.ExpenseCollImport.FromBusinessBill,Kingdee.K3.FIN.CB.App.Core PS:此处所指必录是对于标准单据的实现所需要指定的数据,是用公共方法实现,不需要代码特殊处理,大部分使用应该均是此种。六、特殊来源二次开发 薪酬管理.薪酬费用分配明细和总账.总账凭证没有准确的单据对应或者是限定条件比较严格,无法通过配置来获取其数据,此种需要自己实现取数逻辑,此种直接配置个性的取数实现逻辑即可,参考薪酬费用:

其取数逻辑实现:Kingdee.K3.FIN.CB.App.Core.ExpenseCollImport.FromSalaryAllocate,Kingdee.K3.FIN.CB.App.Core具体实现新增类,继承抽象类AbstractCollDataFrom,重写方法,并配置到来源配置中:/// /// 得到数据来源的过滤语句 /// /// /// /// public virtual string GenerateSelectSQL(Context ctx, CollFromParameter parameter) { return string.Empty; }组织出插入临时表的SQL语句,要根据定义的标准进行组织语句,需要根据插入语句的INSERT INTO 的字段顺序组织查询语句的字段顺序,可使用下表进行检查,返回正确的查询语句即可:Create table TM_CB_EXPCOLLIMPBILLDATA(FBIZORGID int not null default(0),--业务组织FEXPENSEITEMID int not null default(0),--费用项目内码FDATE datetime null,--业务日期FDEPARTID int not null default(0),--部门FAMOUNT decimal(23,10) not null default(0),--金额FSRCBILLNAME nvarchar(160) not null default(''),--源单类型FSRCBILLFORMID varchar(100) not null default(''),--源单标识(元数据标识)FSRCBILLNO varchar(510) not null default(''),--源单编码FSRCBILLID int not null default(0),--源单内码FSRCENTRYID int not null default(0),--源单分录内码FSRCSEQ int not null default(0),--源单行号
-- 源单的币别和会计政策对应的汇率类型、币别,用来更新金额数据FSRCCURRENCYID int not null default(0),--源单币别(汇率转换)FACCTPOLICYID int not null default(0),--会计政策
FTAXRATE decimal(23,10) not null default(0),--汇率FTARGETCURRENCYID int not null default(0),--目标币别FAMOUNTDIGITS int not null default(0),--金额精度FRATETYPEID int not null default(0),--汇率类型FDEFAULTCCID int not null default(0), /*default cost center默认成本中心*/FSLUENTRYID int not null default(0),--引入方案分录内码FISIMPORT int not null default(1)--是否引入标识)--插入语句INSERT INTO TM_CB_EXPCOLLIMPBILLDATA (FBIZORGID,FEXPENSEITEMID,FDATE,FDEPARTID,FAMOUNT,FSRCBILLFORMID,FSRCBILLNO,FSRCBILLID,FSRCENTRYID,FSRCSEQ,FSRCCURRENCYID,FACCTPOLICYID,FTAXRATE,FTARGETCURRENCYID,FAMOUNTDIGITS,FRATETYPEID,FDEFAULTCCID,FSLUENTRYID)[i]select[/i][i] [/i][i]语句[/i]
PS:[i]select 语句[/i]即是GenerateSelectSQL返回的SQL语句,实现可参考FromSalaryAllocate。

您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!

请选择打赏金币数 *

10金币20金币30金币40金币50金币60金币
可用金币: 0