This commit is contained in:
PastSaid
2024-03-18 11:42:45 +08:00
parent 08d8878eef
commit c31957eb64
56 changed files with 1485 additions and 123 deletions

View File

@@ -0,0 +1,223 @@
USE [AIS20220929093310]
GO
/****** Object: StoredProcedure [dbo].[P_UpdatePlan2] Script Date: 2024-03-12 11:36:05 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <20><><EFBFBD><EFBFBD><Author,,Name>
-- Create date: 2023-05-23<Create Date,,>
-- Description: <20><><EFBFBD>¼ƻ<C2BC><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<Description,,>
-- =============================================
ALTER PROCEDURE [dbo].[P_UpdatePlan2]
(
@FBILLNO NVARCHAR(1000)
)
AS
BEGIN
EXEC PROC_UPDATE_PLAN_20240120
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
-- SET NOCOUNT ON;
-- -- EXEC P_UpdatePlan
-- select fname into #temp2 from dbo.fn_hr_StrSplit(@FBILLNO,',')
--select a.FBILLNO AS '<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',A.FSALENOROW,A.F_SOURCE_ORDER_LINE_NUMBER as '<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>',A.F_Source_order_number as '<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
--, A.F_FORECASTNUMBER as '<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', A.F_Linenumber as '<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD><EFBFBD>к<EFBFBD>',
--E.FBILLNO AS 'Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',D.FSEQ,D.F_Source_order_number as 'Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',D.F_SOURCE_ORDER_LINE_NUMBER as 'Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>'
--INTO #TEMP1
--from T_PLN_PLANORDER A
--INNER JOIN T_PLN_RESERVELINKENTRY B ON B.FSUPPLYBILLNO = A.FBILLNO
--INNER JOIN T_PLN_RESERVELINK C ON C.FID=B.FID
--INNER JOIN T_PLN_FORECASTENTRY D ON D.FENTRYID=C.FSRCENTRYID
--INNER JOIN T_PLN_FORECAST e on e .fid=d.FID
--inner join #temp2 f on f.fname = a.FBILLNO
----WHERE A.F_FORECASTNUMBER=''
----AND A.FBILLNO = @FBILLNO
----where A.FBILLNO = 'MRP00260726'
----WHERE A.F_SOURCE_ORDER_LINE_NUMBER = ''
-- --select * from #TEMP1
----
-- SELECT
--<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
--'Ԥ<EFBFBD><EFBFBD>к<EFBFBD>'=ISNULL( stuff((select ','+CONVERT(nvarchar(100), FSEQ) from #TEMP1 where <20>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>=t.<2E>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> and Ԥ<><EFBFBD><E2B5A5><EFBFBD><EFBFBD> =t.Ԥ<><EFBFBD><E2B5A5><EFBFBD><EFBFBD> for xml path('')),1,1,''),''),
--'<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'=ISNULL( stuff((select distinct ','+CONVERT(nvarchar(100), Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) from #TEMP1 where Ԥ<><EFBFBD><E2B5A5><EFBFBD>۶<EFBFBD><DBB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><>'' and <20>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>=t.<2E>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> and Ԥ<><EFBFBD><E2B5A5><EFBFBD><EFBFBD> =t.Ԥ<><EFBFBD><E2B5A5><EFBFBD><EFBFBD> for xml path('')),1,1,''),''),
--'<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>'=ISNULL( stuff((select distinct ','+CONVERT(nvarchar(100), Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>) from #TEMP1 where Ԥ<><EFBFBD><E2B5A5><EFBFBD>۶<EFBFBD><DBB6><EFBFBD><EFBFBD>к<EFBFBD><>'' and <20>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>=t.<2E>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> and Ԥ<><EFBFBD><E2B5A5><EFBFBD><EFBFBD> =t.Ԥ<><EFBFBD><E2B5A5><EFBFBD><EFBFBD> for xml path('')),1,1,''),'')
--into #temp3
-- FROM #TEMP1 t
-- GROUP BY <20>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><EFBFBD><E2B5A5><EFBFBD><EFBFBD>
-- UPDATE T_PLN_PLANORDER SET F_FORECASTNUMBER=B.Ԥ<><EFBFBD><E2B5A5><EFBFBD><EFBFBD>, F_Linenumber=B.Ԥ<><EFBFBD>к<EFBFBD>, F_SOURCE_ORDER_LINE_NUMBER=b.<2E><><EFBFBD>۶<EFBFBD><DBB6><EFBFBD><EFBFBD>к<EFBFBD>, F_SOURCE_ORDER_NUMBER=b.<2E><><EFBFBD>۶<EFBFBD><DBB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--FROM T_PLN_PLANORDER A
--inner join #temp3 B
--ON A.FBILLNO=B.<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--inner join #temp2 f on f.fname = a.FBILLNO
--DROP TABLE #TEMP1
--DROP TABLE #temp3
--UPDATE A SET A.F_CUSTOMERNAME=D.FCUSTID,A.F_MATERIALCODE=D.FMATERIALID
--from T_PLN_PLANORDER A
--INNER JOIN T_PLN_RESERVELINKENTRY B ON B.FSUPPLYBILLNO = A.FBILLNO
--INNER JOIN T_PLN_RESERVELINK C ON C.FID=B.FID
--INNER JOIN T_PLN_FORECASTENTRY D ON D.FENTRYID=C.FSRCENTRYID
--INNER JOIN T_PLN_FORECAST e on e .fid=d.FID
--inner join #temp2 f on f.fname = a.FBILLNO
----where (a.F_CUSTOMERNAME=0 or a.F_MATERIALCODE=0 )
----AND A.FBILLNO = @FBILLNO
--update a set F_CUSTOMERNAME=d.FCUSTID,F_MATERIALCODE=d.FMATERIALID,F_FORECASTNUMBER=c.FBILLNO,F_Linenumber=d.FSEQ,F_SOURCE_ORDER_LINE_NUMBER=d.F_SOURCE_ORDER_LINE_NUMBER,F_Source_order_number=d.F_Source_order_number
--FROM T_PLN_PLANORDER A
--INNER JOIN T_PLN_PLANORDER_B B ON A.FID=B.FID
--INNER JOIN T_PLN_FORECAST C ON C .FBILLNO = B.FSALEORDERNO
--INNER JOIN T_PLN_FORECASTENTRY D ON D .FID= C.FID AND D.FSEQ=B.FSALEORDERENTRYSEQ
--INNER JOIN #temp2 e ON A.FBILLNO = e.Fname
----WHERE A.FBILLNO = 'MRP00640407'
----UPDATE A SET A.F_Remark=ISNULL( dbo.GetForecast(A.F_FORECASTNUMBER ,A.F_LINENUMBER),'')
----from T_PLN_PLANORDER A
----INNER JOIN T_PLN_FORECAST B ON B.FBILLNO=A.F_FORECASTNUMBER
----INNER JOIN T_PLN_FORECAST_L C ON C.FID=B.FID
----INNER JOIN T_PLN_FORECASTENTRY D on D.FID=B.FID AND D.FSEQ=A.F_Linenumber
----where ( a.F_Remark='' )
--UPDATE E SET F_DESCRIPTION=ISNULL(C.FDESCRIPTION ,'' )
--from T_PLN_PLANORDER A
--INNER JOIN T_PLN_PLANORDER_L E ON E.FID=A.FID
--INNER JOIN T_PLN_FORECAST B ON B.FBILLNO=A.F_FORECASTNUMBER
--INNER JOIN T_PLN_FORECAST_L C ON C.FID=B.FID
--inner join #temp2 f on f.fname = a.FBILLNO
----where ( e.F_DESCRIPTION='' )
----AND A.FBILLNO = @FBILLNO
--UPDATE T_PLN_PLANORDER SET F_Remark=
-- ISNULL( dbo.GetForecast(A.F_FORECASTNUMBER ,A.F_LINENUMBER),'')
--from T_PLN_PLANORDER A
--inner join #temp2 f on f.fname = a.FBILLNO
--where
--1=1
----and ( a.F_Remark='' )
--AND CONVERT(nvarchar(100), a.FCREATEDATE,23) = CONVERT(nvarchar(100), GETDATE(),23)
----AND A.FBILLNO = @FBILLNO
--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 #temp2 C ON C.Fname=A.FBILLNO
----WHERE a.F_WAUG_LAYER = ''
--) B ON A.FID = B.FID
--DROP TABLE #temp2
------select a.FBILLNO AS '<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',A.FSALENOROW,A.F_SOURCE_ORDER_LINE_NUMBER as '<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>',A.F_Source_order_number as '<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
------, A.F_FORECASTNUMBER as '<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', A.F_Linenumber as '<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD><EFBFBD>к<EFBFBD>',
------E.FBILLNO AS 'Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',D.FSEQ,D.F_Source_order_number as 'Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',D.F_SOURCE_ORDER_LINE_NUMBER as 'Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>'
------INTO #TEMP1
------from T_PLN_PLANORDER A
------INNER JOIN T_PLN_RESERVELINKENTRY B ON B.FSUPPLYBILLNO = A.FBILLNO
------INNER JOIN T_PLN_RESERVELINK C ON C.FID=B.FID
------INNER JOIN T_PLN_FORECASTENTRY D ON D.FENTRYID=C.FSRCENTRYID
------INNER JOIN T_PLN_FORECAST e on e .fid=d.FID
------WHERE A.F_FORECASTNUMBER=''
------AND A.FBILLNO = @FBILLNO
--------where A.FBILLNO = 'MRP00260726'
--------WHERE A.F_SOURCE_ORDER_LINE_NUMBER = ''
------ --select * from #TEMP1
--------
------UPDATE A SET A.F_FORECASTNUMBER=B.Ԥ<><EFBFBD><E2B5A5><EFBFBD><EFBFBD>,A.F_Linenumber=B.Ԥ<><EFBFBD>к<EFBFBD>,a.F_SOURCE_ORDER_LINE_NUMBER=b.<2E><><EFBFBD>۶<EFBFBD><DBB6><EFBFBD><EFBFBD>к<EFBFBD>,a.F_SOURCE_ORDER_NUMBER=b.<2E><><EFBFBD>۶<EFBFBD><DBB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
------FROM T_PLN_PLANORDER A
------inner join
------(
------SELECT
------<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
------'Ԥ<EFBFBD><EFBFBD>к<EFBFBD>'=ISNULL( stuff((select ','+CONVERT(nvarchar(100), FSEQ) from #TEMP1 where <20>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>=t.<2E>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> and Ԥ<><EFBFBD><E2B5A5><EFBFBD><EFBFBD> =t.Ԥ<><EFBFBD><E2B5A5><EFBFBD><EFBFBD> for xml path('')),1,1,''),''),
------'<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'=ISNULL( stuff((select distinct ','+CONVERT(nvarchar(100), Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) from #TEMP1 where Ԥ<><EFBFBD><E2B5A5><EFBFBD>۶<EFBFBD><DBB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><>'' and <20>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>=t.<2E>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> and Ԥ<><EFBFBD><E2B5A5><EFBFBD><EFBFBD> =t.Ԥ<><EFBFBD><E2B5A5><EFBFBD><EFBFBD> for xml path('')),1,1,''),''),
------'<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>'=ISNULL( stuff((select distinct ','+CONVERT(nvarchar(100), Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>) from #TEMP1 where Ԥ<><EFBFBD><E2B5A5><EFBFBD>۶<EFBFBD><DBB6><EFBFBD><EFBFBD>к<EFBFBD><>'' and <20>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>=t.<2E>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> and Ԥ<><EFBFBD><E2B5A5><EFBFBD><EFBFBD> =t.Ԥ<><EFBFBD><E2B5A5><EFBFBD><EFBFBD> for xml path('')),1,1,''),'')
------ FROM #TEMP1 t
------ GROUP BY <20>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><EFBFBD><E2B5A5><EFBFBD><EFBFBD>
------) B
------ON A.FBILLNO=B.<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
------WHERE A.F_FORECASTNUMBER=''
------AND A.FBILLNO = @FBILLNO
------DROP TABLE #TEMP1
----UPDATE A SET A.F_CUSTOMERNAME=D.FCUSTID,A.F_MATERIALCODE=D.FMATERIALID
----from T_PLN_PLANORDER A
----INNER JOIN T_PLN_RESERVELINKENTRY B ON B.FSUPPLYBILLNO = A.FBILLNO
----INNER JOIN T_PLN_RESERVELINK C ON C.FID=B.FID
----INNER JOIN T_PLN_FORECASTENTRY D ON D.FENTRYID=C.FSRCENTRYID
----INNER JOIN T_PLN_FORECAST e on e .fid=d.FID
----where (a.F_CUSTOMERNAME=0 or a.F_MATERIALCODE=0 )
----AND A.FBILLNO = @FBILLNO
------UPDATE A SET A.F_Remark=ISNULL( dbo.GetForecast(A.F_FORECASTNUMBER ,A.F_LINENUMBER),'')
------from T_PLN_PLANORDER A
------INNER JOIN T_PLN_FORECAST B ON B.FBILLNO=A.F_FORECASTNUMBER
------INNER JOIN T_PLN_FORECAST_L C ON C.FID=B.FID
------INNER JOIN T_PLN_FORECASTENTRY D on D.FID=B.FID AND D.FSEQ=A.F_Linenumber
------where ( a.F_Remark='' )
----UPDATE E SET F_DESCRIPTION=ISNULL(C.FDESCRIPTION ,'' )
----from T_PLN_PLANORDER A
----INNER JOIN T_PLN_PLANORDER_L E ON E.FID=A.FID
----INNER JOIN T_PLN_FORECAST B ON B.FBILLNO=A.F_FORECASTNUMBER
----INNER JOIN T_PLN_FORECAST_L C ON C.FID=B.FID
----where ( e.F_DESCRIPTION='' )
----AND A.FBILLNO = @FBILLNO
----UPDATE T_PLN_PLANORDER SET F_Remark=
---- ISNULL( dbo.GetForecast(A.F_FORECASTNUMBER ,A.F_LINENUMBER),'')
----from T_PLN_PLANORDER A
----where
----1=1
----and ( a.F_Remark='' )
----AND CONVERT(nvarchar(100), a.FCREATEDATE,23) = CONVERT(nvarchar(100), GETDATE(),23)
----AND A.FBILLNO = @FBILLNO
END