Files
GateDge2023_ljy/07.珠海英搏尔/Enpower/PRD_MO/SQLserver/P_UpdateMoFORECAST.sql
梁骏愉 17bb7e4131 1
2025-02-10 09:24:44 +08:00

410 lines
18 KiB
Transact-SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

USE [AIS20220929093310]
GO
/****** Object: StoredProcedure [dbo].[P_UpdateMoFORECAST] Script Date: 2025/1/3 2:32:05 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: 阿斌<Author,,Name>
-- Create date: 2022-12-31<Create Date,,>
-- Description: 更新生产订单预测单号信息<Description,,>
-- =============================================
ALTER PROCEDURE [dbo].[P_UpdateMoFORECAST]
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- EXEC P_UpdateMoFORECAST
--UPDATE A SET FBILLNO=ISNULL( cast(I.FBILLNO as nvarchar(100))+'-'+ cast( dbo.GetBomSeq(E.FBOMID,b.fmaterialid) as nvarchar(100)) ,'')
--from T_PRD_MO A
--INNER JOIN T_PRD_MOENTRY B ON A.FID=B.FID
--INNER JOIN T_PRD_MOENTRY_LK C ON C.FENTRYID=B.FENTRYID
--INNER JOIN T_PLN_PLANORDER D ON D.FID=C.FSBILLID
--INNER JOIN T_PLN_PLANORDER_B D_B ON D_B.FID=D.FID
--INNER JOIN T_PLN_FORECASTENTRY E ON E.FENTRYID= D_B.FSALEORDERENTRYID
--INNER JOIN T_PLN_PLANORDER_B F_B ON F_B.FSALEORDERENTRYID = E.FENTRYID
--INNER JOIN T_PLN_PLANORDER F ON F.FID = F_B.FID AND F.FMATERIALID=E.FMATERIALID
--INNER JOIN T_PRD_MOENTRY_LK G ON G.FSBILLID=F.FID
--INNER JOIN T_PRD_MOENTRY H ON H .FENTRYID=G.FENTRYID
--INNER JOIN T_PRD_MO I ON I.FID=H.FID
--WHERE C.FSTABLENAME = 'T_PLN_PLANORDER'
--AND E.FMATERIALID <> B.FMATERIALID
--AND B.FFORECASTGROUP = ''
--UPDATE B SET FFORECASTGROUP = concat (K.FBILLNO,'-',dbo.GetBomSeq(j.FBOMID,b.fmaterialid))
----*
--FROM T_PRD_MO A
--INNER JOIN T_PRD_MOENTRY B ON A.FID=B.FID
--INNER JOIN T_PRD_MOENTRY_Q C ON C.FENTRYID=B.FENTRYID
--INNER JOIN T_PRD_MOENTRY D ON D.FENTRYID=C.FSRCSPLITENTRYID
--INNER JOIN T_PRD_MO E ON E.FID=D.FID
--INNER JOIN T_PRD_MO H ON H.FBILLNO=D.FFORECASTGROUPFRIST
--INNER JOIN T_PRD_MOENTRY G ON G.FID=H.FID AND G.FFORECASTGROUP = ''
--INNER JOIN T_PRD_MOENTRY_Q I ON I .FSrcSplitEntryId=G.FENTRYID
--INNER JOIN T_PRD_MOENTRY J ON J.FENTRYID=I.FENTRYID
--INNER JOIN T_PRD_MO K ON K.FID=J.FID
--WHERE B.FFORECASTGROUP= ''
--更新生产订单的生产层数(拆分产生生产订单)
--SELECT
--REPLACE( D.FFORECASTGROUP,H.FBILLNO,L.FBILLNO),
--H.FBILLNO,
--L.FBILLNO,*
UPDATE B SET FFORECASTGROUP = REPLACE( D.FFORECASTGROUP,H.FBILLNO,L.FBILLNO)
FROM T_PRD_MO A
INNER JOIN T_PRD_MOENTRY B ON A.FID=B.FID
INNER JOIN T_PRD_MOENTRY_Q C ON C.FENTRYID=B.FENTRYID
INNER JOIN T_PRD_MOENTRY D ON D.FENTRYID=C.FSRCSPLITENTRYID
INNER JOIN T_PRD_MO E ON E.FID=D.FID
INNER JOIN T_PRD_MO H ON H.FBILLNO=D.FFORECASTGROUPFRIST --首层
INNER JOIN T_PRD_MOENTRY I ON I.FID=H.FID --首层单据体
INNER JOIN T_PRD_MOENTRY_Q J ON J.FSRCSPLITENTRYID=I.FENTRYID
INNER JOIN T_PRD_MOENTRY K ON K.FENTRYID=J.FENTRYID
INNER JOIN T_PRD_MO L ON L.FID=K.FID AND SUBSTRING(L.FBILLNO, CHARINDEX('-',L.FBILLNO)+1,LEN(L.FBILLNO)) = SUBSTRING(A.FBILLNO, CHARINDEX('-',A.FBILLNO)+1,LEN(A.FBILLNO))
WHERE 1=1
AND B.FFORECASTGROUP = ''
--UPDATE B SET FFORECASTGROUP = concat (K.FBILLNO,'-',dbo.GetBomSeq(j.FBOMID,b.fmaterialid))
--FROM T_PRD_MO A
--INNER JOIN T_PRD_MOENTRY B ON A.FID=B.FID
--INNER JOIN T_PRD_MOENTRY_Q C ON C.FENTRYID=B.FENTRYID
--INNER JOIN T_PRD_MOENTRY D ON D.FENTRYID=C.FSRCSPLITENTRYID
--INNER JOIN T_PRD_MO E ON E.FID=D.FID
--INNER JOIN T_PRD_MOENTRY_LK F ON F.FENTRYID=D.FENTRYID
--INNER JOIN T_PRD_MOENTRY G ON G.FENTRYID=F.FSID AND G.FID=F.FSBILLID
--INNER JOIN T_PRD_MO H ON H.FID=G.FID
--INNER JOIN T_PRD_MOENTRY_Q I ON I .FSrcSplitEntryId=G.FENTRYID
--INNER JOIN T_PRD_MOENTRY J ON J.FENTRYID=I.FENTRYID AND J.FFORECASTGROUP =''
--INNER JOIN T_PRD_MO K ON K.FID=J.FID
--WHERE B.FFORECASTGROUP = ''
--更新计划订单的生产层数
--select 1, E.FSTABLENAME
----A.FID,A.F_WAUG_LAYER,
----dbo.GetBomSeq( B .FBOMID,a.FMATERIALID) as '层数',
----A.FCREATEDATE,
----A.FMATERIALID,G.FBOMID,A.f_WAUG_LAYER,A.F_FORECASTNUMBER
----,A.F_LINENUMBER,A.F_MATERIALCODE,a.FBILLNO as '1',G.FBILLNO as '订单号'
--from T_PLN_PLANORDER A
--INNER JOIN T_PLN_PLANORDER_B B ON A.FID=B.FID
--INNER JOIN T_PRD_MO C ON C.FBILLNO=B.FSALEORDERNO
--INNER JOIN T_PRD_MOENTRY D ON D.FID=C.FID
--INNER JOIN T_PRD_MOENTRY_LK E ON E.FENTRYID=D.FENTRYID AND E.FSTABLENAME = 'T_PLN_PLANORDER'
----INNER JOIN T_PLN_PLANORDER F ON F.FID = E.FSBILLID
----INNER JOIN T_PLN_PLANORDER G ON G.F_FORECASTNUMBER=F.F_FORECASTNUMBER
----AND G.F_LINENUMBER=F.F_LINENUMBER AND F.F_MATERIALCODE =G.FMATERIALID
--WHERE a.F_WAUG_LAYER = ''
--AND A.FBILLNO = 'MRP00490390'
UPDATE T_PLN_PLANORDER SET F_WAUG_LAYER = CASE WHEN B.层数 IS NULL THEN 订单号 ELSE CONCAT(订单号,'-',层数) END
FROM T_PLN_PLANORDER A
INNER JOIN (
SELECT A.FID, dbo.GetBomSeq(B.FBOMID,A.FMATERIALID) AS '层数'
,A.FMATERIALID,B.FBOMID,A.f_WAUG_LAYER,A.F_FORECASTNUMBER,A.F_LINENUMBER
,A.F_MATERIALCODE,a.FBILLNO AS '1',b.FBILLNO AS '订单号'
FROM T_PLN_PLANORDER A
INNER JOIN T_PLN_PLANORDER B ON A.F_FORECASTNUMBER=B.F_FORECASTNUMBER
AND A.F_LINENUMBER=B.F_LINENUMBER AND A.F_MATERIALCODE =B.FMATERIALID
WHERE a.F_WAUG_LAYER = ''
) B ON A.FID = B.FID
--更新生产订单的生产层数(由预测单跑Mrp带出计划订单)
-- UPdate b set B.FFORECASTGROUP = isnull( dbo.getmobomseq( F.FENTRYID,dbo.GetBomSeq( f.FBOMID,b.FMATERIALID)) ,'')
--from T_PRD_MO A
--INNER JOIN T_PRD_MOENTRY B ON A.FID=B.FID
--INNER JOIN T_PRD_MOENTRY_LK C ON C.FENTRYID=B.FENTRYID
--INNER JOIN T_PLN_PLANORDER D ON D.FID=C.FSBILLID
--INNER JOIN T_PLN_PLANORDER_B E ON E.FID=D.FID
--INNER JOIN T_PLN_FORECASTENTRY F ON F.FENTRYID=E.FSALEORDERENTRYID
--INNER JOIN T_PLN_FORECAST G ON G.FID=F.FID
--WHERE B.FFORECASTGROUP=''
--2024-01-14 阿斌修改,使用骏愉新写代码
--UPDATE B SET FFORECASTGROUP = REPLACE( D.F_WAUG_LAYER,e.FBILLNO,h.FBILLNO)
--from T_PRD_MO A
--INNER JOIN T_PRD_MOENTRY B ON A.FID=B.FID
--INNER JOIN T_PRD_MOENTRY_LK C ON C.FENTRYID=B.FENTRYID
--INNER JOIN T_PLN_PLANORDER D ON D.FID=C.FSBILLID
--INNER JOIN T_PLN_PLANORDER E ON E.FBILLNO = substring( D.F_WAUG_LAYER,0, CHARINDEX( '-',REPLACE( D.F_WAUG_LAYER,'_','-') ,0))
--INNER JOIN T_PRD_MOENTRY_LK F ON F.FSBILLID=E.FID
--INNER JOIN T_PRD_MOENTRY G ON G.FENTRYID=F.FENTRYID
--INNER JOIN T_PRD_MO h ON H.FID=G.FID
--WHERE B.FFORECASTGROUP=''
--2024-01-14 阿斌修改,使用骏愉新写代码
EXEC PROC_UPDATE_BOMLEVEL
----更新生产订单的生产层数(由预测单跑Mrp带出计划订单)
-- UPdate b set B.FFORECASTGROUP = dbo.getmobomseq( F.FENTRYID,dbo.GetBomSeq( f.FBOMID,b.FMATERIALID))
--from T_SUB_REQORDER A
--INNER JOIN T_SUB_REQORDERENTRY B ON A.FID=B.FID
--INNER JOIN T_SUB_REQORDERENTRY_LK C ON C.FENTRYID=B.FENTRYID
--INNER JOIN T_PLN_PLANORDER D ON D.FID=C.FSBILLID
--INNER JOIN T_PLN_PLANORDER_B E ON E.FID=D.FID
--INNER JOIN T_PLN_FORECASTENTRY F ON F.FENTRYID=E.FSALEORDERENTRYID
--INNER JOIN T_PLN_FORECAST G ON G.FID=F.FID
--WHERE B.FFORECASTGROUP=''
--更新生产订单的生产层数(由生产订单生产下游订单生成)
UPDATE B SET FFORECASTGROUP = ISNULL( cast( e.FBILLNO as nvarchar(100))+'-'+ cast( dbo.GetBomSeq(D.fbomid,b.fmaterialid) as nvarchar(100)) ,'')
--SELECT
--F.FNUMBER,
--a.FBILLNO,
--B.FENTRYID ,
--D.fbomid,b.fmaterialid,
--cast( e.FBILLNO as nvarchar(100))+'-'+ cast( dbo.GetBomSeq(D.fbomid,b.fmaterialid) as nvarchar(100)) as 'Bom项次',
--CONVERT( nvarchar(1000),'') as '上游单据',a.FBILLNO as '上游生产订单',e.FBILLNO as '源头生产订单'
FROM T_PRD_MO A
INNER JOIN T_PRD_MOENTRY B ON A.FID=B.FID
INNER JOIN T_PRD_MOENTRY_LK C ON C .FENTRYID=B.FENTRYID
INNER JOIN T_PRD_MOENTRY D ON D.FID=C.FSBILLID AND D.FENTRYID=C.FSID
INNER JOIN T_PRD_MO E ON E.FID=D.FID
INNER JOIN T_BD_MATERIAL F ON F.FMATERIALID=B.FMATERIALID
WHERE B.FFORECASTGROUP = ''
--更新委外订单委外层数 ,源单类型为委外订单
UPDATE B SET FFORECASTGROUP = ISNULL( cast( e.FBILLNO as nvarchar(100))+'-'+ cast(dbo.GetBomSeq(D.fbomid,b.fmaterialid) as nvarchar(100)) ,'')
--SELECT
--F.FNUMBER,
--a.FBILLNO,
--B.FENTRYID ,
--D.fbomid,b.fmaterialid,
--cast( e.FBILLNO as nvarchar(100))+'-'+ cast( dbo.GetBomSeq(D.fbomid,b.fmaterialid) as nvarchar(100)) as 'Bom项次',
--CONVERT( nvarchar(1000),'') as '上游单据',a.FBILLNO as '上游生产订单',e.FBILLNO as '源头生产订单'
FROM T_SUB_REQORDER A
INNER JOIN T_SUB_REQORDERENTRY B ON A.FID=B.FID
INNER JOIN T_SUB_REQORDERENTRY_LK C ON C .FENTRYID=B.FENTRYID
INNER JOIN T_SUB_REQORDERENTRY D ON D.FID=C.FSBILLID AND D.FENTRYID=C.FSID
INNER JOIN T_SUB_REQORDER E ON E.FID=D.FID
INNER JOIN T_BD_MATERIAL F ON F.FMATERIALID=B.FMATERIALID
WHERE B.FFORECASTGROUP = ''
--已检查
--更新委外订单委外层数 ,源单类型为空,证明委外订单为源头
UPDATE B SET FFORECASTGROUP = A.FBILLNO
--SELECT D.FSTABLENAME,*
FROM T_SUB_REQORDER A
INNER JOIN T_SUB_REQORDERENTRY B ON A.FID=B.FID
LEFT JOIN T_SUB_REQORDERENTRY_LK D ON D.FENTRYID=B.FENTRYID
--AND D.FSTABLENAME = 'T_SUB_REQORDER'
WHERE 1 = 1 AND D.FSID IS NULL AND B.FFORECASTGROUP = ''
--已检查
--更新委外订单委外层数 ,源单类型不为委外订单,层数为源单单号
UPDATE B SET FFORECASTGROUP = C.FSRCBILLNO
--SELECT D.FSTABLENAME,*
FROM T_SUB_REQORDER A
INNER JOIN T_SUB_REQORDERENTRY B ON A.FID=B.FID
LEFT JOIN T_SUB_REQORDERENTRY_A C ON C.FENTRYID=B.FENTRYID
LEFT JOIN T_SUB_REQORDERENTRY_LK D ON D.FENTRYID=B.FENTRYID
--AND D.FSTABLENAME = 'T_SUB_REQORDER'
WHERE 1=1 AND D.FSID IS NOT NULL AND B.FFORECASTGROUP = ''
--已检查
--2024-01-23 1814 梁骏愉添加start--
----更新生产订单(生产订单没有上游单据,为他的单据编号)
--UPDATE B SET FFORECASTGROUP = A.FBILLNO
----SELECT *
--FROM T_PRD_MO A
--INNER JOIN T_PRD_MOENTRY B ON A.FID=B.FID
--LEFT JOIN T_PRD_MOENTRY_LK D ON D.FENTRYID=B.FENTRYID AND D.FSTABLENAME = 'T_PRD_MOENTRY'
--WHERE
--1=1
--AND D.FSID IS NULL
--AND B.FFORECASTGROUP = ''
--2024-01-23 1814 梁骏愉添加end--
--2024-01-23 1814 梁骏愉添加start--
UPDATE B SET FFORECASTGROUP = A.FBILLNO
--SELECT A.FBILLNO
FROM T_PRD_MO A
INNER JOIN T_PRD_MOENTRY B ON A.FID=B.FID
--INNER JOIN #temp2 f on f.Fname=a.FBILLNO
WHERE 1=1 AND B.FFORECASTGROUP = '' AND not exists (SELECT 1 FROM T_PRD_MOENTRY_LK t1_lk WHERE t1_lk.FENTRYID = B.FENTRYID)
--2024-01-23 1814 梁骏愉添加end--
--将系统标准的备注字段更新到备注2字段
UPDATE B set FNOTE2=c.FMEMO FROM T_PRD_MO A
INNER JOIN T_PRD_MOENTRY B ON A.FID=B.FID
INNER JOIN T_PRD_MOENTRY_L C ON C.FENTRYID=B.FENTRYID
where FNOTE2 = ''
--拆单获取原单备注
UPDATE B SET FNOTE2 = D.FNOTE2
FROM T_PRD_MO A
INNER JOIN T_PRD_MOENTRY B ON A.FID=B.FID
INNER JOIN T_PRD_MOENTRY_Q C ON C.FENTRYID=B.FENTRYID
INNER JOIN T_PRD_MOENTRY D ON D.FENTRYID=C.FSRCSPLITENTRYID
--where A.FBILLNO = 'WO2301050101'
where B.FNOTE2= ''
--将上游单据的生产订单的备注带到下级生产订单的备注
--UPDATE D SET D.FNOTE2 = B.FNOTE2
--SELECT a.FBILLNO,b.FNOTE2,c.FBILLNO ,d.FNOTE2
UPDATE B SET FNOTE2 = D.FNOTE2
FROM T_PRD_MO A
INNER JOIN T_PRD_MOENTRY B ON A.FID=B.FID
INNER JOIN T_PRD_MO C ON C.FBILLNO= B.FFORECASTGROUPFRIST
INNER JOIN T_PRD_MOENTRY D ON D.FID=C.FID
--where A.FBILLNO = 'WO2301050101'
where B.FNOTE2= ''
AND A.FBILLNO <> B.FFORECASTGROUPFRIST
--更新生产用料清单的生产层数
UPDATE T_PRD_PPBOMENTRY SET FFORECASTGROUP= c.FFORECASTGROUP
FROM T_PRD_PPBOM A
INNER JOIN T_PRD_PPBOMENTRY D ON A.FID=D.FID
INNER JOIN T_PRD_MO B ON B.FBILLNO=A.FMOBillNO INNER JOIN T_PRD_MOENTRY C ON C.FID=B.FID
where d.FFORECASTGROUP = ''
--更新生产用料清单的单位用量
--SELECT FNUMERATOR,FDENOMINATOR,
--ROUND(FNUMERATOR/FDENOMINATOR,3), F_PKGR_CONSUMPTION,
--*
UPDATE T_PRD_PPBOMENTRY set F_PKGR_CONSUMPTION = ROUND(FNUMERATOR/FDENOMINATOR,3)
FROM T_PRD_PPBOMENTRY
WHERE F_PKGR_CONSUMPTION = 0
UPDATE A SET FINVSTOCKQTY=B.FBASEQTY
FROM T_PRD_MOENTRY A
INNER JOIN
(
SELECT B.FMATERIALID,SUM(FBASEQTY) AS 'FBASEQTY' FROM T_STK_INVENTORY A
INNER JOIN T_BD_MATERIAL B ON A.FMATERIALID=B.FMASTERID
WHERE A.FISEFFECTIVED=1
GROUP BY B.FMATERIALID
) B ON A.FMATERIALID=B.FMATERIALID WHERE FINVSTOCKQTY = 0
--UPDATE a SET a.FBILLNO = ISNULL( cast( e.FBILLNO as nvarchar(100))+'-'+ cast( dbo.GetBomSeq(D.fbomid,b.fmaterialid) as nvarchar(100)) ,'')
----SELECT
----F.FNUMBER,
----a.FBILLNO,
----B.FENTRYID ,
----D.fbomid,b.fmaterialid,
----cast( e.FBILLNO as nvarchar(100))+'-'+ cast( dbo.GetBomSeq(D.fbomid,b.fmaterialid) as nvarchar(100)) as 'Bom项次',
----CONVERT( nvarchar(1000),'') as '上游单据',a.FBILLNO as '上游生产订单',e.FBILLNO as '源头生产订单'
--FROM T_PRD_MO A
--INNER JOIN T_PRD_MOENTRY B ON A.FID=B.FID
--INNER JOIN T_PRD_MOENTRY_LK C ON C .FENTRYID=B.FENTRYID
--INNER JOIN T_PRD_MOENTRY D ON D.FID=C.FSBILLID AND D.FENTRYID=C.FSID
--INNER JOIN T_PRD_MO E ON E.FID=D.FID
--INNER JOIN T_BD_MATERIAL F ON F.FMATERIALID=B.FMATERIALID
--WHERE B.FFORECASTGROUP = ''
--更新生产订单的首层订单号
UPDATE a set FFORECASTGROUPFRIST =
CASE WHEN CHARINDEX( '-',REPLACE( FFORECASTGROUP,'_','-') ,0) = 0 THEN FFORECASTGROUP
WHEN CHARINDEX( '-',REPLACE( FFORECASTGROUP,'_','-') ,0) > 0 AND B.FSRCSPLITENTRYID=0 THEN SUBSTRING(FFORECASTGROUP,0,dbo.[func_find](FFORECASTGROUP,'-',1))
WHEN CHARINDEX( '-',REPLACE( FFORECASTGROUP,'_','-') ,0) > 0 AND B.FSRCSPLITENTRYID>0 AND SUBSTRING(FFORECASTGROUP,0,dbo.[func_find](FFORECASTGROUP,'-',2)) IS NULL THEN FFORECASTGROUP
ELSE SUBSTRING(FFORECASTGROUP,0,dbo.[func_find](FFORECASTGROUP,'-',2)) END
FROM T_PRD_MOENTRY A
INNER JOIN T_PRD_MOENTRY_Q B ON A.FENTRYID=B.FENTRYID
WHERE
1=1
AND FFORECASTGROUPFRIST= ''
--更新委外订单的首层订单号
UPDATE T_SUB_REQORDERENTRY set FFORECASTGROUPFRIST = CASE WHEN CHARINDEX( '-',REPLACE( FFORECASTGROUP,'_','-') ,0) = 0 THEN FFORECASTGROUP ELSE SUBSTRING(FFORECASTGROUP,0, CHARINDEX( '-',REPLACE( FFORECASTGROUP,'_','-') ,0)) end
FROM T_SUB_REQORDERENTRY
WHERE FFORECASTGROUPFRIST= ''
--更新生产用料清单的首层订单号
UPDATE T_PRD_PPBOMENTRY set FFORECASTGROUPFRIST = CASE WHEN CHARINDEX( '-',REPLACE( FFORECASTGROUP,'_','-') ,0) = 0 THEN FFORECASTGROUP ELSE SUBSTRING(FFORECASTGROUP,0, CHARINDEX( '-',REPLACE( FFORECASTGROUP,'_','-') ,0)) end
FROM T_PRD_PPBOMENTRY
WHERE FFORECASTGROUPFRIST= ''
--更新委外用料清单的首层订单号
UPDATE T_SUB_PPBOMENTRY set FFORECASTGROUPFRIST = CASE WHEN CHARINDEX( '-',REPLACE( FFORECASTGROUP,'_','-') ,0) = 0 THEN FFORECASTGROUP ELSE SUBSTRING(FFORECASTGROUP,0, CHARINDEX( '-',REPLACE( FFORECASTGROUP,'_','-') ,0)) end
FROM T_SUB_PPBOMENTRY
WHERE FFORECASTGROUPFRIST= ''
--生产订单的客户带到下级生产订单的客户(生成下级子工单)
UPDATE E SET E.F_PKGR_CUSTOMER= A.F_PKGR_CUSTOMER
--SELECT *
--D.FNOTE2,
--B.FNOTE2,*
FROM T_PRD_MO A
INNER JOIN T_PRD_MOENTRY B ON A.FID=B.FID
INNER JOIN T_PRD_MOENTRY_LK C ON C.FSID=B.FENTRYID AND C.FSBILLID=B.FID
INNER JOIN T_PRD_MOENTRY D ON D.FENTRYID=C.FENTRYID
INNER JOIN T_PRD_MO E ON E.FID=D.FID
--where A.FBILLNO = 'TO2305300002'
AND ISNULL(E.F_PKGR_CUSTOMER,0)= 0
and E.F_PKGR_CUSTOMER<>A.F_PKGR_CUSTOMER
where A.FPRDORGID=1 and E.FPRDORGID=1 --生产组织:珠海英搏尔
--生产订单的客户带到下级生产订单的客户(拆分生产订单)
UPDATE PRT set PRT.F_PKGR_CUSTOMER=PRS.F_PKGR_CUSTOMER
from T_PRD_MOENTRY_Q PRTRYS INNER JOIN T_PRD_MOENTRY_Q PRTRYT
ON PRTRYS.FENTRYID=PRTRYT.FSRCSPLITENTRYID AND PRTRYS.FID=PRTRYT.FSRCSPLITID
inner join T_PRD_MO PRS ON PRS.FID=PRTRYS.FID
inner JOIN T_PRD_MO PRT ON PRT.FID=PRTRYT.FID
where 1=1
AND ISNULL(PRS.F_PKGR_CUSTOMER,0)<>0
and PRT.F_PKGR_CUSTOMER <> PRS.F_PKGR_CUSTOMER
--AND PRS.FID IN (@FSRCSPLITID)
AND PRS.FPRDORGID=1 and PRT.FPRDORGID=1 --生产组织:珠海英搏尔
--更新生产用料清单的单位用量
--SELECT FNUMERATOR,FDENOMINATOR,
--ROUND(FNUMERATOR/FDENOMINATOR,3), F_PKGR_CONSUMPTION,
--*
UPDATE T_PRD_PPBOMENTRY set FBomStdQty = ROUND(FNUMERATOR/FDENOMINATOR,3)
FROM T_PRD_PPBOMENTRY
WHERE FBomStdQty = 0
--更新委外用料清单的单位用量
UPDATE T_SUB_PPBOMENTRY set FBomStdQty = ROUND(FNUMERATOR/FDENOMINATOR,3)
FROM T_SUB_PPBOMENTRY
WHERE FBomStdQty = 0
END