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

@@ -22,10 +22,12 @@
<EnableUnmanagedDebugging>false</EnableUnmanagedDebugging>
</PropertyGroup>
<ItemGroup>
<Folder Include="PlanService\" />
<Folder Include="POSH_CB_PROCOSTRESULTREC\" />
<Folder Include="PRD_MO\" />
</ItemGroup>
<ItemGroup>
<Compile Include="PlanService\ListEventPlugInEx.py" />
<Compile Include="POSH_CB_PROCOSTRESULTREC\产品成本还原构造程序.py" />
<Compile Include="POSH_CB_PROCOSTRESULTREC\产品成本还原查询报表_20240819.py" />
<Compile Include="POSH_CB_PROCOSTRESULTREC\产品成本还原查询报表构造.py" />

View File

@@ -160,7 +160,12 @@
<Content Include="PRD_MO\SQLserver\db\生产订单BOM_选中订单_更新层号_存储过程20240115.sql" />
<Content Include="PRD_MO\SQLserver\db\生产订单BOM更新层号_存储过程20240114.sql" />
<Content Include="PRD_MO\SQLserver\PLAN2.sql" />
<Content Include="PRD_MO\SQLserver\PROC_SELECT_UPDATE_BOMLEVEL.sql" />
<Content Include="PRD_MO\SQLserver\P_UpdateMoFORECAST.sql" />
<Content Include="PRD_MO\SQLserver\P_UpdateMoFORECAST2.sql" />
<Content Include="PRD_MO\SQLserver\P_UpdatePlan2.sql" />
<Content Include="PRD_MO\SQLserver\P_UpdateSubFORECAST.sql" />
<Content Include="PRD_MO\SQLserver\SQLQuery2.sql" />
<Content Include="PRD_MO\SQLserver\更新计划订单_预测单信息_存储过程.sql" />
<Content Include="PRD_MO\SQLserver\更新计划订单_预测单信息_存储过程_20240120.sql" />
<Content Include="PRD_MO\SQLserver\查询生产层号为空的生产用料清单202402261540.sql" />

View File

@@ -48,6 +48,7 @@ namespace Enpower.POSH_CB_PROCOSTRESULTREC
MainWorker.QuequeTask(this.Context, () =>
{
var tt = Math.Ceiling(0.1);
}, (a) =>
{

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

View File

@@ -104,13 +104,20 @@
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Content Include="POSH_Year_Forecast\BillConvertPlugInEx\YeacForecast2PLN_FORECAST.py" />
<Content Include="STK_MISCELLANEOUS\BillEventPlugInEx.py" />
<Content Include="SUB_SUBREQORDER\ListEventPlugInEx.py" />
<Content Include="预测单.sql" />
<Content Include="预测单\N3.sql" />
<Content Include="预测单\W5.sql" />
<Content Include="预测单\年度.sql" />
<Content Include="预测单\预测需求变更履历表_20250120._V1.0sql.sql" />
</ItemGroup>
<ItemGroup>
<Folder Include="POSH_eliminations_detail\" />
<Folder Include="POSH_Year_Forecast\OperationEventPlugIn\" />
<Folder Include="PRD_INSTOCK\" />
</ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<PostBuildEvent>copy $(TargetPath) "D:\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin"</PostBuildEvent>

View File

@@ -27,13 +27,13 @@ namespace GZ.LJY000.Enpower.POSH_N3_Forecast.BillConvertPlugInEx
var sqlL = $@"/*dialect*/
WITH #年度预测 AS (
SELECT t1.FBILLNO,t1.FID,t1.FEntryID,t1.FSEQ,t1.FMATERIALID,t1.FUNITID
SELECT t1.FBILLNO,t1.FID,t1.FEntryID,t1.FSEQ,t1.FMATERIALID,t1.FUNITID,t1.FCUSTID
,t1.FQTY,t1.FYEAR '年份' ,t1.FMONTH '月份'
,t1.FYEAR * 100 + REPLACE(T1.DATEM,'FN','') + t1.FMONTH 周期
,CONVERT(int,t1.FYEAR * 10000 + REPLACE(T1.DATEM,'FN','') *100 + t1.FMONTH * 100 + 1) AS '日期'
,CONVERT(datetime,DATEFROMPARTS(t1.FYEAR,CONVERT(int,REPLACE(T1.DATEM,'FN',''))+ t1.FMONTH,1)) 'startDate'
FROM (
SELECT t0.FBILLNO,t0.FID,t0e.FEntryID,t0e.FSEQ,t0e.FYEAR,t0e.FMONTH,t0e.FMATERIALID,t0e.FUNITID,t0e.FN0,t0e.FN1,t0e.FN2,t0e.FN3
SELECT t0.FBILLNO,t0.FID,t0e.FEntryID,t0e.FSEQ,t0e.FYEAR,t0e.FMONTH,t0e.FMATERIALID,t0e.FUNITID,t0e.FCUSTID,t0e.FN0,t0e.FN1,t0e.FN2,t0e.FN3
FROM T_PLN_FORECAST2N3 t0 --表头
INNER JOIN T_PLN_FORECAST2N3ENTRY t0e on t0.FID = t0e.FID --表体
WHERE t0.FBILLNO = '{convertBillNo.ToString()}'
@@ -58,8 +58,10 @@ FROM #年度预测 tt
UNPIVOT (
FQTY FOR dateM IN (FD1,FD2,FD3,FD4,FD5,FD6,FD7,FD8,FD9,FD10,FD11,FD12,FD13,FD14,FD15,FD16,FD17,FD18,FD19,FD20,FD21,FD22,FD23,FD24,FD25,FD26,FD27,FD28,FD29,FD30,FD31,FD32,FD33,FD34,FD35,FD36,FD37,FD38,FD39,FD40,FD41,FD42)
) AS t1
WHERE t1.FMATERIALID = tt.FMATERIALID AND CONVERT(INT,CONVERT(varchar(6),DATEADD(DAY,CONVERT(int,REPLACE(t1.dateM,'FD','')) - 1,t1.FSTARTDATE),112)) = tt.周期
GROUP BY t1.FMATERIALID--,t1.FYEAR * 100 + DATEPART(MONTH,(DATEADD(DAY,CONVERT(int,REPLACE(T1.DATEM,'FD','')) - 1,t1.FSTARTDATE)))
WHERE t1.FMATERIALID = tt.FMATERIALID
AND t1.FCUSTID = tt.FCUSTID
AND CONVERT(INT,CONVERT(varchar(6),DATEADD(DAY,CONVERT(int,REPLACE(t1.dateM,'FD','')) - 1,t1.FSTARTDATE),112)) = tt.周期
GROUP BY t1.FMATERIALID,t1.FCUSTID--,t1.FYEAR * 100 + DATEPART(MONTH,(DATEADD(DAY,CONVERT(int,REPLACE(T1.DATEM,'FD','')) - 1,t1.FSTARTDATE)))
) t0
ORDER BY tt.startDate,tt.FSEQ
@@ -84,6 +86,9 @@ ORDER BY tt.startDate,tt.FSEQ
////仓库
//var stockFid = e.TargetBusinessInfo.GetField("FStockId") as BaseDataField;
//客户
var custFid = e.TargetBusinessInfo.GetField("FCustId") as BaseDataField;
foreach (var item in dataList)
{
var entity = entrys.DynamicCollectionItemPropertyType.CreateInstance() as DynamicObject;
@@ -117,6 +122,14 @@ ORDER BY tt.startDate,tt.FSEQ
// entity["FOwnerId"] = ownerObj;
//}
var custId = item["FCUSTID"].Long2Int();
if (custId > 0)
{
var custObj = BusinessDataServiceHelper.LoadSingle(this.Context, custId, custFid.RefFormDynamicObjectType);
entity["CustID_Id"] = custId;
entity["CustID"] = custObj;
}
//# 计量单位
var unitId = item["FUNITID"].Long2Int();
if (unitId > 0)

View File

@@ -26,8 +26,8 @@ namespace GZ.LJY000.Enpower.POSH_W5WagonPlan.BillConvertPlugInEx
{
var sqlL = $@"/*dialect*/
WITH #W5预测单 AS (
SELECT t0.FBILLNO,t0.FID,t0e.FEntryID,t0e.FSTARTDATE,t0e.FYEAR,t0e.FMATERIALID,t0e.FUNITID
;WITH #W5预测单 AS (
SELECT t0.FBILLNO,t0.FID,t0e.FEntryID,t0e.FSTARTDATE,t0e.FYEAR,t0e.FMATERIALID,t0e.FUNITID,t0e.FCUSTID
,FD1,FD2,FD3,FD4,FD5,FD6,FD7,FD8,FD9,FD10,FD11,FD12,FD13,FD14,FD15,FD16,FD17,FD18,FD19,FD20,FD21,FD22,FD23,FD24,FD25,FD26,FD27,FD28,FD29,FD30,FD31,FD32,FD33,FD34,FD35,FD36,FD37,FD38,FD39,FD40,FD41,FD42
FROM T_PLN_FORECAST2W5 t0 --表头
INNER JOIN T_PLN_FORECAST2W5ENTRY t0e on t0.FID = t0e.FID --表体
@@ -45,7 +45,7 @@ WITH #W5预测单 AS (
) AS t1
)
, #数据二次处理 AS (
SELECT t0.FBILLNO,t0.FID,t0.FEntryID,t0.FMATERIALID,t0.FUNITID,t0.FYEAR
SELECT t0.FBILLNO,t0.FID,t0.FEntryID,t0.FMATERIALID,t0.FUNITID,t0.FYEAR,t0.FCUSTID
,t0.FQTY
,t0.RN
,CASE t0.初始周天 WHEN 1 THEN 7 ELSE t0.初始周天 - 1 END '初始周天'
@@ -55,7 +55,8 @@ WITH #W5预测单 AS (
,DATEADD(SECOND,-1,DATEADD(DAY, 1, t0.日期)) AS 'endDate'
FROM #W5装车计划 t0
)
SELECT *
SELECT t0.*
INTO #table1
FROM (
SELECT t0.FBILLNO,t0.FID,t0.FEntryID,t0.FMATERIALID,t0.FUNITID,t0.FYEAR,t1.groupby
FROM #W5预测单 t0 ,
@@ -64,15 +65,38 @@ FROM (
) tt
CROSS APPLY (
SELECT t0.FBILLNO,t0.FID,t0.FEntryID,t0.FMATERIALID,t0.FUNITID,t0.FYEAR
SELECT t0.FBILLNO,t0.FID,t0.FEntryID,t0.FMATERIALID,t0.FUNITID,t0.FYEAR,t0.FCUSTID
,SUM(t0.FQTY) '最终数量'
,MIN(t0.日期) minDate
,MAX(t0.endDate) maxDate
FROM #数据二次处理 t0
WHERE tt.FEntryID = t0.FEntryID AND (t0.初始周天 + t0.RN - 1) > (tt.groupby -1) * 7 AND (t0.初始周天 + t0.RN-1) <= tt.groupby * 7
GROUP BY t0.FBILLNO,t0.FID,t0.FEntryID,t0.FMATERIALID,t0.FUNITID,t0.FYEAR
GROUP BY t0.FBILLNO,t0.FID,t0.FEntryID,t0.FMATERIALID,t0.FUNITID,t0.FYEAR,t0.FCUSTID
) t0
ORDER BY t0.minDate ASC
declare @startDate date,@endDate date
SELECT @startDate = MIN(t0.minDate),@endDate = MAX(t0.maxDate)
FROM #table1 t0
;WITH #发货通知单 AS (
SELECT t0.FBILLNO,t0.FDATE,t0.FCUSTOMERID,t0e.FMATERIALID,t0e.FQTY,t0e.F_PNDR_BASEQTY3 '2次调拨'
FROM T_SAL_DELIVERYNOTICE t0
INNER JOIN T_SAL_DELIVERYNOTICEENTRY t0e on t0.FID = t0e.FID
WHERE t0.FDOCUMENTSTATUS = 'C'
AND t0.FDATE between @startDate AND @endDate
)
SELECT t0.FBILLNO,t0.FID,t0.FEntryID,t0.FMATERIALID,t0.FUNITID,t0.FYEAR,t0.FCUSTID,t0.minDate,t0.maxDate
,CASE WHEN t0.最终数量 < (ISNULL(t1.FQTY,0) + ISNULL(t1.[2次调拨],0)) THEN 0 ELSE t0.最终数量 - (ISNULL(t1.FQTY,0) + ISNULL(t1.[2次调拨],0)) END AS '最终数量'
FROM #table1 t0
OUTER APPLY (
SELECT SUM(t1.FQTY) FQTY ,SUM(t1.[2次调拨]) [2次调拨]
FROM #发货通知单 t1
WHERE 1 = 1 AND t1.FMATERIALID = t0.FMATERIALID
AND t0.FCUSTID = t1.FCUSTOMERID
AND t1.FDATE BETWEEN t0.minDate AND t0.maxDate
) t1
ORDER BY t0.minDate ASC
DROP TABLE #table1
";
//throw new Exception(sqlL);
var dataList = DBServiceHelper.ExecuteDynamicObject(this.Context, sqlL);
@@ -91,8 +115,11 @@ ORDER BY t0.minDate ASC
var unitFId = e.TargetBusinessInfo.GetField("FUnitID") as BaseDataField;
var unitBaseFId = e.TargetBusinessInfo.GetField("FBaseUnitID") as BaseDataField;
//仓库
var stockFid = e.TargetBusinessInfo.GetField("FStockId") as BaseDataField;
////仓库
//var stockFid = e.TargetBusinessInfo.GetField("FStockId") as BaseDataField;
//客户
var custFid = e.TargetBusinessInfo.GetField("FCustId") as BaseDataField;
foreach (var item in dataList)
{
@@ -127,6 +154,14 @@ ORDER BY t0.minDate ASC
// entity["FOwnerId"] = ownerObj;
//}
var custId = item["FCUSTID"].Long2Int();
if(custId > 0)
{
var custObj = BusinessDataServiceHelper.LoadSingle(this.Context, custId, custFid.RefFormDynamicObjectType);
entity["CustID_Id"] = custId;
entity["CustID"] = custObj;
}
//# 计量单位
var unitId = item["FUNITID"].Long2Int();
if (unitId > 0)

View File

@@ -27,13 +27,13 @@ namespace GZ.LJY000.Enpower.POSH_Year_Forecast.BillConvertPlugInEx
var sqlL = $@"/*dialect*/
WITH #年度预测 AS (
SELECT t1.FBILLNO,t1.FID,t1.FEntryID,t1.FSEQ,t1.FMATERIALID,t1.FUNITID
SELECT t1.FBILLNO,t1.FID,t1.FEntryID,t1.FSEQ,t1.FMATERIALID,t1.FUNITID,t1.FCUSTID
,t1.FQTY,t1.FYEAR '年份' ,REPLACE(T1.DATEM,'FMONTH','') '月份'
,t1.FYEAR * 100 + REPLACE(T1.DATEM,'FMONTH','') 周期
--,DATEADD(MONTH, DATEDIFF(MONTH, 0, ), 0) AS 'startDate'
,CONVERT(datetime,CONCAT(T1.FYEAR,'-',REPLACE(T1.DATEM,'FMONTH',''),'-01')) 'startDate'
FROM (
SELECT t0.FBILLNO,t0.FID,t0e.FEntryID,t0e.FSEQ,t0e.FYEAR,t0e.FMATERIALID,t0e.FUNITID,FMONTH1,FMONTH2,FMONTH3,FMONTH4,FMONTH5,FMONTH6,FMONTH7,FMONTH8,FMONTH9,FMONTH10,FMONTH11,FMONTH12
SELECT t0.FBILLNO,t0.FID,t0e.FEntryID,t0e.FSEQ,t0e.FYEAR,t0e.FMATERIALID,t0e.FUNITID,t0e.FCUSTID,FMONTH1,FMONTH2,FMONTH3,FMONTH4,FMONTH5,FMONTH6,FMONTH7,FMONTH8,FMONTH9,FMONTH10,FMONTH11,FMONTH12
FROM T_PLN_FORECAST2YEAR t0 --表头
INNER JOIN T_PLN_FORECAST2YEARENTRY t0e on t0.FID = t0e.FID --表体
) t0
@@ -49,15 +49,18 @@ FROM #年度预测 tt
OUTER APPLY (
SELECT t1.FMATERIALID,SUM(t1.FQTY) FQTY
FROM (
SELECT t0.FBILLNO,t0.FID,t0e.FEntryID,t0e.FSTARTDATE,t0e.FYEAR,t0e.FMATERIALID,t0e.FUNITID,FD1,FD2,FD3,FD4,FD5,FD6,FD7,FD8,FD9,FD10,FD11,FD12,FD13,FD14,FD15,FD16,FD17,FD18,FD19,FD20,FD21,FD22,FD23,FD24,FD25,FD26,FD27,FD28,FD29,FD30,FD31,FD32,FD33,FD34,FD35,FD36,FD37,FD38,FD39,FD40,FD41,FD42
SELECT t0.FBILLNO,t0.FID,t0e.FEntryID,t0e.FSTARTDATE,t0e.FYEAR,t0e.FMATERIALID,t0e.FUNITID,t0e.FCUSTID
,FD1,FD2,FD3,FD4,FD5,FD6,FD7,FD8,FD9,FD10,FD11,FD12,FD13,FD14,FD15,FD16,FD17,FD18,FD19,FD20,FD21
,FD22,FD23,FD24,FD25,FD26,FD27,FD28,FD29,FD30,FD31,FD32,FD33,FD34,FD35,FD36,FD37,FD38,FD39,FD40,FD41,FD42
FROM T_PLN_FORECAST2W5 t0 --表头
INNER JOIN T_PLN_FORECAST2W5ENTRY t0e on t0.FID = t0e.FID --表体
WHERE t0.FDOCUMENTSTATUS = 'C' AND t0.FExecutionState = '1'
) t0
UNPIVOT (
FQTY FOR dateM IN (FD1,FD2,FD3,FD4,FD5,FD6,FD7,FD8,FD9,FD10,FD11,FD12,FD13,FD14,FD15,FD16,FD17,FD18,FD19,FD20,FD21,FD22,FD23,FD24,FD25,FD26,FD27,FD28,FD29,FD30,FD31,FD32,FD33,FD34,FD35,FD36,FD37,FD38,FD39,FD40,FD41,FD42)
FQTY FOR dateM IN (FD1,FD2,FD3,FD4,FD5,FD6,FD7,FD8,FD9,FD10,FD11,FD12,FD13,FD14,FD15,FD16,FD17,FD18,FD19,FD20,FD21
,FD22,FD23,FD24,FD25,FD26,FD27,FD28,FD29,FD30,FD31,FD32,FD33,FD34,FD35,FD36,FD37,FD38,FD39,FD40,FD41,FD42)
) AS t1
WHERE t1.FMATERIALID = tt.FMATERIALID AND t1.FYEAR * 100 + DATEPART(MONTH,(DATEADD(DAY,CONVERT(int,REPLACE(T1.DATEM,'FD','')) - 1,t1.FSTARTDATE))) = tt.周期
WHERE t1.FMATERIALID = tt.FMATERIALID AND t1.FCUSTID = tt.FCUSTID AND t1.FYEAR * 100 + DATEPART(MONTH,(DATEADD(DAY,CONVERT(int,REPLACE(T1.DATEM,'FD','')) - 1,t1.FSTARTDATE))) = tt.周期
GROUP BY t1.FMATERIALID,t1.FYEAR * 100 + DATEPART(MONTH,(DATEADD(DAY,CONVERT(int,REPLACE(T1.DATEM,'FD','')) - 1,t1.FSTARTDATE)))
) t0
WHERE tt.FBILLNO = '{convertBillNo.ToString()}'
@@ -80,8 +83,11 @@ ORDER BY tt.startDate,tt.FSEQ
var unitFId = e.TargetBusinessInfo.GetField("FUnitID") as BaseDataField;
var unitBaseFId = e.TargetBusinessInfo.GetField("FBaseUnitID") as BaseDataField;
//仓库
var stockFid = e.TargetBusinessInfo.GetField("FStockId") as BaseDataField;
////仓库
//var stockFid = e.TargetBusinessInfo.GetField("FStockId") as BaseDataField;
//客户
var custFid = e.TargetBusinessInfo.GetField("FCustId") as BaseDataField;
foreach (var item in dataList)
{
@@ -116,6 +122,15 @@ ORDER BY tt.startDate,tt.FSEQ
// entity["FOwnerId"] = ownerObj;
//}
var custId = item["FCUSTID"].Long2Int();
if (custId > 0)
{
var custObj = BusinessDataServiceHelper.LoadSingle(this.Context, custId, custFid.RefFormDynamicObjectType);
entity["CustID_Id"] = custId;
entity["CustID"] = custObj;
}
//# 计量单位
var unitId = item["FUNITID"].Long2Int();
if (unitId > 0)

View File

@@ -0,0 +1,44 @@
#引入clr运行库
import clr
#添加对cloud插件开发的常用组件引用
clr.AddReference('System')
clr.AddReference('System.Data')
clr.AddReference('Kingdee.BOS')
clr.AddReference('Kingdee.BOS.Core')
clr.AddReference('Kingdee.BOS.App')
clr.AddReference('Kingdee.BOS.App.Core')
clr.AddReference('Kingdee.BOS.Contracts')
clr.AddReference('Kingdee.BOS.DataEntity')
clr.AddReference('Kingdee.BOS.ServiceHelper')
#dairycloud基础库中的常用实体对象分命名空间导入不会递归导入
from Kingdee.BOS.Core import *
from Kingdee.BOS.Util import *
from Kingdee.BOS.Core.Bill import *
from Kingdee.BOS.Core.List import *
from Kingdee.BOS.Core.Bill.PlugIn import *
from Kingdee.BOS.Orm.DataEntity import *
from Kingdee.BOS.Core.DynamicForm.PlugIn import *
from Kingdee.BOS.Core.DynamicForm.PlugIn.Args import *
from Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel import *
from Kingdee.BOS.Core.Metadata.ConvertElement.ServiceArgs import *
from System import *
from System.Data import *
from Kingdee.BOS.App.Data import *
from Kingdee.BOS.App import *
from Kingdee.BOS.Orm import *
from Kingdee.BOS.Contracts import *
from System.Collections.Generic import List
from Kingdee.BOS.ServiceHelper import *
from Kingdee.BOS.App.Core import *
def OnPreparePropertys(e):
e.FieldKeys.Add("FVersions");
e.FieldKeys.Add("FBillNo");
def BeforeDoSaveExecute(e):
for entity in e.DataEntities:
billNo = entity["BillNo"]
billId = entity["Id"]
return;

View File

@@ -15,7 +15,6 @@ namespace GZ.LJY000.Enpower.SAL_RETURNSTOCK
[HotUpdate, Description("销售退货单")]
public class BillEventPlugInEx : AbstractDynamicFormPlugIn
{
public override void DataChanged(DataChangedEventArgs e)
{
base.DataChanged(e);

View File

@@ -25,6 +25,7 @@ namespace GZ.LJY000.Enpower.SUB_RETURNMTRL
{
var details = this.View.BusinessInfo.GetEntity("FEntity");
if (details != null)
{
var entrys = this.View.Model.GetEntityDataObject(details);

View File

@@ -0,0 +1,27 @@
import clr
clr.AddReference("System")
clr.AddReference("System.Core")
clr.AddReference("Kingdee.BOS")
clr.AddReference("Kingdee.BOS.Core")
clr.AddReference("Kingdee.BOS.DataEntity")
clr.AddReference("Kingdee.BOS.App")
clr.AddReference("Kingdee.BOS.Contracts")
clr.AddReference("Kingdee.BOS.ServiceHelper")
from System import *
from System.Linq import *
from System.Collections.Generic import List
from System.ComponentModel import *
from Kingdee.BOS import*
from Kingdee.BOS.Util import*
from Kingdee.BOS.Core.List.PlugIn import*
from Kingdee.BOS.Core.List.PlugIn.Args import*
from Kingdee.BOS.Core.DynamicForm.PlugIn.Args import*
from Kingdee.BOS.ServiceHelper import*
from Kingdee.BOS.Orm.DataEntity import*
def AfterDoOperation(e):
if e.Operation.Operation == "DoUpdateSubFORECAST":
sql = "/*dialect*/ exec P_UpdateSubFORECAST ";
dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sql);

View File

@@ -0,0 +1,74 @@
USE [AIS20240820]
GO
/****** Object: StoredProcedure [dbo].[P_HQBOMZYL] Script Date: 2025/1/24 9:28:21 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[P_HQBOMZYL]
@materialNumber nvarchar(100)
AS
BEGIN
;WITH #<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> AS (
SELECT t0e.FENUMID,t0e.FSEQ,t0e.FVALUE,t0e_l.FCAPTION
FROM T_META_FORMENUMITEM t0e
INNER JOIN T_META_FORMENUMITEM_L t0e_l on t0e.FENUMID = t0e_l.FENUMID AND t0e_l.FLOCALEID = 2052
WHERE 1 = 1
AND t0e.FID = 'ac14913e-bd72-416d-a50b-2c7432bbff63'
)
,#BOMչ<4D><D5B9> AS (
SELECT TOP 1 t0.FID,t0.FMATERIALID,t0.FNUMBER,t0.FUNITID ,0 lv
,ROW_NUMBER() OVER (PARTITION BY t0.FMATERIALID ORDER BY t0.FNUMBER DESC) RN
,CAST('1' AS nvarchar(100)) MPath
,CAST('' AS nvarchar(100)) PBomNumber
,CAST(1 AS decimal(23,10)) <EFBFBD><EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--,0 RN
FROM T_ENG_BOM t0
INNER JOIN T_BD_MATERIAL t1 on t1.FMATERIALID = t0.FMATERIALID
WHERE 1 = 1
--AND t0.FMATERIALID = 9554131
--AND t1.FNUMBER = '97.03.0097'
AND t1.FNUMBER = @materialNumber
AND t0.FDOCUMENTSTATUS = 'C'
AND t0.FFORBIDSTATUS = 'A'
AND t0.FUSEORGID = 1
ORDER BY t0.FNUMBER DESC
UNION ALL
SELECT ISNULL(t1.FID,0),t0e.FMATERIALID,ISNULL(t1.FNUMBER, ''),t0e.FUNITID,1 + t0.lv
,ROW_NUMBER() OVER (ORDER BY t0.RN DESC,t0e.FSEQ)
,CAST(CONCAT(t0.MPath,'.',ROW_NUMBER() OVER (ORDER BY t0.RN DESC,t0e.FSEQ)) AS nvarchar(100))
,CAST(t0.FNUMBER AS nvarchar(100))
,CAST(t0e.FNUMERATOR /t0e.FDENOMINATOR AS decimal(23,10))
FROM #BOMչ<4D><D5B9> t0
INNER JOIN T_ENG_BOMCHILD t0e on t0e.FID = t0.FID AND t0e.FMATERIALTYPE != 3
OUTER APPLY (
SELECT t1.FID,t1.FMASTERID,t1.FMATERIALID,t1.FNUMBER,t1.FUNITID
,ROW_NUMBER() OVER (PARTITION BY t1.FMATERIALID ORDER BY t1.FNUMBER DESC) RN
FROM T_ENG_BOM t1
WHERE t1.FMATERIALID = t0e.FMATERIALID
AND t1.FDOCUMENTSTATUS = 'C'
AND t1.FFORBIDSTATUS = 'A'
AND t1.FUSEORGID = 1
) t1
WHERE (t1.RN = 1 OR t1.RN IS NULL) AND t0.FNUMBER != ''
--AND t0.lv < 2
)
SELECT t1.FNUMBER '<EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><EFBFBD><EFBFBD>',t1_l.FNAME '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',t1_l.FSPECIFICATION '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͺ<EFBFBD>',t2.FCAPTION '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>','' '<EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>',t0.FNUMBER 'BOM<EFBFBD>',t0.<EFBFBD><EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,CAST('' AS nvarchar(4)) 'ר<EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>ʶ','' 'L/T',0 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,0 Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,0 δ<EFBFBD><EFBFBD>PR<EFBFBD><EFBFBD>,0 <EFBFBD>ѷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,0 <EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,'' <EFBFBD>ƻ<EFBFBD>Ա,'' <EFBFBD>ɹ<EFBFBD>Ա
INTO #BOM
FROM #BOMչ<4D><D5B9> t0
INNER JOIN T_BD_MATERIAL t1 on t1.FMATERIALID = t0.FMATERIALID
INNER JOIN T_BD_MATERIAL_L t1_l on t1_l.FMATERIALID = t1.FMATERIALID AND t1_l.FLOCALEID = 2052
INNER JOIN T_BD_MATERIALBASE t1b on t1b.FMATERIALID = t1.FMATERIALID
INNER JOIN T_BD_MATERIALPLAN t1p on t1p.FMATERIALID = t1.FMATERIALID
INNER JOIN #<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> t2 on t2.FVALUE = t1b.FERPCLSID
WHERE 1 = 1
--AND t0.lv < 2
ORDER BY CAST(CONCAT('/',REPLACE(t0.MPath,'.','/'),'/') AS HIERARCHYID)
SELECT *
FROM #BOM t0
DROP TABLE #BOM
END

View File

@@ -0,0 +1,99 @@
;WITH #<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> AS (
SELECT t0e.FENUMID,t0e.FSEQ,t0e.FVALUE,t0e_l.FCAPTION
FROM T_META_FORMENUMITEM t0e
INNER JOIN T_META_FORMENUMITEM_L t0e_l on t0e.FENUMID = t0e_l.FENUMID AND t0e_l.FLOCALEID = 2052
WHERE 1 = 1
AND t0e.FID = 'ac14913e-bd72-416d-a50b-2c7432bbff63'
)
,#BOMչ<4D><D5B9> AS (
SELECT TOP 1 t0.FID,t0.FMATERIALID,t0.FNUMBER,t0.FUNITID ,0 lv
,ROW_NUMBER() OVER (PARTITION BY t0.FMATERIALID ORDER BY t0.FNUMBER DESC) RN
,CAST('1' AS nvarchar(100)) MPath
,CAST('' AS nvarchar(100)) PBomNumber
,CAST(1 AS decimal(23,10)) <EFBFBD><EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--,0 RN
FROM T_ENG_BOM t0
INNER JOIN T_BD_MATERIAL t1 on t1.FMATERIALID = t0.FMATERIALID
WHERE 1 = 1
--AND t0.FMATERIALID = 9554131
AND t1.FNUMBER = '97.03.0097'
AND t0.FDOCUMENTSTATUS = 'C'
AND t0.FFORBIDSTATUS = 'A'
AND t0.FUSEORGID = 1
ORDER BY t0.FNUMBER DESC
UNION ALL
SELECT ISNULL(t1.FID,0),t0e.FMATERIALID,ISNULL(t1.FNUMBER, ''),t0e.FUNITID,1 + t0.lv
,ROW_NUMBER() OVER (ORDER BY t0.RN DESC,t0e.FSEQ)
,CAST(CONCAT(t0.MPath,'.',ROW_NUMBER() OVER (ORDER BY t0.RN DESC,t0e.FSEQ)) AS nvarchar(100))
,CAST(t0.FNUMBER AS nvarchar(100))
,CAST(t0e.FNUMERATOR /t0e.FDENOMINATOR * t0.<EFBFBD><EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD> AS decimal(23,10))
FROM #BOMչ<4D><D5B9> t0
INNER JOIN T_ENG_BOMCHILD t0e on t0e.FID = t0.FID AND t0e.FMATERIALTYPE != 3
OUTER APPLY (
SELECT t1.FID,t1.FMASTERID,t1.FMATERIALID,t1.FNUMBER,t1.FUNITID
,ROW_NUMBER() OVER (PARTITION BY t1.FMATERIALID ORDER BY t1.FNUMBER DESC) RN
FROM T_ENG_BOM t1
WHERE t1.FMATERIALID = t0e.FMATERIALID
AND t1.FDOCUMENTSTATUS = 'C'
AND t1.FFORBIDSTATUS = 'A'
AND t1.FUSEORGID = 1
) t1
WHERE (t1.RN = 1 OR t1.RN IS NULL) AND t0.FNUMBER != ''
--AND t0.lv < 2
)
SELECT t0.RN,t0.MPath,t1.FNUMBER '<EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><EFBFBD><EFBFBD>',t1_l.FNAME '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',t1_l.FSPECIFICATION '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͺ<EFBFBD>',t2.FCAPTION '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>','' '<EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>',t0.FNUMBER 'BOM<EFBFBD>'
,t3_l.FNAME '<EFBFBD><EFBFBD>λ',t0.<EFBFBD><EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,CAST('' AS nvarchar(4)) 'ר<EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>ʶ','' 'L/T'
,0 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,0 Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,0 δ<EFBFBD><EFBFBD>PR<EFBFBD><EFBFBD>,0 <EFBFBD>ѷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,0 <EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,'' <EFBFBD>ƻ<EFBFBD>Ա,'' <EFBFBD>ɹ<EFBFBD>Ա
,t0.FMATERIALID,t0.lv
INTO #BOM
FROM #BOMչ<4D><D5B9> t0
INNER JOIN T_BD_MATERIAL t1 on t1.FMATERIALID = t0.FMATERIALID
INNER JOIN T_BD_MATERIAL_L t1_l on t1_l.FMATERIALID = t1.FMATERIALID AND t1_l.FLOCALEID = 2052
INNER JOIN T_BD_MATERIALBASE t1b on t1b.FMATERIALID = t1.FMATERIALID
INNER JOIN T_BD_MATERIALPLAN t1p on t1p.FMATERIALID = t1.FMATERIALID
INNER JOIN #<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> t2 on t2.FVALUE = t1b.FERPCLSID
INNER JOIN T_BD_UNIT_L t3_l on t3_l.FUNITID = t0.FUNITID AND t3_l.FLOCALEID = 2052
WHERE 1 = 1
--AND t0.lv < 2
ORDER BY CAST(CONCAT('/',REPLACE(t0.MPath,'.','/'),'/') AS HIERARCHYID)
--SELECT *
--FROM #BOM t0
;WITH #<23><><EFBFBD>Ϸ<EFBFBD><CFB7><EFBFBD> AS (
SELECT t0.FMATERIALID,t1.FMATERIALGROUP,t0e.FMATERIALID 'srcMaterialId'--,t0e.FID,t0.FNUMBER
,0 lv,CAST(CONCAT(t0.FMATERIALID,'_',t0e.FMATERIALID,'_') AS nvarchar(2000)) aPath
FROM (
SELECT tt.FMATERIALID
FROM #BOM tt
WHERE 1=1 AND tt.lv > 0
GROUP BY tt.FMATERIALID
) tt
INNER JOIN T_ENG_BOMCHILD t0e on t0e.FMATERIALID = tt.FMATERIALID
INNER JOIN T_ENG_BOM t0 on t0.FID = t0e.FID
INNER JOIN T_BD_MATERIAL t1 on t1.FMATERIALID = t0.FMATERIALID
WHERE 1=1
GROUP BY t0.FMATERIALID,t1.FMATERIALGROUP,t0e.FMATERIALID
UNION ALL
SELECT t1.FMATERIALID,t1.FMATERIALGROUP,tt.srcMaterialId--,t0e.FID,t0.FNUMBER
,tt.lv + 1,CAST(CONCAT(t1.FMATERIALID,'_',tt.aPath) AS nvarchar(2000))
FROM #<23><><EFBFBD>Ϸ<EFBFBD><CFB7><EFBFBD> tt
CROSS APPLY (
SELECT t0.FMATERIALID,t1.FMATERIALGROUP,t0e.FMATERIALID 'srcMaterialId'
,ROW_NUMBER() OVER (PARTITION BY t0.FMATERIALID ORDER BY t0.FNUMBER DESC) RN
FROM T_ENG_BOMCHILD t0e
INNER JOIN T_ENG_BOM t0 on t0.FID = t0e.FID
INNER JOIN T_BD_MATERIAL t1 on t1.FMATERIALID = t0.FMATERIALID
WHERE 1 = 1
AND tt.FMATERIALID = t0e.FMATERIALID
) t1
WHERE t1.RN = 1
)
SELECT *
FROM #<23><><EFBFBD>Ϸ<EFBFBD><CFB7><EFBFBD> t0
INNER JOIN T_BD_MATERIALGROUPLEVEL t1 on t0.FMATERIALGROUP = t1.FID
INNER JOIN T_BD_MATERIALGROUP t2 on t2.FID = t1.FGROUP1
WHERE t2.FNUMBER = '1'
ORDER BY lv desc,srcMaterialId DESC
DROP TABLE #BOM

View File

@@ -0,0 +1,66 @@
WITH #<23><><EFBFBD><EFBFBD> AS (
SELECT t0.FBILLNO,'<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD>' AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',t0.FVERSIONS,t0.FCRMBILLNO,t0.FDATE,t0.FFORECASTYEAR
,t0e.FMATERIALID,t0e.FCUSTID,t0e.FSEQ
,t0e.FMONTH1 + t0e.FMONTH2 + t0e.FMONTH3 + t0e.FMONTH4 + t0e.FMONTH5 + t0e.FMONTH6 + t0e.FMONTH7 + t0e.FMONTH8 + t0e.FMONTH9 + t0e.FMONTH10 + t0e.FMONTH11 + t0e.FMONTH12 AS 'QTY'
,DENSE_RANK() OVER (ORDER BY t0.FFORECASTYEAR DESC,t0.FBILLNO DESC,t0.FVERSIONS DESC) RN
FROM T_PLN_FORECAST2YEAR t0
INNER JOIN T_PLN_FORECAST2YEARENTRY t0e on t0.FID = t0e.FID
WHERE t0.FDOCUMENTSTATUS = 'C'
)
,#<23><><EFBFBD><EFBFBD>Ԥ<EFBFBD>ⵥ AS (
SELECT t0.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,t0.FDATE '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',t0.FMATERIALID,t0.FCUSTID,t1.FDATE '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',t1.FVERSIONS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD>',t1.QTY '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ',t0.FVERSIONS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',t0.QTY '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', t1.QTY - ISNULL(t0.QTY, 0) '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
FROM #<23><><EFBFBD><EFBFBD> t0
INNER JOIN #<23><><EFBFBD><EFBFBD> t1 on t0.FFORECASTYEAR = t1.FFORECASTYEAR AND t1.RN = 2
AND t0.FMATERIALID = t1.FMATERIALID
WHERE t0.RN = 1
)
,#N_3 AS (
SELECT t0.FBILLNO,'N+3' AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',t0.FVERSIONS,t0.FCRMBILLNO,t0.FDATE,t0.FFORECASTYEAR,t0.FFORECASTMONTH
,t0e.FMATERIALID,t0e.FCUSTID,t0e.FSEQ
,t0e.FN0 + t0e.FN1 + t0e.FN2 + t0e.FN3 AS 'QTY'
,DENSE_RANK() OVER (PARTITION BY t0.FFORECASTYEAR,t0.FFORECASTMONTH ORDER BY t0.FVERSIONS DESC) RN
FROM T_PLN_FORECAST2N3 t0
INNER JOIN T_PLN_FORECAST2N3ENTRY t0e on t0.FID = t0e.FID
WHERE t0.FDOCUMENTSTATUS = 'C'
)
,#N_3Ԥ<33>ⵥ AS (
SELECT t0.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,t0.FDATE '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',t0.FMATERIALID,t0.FCUSTID,t1.FDATE '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',t1.FVERSIONS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD>',t1.QTY '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ',t0.FVERSIONS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',t0.QTY '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', t1.QTY - ISNULL(t0.QTY, 0) '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
FROM #N_3 t0
INNER JOIN #N_3 t1 on t1.RN = 2
AND t0.FFORECASTYEAR = t1.FFORECASTYEAR AND t0.FFORECASTMONTH = t1.FFORECASTMONTH
AND t0.FMATERIALID = t1.FMATERIALID
WHERE t0.RN = 1
)
,#W_5 AS (
SELECT t0.FBILLNO,'W+5' AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',t0.FVERSIONS,t0.FCRMBILLNO,t0.FDATE
,t0e.FMATERIALID,t0e.FCUSTID,t0e.FSEQ,t0.FFORECASTYEAR,t0e.FSTARTDATE
,t0e.FD1+t0e.FD2+t0e.FD3+t0e.FD4+t0e.FD5+t0e.FD6+t0e.FD7+t0e.FD8+t0e.FD9+t0e.FD10+t0e.FD11+t0e.FD12+t0e.FD13+t0e.FD14+t0e.FD15+t0e.FD16+t0e.FD17+t0e.FD18+t0e.FD19+t0e.FD20+t0e.FD21+t0e.FD22+t0e.FD23+t0e.FD24+t0e.FD25+t0e.FD26+t0e.FD27+t0e.FD28+t0e.FD29+t0e.FD30+t0e.FD31+t0e.FD32+t0e.FD33+t0e.FD34+t0e.FD35+t0e.FD36+t0e.FD37+t0e.FD38+t0e.FD39+t0e.FD40+t0e.FD41+t0e.FD42 AS 'QTY'
,DENSE_RANK() OVER (PARTITION BY t0.FFORECASTYEAR,t0e.FSTARTDATE ORDER BY t0.FBILLNO DESC,t0.FVERSIONS DESC) RN
FROM T_PLN_FORECAST2W5 t0
INNER JOIN T_PLN_FORECAST2W5ENTRY t0e on t0.FID = t0e.FID
WHERE t0.FDOCUMENTSTATUS = 'C'
)
,#W_5Ԥ<35>ⵥ AS (
SELECT t0.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,t0.FDATE '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',t0.FMATERIALID,t0.FCUSTID,t1.FDATE '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',t1.FVERSIONS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD>',t1.QTY '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ',t0.FVERSIONS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',t0.QTY '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', t1.QTY - ISNULL(t0.QTY, 0) '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
FROM #W_5 t0
INNER JOIN #W_5 t1 on t1.RN = 2
AND t0.FFORECASTYEAR = t1.FFORECASTYEAR
AND t0.FSTARTDATE = t1.FSTARTDATE
AND t0.FMATERIALID = t1.FMATERIALID
WHERE t0.RN = 1
)
, #<23><><EFBFBD><EFBFBD> AS (
SELECT *
FROM #<23><><EFBFBD><EFBFBD>Ԥ<EFBFBD>
UNION ALL
SELECT *
FROM #N_3Ԥ<33>
UNION ALL
SELECT *
FROM #W_5Ԥ<35>
)
SELECT t0.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,t0.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,t1.FNUMBER '<EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><EFBFBD><EFBFBD>',t1_l.FNAME '<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>',t2_l.FNAME '<EFBFBD>ͻ<EFBFBD>','' '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>',t0.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,t0.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD>,t0.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ,t0.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,t0.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,t0.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
FROM #<23><><EFBFBD><EFBFBD> t0
INNER JOIN T_BD_MATERIAL t1 on t1.FMATERIALID = t0.FMATERIALID
INNER JOIN T_BD_MATERIAL_L t1_l on t1_l.FMATERIALID = t1.FMATERIALID AND t1_l.FLOCALEID = 2052
INNER JOIN T_BD_CUSTOMER_L t2_l on t2_l.FCUSTID = t0.FCUSTID