费用应付单取消计入采购成本修复SQL参考原创
54人赞赏了该文章
321次浏览
编辑于2024年05月09日 18:13:04
业务场景:
费用应付单,勾选了计入采购成本,且已下推财务单或在历史期间内,但实际不需要计入采购成本,无法前台反审核修改,需要后台将该标识取消勾选。
标准产品计入成本相关实体服务规则:
业务类型等于费用,默认勾选计入采购成本
业务类型=费用, 且没勾选计入采购成本,费用承担部门必录
勾选计入成本,解锁入库单号,锁定出库单号
勾选计入采购成本时,取消勾选计入合同履约成本
勾选计入合同履约成本时,取消勾选计入采购成本
注意事项:
费用分配状态不为空的单据不能修改(即已经分配过)
如取消计入采购成本,费用承担部门为空的单据建议补充上;
如下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
推荐阅读