This commit is contained in:
PastSaid
2023-12-29 08:46:01 +08:00
parent ddb5043b65
commit 876ebdd603
23 changed files with 929 additions and 282 deletions

View File

@@ -0,0 +1,80 @@
IF EXISTS(SELECT * FROM SYS.PROCEDURES WHERE NAME='PROC_INQUIRPLMTMPRTP1111111111')
DROP PROCEDURE dbo.PROC_INQUIRPLMTMPRTP1111111111;
GO
CREATE PROCEDURE PROC_INQUIRPLMTMPRTP1111111111
@FRECORDDATE DATETIME
,@FRECORDYEAR INT
,@FRECORDMONTH INT
AS
BEGIN
SELECT
AE.FSRCBILLNO
,AE.FMATERIALID
,AE.FSALEORDERENTRYID
,AE.FSALEORDERENTRYSEQ
,SUM(AE.FQTY) AS FQTY
,SUM(B.FFINISHQTY) AS FFINISHQTY --
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 e52b554423704173b7306554708a8b05
,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
RIGHT JOIN (
SELECT
A.FMATERIALID
,A.FNUMBER
,B.FSTOCKORGID
,B.FLOT
,SUM(B.FBASEQTY) AS FBASEQTY
,@FRECORDDATE AS FRECORDDATE
,@FRECORDYEAR as FRECORDYEAR
,@FRECORDMONTH as FRECORDMONTH
,AP.FLOTYIELD -- '每批产量'
,AP.FPACKUNITCONVERRATIO -- '包装规格'
,AP.FPACKUNITID -- '单位'
--INTO #TMPRECORD
FROM
T_BD_MATERIAL A
INNER JOIN T_BD_MATERIALPRODUCE AP ON AP.FMATERIALID = A.FMATERIALID
INNER JOIN T_STK_INVENTORY B ON A.FMASTERID = B.FMATERIALID
WHERE
B.FSTOCKORGID = 100038 And A.FDOCUMENTSTATUS = 'C'
GROUP BY
A.FMATERIALID
,A.FNUMBER
,B.FSTOCKORGID
,B.FLOT
,AP.FLOTYIELD -- '每批产量'
,AP.FPACKUNITCONVERRATIO -- '包装规格'
,AP.FPACKUNITID -- '单位'
) C on C.FMATERIALID = AE.FMATERIALID
WHERE
AE.FSRCBILLTYPE ='PLN_PLANORDER' AND AE_A.FSTATUS <> 6 and AE.FSALEORDERENTRYID <> 0
GROUP BY
AE.FSRCBILLNO
,AE.FMATERIALID
,AE.FSALEORDERENTRYID
,AE.FSALEORDERENTRYSEQ
--ALTER TABLE #TMPRECORD ADD FRECORDDATE DATETIME
--UPDATE #TMPRECORD SET FRECORDDATE = @FRECORDDATE
--ALTER TABLE #TMPRECORD ADD FRECORDYEAR int DEFAULT 0
--UPDATE #TMPRECORD SET FRECORDYEAR = @FRECORDYEAR
--ALTER TABLE #TMPRECORD ADD FRECORDMONTH int DEFAULT 0
--UPDATE #TMPRECORD SET FRECORDMONTH = @FRECORDMONTH
SELECT * FROM #TMPRECORD
DROP TABLE #TMPRECORD
END

View File

@@ -0,0 +1,162 @@
IF EXISTS(SELECT * FROM SYS.PROCEDURES WHERE NAME='PROC_INQUIRPLMTMPRTP')
DROP PROCEDURE dbo.PROC_INQUIRPLMTMPRTP;
GO
CREATE PROCEDURE PROC_INQUIRPLMTMPRTP
@TableName varchar(100)
,@STARTDATE date
,@ENDDATE date
,@LCID int
,@SeqFld varchar(200)
AS
BEGIN
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD>start
SELECT
t0E.FSRCBILLNO
,t0E.FMATERIALID
,t0E.FSALEORDERENTRYID
,t0E.FSALEORDERENTRYSEQ
,SUM(t0E.FQTY) AS FQTY
,SUM(t1.FFINISHQTY) AS FFINISHQTY --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
into #TMP_MO_INFO
FROM
T_PRD_MO t0
LEFT JOIN T_PRD_MOENTRY t0E ON t0.FID = t0E.FID
LEFT JOIN T_PRD_MOENTRY_A t0E_A ON t0E_A.FENTRYID = t0E.FENTRYID
LEFT JOIN (SELECT
t0.FBILLTYPE --50fa7c2eda7947b89fab5431bf25d48e <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> e52b554423704173b7306554708a8b05 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,t0E.FMOENTRYID
,FFINISHQTY
FROM
T_PRD_MORPT t0
LEFT JOIN T_PRD_MORPTENTRY t0E ON t0E.FID = t0.FID
WHERE t0.FDOCUMENTSTATUS='C' AND t0.FBILLTYPE = '50fa7c2eda7947b89fab5431bf25d48e'
) t1 on t1.FMOENTRYID = t0E.FENTRYID
WHERE
t0E.FSRCBILLTYPE ='PLN_PLANORDER'
AND t0E_A.FSTATUS <> 6
AND t0E.FSALEORDERENTRYID <> 0
AND t0.FDATE between @STARTDATE and @ENDDATE
GROUP BY
t0E.FSRCBILLNO
,t0E.FMATERIALID
,t0E.FSALEORDERENTRYID
,t0E.FSALEORDERENTRYSEQ
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD>end
--<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>start
SELECT
t0.FID
,t0.FBILLNO
,t0.FMATERIALID
,t0_B.FSALEORDERENTRYID
,SUM(t0.FFirmQty) as 'FFirmQty'
,SUM(t0.FORDERQTY) as 'FOrderQty'
into #TMP_PLN_INFO
FROM
T_PLN_PLANORDER t0
LEFT JOIN T_PLN_PLANORDER_B t0_B ON t0.FID = t0_B.FID
WHERE
t0.FRELEASETYPE = 1
--AND (t0.FRELEASESTATUS = 1 OR t0.FRELEASESTATUS = 2 )
GROUP By
t0.FID
,t0.FBILLNO
,t0.FRELEASETYPE
,t0.FMATERIALID
,t0_B.FSALEORDERENTRYID
--<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>end
--<EFBFBD><EFBFBD>ѯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>start
SELECT
t0.FID
,t0.FBILLNO
,t0E.FMATERIALID
,t0E.FENTRYID
,t2.FNUMBER
,t2_L.FNAME
,t2_L.FSPECIFICATION
,(CASE t2S.FEXPPERIOD
WHEN 0 THEN ''
ELSE
CASE
t2S.FEXPUNIT
WHEN 'Y' THEN
CONVERT ( VARCHAR,CAST((t2S.FEXPPERIOD * 12) AS INT) ) + '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
WHEN 'M' THEN
CONVERT ( VARCHAR,CAST(t2S.FEXPPERIOD AS INT) ) + '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
WHEN 't3' THEN
CONVERT ( VARCHAR, CAST((
CASE t2S.FEXPPERIOD % 30 WHEN 0 THEN t2S.FEXPPERIOD / 30 ELSE t2S.FEXPPERIOD / 365 * 12 END
) AS INT)) + '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>' ELSE ''
END
END) AS 'SHELFLIFE'
,t2.FLotSize AS StandardLot
,t2S.FSAFESTOCK AS SAFESTOCK --<EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,t2S.FSTOREUNITID --<EFBFBD><EFBFBD><EFBFBD>λ
,(dbo.PackageValConver(t2S.FSAFESTOCK, t2P.FPACKUNITCONVERRATIO)) AS SAFESTOCKCOUNT
,t2P.FLOTYIELD -- 'ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
,t2P.FPACKUNITCONVERRATIO -- '<27><>װ<EFBFBD><D7B0><EFBFBD><EFBFBD>'
,t2P.FPACKUNITID -- '<27><>λ'
,dbo.PackageValConver(t0E.M01,t2P.FPACKUNITCONVERRATIO) as M01
,dbo.PackageValConver(t0E.S01,t2P.FPACKUNITCONVERRATIO) as S01
,dbo.PackageValConver(t0E.S02,t2P.FPACKUNITCONVERRATIO) as S02
,dbo.PackageValConver(t0E.S03,t2P.FPACKUNITCONVERRATIO) as S03
,dbo.PackageValConver((ISNULL(t3.FQTY,0) - ISNULL(t3.FFINISHQTY,0)),t2P.FPACKUNITCONVERRATIO) AS InProductionQty --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,dbo.PackageValConver(ISNULL(t4.FQTY,0),t2P.FPACKUNITCONVERRATIO) AS InStockQty --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,dbo.PackageValConver((ISNULL(t3.FQTY,0) + ISNULL(t4.FQTY,0)),t2P.FPACKUNITCONVERRATIO) AS TotalStockQty --<EFBFBD>ϼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,dbo.PackageValConver(t1.FOrderQty,t2P.FPACKUNITCONVERRATIO) AS OrderLotQty --<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,t1.FFirmQty
,t1.FOrderQty
into #TMPMPS
FROM
T_PLN_FORECAST t0
LEFT JOIN T_PLN_FORECASTENTRY t0E ON t0.FID = t0E.FID
LEFT JOIN #TMP_PLN_INFO t1 ON t1.FSALEORDERENTRYID = t0E.FENTRYID AND t1.FMATERIALID = t0E.FMATERIALID
LEFT JOIN T_BD_MATERIAL t2 ON t2.FMATERIALID = t0E.FMATERIALID
LEFT JOIN T_BD_MATERIAL_L t2_L ON t2_L.FMATERIALID = t0E.FMATERIALID
LEFT JOIN T_BD_MATERIALSTOCK t2S ON t2S.FMATERIALID = t0E.FMATERIALID
LEFT JOIN T_BD_MATERIALPRODUCE t2P ON t2P.FMATERIALID = t0E.FMATERIALID
LEFT JOIN #TMP_MO_INFO t3 on t3.FSRCBILLNO = t1.FBILLNO AND t3.FSALEORDERENTRYID = t0E.FENTRYID AND t3.FSALEORDERENTRYSEQ = t0E.FSEQ
LEFT JOIN (SELECT
t0.FMATERIALID
,t0.FSTOCKORGID
,SUM(t1.FQTY) AS FQTY
FROM T_STK_INVENTORY t0
LEFT JOIN T_STK_INVINITDETAIL t1 ON t0.FMATERIALID = t1.FMATERIALID AND t0.FSTOCKID = t1.FSTOCKID
GROUP BY t0.FMATERIALID,t0.FSTOCKORGID
) t4 on t4.FMATERIALID = t0E.FMATERIALID
WHERE
--t0.FDATE BETWEEN '2023-12-01 00:00:00' AND '2023-12-31 23:59:59'
t0.FDATE BETWEEN @STARTDATE AND @ENDDATE
--<EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>λ
ALTER TABLE #TMPMPS ADD FSTOREUNITNAME VARCHAR(50)
UPDATE #TMPMPS SET #TMPMPS.FSTOREUNITNAME = B_L.FNAME FROM T_BD_UNIT_L B_L WHERE B_L.FUNITID = #TMPMPS.FSTOREUNITID
ALTER TABLE #TMPMPS ADD FPACKUNITNAME VARCHAR(50)
UPDATE #TMPMPS SET #TMPMPS.FPACKUNITNAME = B_L.FNAME FROM T_BD_UNIT_L B_L WHERE B_L.FUNITID = #TMPMPS.FPACKUNITID
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
--<EFBFBD><EFBFBD>ѯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>end
DECLARE @SQL VARCHAR(2000)
SET @sql = N'
select
t0.*
,'+@SeqFld+'
into '+ @TableName +' From #TMPMPS t0 '
EXECUTE(@sql)
DROP TABLE #TMPMPS
DROP TABLE #TMP_PLN_INFO
DROP TABLE #TMP_MO_INFO
END

View File

@@ -0,0 +1,25 @@
IF EXISTS(SELECT * FROM SYS.PROCEDURES WHERE NAME='PROC_PPL_SaveCurrentData')
DROP PROCEDURE dbo.PROC_PPL_SaveCurrentData;
GO
CREATE PROCEDURE PROC_PPL_SaveCurrentData
@TableName varchar(100)
,@FRECORDDATE varchar(20)
,@FRECORDYEAR INT
,@FRECORDMONTH INT
AS
BEGIN
IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[T_PLAN_PLANPLMRPT]') AND type IN ('U'))
BEGIN
DELETE FROM T_PLAN_PLANPLMRPT WHERE FRECORDDATE = @FRECORDYEAR AND FRECORDMONTH = @FRECORDMONTH
END
DECLARE @SQL VARCHAR(2000)
SET @sql = '
SELECT *,'+@FRECORDDATE+' AS FRECORDDATE ,'+@FRECORDYEAR+' AS FRECORDYEAR ,'+@FRECORDMONTH+' AS FRECORDMONTH
INTO T_PLAN_PLANPLMRPT FROM '+@TableName
EXECUTE(@sql)
END

View File

@@ -0,0 +1,30 @@
IF EXISTS(SELECT * FROM SYS.PROCEDURES WHERE NAME='PROC_PPL_AutoSaveCurrentData')
DROP PROCEDURE dbo.PROC_PPL_AutoSaveCurrentData;
GO
CREATE PROCEDURE PROC_PPL_AutoSaveCurrentData
@TableName varchar(100)
,@FRECORDDATE datetime
,@STARTDATE date
,@ENDDATE date
,@FRECORDYEAR INT
,@FRECORDMONTH INT
AS
BEGIN
EXEC PROC_INQUIRPLMTMPRTP @TableName,@STARTDATE,@ENDDATE,2052,' ROW_NUMBER() OVER(ORDER BY t0.FID ) FIDENTITYID '
IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[T_PLAN_PLANPLMRPT]') AND type IN ('U'))
BEGIN
DELETE FROM T_PLAN_PLANPLMRPT WHERE FRECORDDATE = @FRECORDYEAR AND FRECORDMONTH = @FRECORDMONTH
END
DECLARE @SQL VARCHAR(2000)
SET @sql = '
SELECT *,'+@FRECORDDATE+' AS FRECORDDATE ,'+@FRECORDYEAR+' AS FRECORDYEAR ,'+@FRECORDMONTH+' AS FRECORDMONTH
INTO T_PLAN_PLANPLMRPT FROM '+@TableName
EXECUTE(@sql)
execute(N'drop table'+ @TableName)
END

View File

@@ -0,0 +1,38 @@
SELECT
--A.FID
--,AE.FENTRYID
--,AE.FSALEORDERNO
--,AE.FSRCBILLID
--,AE.FSRCBILLENTRYID
--,AE.FSRCBILLENTRYSEQ
--,AE.FSRCBILLTYPE
--,AE.FSALEORDERID
--,AE_A.FREQSRC
--,AE_A.FCREATETYPE
--,AE_A.FSTATUS --6<EFBFBD><EFBFBD><EFBFBD>ѽ
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>
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
GROUP BY
AE.FSRCBILLNO
,AE.FMATERIALID
,AE.FSALEORDERENTRYID
,AE.FSALEORDERENTRYSEQ