This commit is contained in:
梁骏愉
2025-02-10 09:24:44 +08:00
parent 3d15fd4b7e
commit 17bb7e4131
56 changed files with 15484 additions and 502 deletions

View File

@@ -0,0 +1,239 @@
USE [AIS20220929093310]
GO
/****** Object: StoredProcedure [dbo].[PROC_SELECT_UPDATE_BOMLEVEL] Script Date: 2025/1/3 2:35:18 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[PROC_SELECT_UPDATE_BOMLEVEL]
@billnoStr varchar(8000)
AS
BEGIN
CREATE TABLE #TMP_MO --<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>#TMP
(
FID INT
,FBILLNO VARCHAR(255)
,FDATE DATE
,FENTRYID INT
,FMATERIALID INT
,OMATERAILID int
,MOBOMID INT
,FSRCFORMID VARCHAR(255)
,FSRCBILLNO VARCHAR(255)
,FSRCINTERID INT
,FSRCENTRYID INT
,FSEQ INT
,FBOMID INT
,BOMLEVEL VARCHAR(255)
,TOPBILLNO VARCHAR(255)
,FFORECASTGROUP varchar(255)
);
CREATE INDEX [#TMP_MO_FID] ON #TMP_MO(FID);
--INSERT INTO #TMP_MO
/*<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>Ͷ<EFBFBD>ţ<EFBFBD>T_PLN_RESERVELINKENTRY<EFBFBD><EFBFBD><EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD>Ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
SELECT
t0e.FID
,t0.FBILLNO
,t0.FDATE
,t0e.FENTRYID
,t0e.FMATERIALID
,t0e.FBomId MOBomId
,t1.FSRCFORMID --'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
,t1.FSRCBILLNO --'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
,t1.FSRCINTERID /*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
,t1.FSRCENTRYID /*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD>*/ ---<EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD>ͬһԤ<EFBFBD>ͬһ<EFBFBD>е<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ
,t2e.FSEQ
,t2e.FBomId /*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FBomIdȡƥ<EFBFBD><EFBFBD>BOM<EFBFBD>༶չ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD><EFBFBD><EFBFBD>*/
,t2e.FMATERIALID OMATERAILID
,t0e.FFORECASTGROUP
--,t0_lk.FSTABLENAME
--,t0_lk.FSTABLEID
--,t0_lk.FSBILLID
,t0_lk.FSID
,t0e_Q.FSRCSPLITID
,'' BOMLevel
INTO #TMP_MO_PART
FROM T_PRD_MO t0 --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ
INNER JOIN T_PRD_MOENTRY t0e ON t0e.FID=t0.FID --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
INNER JOIN T_PRD_MOENTRY_Q t0e_Q on t0e.FENTRYID = t0e_Q.FENTRYID
LEFT JOIN T_PRD_MOENTRY_LK t0_lk on t0e.FENTRYID = t0_lk.FENTRYID
INNER JOIN T_PLN_RESERVELINKENTRY t1e ON t1e.FINTSUPPLYID = t0e.FID AND t1e.FINTSUPPLYENTRYID = t0e.FENTRYID--Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
INNER JOIN T_PLN_RESERVELINK t1 ON t1.FID=t1e.FID AND t1.FSRCFORMID = 'PLN_FORECAST'--Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ
INNER JOIN T_PLN_FORECASTENTRY t2e ON t2e.FID = t1.FSRCINTERID AND t2e.FENTRYID = t1.FSRCENTRYID--Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WHERE 1 = 1
--t0.FBILLNO='WO2401100002' /*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
--AND t0e.FFORECASTGROUP='' /*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>*/
--AND t0e.FFORECASTGROUPFRIST = 'WO2312270043'
AND t0e.FSRCBILLTYPE='PLN_PLANORDER' /*ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>MRP<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶĵ<EFBFBD><EFBFBD><EFBFBD>*/
AND t0e_Q.FSRCSPLITID = 0
AND t0.FBILLNO in (SELECT b.billno FROM (SELECT CAST('<v>'+REPLACE(@billnoStr,',','</v><v>')+'</v>' AS xml) billno ) a OUTER APPLY (SELECT T.C.value('.','varchar(50)') billno FROM a.billno.nodes('/v') AS T(C)) b ) --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ų<EFBFBD><EFBFBD><EFBFBD>
INSERT INTO #TMP_MO
SELECT
tt.FID
,tt.FBILLNO
,tt.FDATE
,tt.FENTRYID
,tt.FMATERIALID
,tt.OMATERAILID
,tt.MOBomId
,tt.FSRCFORMID --'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
,tt.FSRCBILLNO --'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
,tt.FSRCINTERID /*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
,tt.FSRCENTRYID /*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD>*/ ---<EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD>ͬһԤ<EFBFBD>ͬһ<EFBFBD>е<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ
,tt.FSEQ
,CASE tt.FBomId WHEN 0 THEN ISNULL(t0.MOBomId,0) ELSE tt.FBomId END /*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FBomIdȡƥ<EFBFBD><EFBFBD>BOM<EFBFBD>༶չ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ȴ<EFBFBD>Ԥ<EFBFBD>ⵥȡֵ<C8A1><D6B5>Ԥ<EFBFBD>ⵥΪ<E2B5A5><CEAA>ʱȡ<CAB1><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
,tt.BOMLevel
,ISNULL(t0.FBILLNO,'<EFBFBD>޶<EFBFBD><EFBFBD><EFBFBD>') FBILLNO
,tt.FFORECASTGROUP
--into #TMP_MO
FROM
#TMP_MO_PART tt
LEFT JOIN (
SELECT
FID,MOBomId,FBOMID,FSEQ,FSRCINTERID,FSRCENTRYID,FBILLNO,FDATE,len(FBILLNO) Billnolen,OMATERAILID,FMATERIALID,FSID
,ROW_NUMBER() over(partition BY MOBomId,FBOMID,FSEQ,FSRCINTERID,FSRCENTRYID,FDATE,len(FBILLNO),OMATERAILID,FMATERIALID order by FBILLNO) ROWID
FROM
#TMP_MO_PART
WHERE FMATERIALID = OMATERAILID
) t0 ON 1=1
AND tt.FBOMID = t0.FBOMID
AND tt.FSEQ = t0.FSEQ
AND tt.FSRCINTERID = t0.FSRCINTERID
AND tt.FSRCENTRYID = t0.FSRCENTRYID
AND tt.FDATE = t0.FDATE
--AND t0.ROWID =1
AND tt.OMATERAILID = t0.FMATERIALID
AND t0.Billnolen = len(tt.FBILLNO)
--AND tt.fsid = t0.FSID
WHERE 1 = 1
--AND tt.FFORECASTGROUP = ''
CREATE TABLE #TMP_TOP_BOM_SET(
FID int
,FNUMBER varchar(80)
,FMATERIALID int
,FSEQ int
,BOMLEVEL int
,TOPID int
,showlevel varchar(80)
,oId int
)
CREATE INDEX [#TMP_TOP_BOM_SET_FID] ON #TMP_TOP_BOM_SET(FID);
INSERT INTO #TMP_TOP_BOM_SET
SELECT
t0.FID
,t0.FNUMBER
,t0.FMATERIALID
,ROW_NUMBER() over(partition BY t0.FID order by t0.fid)
,1 'BOMLEVEL'
,t0.FID AS 'TOPID'
,''
,t0.FID
FROM
T_ENG_BOM t0
INNER JOIN #TMP_MO t3 on t3.FBOMID = t0.FID AND t3.FMATERIALID = t0.FMATERIALID
WHERE 1 = 1
AND t3.FMATERIALID = t3.OMATERAILID
GROUP BY
t0.FID
,t0.FNUMBER
,t0.FMATERIALID
DECLARE @num INT,@level int,@LoopCount int
SET @num = 1
SET @level =1
SET @LoopCount = 0;
WHILE (@num <> 0 AND @LoopCount < 30)
BEGIN
INSERT INTO #TMP_TOP_BOM_SET
SELECT
t3.FID
,t3.FNUMBER
,t3.FMATERIALID
,ROW_NUMBER() over(partition BY t0.TOPID,t0.oid order by t0.fseq)
,t0.BOMLEVEL + 1
,t0.TOPID
,CONCAT(t0.showlevel,'-',CAST(dense_rank() over(partition BY t0.topid,t0.oid,t0.fid order by t1.fseq) as VARCHAR))
,t0.FID
FROM
#TMP_TOP_BOM_SET t0
INNER JOIN T_ENG_BOMCHILD t1 on t0.FID = t1.FID
INNER JOIN T_BD_MATERIALBASE t2 on t2.FMATERIALID = t1.FMATERIALID
INNER JOIN T_ENG_BOM t3 on t1.FMATERIALID = t3.FMATERIALID
WHERE 1 = 1
AND (t2.FERPCLSID = 2 OR t2.FERPCLSID = 5 )
AND t0.BOMLEVEL = @level
SET @num = @@ROWCOUNT
SET @level += 1
SET @LoopCount += 1
END
SELECT
*
INTO #TMP_TOP_BOM_GROUP
FROM #TMP_TOP_BOM_SET
WHERE 1 = 1
GROUP BY FID,FNUMBER,FMATERIALID,FSEQ,BOMLEVEL,TOPID,showlevel,oId
SELECT FID,FBILLNO,FENTRYID,FDATE,FMATERIALID,OMATERAILID,MOBOMID,FSRCENTRYID,FSRCINTERID,FSEQ,FBOMID,TOPBILLNO,BOMLEVEL,FFORECASTGROUP
INTO #TMP_MO_GROUP
FROM #TMP_MO
GROUP BY FID,FBILLNO,FENTRYID,FDATE,FMATERIALID,OMATERAILID,MOBOMID,FSRCENTRYID,FSRCINTERID,FSEQ,FBOMID,TOPBILLNO,BOMLEVEL,FFORECASTGROUP
----<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--UPDATE t0 SET t0.BOMLEVEL = ISNULL(t0.TOPBILLNO,'') + ISNULL(t1.showlevel ,'')
--FROM #TMP_MO_GROUP t0 LEFT JOIN #TMP_TOP_BOM_GROUP t1 on t0.FMATERIALID = t1.FMATERIALID AND t0.MOBOMID = t1.FID AND t0.FBOMID = t1.TOPID
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2024-01-23
UPDATE t0 SET t0.BOMLEVEL = (CASE t0.TOPBILLNO WHEN '<EFBFBD>޶<EFBFBD><EFBFBD><EFBFBD>' THEN '' ELSE ISNULL(t0.TOPBILLNO,'') + ISNULL(t1.showlevel ,'') END)
FROM #TMP_MO_GROUP t0 LEFT JOIN #TMP_TOP_BOM_GROUP t1 on t0.FMATERIALID = t1.FMATERIALID AND t0.MOBOMID = t1.FID AND t0.FBOMID = t1.TOPID
--<EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>
UPDATE t0e SET t0e.FFORECASTGROUP = t1.BOMLEVEL,t0e.FFORECASTGROUPFRIST = t1.TOPBILLNO
FROM T_PRD_MOENTRY t0e INNER JOIN #TMP_MO_GROUP t1 on t0e.FBOMID = t1.MOBOMID AND t0e.FENTRYID = t1.FENTRYID
WHERE t0e.FFORECASTGROUP = ''
--SELECT t0.*,t1.fnumber
--FROM #TMP_TOP_BOM_GROUP t0
--INNER JOIN T_BD_MATERIAL t1 on t0.fmaterialid = t1.fmaterialid
----WHERE t0.TOPID = 8062230
--order by t0.FSEQ,t0.BOMLEVEL
--SELECT t0.*,t1.FENTRYID FROM #TMP_MO_GROUP t0 RIGHT join T_PRD_MOENTRY t1 on t0.FID = t1.FID AND t0.FENTRYID = t1.FENTRYID WHERE 1 = 1 AND t1.FFORECASTGROUPFRIST = 'WO2312270043'<27><>
--SELECT t0.*
-- ,t0_lk.FSTABLENAME
-- ,t0_lk.FSTABLEID
-- ,t0_lk.FSBILLID
-- ,t0_lk.FSID
-- ,t0e_Q.FSRCSPLITBILLNO
-- ,t0e_Q.FSRCSPLITID
-- ,t0e_Q.FSRCSPLITSEQ
-- ,t0e_Q.FSRCSPLITENTRYID
-- --INTO #TMP_MO_PART
-- FROM #TMP_MO_GROUP t0
-- LEft JOIN T_PRD_MOENTRY_LK t0_lk on t0.FENTRYID = t0_lk.FENTRYID
-- INNER JOIN T_PRD_MOENTRY_Q t0e_Q on t0.FENTRYID = t0e_Q.FENTRYID
-- WHERE 1 = 1
--AND FBOMID =8237478 AND MOBOMID =8237478
--AND topbillno='WO2311080183'
--SELECT * FROM #TMP_MO WHERE 1 = 1
--AND FBOMID <> MOBOMID
--AND FBOMID = 6339745 --AND topbillno='WO2308090009' --<EFBFBD><EFBFBD>ѯ<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DROP TABLE #TMP_MO_GROUP
DROP TABLE #TMP_MO_PART
DROP TABLE #TMP_TOP_BOM_SET
DROP TABLE #TMP_TOP_BOM_GROUP
DROP TABLE #TMP_MO --ɾ<><C9BE><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>#TMP
END
--SET STATISTICS TIME ON
--EXEC PROC_UPDATE_BOMLEVEL
--SET STATISTICS TIME OFF

View File

@@ -0,0 +1,410 @@
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: <20><><EFBFBD><EFBFBD><Author,,Name>
-- Create date: 2022-12-31<Create Date,,>
-- Description: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD><EFBFBD><E2B5A5><EFBFBD><EFBFBD>Ϣ<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= ''
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<EFBFBD><EFBFBD><EFBFBD>ֲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
--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 --<EFBFBD>ײ<EFBFBD>
INNER JOIN T_PRD_MOENTRY I ON I.FID=H.FID --<EFBFBD>ײ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
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 = ''
--<EFBFBD><EFBFBD><EFBFBD>¼ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--select 1, E.FSTABLENAME
----A.FID,A.F_WAUG_LAYER,
----dbo.GetBomSeq( B .FBOMID,a.FMATERIALID) as '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>',
----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 '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
--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.<EFBFBD><EFBFBD><EFBFBD><EFBFBD> IS NULL THEN <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ELSE CONCAT(<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,'-',<EFBFBD><EFBFBD><EFBFBD><EFBFBD>) END
FROM T_PLN_PLANORDER A
INNER JOIN (
SELECT A.FID, dbo.GetBomSeq(B.FBOMID,A.FMATERIALID) AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
,A.FMATERIALID,B.FBOMID,A.f_WAUG_LAYER,A.F_FORECASTNUMBER,A.F_LINENUMBER
,A.F_MATERIALCODE,a.FBILLNO AS '1',b.FBILLNO AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
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
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<EFBFBD><EFBFBD>Ԥ<EFBFBD><EFBFBD><EFBFBD>Mrp<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
-- 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 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>,ʹ<EFBFBD>ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--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 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>,ʹ<EFBFBD>ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
EXEC PROC_UPDATE_BOMLEVEL
----<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<EFBFBD><EFBFBD>Ԥ<EFBFBD><EFBFBD><EFBFBD>Mrp<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
-- 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=''
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ζ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
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<EFBFBD><EFBFBD><EFBFBD><EFBFBD>',
--CONVERT( nvarchar(1000),'') as '<EFBFBD><EFBFBD><EFBFBD>ε<EFBFBD><EFBFBD><EFBFBD>',a.FBILLNO as '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',e.FBILLNO as 'Դͷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
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 = ''
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ί<EFBFBD><EFBFBD><EFBFBD>ί<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ,Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊί<EFBFBD><EFBFBD><EFBFBD>
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<EFBFBD><EFBFBD><EFBFBD><EFBFBD>',
--CONVERT( nvarchar(1000),'') as '<EFBFBD><EFBFBD><EFBFBD>ε<EFBFBD><EFBFBD><EFBFBD>',a.FBILLNO as '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',e.FBILLNO as 'Դͷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
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 = ''
--<EFBFBD>Ѽ<EFBFBD><EFBFBD><EFBFBD>
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ί<EFBFBD><EFBFBD><EFBFBD>ί<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ,Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>,֤<EFBFBD><EFBFBD>ί<EFBFBD><EFBFBD><EFBFBD>ΪԴͷ
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 = ''
--<EFBFBD>Ѽ<EFBFBD><EFBFBD><EFBFBD>
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ί<EFBFBD><EFBFBD><EFBFBD>ί<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ,Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͳ<EFBFBD>Ϊί<EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪԴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
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 = ''
--<EFBFBD>Ѽ<EFBFBD><EFBFBD><EFBFBD>
--2024-01-23 18<EFBFBD><EFBFBD>14 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>start--
----<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>ε<EFBFBD><CEB5><EFBFBD><><CEAA><EFBFBD>ĵ<EFBFBD><C4B5>ݱ<EFBFBD><DDB1><EFBFBD>)
--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 18<EFBFBD><EFBFBD>14 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>end--
--2024-01-23 18<31><38>14 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>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 18<EFBFBD><EFBFBD>14 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>end--
--<2D><>ϵͳ<CFB5><CDB3>׼<EFBFBD>ı<EFBFBD>ע<EFBFBD>ֶθ<D6B6><CEB8>µ<EFBFBD><C2B5><EFBFBD>ע2<D7A2>ֶ<EFBFBD>
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 = ''
--<EFBFBD>𵥻<EFBFBD>ȡԭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע
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= ''
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ε<EFBFBD><EFBFBD>ݵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>ע<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>ע
--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
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
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 = ''
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--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<EFBFBD><EFBFBD><EFBFBD><EFBFBD>',
----CONVERT( nvarchar(1000),'') as '<EFBFBD><EFBFBD><EFBFBD>ε<EFBFBD><EFBFBD><EFBFBD>',a.FBILLNO as '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',e.FBILLNO as 'Դͷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
--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 = ''
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
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= ''
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ί<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
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= ''
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
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= ''
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ί<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
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= ''
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀͻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀͻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD>ӹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
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 --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֯<EFBFBD><EFBFBD><EFBFBD>Ӣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀͻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀͻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
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 --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֯<EFBFBD><EFBFBD><EFBFBD>Ӣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--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
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ί<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
UPDATE T_SUB_PPBOMENTRY set FBomStdQty = ROUND(FNUMERATOR/FDENOMINATOR,3)
FROM T_SUB_PPBOMENTRY
WHERE FBomStdQty = 0
END

View File

@@ -0,0 +1,364 @@
USE [AIS20220929093310]
GO
/****** Object: StoredProcedure [dbo].[P_UpdateMoFORECAST2] Script Date: 2025/1/3 2:33:38 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <20><><EFBFBD><EFBFBD><Author,,Name>
-- Create date: 2022-12-31<Create Date,,>
-- Description: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD><EFBFBD><E2B5A5><EFBFBD><EFBFBD>Ϣ<Description,,>
-- =============================================
ALTER PROCEDURE [dbo].[P_UpdateMoFORECAST2]
(
@FBILLNO NVARCHAR(1000)
)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- EXEC P_UpdateMoFORECAST
select fname into #temp2 from dbo.fn_hr_StrSplit(@FBILLNO,',')
--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= ''
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<EFBFBD><EFBFBD><EFBFBD>ֲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
--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 --<EFBFBD>ײ<EFBFBD>
INNER JOIN T_PRD_MOENTRY I ON I.FID=H.FID --<EFBFBD>ײ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
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))
INNER JOIN #temp2 m on m.Fname=a.FBILLNO
WHERE 1=1
AND B.FFORECASTGROUP = ''
--AND A.FBILLNO =@FBILLNO
--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 = ''
--<EFBFBD><EFBFBD><EFBFBD>¼ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--select 1, E.FSTABLENAME
----A.FID,A.F_WAUG_LAYER,
----dbo.GetBomSeq( B .FBOMID,a.FMATERIALID) as '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>',
----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 '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
--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'
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<EFBFBD><EFBFBD>Ԥ<EFBFBD><EFBFBD><EFBFBD>Mrp<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
-- 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=''
--UPDATE T_PLN_PLANORDER SET F_WAUG_LAYER =
--CASE WHEN B.<EFBFBD><EFBFBD><EFBFBD><EFBFBD> IS NULL THEN <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ELSE CONCAT(<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,'-',<EFBFBD><EFBFBD><EFBFBD><EFBFBD>) END
-- from T_PLN_PLANORDER A
-- INNER JOIN
--(
--select A.FID, dbo.GetBomSeq( B .FBOMID,a.FMATERIALID) as '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>', A.FMATERIALID,B.FBOMID,A.f_WAUG_LAYER,A.F_FORECASTNUMBER,A.F_LINENUMBER,A.F_MATERIALCODE,a.FBILLNO as '1',b.FBILLNO as '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' 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
--INNER JOIN T_PRD_MOENTRY_LK C ON B.FID=C.FSBILLID
--INNER JOIN T_PRD_MOENTRY D ON D.FENTRYID = C.FENTRYID
--INNER JOIN T_PRD_MO E ON E.FID = D.FID
----INNER JOIN #temp2 i on i.Fname=a.FBILLNO
--WHERE a.F_WAUG_LAYER = ''
--) B ON A.FID = B.FID
--2024-01-15 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD> ,ʹ<EFBFBD>ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--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
--INNER JOIN #temp2 i on i.Fname=a.FBILLNO
--WHERE B.FFORECASTGROUP=''
--AND A.FBILLNO =@FBILLNO
--2024-01-15 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD> ,ʹ<EFBFBD>ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
exec PROC_SELECT_UPDATE_BOMLEVEL@FBILLNO
----<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<EFBFBD><EFBFBD>Ԥ<EFBFBD><EFBFBD><EFBFBD>Mrp<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
-- 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=''
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ζ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
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<EFBFBD><EFBFBD><EFBFBD><EFBFBD>',
--CONVERT( nvarchar(1000),'') as '<EFBFBD><EFBFBD><EFBFBD>ε<EFBFBD><EFBFBD><EFBFBD>',a.FBILLNO as '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',e.FBILLNO as 'Դͷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
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
INNER JOIN #temp2 g on g.Fname=a.FBILLNO
WHERE B.FFORECASTGROUP = ''
--AND A.FBILLNO =@FBILLNO
--2024-01-23 18<EFBFBD><EFBFBD>14 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>start--
----<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>ε<EFBFBD><CEB5><EFBFBD><><CEAA><EFBFBD>ĵ<EFBFBD><C4B5>ݱ<EFBFBD><DDB1><EFBFBD>)
--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'
--INNER JOIN #temp2 f on f.Fname=a.FBILLNO
--WHERE
--1=1
--AND D.FSID IS NULL
--AND B.FFORECASTGROUP = ''
----AND A.FBILLNO =@FBILLNO
--2024-01-23 18<EFBFBD><EFBFBD>14 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>end--
--2024-01-23 18<31><38>14 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>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 T_PRD_MOENTRY_A t0e_a on B.FENTRYID = t0e_a.FENTRYID
INNER JOIN #temp2 f on f.Fname=a.FBILLNO
WHERE
1=1
AND B.FFORECASTGROUP = ''
AND t0e_a.FCREATETYPE != 3
--AND B.FFORECASTGROUPFRIST != '<EFBFBD>޶<EFBFBD><EFBFBD><EFBFBD>'
AND NOT EXISTS (
SELECT 1
FROM T_PRD_MOENTRY_LK t1_lk
WHERE 1=1
AND t1_lk.FSTABLENAME = 'T_PRD_MOENTRY'
AND t1_lk.FENTRYID = B.FENTRYID)
--2024-01-23 18<EFBFBD><EFBFBD>14 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>end--
--<2D><>ϵͳ<CFB5><CDB3>׼<EFBFBD>ı<EFBFBD>ע<EFBFBD>ֶθ<D6B6><CEB8>µ<EFBFBD><C2B5><EFBFBD>ע2<D7A2>ֶ<EFBFBD>
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
INNER JOIN #temp2 f on f.Fname=a.FBILLNO
--where FNOTE2 = ''
--AND A.FBILLNO =@FBILLNO
--<EFBFBD>𵥻<EFBFBD>ȡԭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע
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
INNER JOIN #temp2 f on f.Fname=a.FBILLNO
--where A.FBILLNO = 'WO2301050101'
WHERE B.FNOTE2= ''
--AND A.FBILLNO =@FBILLNO
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ε<EFBFBD><EFBFBD>ݵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>ע<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>ע
--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
INNER JOIN #temp2 f on f.Fname=a.FBILLNO
--where A.FBILLNO = 'WO2301050101'
where B.FNOTE2= ''
AND A.FBILLNO <> B.FFORECASTGROUPFRIST
-- AND A.FBILLNO =@FBILLNO
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
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
INNER JOIN #temp2 f on f.Fname=a.FMOBILLNO
WHERE 1=1
AND LTRIM(RTRIM(d.FFORECASTGROUP)) = ''
--AND A.FMOBILLNO =@FBILLNO
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
INNER JOIN t_prd_mo c on c.fid=a.fid
INNER JOIN #temp2 f on f.Fname=c.FBILLNO WHERE FINVSTOCKQTY = 0
--AND c.FBILLNO =@FBILLNO
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
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
INNER JOIN T_PRD_MO c on c.fid =a.fid
INNER JOIN #temp2 f on f.Fname=c.FBILLNO
WHERE
1=1
AND FFORECASTGROUPFRIST= ''
--AND c.FBILLNO =@FBILLNO
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
update T_PRD_PPBOMENTRY SET FFORECASTGROUPFRIST = CASE WHEN CHARINDEX( '-',REPLACE( A.FFORECASTGROUP,'_','-') ,0) = 0 THEN A.FFORECASTGROUP ELSE SUBSTRING(A.FFORECASTGROUP,0, CHARINDEX( '-',REPLACE( A.FFORECASTGROUP,'_','-') ,0)) END
FROM T_PRD_PPBOMENTRY a
INNER JOIN T_PRD_PPBOM b on a.fid=b.fid
INNER JOIN #temp2 f on f.Fname=b.FMOBILLNO
WHERE FFORECASTGROUPFRIST= ''
--and b.FMOBILLNO = @FBILLNO
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀͻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀͻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD>ӹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
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
INNER JOIN #temp2 f on f.Fname=a.FBILLNO
--where A.FBILLNO = 'TO2305300002'
AND ISNULL(E.F_PKGR_CUSTOMER,0)= 0
and E.F_PKGR_CUSTOMER<>A.F_PKGR_CUSTOMER
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--SELECT FNUMERATOR,FDENOMINATOR,
--ROUND(FNUMERATOR/FDENOMINATOR,3), F_PKGR_CONSUMPTION,
--*
update T_PRD_PPBOMENTRY set FBomStdQty = ROUND(FNUMERATOR/FDENOMINATOR,3)
FROM T_PRD_PPBOMENTRY a
INNER JOIN T_PRD_PPBOM b on a.fid=b.fid
INNER JOIN #temp2 c on c.Fname=b.FMOBILLNO
WHERE FBomStdQty = 0
--and b.FMOBILLNO = @FBILLNO
drop table #temp2
END

View File

@@ -0,0 +1,53 @@
CREATE PROCEDURE P_UpdateSubFORECAST
AS
BEGIN
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ί<EFBFBD><EFBFBD><EFBFBD>ί<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ,Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊί<EFBFBD><EFBFBD><EFBFBD>
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<6F><6D><EFBFBD><EFBFBD>',
--CONVERT( nvarchar(1000),'') as '<EFBFBD><EFBFBD><EFBFBD>ε<EFBFBD><EFBFBD><EFBFBD>',t0.FBILLNO as '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',t1.FBILLNO as 'Դͷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
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 = ''
--<EFBFBD>Ѽ<EFBFBD><EFBFBD><EFBFBD>
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ί<EFBFBD><EFBFBD><EFBFBD>ί<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ,Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>,֤<EFBFBD><EFBFBD>ί<EFBFBD><EFBFBD><EFBFBD>ΪԴͷ
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 = ''
--<EFBFBD>Ѽ<EFBFBD><EFBFBD><EFBFBD>
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ί<EFBFBD><EFBFBD><EFBFBD>ί<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ,Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͳ<EFBFBD>Ϊί<EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪԴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
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 = ''
--<EFBFBD>Ѽ<EFBFBD><EFBFBD><EFBFBD>
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ί<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
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= ''
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ί<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
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