148 lines
6.7 KiB
MySQL
148 lines
6.7 KiB
MySQL
|
|
IF EXISTS(SELECT * FROM SYS.PROCEDURES WHERE NAME='PROC_UPDATE_PLAN_BY_PAGE')
|
|||
|
|
DROP PROCEDURE dbo.PROC_UPDATE_PLAN_BY_PAGE;
|
|||
|
|
GO
|
|||
|
|
|
|||
|
|
CREATE PROCEDURE PROC_UPDATE_PLAN_BY_PAGE
|
|||
|
|
@ListCount int output
|
|||
|
|
AS
|
|||
|
|
BEGIN
|
|||
|
|
SET NOCOUNT ON;
|
|||
|
|
SET @ListCount = 0;
|
|||
|
|
SELECT
|
|||
|
|
TOP 5000
|
|||
|
|
A.FID
|
|||
|
|
,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
|
|||
|
|
--AND A.FBILLNO = 'MRP00260726'
|
|||
|
|
|
|||
|
|
SELECT FID
|
|||
|
|
INTO #BillNoSet
|
|||
|
|
FROM #TEMP1
|
|||
|
|
GROUP BY FID
|
|||
|
|
|
|||
|
|
CREATE INDEX [#BillNoSet_INDEX_FID] ON #BillNoSet(FID);
|
|||
|
|
|
|||
|
|
SELECT @ListCount = count(1) FROM #BillNoSet
|
|||
|
|
--SELECT @ListCount
|
|||
|
|
IF(@ListCount > 0)
|
|||
|
|
BEGIN
|
|||
|
|
SELECT
|
|||
|
|
--<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
t.FID
|
|||
|
|
,Ԥ<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
|
|||
|
|
WHERE t.Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> = ''
|
|||
|
|
GROUP BY t.FID,t.Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
UPDATE T_PLN_PLANORDER
|
|||
|
|
SET F_FORECASTNUMBER = B.Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
,F_Linenumber = B.Ԥ<EFBFBD>ⵥ<EFBFBD>к<EFBFBD>
|
|||
|
|
,F_SOURCE_ORDER_LINE_NUMBER = b.<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
|
|||
|
|
,F_SOURCE_ORDER_NUMBER = b.<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
FROM
|
|||
|
|
T_PLN_PLANORDER A
|
|||
|
|
INNER JOIN #BillNoSet tt ON tt.FID = A.FID
|
|||
|
|
INNER JOIN #TEMP3 B ON A.FID=B.FID
|
|||
|
|
--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 #BillNoSet tt ON tt.FID = A.FID
|
|||
|
|
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 #BillNoSet tt ON tt.FID = A.FID
|
|||
|
|
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 #BillNoSet tt ON tt.FID = A.FID
|
|||
|
|
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 #BillNoSet tt ON tt.FID = A.FID
|
|||
|
|
--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 CONVERT(nvarchar(100),a.FCREATEDATE,23) = CONVERT(nvarchar(100),'2024-01-17',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
|
|||
|
|
END
|
|||
|
|
|
|||
|
|
DROP TABLE #TEMP1
|
|||
|
|
DROP TABLE #BillNoSet
|
|||
|
|
|
|||
|
|
SET NOCOUNT OFF
|
|||
|
|
END
|