费用应付单取消计入采购成本SQL参考原创
金蝶云社区-jessie_w
jessie_w
54人赞赏了该文章 474次浏览 未经作者许可,禁止转载编辑于2024年08月29日 16:16:19
summary-icon摘要由AI智能服务提供

文本描述了处理费用应付单中计入采购成本标识修改的相关业务场景、服务规则及SQL操作示例。概述如下: 针对已下推财务单或历史期间的费用应付单,若错误勾选了计入采购成本但实际不需计入,前台无法修改时,可通过后台SQL操作取消勾选。操作前需注意费用分配状态、费用承担部门等因素,并遵循相关服务规则。文本还提供了取消勾选计入采购成本、删除未勾选时的入库单号、及批量修改费用承担部门的SQL示例。

业务场景:

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


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

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

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

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

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

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


注意事项:

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

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

  3.  如费用承担部门已作为核算维度生成凭证,则不建议修改;


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


费用应付单取消勾选计入采购成本(未进行费用分配

SELECT A.FBILLNO 单据编号,A.FBILLTYPEID 单据类型,A.FSETTLEORGID 结算组织,A.FSETACCOUNTTYPE 立账类型,A.FBUSINESSTYPE 业务类型,B.FALLOCATESTATUS 费用分配状态,B.FINCLUDECOST 计入采购成本,C.FINCLUDECONTRACTCOMPCOST 计入合同履约成本,C.FCOSTDEPARTMENTID 费用承担部门,D.FMULBASE '入库单号(内码)'
--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_PAYABLEIENTRYSTOCK D ON B.FENTRYID=D.FENTRYID
WHERE A.FBILLTYPEID='3C6F819D78AC4D5981891956C4595B20' AND FINCLUDECOST=1 AND B.FALLOCATESTATUS='A'
AND FBILLNO IN ('单据编号')


费用应付单删除维护过的入库单号(分配状态为空且计入采购成本未勾选的明细)

DELETE T_AP_PAYABLEIENTRYSTOCK WHERE FENTRYID IN (
	SELECT FENTRYID 
	FROM T_AP_PAYABLE A 
	INNER JOIN T_AP_PAYABLEENTRY B ON A.FID=B.FID 
	WHERE B.FALLOCATESTATUS='A' AND FINCLUDECOST=0 
	AND A.FBILLNO IN ('单据编号','单据编号')
)


单据批量修改费用承担部门(已作为核算维度生成凭证不建议修改)

--批量查询未勾选计入采购成本 费用承担部门又为空的单据
SELECT A.FBILLNO 单据编号,A.FBILLTYPEID 单据类型,A.FSETTLEORGID 结算组织,A.FSETACCOUNTTYPE 立账类型,A.FBUSINESSTYPE 业务类型,B.FALLOCATESTATUS 费用分配状态,B.FINCLUDECOST 计入采购成本,C.FINCLUDECONTRACTCOMPCOST 计入合同履约成本,C.FCOSTDEPARTMENTID 费用承担部门,D.FMULBASE '入库单号(内码)'
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_PAYABLEIENTRYSTOCK D ON B.FENTRYID=D.FENTRYID
WHERE A.FBILLTYPEID='3C6F819D78AC4D5981891956C4595B20' AND FINCLUDECOST=0 AND B.FALLOCATESTATUS='A' and c.FCOSTDEPARTMENTID=0

--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 费用承担部门,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
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 费用承担部门,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
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
54人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!