费用应付单取消计入采购成本修复SQL参考原创
金蝶云社区-jessie_w
jessie_w
54人赞赏了该文章 321次浏览 未经作者许可,禁止转载编辑于2024年05月09日 18:13:04

业务场景:

费用应付单,勾选了计入采购成本,且已下推财务单或在历史期间内,但实际不需要计入采购成本,无法前台反审核修改,需要后台将该标识取消勾选。


标准产品计入成本相关实体服务规则:

业务类型等于费用,默认勾选计入采购成本

业务类型=费用, 且没勾选计入采购成本,费用承担部门必录

勾选计入成本,解锁入库单号,锁定出库单号

勾选计入采购成本时,取消勾选计入合同履约成本

勾选计入合同履约成本时,取消勾选计入采购成本


注意事项:

  1.  费用分配状态不为空的单据不能修改(即已经分配过)

  2.  如取消计入采购成本,费用承担部门为空的单据建议补充上;


如下SQL语句仅供参考!!!更新前建议做全表备份!!!

--费用应付单取消勾选计入成本  未进行费用分配
SELECT A.FBILLNO 单据编号,A.FBILLTYPEID 单据类型,A.FSETTLEORGID 结算组织,A.FSETACCOUNTTYPE 立账类型,A.FBUSINESSTYPE 业务类型,B.FALLOCATESTATUS 费用分配状态,B.FINCLUDECOST 计入采购成本,C.FINCLUDECONTRACTCOMPCOST 计入合同履约成本,C.FCOSTDEPARTMENTID 费用承担部门,D.FOUTSTOCKID 出库单号
--UPDATE B SET B.FINCLUDECOST=0
FROM T_AP_PAYABLE A
LEFT JOIN T_AP_PAYABLEENTRY B ON A.FID=B.FID
LEFT JOIN T_AP_PAYABLEENTRY_O C ON B.FENTRYID=C.FENTRYID
LEFT JOIN T_AP_PAYABLEOUTSTOCK D ON B.FENTRYID=D.FENTRYID
WHERE A.FBILLTYPEID='3C6F819D78AC4D5981891956C4595B20' AND FINCLUDECOST=1 AND B.FALLOCATESTATUS='A'
AND FBILLNO IN ('单据编号')
--费用应付单批量补上费用承担部门
--1. 创建临时表:应付单号,部门名称
select a.fbillno,b.fname into #temp1 
from T_AP_PAYABLE a
left join T_BD_DEPARTMENT_L b on a.FPURCHASEDEPTID=b.fdeptid and b.flocaleid=2052
where 1=0

--drop table #temp1
--2.将需要补上费用部门的单据 按单据编号和部门格式插入临时表
insert into #temp1 values
('AP00000414','制剂研发部'),
('AP00000395','行政部')

--3.根据临时表更新指定单据费用承担部门
--部门是私有型或分配型适用 (多一个条件是部门的使用组织需要为单据的结算组织)
select a.fbillno,a.fbilltypeid,a.fsettleorgid,a.fsetaccounttype,a.fbusinesstype,b.fentryid,b.FALLOCATESTATUS 费用分配状态,b.FINCLUDECOST 计入采购成本,c.FINCLUDECONTRACTCOMPCOST 计入合同履约成本,c.FCOSTDEPARTMENTID 费用承担部门,d.foutstockid 出库单号,f.fdeptid
--update c set c.FCOSTDEPARTMENTID=f.fdeptid
from T_AP_PAYABLE a
left join T_AP_PAYABLEENTRY b on a.fid=b.fid
left join T_AP_PAYABLEENTRY_O c on b.fentryid=c.fentryid
left join T_AP_PAYABLEOUTSTOCK d on b.fentryid=d.fentryid
inner join #temp1 t on a.fbillno=t.fbillno
left join T_BD_DEPARTMENT_L e on t.fname=e.fname 
inner join T_BD_DEPARTMENT f on e.fdeptid =f.fdeptid and f.fuseorgid=a.fsettleorgid

--部门为共享型适用
select a.fbillno,a.fbilltypeid,a.fsettleorgid,a.fsetaccounttype,a.fbusinesstype,b.fentryid,b.FALLOCATESTATUS 费用分配状态,b.FINCLUDECOST 计入采购成本,c.FINCLUDECONTRACTCOMPCOST 计入合同履约成本,c.FCOSTDEPARTMENTID 费用承担部门,d.foutstockid 出库单号,f.fdeptid
--update c set c.FCOSTDEPARTMENTID=f.fdeptid
from T_AP_PAYABLE a
left join T_AP_PAYABLEENTRY b on a.fid=b.fid
left join T_AP_PAYABLEENTRY_O c on b.fentryid=c.fentryid
left join T_AP_PAYABLEOUTSTOCK d on b.fentryid=d.fentryid
inner join #temp1 t on a.fbillno=t.fbillno
left join T_BD_DEPARTMENT_L e on t.fname=e.fname 
inner join T_BD_DEPARTMENT f on e.fdeptid =f.fdeptid -- and f.fuseorgid=a.fsettleorgid


赞 54