解决外购物料在采购入库前发生单位变更,入库后无法正常出库
使用中,反馈物料出库有异常,曾经改过物料单位, 经查询物料之前单位是"个",后面修改成"条",查询即时库存单位显示为"个";
此时如果可以直接修改物料单位,改回为"个",再出库,到简单省事,但系统有控制,修改物料时提示已有业务单据,不需更改;
后查看官方文章解决如下:
物料修改基本单位保存提示:‘物料已存在业务单据【采购订单】,不能修改基本单位 ’
https://wenku.my7c.com/link/s/l7uWX
参考官方文章后,尝试删除业务单据,但发现只能删除到采购入库环节,采购订单上面N多物料且已有下游单据,造成采购订单和采购申请单两张单据需要后台修改一下单位;
可能会有多种方法,此方法仅供参考,欢迎反馈其他解决方法,谢谢;
1> 修改采购申请单单位为新单位;
2> 修改采购订单单位为新单位;
3> 修改即时库存表中的单位为新单位;(即时库存没有数量,但曾经入库过,系统即时库存有数量为0的一条记录)
--查找计量单位表,获取计量单位内码
SELECT t9.FNAME, * FROM dbo.T_BD_UNIT t8 LEFT JOIN t_BD_Unit_L t9 ON t9.FUNITID = t8.FUNITID
--修改采购申请单指定物料计价单位
--100155 条
--计量单位 FUNITID
--基本单位 FBASEUNITID
--计价单位 FPRICEUNITID
--销售单位 FSALUNITID
--库存单位 FREQSTOCKUNITID
SELECT t1.fid, t1.FBILLNO,t2.FUNITID,t2.FBASEUNITID, t2.FPRICEUNITID,t2.FSALUNITID,t2.FREQSTOCKUNITID, w01.FNUMBER,w02.FNAME,w02.FSPECIFICATION ,t8.FUNITID,t9.FNAME
-- UPDATE t2 SET t2.FUNITID='100155',t2.FBASEUNITID='100155', t2.FPRICEUNITID='100155',t2.FSALUNITID='100155',t2.FREQSTOCKUNITID='100155'
FROM T_PUR_REQUISITION t1 LEFT JOIN T_PUR_REQENTRY t2 ON t2.FID = t1.FID
LEFT JOIN dbo.T_BD_MATERIAL W01 ON W01.FMATERIALID =t2.FMATERIALID --连接物料表
LEFT JOIN dbo.T_BD_MATERIAL_L W02 ON W02.FMATERIALID=W01.FMATERIALID --连接物料多语言表
LEFT JOIN dbo.T_BD_MATERIALBASE W03 ON W03.FMATERIALID=W02.FMATERIALID --关联物料基本表
LEFT JOIN T_BD_UNIT t8 ON t8.FUNITID=t2.FUNITID --计量单位
LEFT JOIN dbo.T_BD_UNIT_L t9 ON t9.FUNITID = t8.FUNITID
WHERE t1.FBILLNO='CGSQ20230500225' AND w01.FNUMBER='507710900'
--修改采购订单指定物料计价单位
--基本单位内码 FBASEUNITID
--销售单位 FSALUNITID
-- 库存单位 FSTOCKUNITID
-- 计价单位内码 FPRICEUNITID T_PUR_POORDERENTRY_F(采购订单明细_财务信息)
-- 定价单位 FSETPRICEUNITID T_PUR_POORDERENTRY_F(采购订单明细_财务信息)
SELECT t1.fid, t1.FBILLNO,t2.FUNITID,t2.FBASEUNITID, t2.FSALUNITID,t2.FSTOCKUNITID,t3.FPRICEUNITID,t3.FSETPRICEUNITID, w01.FNUMBER,w02.FNAME,w02.FSPECIFICATION ,t8.FUNITID,t9.FNAME
--UPDATE t3 SET t3.FPRICEUNITID='100155'
--UPDATE t2 SET t2.FUNITID='100155',t2.FBASEUNITID='100155', t2.FSTOCKUNITID='100155'
FROM T_PUR_POORDER t1 LEFT JOIN T_PUR_POORDERENTRY t2 ON t2.FID = t1.FID
LEFT JOIN T_PUR_POORDERENTRY_F t3 ON t3.FENTRYID = t2.FENTRYID AND t3.FID = t2.FID
LEFT JOIN dbo.T_BD_MATERIAL W01 ON W01.FMATERIALID =t2.FMATERIALID --连接物料表
LEFT JOIN dbo.T_BD_MATERIAL_L W02 ON W02.FMATERIALID=W01.FMATERIALID --连接物料多语言表
LEFT JOIN dbo.T_BD_MATERIALBASE W03 ON W03.FMATERIALID=W02.FMATERIALID --关联物料基本表
LEFT JOIN T_BD_UNIT t8 ON t8.FUNITID=t2.FUNITID --计量单位
LEFT JOIN dbo.T_BD_UNIT_L t9 ON t9.FUNITID = t8.FUNITID
WHERE t1.FBILLNO='CGDD20230500175' AND w01.FNUMBER='507710900'
--修改即时库存中的单位, 星空曾经入过库的物料,就算已经全部出库,在即时库存表中依然有一行数量为零的记录
SELECT
RK1.FSTOCKID, --仓库内码
CK1.FNUMBER,
ck2.FNAME AS CKFNAME,
RK1.FMATERIALID, --物料内码
W01.FNUMBER AS WLFNUMBER,
W02.FNAME AS WLFNAME,
W02.FSPECIFICATION,
RK1.FBASEQTY , --库存量(基本单位)
RK1.FBASEUNITID, --基本单位内码
JL02.FNAME AS JLFNAME,
W01.F_NET_SHANGJIFENZU,
RK1.FLOT, --批号ID
PH1.FNUMBER AS PHFNUMBER,
W04.FREFCOST, --参考成本
WD.FDIMEENTRYID,
JC.FQTY,
JC.FAMOUNT,
ISNULL(JC.FAMOUNT,0)/NULLIF(JC.FQTY,0) AS jcdj
-- UPDATE rk1 SET rk1.FBASEUNITID='100155'
FROM T_STK_INVENTORY RK1 LEFT JOIN T_BD_STOCK CK1 ON CK1.FSTOCKID = RK1.FSTOCKID --关联仓库表
LEFT JOIN T_BD_STOCK_L ck2 ON ck2.FSTOCKID = CK1.FSTOCKID
LEFT JOIN dbo.T_BD_MATERIAL W01 ON W01.FMATERIALID =RK1.FMATERIALID --连接物料表
LEFT JOIN dbo.T_BD_MATERIAL_L W02 ON W02.FMATERIALID=W01.FMATERIALID --连接物料多语言表
LEFT JOIN dbo.T_BD_MATERIALBASE W03 ON W03.FMATERIALID=W02.FMATERIALID --关联物料基本表
LEFT JOIN T_BD_MATERIALSTOCK W04 ON W04.FMATERIALID = W01.FMATERIALID --关联物料库存表
LEFT JOIN T_BD_LOTMASTER PH1 ON PH1.FLOTID=RK1.FLOT --关联批号主档表
LEFT JOIN T_BD_UNIT JL01 ON JL01.FUNITID=RK1.FBASEUNITID --关联计量单位表
LEFT JOIN T_BD_UNIT_L JL02 ON JL02.FUNITID=JL01.FUNITID --关联计量单位表
LEFT JOIN T_HS_INIVSTOCKDIMENSION WD ON WD.FMATERIALID=RK1.FMATERIALID AND WD. FSTOCKID IN ('103108') --关联库存属性维度
LEFT JOIN T_HS_BALANCE JC ON JC.FDIMEENTRYID=WD.FDIMEENTRYID AND JC.FENDINITKEY='0' --关联维度内码
WHERE CK1.FNUMBER IN ('hr025') AND W01.FNUMBER='507710900'
仅供参考, 建议先在备份账套测试通过后,再执行....
解决外购物料在采购入库前发生单位变更,入库后无法正常出库
本文2024-09-16 18:21:14发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-21589.html