2023-12-14 10:31:17 +08:00
|
|
|
|
|
2023-12-15 09:08:09 +08:00
|
|
|
|
IF EXISTS(SELECT * FROM SYS.PROCEDURES WHERE NAME='PROC_INQUIRPLMTMPRTP')
|
|
|
|
|
|
DROP PROCEDURE dbo.PROC_INQUIRPLMTMPRTP;
|
2023-12-14 10:31:17 +08:00
|
|
|
|
GO
|
|
|
|
|
|
|
2023-12-15 09:08:09 +08:00
|
|
|
|
CREATE PROCEDURE PROC_INQUIRPLMTMPRTP
|
2023-12-17 11:37:43 +08:00
|
|
|
|
@TableName varchar(100)
|
|
|
|
|
|
,@STARTDATE date
|
2023-12-14 10:31:17 +08:00
|
|
|
|
,@ENDDATE date
|
|
|
|
|
|
,@LCID int
|
|
|
|
|
|
,@SeqFld varchar(200)
|
2023-12-17 11:37:43 +08:00
|
|
|
|
AS
|
2023-12-15 09:08:09 +08:00
|
|
|
|
BEGIN
|
2023-12-17 11:37:43 +08:00
|
|
|
|
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<EFBFBD>㱨<EFBFBD><EFBFBD>start
|
|
|
|
|
|
SELECT
|
|
|
|
|
|
AE.FSRCBILLNO
|
|
|
|
|
|
,AE.FMATERIALID
|
|
|
|
|
|
,AE.FSALEORDERENTRYID
|
|
|
|
|
|
,AE.FSALEORDERENTRYSEQ
|
|
|
|
|
|
,SUM(AE.FQTY) AS FQTY
|
|
|
|
|
|
,SUM(B.FFINISHQTY) AS FFINISHQTY --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
into #TMP_MO_INFO
|
|
|
|
|
|
FROM
|
|
|
|
|
|
T_PRD_MO A
|
|
|
|
|
|
LEFT JOIN T_PRD_MOENTRY AE ON A.FID = AE.FID
|
|
|
|
|
|
LEFT JOIN T_PRD_MOENTRY_A AE_A ON AE_A.FENTRYID = AE.FENTRYID
|
|
|
|
|
|
LEFT JOIN (SELECT
|
|
|
|
|
|
A.FBILLTYPE --50fa7c2eda7947b89fab5431bf25d48e <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㱨 e52b554423704173b7306554708a8b05 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㱨
|
|
|
|
|
|
,AE.FMOENTRYID
|
|
|
|
|
|
,FFINISHQTY
|
|
|
|
|
|
FROM
|
|
|
|
|
|
T_PRD_MORPT A
|
|
|
|
|
|
LEFT JOIN T_PRD_MORPTENTRY AE ON AE.FID = A.FID
|
|
|
|
|
|
WHERE A.FDOCUMENTSTATUS='C'
|
|
|
|
|
|
) B on B.FMOENTRYID = AE.FENTRYID
|
|
|
|
|
|
WHERE
|
|
|
|
|
|
AE.FSRCBILLTYPE ='PLN_PLANORDER'
|
|
|
|
|
|
AND AE_A.FSTATUS <> 6
|
|
|
|
|
|
AND AE.FSALEORDERENTRYID <> 0
|
|
|
|
|
|
AND A.FDATE between @STARTDATE and @ENDDATE
|
|
|
|
|
|
GROUP BY
|
|
|
|
|
|
AE.FSRCBILLNO
|
|
|
|
|
|
,AE.FMATERIALID
|
|
|
|
|
|
,AE.FSALEORDERENTRYID
|
|
|
|
|
|
,AE.FSALEORDERENTRYSEQ
|
|
|
|
|
|
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<EFBFBD>㱨<EFBFBD><EFBFBD>end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
--<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>start
|
|
|
|
|
|
SELECT
|
|
|
|
|
|
A.FID
|
|
|
|
|
|
,A.FBILLNO
|
|
|
|
|
|
,A.FMATERIALID
|
|
|
|
|
|
,A_B.FSALEORDERENTRYID
|
|
|
|
|
|
,SUM(A.FFirmQty) as 'FFirmQty'
|
|
|
|
|
|
,SUM(A.FORDERQTY) as 'FOrderQty'
|
|
|
|
|
|
into #TMP_PLN_INFO
|
|
|
|
|
|
FROM
|
|
|
|
|
|
T_PLN_PLANORDER A
|
|
|
|
|
|
LEFT JOIN T_PLN_PLANORDER_B A_B ON A.FID = A_B.FID
|
|
|
|
|
|
WHERE
|
|
|
|
|
|
A.FRELEASETYPE = 1
|
|
|
|
|
|
--AND (A.FRELEASESTATUS = 1 OR A.FRELEASESTATUS = 2 )
|
|
|
|
|
|
GROUP By
|
|
|
|
|
|
A.FID
|
|
|
|
|
|
,A.FBILLNO
|
|
|
|
|
|
,A.FRELEASETYPE
|
|
|
|
|
|
,A.FMATERIALID
|
|
|
|
|
|
,A_B.FSALEORDERENTRYID
|
|
|
|
|
|
--<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>end
|
|
|
|
|
|
|
2023-12-14 10:31:17 +08:00
|
|
|
|
|
2023-12-20 09:08:21 +08:00
|
|
|
|
|
2023-12-17 11:37:43 +08:00
|
|
|
|
--<EFBFBD><EFBFBD>ѯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>start
|
2023-12-14 10:31:17 +08:00
|
|
|
|
SELECT
|
|
|
|
|
|
A.FID
|
|
|
|
|
|
,A.FBILLNO
|
|
|
|
|
|
,AE.FMATERIALID
|
|
|
|
|
|
,AE.FENTRYID
|
|
|
|
|
|
,C.FNUMBER
|
|
|
|
|
|
,C_L.FNAME
|
|
|
|
|
|
,C_L.FSPECIFICATION
|
2023-12-17 11:37:43 +08:00
|
|
|
|
,(CASE CS.FEXPPERIOD
|
|
|
|
|
|
WHEN 0 THEN ''
|
|
|
|
|
|
ELSE
|
|
|
|
|
|
CASE
|
|
|
|
|
|
CS.FEXPUNIT
|
|
|
|
|
|
WHEN 'Y' THEN
|
|
|
|
|
|
CONVERT ( VARCHAR,CAST((CS.FEXPPERIOD * 12) AS INT) ) + '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
|
|
|
|
|
WHEN 'M' THEN
|
|
|
|
|
|
CONVERT ( VARCHAR,CAST(CS.FEXPPERIOD AS INT) ) + '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
|
|
|
|
|
WHEN 'D' THEN
|
|
|
|
|
|
CONVERT ( VARCHAR, CAST((
|
|
|
|
|
|
CASE CS.FEXPPERIOD%30 WHEN 0 THEN CS.FEXPPERIOD/30 ELSE CS.FEXPPERIOD / 365 * 12 END
|
|
|
|
|
|
) AS INT)) + '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>' ELSE ''
|
|
|
|
|
|
END
|
|
|
|
|
|
END) AS 'SHELFLIFE'
|
2023-12-14 10:31:17 +08:00
|
|
|
|
--,'' AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
2023-12-20 09:08:21 +08:00
|
|
|
|
,CS.FSAFESTOCK AS SAFESTOCK --<EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2023-12-15 09:08:09 +08:00
|
|
|
|
,CS.FSTOREUNITID --<EFBFBD><EFBFBD><EFBFBD>浥λ
|
2023-12-17 11:37:43 +08:00
|
|
|
|
,(CASE CP.FPACKUNITCONVERRATIO
|
|
|
|
|
|
WHEN 0
|
|
|
|
|
|
THEN CS.FSAFESTOCK ELSE (CS.FSAFESTOCK/CP.FPACKUNITCONVERRATIO)
|
|
|
|
|
|
END) AS SAFESTOCKCOUNT
|
|
|
|
|
|
,CP.FLOTYIELD -- 'ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
|
|
|
|
|
,CP.FPACKUNITCONVERRATIO -- '<27><>װ<EFBFBD><D7B0><EFBFBD><EFBFBD>'
|
|
|
|
|
|
,CP.FPACKUNITID -- '<27><>λ'
|
|
|
|
|
|
,AE.M01
|
|
|
|
|
|
,AE.S01
|
|
|
|
|
|
,AE.S02
|
|
|
|
|
|
,AE.S03
|
2023-12-20 09:08:21 +08:00
|
|
|
|
,(CustomUnitNumConversion((D.FQTY + E.FBASEQTY - D.FFINISHQTY),CP.FPACKUNITCONVERRATIO)) AS InProductionQty --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
,(CustomUnitNumConversion(E.FBASEQTY,CP.FPACKUNITCONVERRATIO)) AS InStockQty --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
--,(CASE CP.FPACKUNITCONVERRATIO
|
|
|
|
|
|
-- WHEN 0
|
|
|
|
|
|
-- THEN (D.FQTY + E.FBASEQTY) ELSE ((D.FQTY + E.FBASEQTY)/CP.FPACKUNITCONVERRATIO)
|
|
|
|
|
|
--END) AS TotalStockQty --<EFBFBD>ϼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2023-12-17 11:37:43 +08:00
|
|
|
|
,(CASE CP.FPACKUNITCONVERRATIO
|
|
|
|
|
|
WHEN 0
|
|
|
|
|
|
THEN B.FOrderQty ELSE (B.FOrderQty/CP.FPACKUNITCONVERRATIO)
|
|
|
|
|
|
END) AS OrderLotQty --<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2023-12-14 10:31:17 +08:00
|
|
|
|
,B.FFirmQty
|
|
|
|
|
|
,B.FOrderQty
|
2023-12-15 09:08:09 +08:00
|
|
|
|
into #TMPMPS
|
|
|
|
|
|
FROM
|
2023-12-17 11:37:43 +08:00
|
|
|
|
T_PLN_FORECAST A
|
|
|
|
|
|
LEFT JOIN T_PLN_FORECASTENTRY AE ON A.FID = AE.FID
|
|
|
|
|
|
RIGHT JOIN #TMP_PLN_INFO B ON B.FSALEORDERENTRYID = AE.FENTRYID
|
2023-12-14 10:31:17 +08:00
|
|
|
|
LEFT JOIN T_BD_MATERIAL C ON C.FMATERIALID = B.FMATERIALID
|
|
|
|
|
|
LEFT JOIN T_BD_MATERIAL_L C_L ON C_L.FMATERIALID = B.FMATERIALID
|
|
|
|
|
|
LEFT JOIN T_BD_MATERIALSTOCK CS ON CS.FMATERIALID = B.FMATERIALID
|
|
|
|
|
|
LEFT JOIN T_BD_MATERIALPRODUCE CP ON CP.FMATERIALID = B.FMATERIALID
|
2023-12-17 11:37:43 +08:00
|
|
|
|
LEFT JOIN #TMP_MO_INFO D on D.FSRCBILLNO = B.FBILLNO AND D.FSALEORDERENTRYID = AE.FENTRYID AND D.FSALEORDERENTRYSEQ = AE.FSEQ
|
|
|
|
|
|
LEFT JOIN (SELECT
|
|
|
|
|
|
A.FMATERIALID
|
|
|
|
|
|
,A.FSTOCKORGID
|
2023-12-20 09:08:21 +08:00
|
|
|
|
,SUM(A1.FQTY) AS FQTY
|
2023-12-17 11:37:43 +08:00
|
|
|
|
FROM T_STK_INVENTORY A
|
2023-12-20 09:08:21 +08:00
|
|
|
|
left join T_STK_INVINITDETAIL A1 on A.FMATERIALID = A1.FMATERIALID AND A.Fstockid = A1.ftockid
|
|
|
|
|
|
GROUP BY A.FMATERIALID,A.FSTOCKORGID
|
2023-12-17 11:37:43 +08:00
|
|
|
|
) E on E.FMATERIALID = C.FMASTERID AND E.FSTOCKORGID = A.FFOREORGID
|
2023-12-14 10:31:17 +08:00
|
|
|
|
WHERE
|
|
|
|
|
|
--A.FDATE BETWEEN '2023-12-01 00:00:00' AND '2023-12-31 23:59:59'
|
|
|
|
|
|
A.FDATE BETWEEN @STARTDATE AND @ENDDATE
|
2023-12-17 11:37:43 +08:00
|
|
|
|
|
2023-12-14 10:31:17 +08:00
|
|
|
|
--<EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>λ
|
2023-12-20 09:08:21 +08:00
|
|
|
|
ALTER TABLE #TMPMPS ADD FSTOREUNITNAME VARCHAR(50)
|
2023-12-17 11:37:43 +08:00
|
|
|
|
UPDATE #TMPMPS SET #TMPMPS.FSTOREUNITNAME = B_L.FNAME FROM T_BD_UNIT_L B_L WHERE B_L.FUNITID = #TMPMPS.FSTOREUNITID
|
|
|
|
|
|
|
2023-12-20 09:08:21 +08:00
|
|
|
|
ALTER TABLE #TMPMPS ADD FPACKUNITNAME VARCHAR(50)
|
2023-12-17 11:37:43 +08:00
|
|
|
|
UPDATE #TMPMPS SET #TMPMPS.FPACKUNITNAME = B_L.FNAME FROM T_BD_UNIT_L B_L WHERE B_L.FUNITID = #TMPMPS.FPACKUNITID
|
|
|
|
|
|
|
2023-12-20 09:08:21 +08:00
|
|
|
|
ALTER TABLE #TMPMPS ADD FPACKUNITCONVT VARCHAR(100)
|
|
|
|
|
|
UPDATE T SET T.FPACKUNITCONVT = CONCAT(CONVERT(VARCHAR,T.FPACKUNITCONVERRATIO),T.FSTOREUNITNAME,'/',T.FPACKUNITNAME) FROM #TMPMPS T
|
|
|
|
|
|
|
|
|
|
|
|
ALTER TABLE #TMPMPS ADD TotalStockQty decimal(23,6)
|
|
|
|
|
|
UPDATE T SET T.TotalStockQty = T.InProductionQty +T.InStockQty FROM #TMPMPS T
|
2023-12-17 11:37:43 +08:00
|
|
|
|
--<EFBFBD><EFBFBD>ѯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>end
|
|
|
|
|
|
|
|
|
|
|
|
DECLARE @SQL VARCHAR(2000)
|
2023-12-20 09:08:21 +08:00
|
|
|
|
SET @sql = N'
|
2023-12-17 11:37:43 +08:00
|
|
|
|
select
|
|
|
|
|
|
t0.*
|
|
|
|
|
|
,'+@SeqFld+'
|
|
|
|
|
|
into '+ @TableName +' From #TMPMPS t0 '
|
|
|
|
|
|
EXECUTE(@sql)
|
2023-12-14 10:31:17 +08:00
|
|
|
|
|
2023-12-17 11:37:43 +08:00
|
|
|
|
DROP TABLE #TMPMPS
|
|
|
|
|
|
DROP TABLE #TMP_PLN_INFO
|
|
|
|
|
|
DROP TABLE #TMP_MO_INFO
|
2023-12-15 09:08:09 +08:00
|
|
|
|
END
|