Files
GateDge2023_ljy/07.珠海英搏尔/Enpower/PRD_MO/SQLserver/P_UpdateSubFORECAST.sql
梁骏愉 2306c8b7cf 1
2025-03-15 15:03:34 +08:00

56 lines
2.7 KiB
SQL

CREATE PROCEDURE P_UpdateSubFORECAST
@billnoStr varchar(8000)
AS
BEGIN
EXEC PROC_SELECT_UPDATE_BOMLEVEL2 @billnoStr
--更新委外订单委外层数 ,源单类型为委外订单
UPDATE t0e SET FFORECASTGROUP = ISNULL( cast( t1.FBILLNO as nvarchar(100))+'-'+ cast(dbo.GetBomSeq(t1e.fbomid,t0e.fmaterialid) as nvarchar(100)) ,'')
--SELECT t2.FNUMBER
-- ,t0.FBILLNO
-- ,t0e.FENTRYID
-- ,t1e.FBOMID,t0e.FMATERIALID
-- ,CAST( t1.FBILLNO AS NVARCHAR(100)) + '-'+ cast(dbo.GetBomSeq(t1e.fbomid,t0e.fmaterialid) as nvarchar(100)) as 'Bom项次',
--CONVERT( nvarchar(1000),'') as '上游单据',t0.FBILLNO as '上游生产订单',t1.FBILLNO as '源头生产订单'
FROM T_SUB_REQORDER t0
INNER JOIN T_SUB_REQORDERENTRY t0e on t0.FID = t0e.FID
INNER JOIN T_SUB_REQORDERENTRY_LK t0e_lk on t0e_lk.FENTRYID = t0e.FENTRYID
INNER JOIN T_SUB_REQORDERENTRY t1e on t1e.FID = t0e_lk.FSBILLID AND t1e.FENTRYID = t0e_lk.FSID
INNER JOIN T_SUB_REQORDER t1 on t1.FID = t1e.FID
INNER JOIN T_BD_MATERIAL t2 on t2.FMATERIALID = t0e.FMATERIALID
WHERE t0e.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 = ''
--已检查
--更新委外订单的首层订单号
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_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= ''
END