天大药业

This commit is contained in:
PastSaid
2024-01-02 10:44:59 +08:00
parent 876ebdd603
commit a8689c9ba0
20 changed files with 701 additions and 358 deletions

View File

@@ -28,7 +28,7 @@ CREATE TABLE [dbo].[T_MATERIAL_INVENTORY_MONTH_RECORD] (
[FMASTERID] int NULL,
[FMATERIALID] int NOT NULL,
[FNUMBER] nvarchar(80) COLLATE Chinese_PRC_CI_AS NOT NULL,
[FSTOCKQTY] decimal(23,10) NOT NULL,
[FSTOCKQTY] decimal(23,6) NOT NULL,
[FLOTYIELD] int not NULL,
[FPACKUNITCONVERRATIO] int not NULL,
[FPACKUNITID] int not NULL,

View File

@@ -4,7 +4,7 @@ GO
CREATE PROCEDURE PROC_INQUIRE_PLANPLMRPT
@TABLENAME VARCHAR(100)
,@SEQFLD VARCHAR(200)
,@SEQFLD varchar(100)
,@YEAR INT
,@MONTH INT
,@DAY INT
@@ -28,7 +28,8 @@ BEGIN
SET @sql = '
select
t0.*
,'+@SeqFld+'
,2 AS FDECIMALS
,'+@SEQFLD+'
into '+ @TableName +' From #TMPMPS t0 '
EXECUTE(@sql)

View File

@@ -16,11 +16,8 @@ CREATE PROCEDURE PROC_TMP_INQUIRE_PLANPLMRPT
AS
BEGIN
SELECT
t0.FID
,t0.FBILLNO
,t0E.FMATERIALID
,t0E.FENTRYID
,t0E.FSEQ
ROW_NUMBER() OVER(ORDER BY t0.FMATERIALID) AS FID
,t0.FMATERIALID
,t2.FNUMBER
,t2_L.FNAME
,t2_L.FSPECIFICATION
@@ -49,84 +46,98 @@ BEGIN
,t4.FPACKUNITCONVERRATIO -- '<27><>װ<EFBFBD><D7B0><EFBFBD><EFBFBD>'
,t4.FPACKUNITID -- '<27><>λ'
,t6_L.FNAME AS FPACKUNITNAME
,dbo.PackageValConver(t0E.M01,t4.FPACKUNITCONVERRATIO) as M01
,dbo.PackageValConver(t0E.S01,t4.FPACKUNITCONVERRATIO) as S01
,dbo.PackageValConver(t0E.S02,t4.FPACKUNITCONVERRATIO) as S02
,dbo.PackageValConver(t0E.S03,t4.FPACKUNITCONVERRATIO) as S03
,dbo.PackageValConver(ISNULL(t3.FFINISHQTY,0) - ISNULL(t3.FSTOCKINQUASELQTY,0) ,t4.FPACKUNITCONVERRATIO) AS InProductionQty --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,dbo.PackageValConver(t0.M01,t4.FPACKUNITCONVERRATIO) as M01
,dbo.PackageValConver(t0.S01,t4.FPACKUNITCONVERRATIO) as S01
,dbo.PackageValConver(t0.S02,t4.FPACKUNITCONVERRATIO) as S02
,dbo.PackageValConver(t0.S03,t4.FPACKUNITCONVERRATIO) as S03
,dbo.PackageValConver(ISNULL(t0.FFINISHQTY,0) - ISNULL(t0.FSTOCKINQUASELQTY,0) ,t4.FPACKUNITCONVERRATIO) AS InProductionQty --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,dbo.PackageValConver(ISNULL(t4.FSTOCKQTY,0),t4.FPACKUNITCONVERRATIO) AS InStockQty --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,dbo.PackageValConver((ISNULL(t3.FFINISHQTY,0) - ISNULL(t3.FSTOCKINQUASELQTY,0) + ISNULL(t4.FSTOCKQTY,0)),t4.FPACKUNITCONVERRATIO) AS TotalStockQty --<EFBFBD>ϼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,dbo.PackageValConver(t1.FOrderQty,t4.FLOTYIELD) AS OrderLotQty --<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,dbo.PackageValConver(t1.FFirmQty, t4.FPACKUNITCONVERRATIO) AS FirmLotQty --ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,dbo.ToDecimal2(t1.FFirmQty) FFirmQty --ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,@DAY AS FRECORDDAY
,@MONTH AS FRECORDMONTH
,@YEAR AS FRECORDYEAR
,dbo.PackageValConver((ISNULL(t0.FFINISHQTY,0) - ISNULL(t0.FSTOCKINQUASELQTY,0) + ISNULL(t4.FSTOCKQTY,0)),t4.FPACKUNITCONVERRATIO) AS TotalStockQty --<EFBFBD>ϼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,dbo.PackageValConver(t0.FOrderQty,t4.FLOTYIELD) AS OrderLotQty --<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,dbo.PackageValConver(t0.FFirmQty, t4.FPACKUNITCONVERRATIO) AS FirmLotQty --ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,dbo.ToDecimal2(t0.FFirmQty) FFirmQty --ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,t0.countM
,2 AS FDECIMALS
into #TMPMPS
FROM
T_PLN_FORECAST t0
LEFT JOIN T_PLN_FORECASTENTRY t0E ON t0.FID = t0E.FID
LEFT JOIN (
SELECT
t1.FMATERIALID
,t1.FCOMPUTERNO
,t1.FBILLNO
,t1_B.FSALEORDERENTRYID
,sum(t1.FFirmQty) FFirmQty
,sum(t1.FOrderQty) FOrderQty
FROM
T_PLN_PLANORDER t1
LEFT JOIN T_PLN_PLANORDER_B t1_B ON t1.FID = t1_B.FID
WHERE t1.FDATASOURCE = 1 AND t1.FCREATEDATE BETWEEN @STARTDATE AND @ENDDATE
GROUP BY
t1.FCOMPUTERNO
,t1.FBILLNO
,t1.FMATERIALID
,t1_B.FSALEORDERENTRYID
) t1 ON 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 AND t2_L.FLOCALEID = @LCID)
LEFT JOIN T_BD_MATERIALSTOCK t2S ON t2S.FMATERIALID = t0E.FMATERIALID
LEFT JOIN (
SELECT
t0E.FSRCBILLNO
,t0E.FMATERIALID
,t0E.FSALEORDERENTRYID
,t0E.FSALEORDERENTRYSEQ
,SUM(t1.FFINISHQTY) AS FFINISHQTY --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,SUM(t1.FSTOCKINQUASELQTY) AS FSTOCKINQUASELQTY --<EFBFBD>ϸ<EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
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
t0E.FMATERIALID
,sum(t1.FFirmQty) AS FFirmQty
,sum(t1.FOrderQty) AS FOrderQty
,sum(t1.FFINISHQTY) AS FFINISHQTY
,sum(t1.FSTOCKINQUASELQTY) AS FSTOCKINQUASELQTY
,sum(M01) AS M01
,sum(S01) AS S01
,sum(S02) AS S02
,sum(S03) AS S03
,count(1) AS countM
FROM
T_PLN_FORECAST t0
LEFT JOIN T_PLN_FORECASTENTRY t0E ON t0.FID = t0E.FID
LEFT JOIN (
SELECT
t0.FBILLTYPE --50fa7c2eda7947b89fab5431bf25d48e <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> e52b554423704173b7306554708a8b05 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,t0E.FMOENTRYID
,t0E.FFINISHQTY
,t0E_A.FSTOCKINQUASELQTY
FROM
T_PRD_MORPT t0
LEFT JOIN T_PRD_MORPTENTRY t0E ON t0E.FID = t0.FID
LEFT JOIN T_PRD_MORPTENTRY_A t0E_A ON t0E_A.FID = t0.FID AND t0E_A.FENTRYID = t0E.FENTRYID
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
) t3 ON t3.FSALEORDERENTRYID = t0E.FENTRYID AND t3.FSALEORDERENTRYSEQ = t0E.FSEQ AND t3.FSRCBILLNO = t0.FBILLNO
LEFT JOIN T_MATERIAL_INVENTORY_MONTH_RECORD t4 ON (t4.FMATERIALID = t0E.FMATERIALID AND t4.RECORDYEAR = @YEAR AND t4.RECORDMONTH = @MONTH and t4.RECORDDAY = @DAY)
t1.FMATERIALID
,t1_B.FSALEORDERENTRYID
,t1_B.FSALEORDERENTRYSEQ
,t1_B.FSALEORDERID
,sum(t1.FFirmQty) AS FFirmQty
,sum(t1.FOrderQty) AS FOrderQty
,sum(t2.FFINISHQTY) AS FFINISHQTY
,sum(t2.FSTOCKINQUASELQTY) AS FSTOCKINQUASELQTY
FROM
T_PLN_PLANORDER t1
LEFT JOIN T_PLN_PLANORDER_B t1_B ON t1.FID = t1_B.FID
LEFT JOIN (
SELECT
t0E.FMATERIALID
,t0E_LK.FSID
,SUM(t1.FFINISHQTY) AS FFINISHQTY --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,SUM(t1.FSTOCKINQUASELQTY) AS FSTOCKINQUASELQTY --<EFBFBD>ϸ<EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
FROM
T_PRD_MO t0
LEFT JOIN T_PRD_MOENTRY t0E ON t0.FID = t0E.FID
LEFT JOIN T_PRD_MOENTRY_LK t0E_LK ON t0E_LK.FENTRYID = t0E.FENTRYID AND t0E_LK.FSTABLENAME = 'T_PLN_PLANORDER'
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
,t0E.FFINISHQTY
,t0E_A.FSTOCKINQUASELQTY
FROM
T_PRD_MORPT t0
LEFT JOIN T_PRD_MORPTENTRY t0E ON t0E.FID = t0.FID
LEFT JOIN T_PRD_MORPTENTRY_A t0E_A ON t0E_A.FID = t0.FID AND t0E_A.FENTRYID = t0E.FENTRYID
WHERE t0.FDOCUMENTSTATUS = 'C' AND t0.FBILLTYPE = '50fa7c2eda7947b89fab5431bf25d48e'
) t1 ON t1.FMOENTRYID = t0E.FENTRYID
WHERE
t0E.FSRCBILLTYPE ='PLN_PLANORDER'
AND t0E_A.FREQSRC = 2
AND t0E_A.FSTATUS <> 6
AND t0E.FSALEORDERENTRYID <> 0
GROUP BY
t0E.FMATERIALID
,t0E_LK.FSID
) t2 ON t2.FSID = t1.FID AND t2.FMATERIALID = t1.FMATERIALID
WHERE t1.FDATASOURCE = 1 AND t1_B.FDEMANDTYPE = 2
GROUP BY
t1.FMATERIALID
,t1_B.FSALEORDERENTRYID
,t1_B.FSALEORDERENTRYSEQ
,t1_B.FSALEORDERID
) t1 ON (t1.FMATERIALID = t0E.FMATERIALID AND t1.FSALEORDERID = t0.FID AND t0E.FENTRYID = t1.FSALEORDERENTRYID AND t1.FSALEORDERENTRYSEQ = t0E.FSEQ)
WHERE
t0.FDATE BETWEEN @STARTDATE AND @ENDDATE
GROUP BY
t0E.FMATERIALID
) t0
LEFT JOIN T_BD_MATERIAL t2 ON t2.FMATERIALID = t0.FMATERIALID
LEFT JOIN T_BD_MATERIAL_L t2_L ON (t2_L.FMATERIALID = t0.FMATERIALID AND t2_L.FLOCALEID = @LCID)
LEFT JOIN T_BD_MATERIALSTOCK t2S ON t2S.FMATERIALID = t0.FMATERIALID
LEFT JOIN T_MATERIAL_INVENTORY_MONTH_RECORD t4 ON (t4.FMATERIALID = t0.FMATERIALID AND t4.RECORDYEAR = @YEAR AND t4.RECORDMONTH = @MONTH and t4.RECORDDAY = @DAY)
LEFT JOIN T_BD_UNIT_L t5_L ON (t5_l.FUNITID = t2S.FSTOREUNITID AND t5_L.FLOCALEID = @LCID)
LEFT JOIN T_BD_UNIT_L t6_L ON (t6_l.FUNITID = t4.FPACKUNITID AND t6_L.FLOCALEID = @LCID)
WHERE
t0.FDATE BETWEEN @STARTDATE AND @ENDDATE
SELECT @HASID = COUNT(1) FROM #TMPMPS

View File

@@ -7,7 +7,7 @@ CREATE PROCEDURE PROC_ProductionSchedule
,@STARTDATE DATE
,@ENDDATE DATE
,@LCID INT
,@SEQFLD VARCHAR(200)
,@SEQFLD varchar(100)
,@YEAR INT
,@MONTH INT
,@DAY INT
@@ -15,12 +15,11 @@ CREATE PROCEDURE PROC_ProductionSchedule
AS
BEGIN
SET @HASID = 0
SELECT @DAY = (CASE WHEN LTRIM(RTRIM(T0.FPARAMETERS)) = '' THEN @DAY ELSE CAST(T0.FPARAMETERS AS INT) END) FROM T_BAS_SCHEDULEINFO T0 WHERE T0.FSCHEDULETYPEID = '657bf589f52174'
SELECT @DAY = (CASE WHEN LTRIM(RTRIM(T0.FPARAMETERS)) = '' THEN @DAY ELSE CAST(T0.FPARAMETERS AS INT) END) FROM T_BAS_SCHEDULEINFO T0 WHERE T0.FSCHEDULETYPEID = '658e1974b04f4f'
IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[T_PLAN_PLANPLMRPT]') AND TYPE IN ('U'))
BEGIN
EXEC PROC_INQUIRE_PLANPLMRPT @TABLENAME,@SEQFLD,@YEAR,@MONTH,@DAY, @HASID OUTPUT
EXEC PROC_INQUIRE_PLANPLMRPT @TABLENAME ,@SEQFLD,@YEAR,@MONTH,@DAY, @HASID OUTPUT
END
ELSE
BEGIN

View File

@@ -12,14 +12,13 @@ CREATE PROCEDURE PROC_SAVE_PLANPLMRPT_DATA
,@LCID int
AS
BEGIN
SELECT @DAY = (CASE WHEN LTRIM(RTRIM(T0.FPARAMETERS)) = '' THEN @DAY ELSE CAST(T0.FPARAMETERS AS INT) END) FROM T_BAS_SCHEDULEINFO T0 WHERE T0.FSCHEDULETYPEID = '657bf589f52174'
SELECT @DAY = (CASE WHEN LTRIM(RTRIM(T0.FPARAMETERS)) = '' THEN @DAY ELSE CAST(T0.FPARAMETERS AS INT) END) FROM T_BAS_SCHEDULEINFO T0 WHERE T0.FSCHEDULETYPEID = '658e1974b04f4f'
DELETE FROM T_PLAN_PLANPLMRPT WHERE (FRECORDYEAR = @YEAR AND FRECORDMONTH = @MONTH AND FRECORDDAY = @DAY)
INSERT INTO T_PLAN_PLANPLMRPT
SELECT
t0.FBILLNO
,t0E.FMATERIALID
,t0E.FENTRYID
,t0E.FSEQ
t0.FMATERIALID
,t2.FNUMBER
,t2_L.FNAME
,t2_L.FSPECIFICATION
@@ -43,87 +42,102 @@ BEGIN
,t2S.FSTOREUNITID --<EFBFBD><EFBFBD><EFBFBD>λ
,t5_L.FNAME AS FSTOREUNITNAME
,(dbo.PackageValConver(t2S.FSAFESTOCK, t4.FPACKUNITCONVERRATIO)) AS SAFESTOCKCOUNT
,CONCAT(CONVERT(VARCHAR,dbo.ToDecimal2(t4.FPACKUNITCONVERRATIO)),t5_L.FNAME ,'/' ,t6_L.FNAME) AS FPACKUNITCONVT --<EFBFBD><EFBFBD>װ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>
,CONCAT(CONVERT(VARCHAR,dbo.ToDecimal2(t4.FPACKUNITCONVERRATIO)),t5_L.FNAME ,'/' ,t6_L.FNAME) AS FPACKUNITCONVT
,t4.FLOTYIELD -- 'ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
,t4.FPACKUNITCONVERRATIO -- '<27><>װ<EFBFBD><D7B0><EFBFBD><EFBFBD>'
,t4.FPACKUNITID -- '<27><>λ'
,t6_L.FNAME AS FPACKUNITNAME
,dbo.PackageValConver(t0E.M01,t4.FPACKUNITCONVERRATIO) as M01 --<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,dbo.PackageValConver(t0E.S01,t4.FPACKUNITCONVERRATIO) as S01 --ǰһ<EFBFBD><EFBFBD>
,dbo.PackageValConver(t0E.S02,t4.FPACKUNITCONVERRATIO) as S02 --ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,dbo.PackageValConver(t0E.S03,t4.FPACKUNITCONVERRATIO) as S03 --ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,dbo.PackageValConver(ISNULL(t3.FFINISHQTY,0) - ISNULL(t3.FSTOCKINQUASELQTY,0) ,t4.FPACKUNITCONVERRATIO) AS InProductionQty --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,dbo.PackageValConver(t0.M01,t4.FPACKUNITCONVERRATIO) as M01
,dbo.PackageValConver(t0.S01,t4.FPACKUNITCONVERRATIO) as S01
,dbo.PackageValConver(t0.S02,t4.FPACKUNITCONVERRATIO) as S02
,dbo.PackageValConver(t0.S03,t4.FPACKUNITCONVERRATIO) as S03
,dbo.PackageValConver(ISNULL(t0.FFINISHQTY,0) - ISNULL(t0.FSTOCKINQUASELQTY,0) ,t4.FPACKUNITCONVERRATIO) AS InProductionQty --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,dbo.PackageValConver(ISNULL(t4.FSTOCKQTY,0),t4.FPACKUNITCONVERRATIO) AS InStockQty --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,dbo.PackageValConver((ISNULL(t3.FFINISHQTY,0) - ISNULL(t3.FSTOCKINQUASELQTY,0) + ISNULL(t4.FSTOCKQTY,0)),t4.FPACKUNITCONVERRATIO) AS TotalStockQty --<EFBFBD>ϼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,dbo.PackageValConver(t1.FOrderQty,t4.FLOTYIELD) AS OrderLotQty --<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,dbo.PackageValConver(t1.FFirmQty, t4.FPACKUNITCONVERRATIO) AS FirmLotQty --ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,dbo.ToDecimal2(t1.FFirmQty) FFirmQty --ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,dbo.PackageValConver((ISNULL(t0.FFINISHQTY,0) - ISNULL(t0.FSTOCKINQUASELQTY,0) + ISNULL(t4.FSTOCKQTY,0)),t4.FPACKUNITCONVERRATIO) AS TotalStockQty --<EFBFBD>ϼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,dbo.PackageValConver(ISNULL(t0.FOrderQty,0),t4.FPACKUNITCONVERRATIO) AS OrderLotQty --<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,dbo.PackageValConver(ISNULL(t0.FFirmQty,0), t4.FPACKUNITCONVERRATIO) AS FirmLotQty --ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,dbo.ToDecimal2(ISNULL(t0.FFirmQty,0)) FFirmQty --ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,@DAY AS FRECORDDAY
,@MONTH AS FRECORDMONTH
,@YEAR AS FRECORDYEAR
,t0.countM
FROM
T_PLN_FORECAST t0
LEFT JOIN T_PLN_FORECASTENTRY t0E ON t0.FID = t0E.FID
LEFT JOIN (
SELECT
t1.FMATERIALID
,t1.FCOMPUTERNO
,t1.FBILLNO
,t1_B.FSALEORDERENTRYID
,sum(t1.FFirmQty) FFirmQty
,sum(t1.FOrderQty) FOrderQty
FROM
T_PLN_PLANORDER t1
LEFT JOIN T_PLN_PLANORDER_B t1_B ON t1.FID = t1_B.FID
WHERE t1.FDATASOURCE = 1 AND t1.FCREATEDATE BETWEEN @STARTDATE AND @ENDDATE
GROUP BY
t1.FCOMPUTERNO
,t1.FBILLNO
,t1.FMATERIALID
,t1_B.FSALEORDERENTRYID
) t1 ON 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 AND t2_L.FLOCALEID = @LCID)
LEFT JOIN T_BD_MATERIALSTOCK t2S ON t2S.FMATERIALID = t0E.FMATERIALID
LEFT JOIN (
SELECT
t0E.FSRCBILLNO
,t0E.FMATERIALID
,t0E.FSALEORDERENTRYID
,t0E.FSALEORDERENTRYSEQ
,SUM(t1.FFINISHQTY) AS FFINISHQTY --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,SUM(t1.FSTOCKINQUASELQTY) AS FSTOCKINQUASELQTY --<EFBFBD>ϸ<EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
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
t0E.FMATERIALID
,sum(t1.FFirmQty) AS FFirmQty
,sum(t1.FOrderQty) AS FOrderQty
,sum(t1.FFINISHQTY) AS FFINISHQTY
,sum(t1.FSTOCKINQUASELQTY) AS FSTOCKINQUASELQTY
,sum(M01) AS M01
,sum(S01) AS S01
,sum(S02) AS S02
,sum(S03) AS S03
,count(1) AS countM
FROM
T_PLN_FORECAST t0
LEFT JOIN T_PLN_FORECASTENTRY t0E ON t0.FID = t0E.FID
LEFT JOIN (
SELECT
t0.FBILLTYPE --50fa7c2eda7947b89fab5431bf25d48e <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> e52b554423704173b7306554708a8b05 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,t0E.FMOENTRYID
,t0E.FFINISHQTY
,t0E_A.FSTOCKINQUASELQTY
FROM
T_PRD_MORPT t0
LEFT JOIN T_PRD_MORPTENTRY t0E ON t0E.FID = t0.FID
LEFT JOIN T_PRD_MORPTENTRY_A t0E_A ON t0E_A.FID = t0.FID AND t0E_A.FENTRYID = t0E.FENTRYID
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
) t3 ON t3.FSALEORDERENTRYID = t0E.FENTRYID AND t3.FSALEORDERENTRYSEQ = t0E.FSEQ AND t3.FSRCBILLNO = t0.FBILLNO
LEFT JOIN T_MATERIAL_INVENTORY_MONTH_RECORD t4 ON (t4.FMATERIALID = t0E.FMATERIALID AND t4.RECORDYEAR = @YEAR AND t4.RECORDMONTH = @MONTH and t4.RECORDDAY = @DAY)
t1.FMATERIALID
,t1_B.FSALEORDERENTRYID
,t1_B.FSALEORDERENTRYSEQ
,t1_B.FSALEORDERID
,sum(t1.FFirmQty) AS FFirmQty
,sum(t1.FOrderQty) AS FOrderQty
,sum(t2.FFINISHQTY) AS FFINISHQTY
,sum(t2.FSTOCKINQUASELQTY) AS FSTOCKINQUASELQTY
FROM
T_PLN_PLANORDER t1
LEFT JOIN T_PLN_PLANORDER_B t1_B ON t1.FID = t1_B.FID
LEFT JOIN (
SELECT
t0E.FMATERIALID
,t0E_LK.FSID
,SUM(t1.FFINISHQTY) AS FFINISHQTY --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,SUM(t1.FSTOCKINQUASELQTY) AS FSTOCKINQUASELQTY --<EFBFBD>ϸ<EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
FROM
T_PRD_MO t0
LEFT JOIN T_PRD_MOENTRY t0E ON t0.FID = t0E.FID
LEFT JOIN T_PRD_MOENTRY_LK t0E_LK ON t0E_LK.FENTRYID = t0E.FENTRYID AND t0E_LK.FSTABLENAME = 'T_PLN_PLANORDER'
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
,t0E.FFINISHQTY
,t0E_A.FSTOCKINQUASELQTY
FROM
T_PRD_MORPT t0
LEFT JOIN T_PRD_MORPTENTRY t0E ON t0E.FID = t0.FID
LEFT JOIN T_PRD_MORPTENTRY_A t0E_A ON t0E_A.FID = t0.FID AND t0E_A.FENTRYID = t0E.FENTRYID
WHERE t0.FDOCUMENTSTATUS = 'C' AND t0.FBILLTYPE = '50fa7c2eda7947b89fab5431bf25d48e'
) t1 ON t1.FMOENTRYID = t0E.FENTRYID
WHERE
t0E.FSRCBILLTYPE ='PLN_PLANORDER'
AND t0E_A.FREQSRC = 2
AND t0E_A.FSTATUS <> 6
AND t0E.FSALEORDERENTRYID <> 0
GROUP BY
t0E.FMATERIALID
,t0E_LK.FSID
) t2 ON t2.FSID = t1.FID AND t2.FMATERIALID = t1.FMATERIALID
WHERE t1.FDATASOURCE = 1 AND t1_B.FDEMANDTYPE = 2
GROUP BY
t1.FMATERIALID
,t1_B.FSALEORDERENTRYID
,t1_B.FSALEORDERENTRYSEQ
,t1_B.FSALEORDERID
) t1 ON (t1.FMATERIALID = t0E.FMATERIALID AND t1.FSALEORDERID = t0.FID AND t0E.FENTRYID = t1.FSALEORDERENTRYID AND t1.FSALEORDERENTRYSEQ = t0E.FSEQ)
WHERE
t0.FDATE BETWEEN @STARTDATE AND @ENDDATE
GROUP BY
t0E.FMATERIALID
) t0
LEFT JOIN T_BD_MATERIAL t2 ON t2.FMATERIALID = t0.FMATERIALID
LEFT JOIN T_BD_MATERIAL_L t2_L ON (t2_L.FMATERIALID = t0.FMATERIALID AND t2_L.FLOCALEID = @LCID)
LEFT JOIN T_BD_MATERIALSTOCK t2S ON t2S.FMATERIALID = t0.FMATERIALID
LEFT JOIN T_MATERIAL_INVENTORY_MONTH_RECORD t4 ON (t4.FMATERIALID = t0.FMATERIALID AND t4.RECORDYEAR = @YEAR AND t4.RECORDMONTH = @MONTH and t4.RECORDDAY = @DAY)
LEFT JOIN T_BD_UNIT_L t5_L ON (t5_l.FUNITID = t2S.FSTOREUNITID AND t5_L.FLOCALEID = @LCID)
LEFT JOIN T_BD_UNIT_L t6_L ON (t6_l.FUNITID = t4.FPACKUNITID AND t6_L.FLOCALEID = @LCID)
WHERE
t0.FDATE BETWEEN @STARTDATE AND @ENDDATE
END

View File

@@ -26,7 +26,7 @@ BEGIN
,@DAY AS RECORDDAY
FROM
T_BD_MATERIAL T0
LEFT JOIN T_BD_MATERIALPRODUCE T0P ON T0P.FMATERIALID = T0.FMATERIALID
LEFT JOIN T_BD_MATERIALPRODUCE T0P ON T0P.FMATERIALID = T0.FMATERIALID
LEFT JOIN (
SELECT
T1.FMATERIALID

View File

@@ -12,7 +12,7 @@
Target Server Version : 15002080
File Encoding : 65001
Date: 29/12/2023 01:50:37
Date: 30/12/2023 03:59:37
*/
@@ -24,38 +24,36 @@ IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[T_
GO
CREATE TABLE [dbo].[T_PLAN_PLANPLMRPT] (
[FID] int NOT NULL PRIMARY KEY IDENTITY(100000,1),
[FBILLNO] varchar(80) COLLATE Chinese_PRC_CI_AS NULL,
[FMATERIALID] int NULL,
[FENTRYID] int NULL,
[FSEQ] int NULL,
[FNUMBER] nvarchar(80) COLLATE Chinese_PRC_CI_AS NULL,
[FNAME] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL,
[FSPECIFICATION] nvarchar(510) COLLATE Chinese_PRC_CI_AS NULL,
[FID] int IDENTITY(100000,1) NOT NULL,
[FMATERIALID] int DEFAULT 0 NOT NULL,
[FNUMBER] varchar(80) COLLATE Chinese_PRC_CI_AS NULL,
[FNAME] varchar(100) COLLATE Chinese_PRC_CI_AS NULL,
[FSPECIFICATION] varchar(100) COLLATE Chinese_PRC_CI_AS NULL,
[SHELFLIFE] varchar(50) COLLATE Chinese_PRC_CI_AS NULL,
[StandardLot] varchar(200) COLLATE Chinese_PRC_CI_AS NOT NULL,
[SAFESTOCK] decimal(23,2) NULL,
[FSTOREUNITID] int NULL,
[FSTOREUNITNAME] nvarchar(80) COLLATE Chinese_PRC_CI_AS NULL,
[SAFESTOCKCOUNT] decimal(23,2) NULL,
[FPACKUNITCONVT] nvarchar(200) COLLATE Chinese_PRC_CI_AS NOT NULL,
[FLOTYIELD] int NULL,
[FPACKUNITCONVERRATIO] int NULL,
[FPACKUNITID] int NULL,
[FPACKUNITNAME] nvarchar(80) COLLATE Chinese_PRC_CI_AS NULL,
[M01] decimal(23,2) NULL,
[S01] decimal(23,2) NULL,
[S02] decimal(23,2) NULL,
[S03] decimal(23,2) NULL,
[InProductionQty] decimal(23,2) NULL,
[InStockQty] decimal(23,2) NULL,
[TotalStockQty] decimal(23,2) NULL,
[OrderLotQty] decimal(23,2) NULL,
[FirmLotQty] decimal(23,2) NULL,
[FFirmQty] decimal(23,2) NULL,
[FRECORDDAY] int null,
[FRECORDMONTH] int null,
[FRECORDYEAR] int null
[StandardLot] varchar(100) COLLATE Chinese_PRC_CI_AS NULL,
[SAFESTOCK] decimal(23,2) DEFAULT 0 NOT NULL,
[FSTOREUNITID] int DEFAULT 0 NOT NULL,
[FSTOREUNITNAME] varchar(80) COLLATE Chinese_PRC_CI_AS NULL,
[SAFESTOCKCOUNT] decimal(23,6) DEFAULT 0 NOT NULL,
[FPACKUNITCONVT] varchar(100) COLLATE Chinese_PRC_CI_AS NULL,
[FLOTYIELD] decimal(23,6) DEFAULT 0 NOT NULL,
[FPACKUNITCONVERRATIO] decimal(23,6) DEFAULT 0 NOT NULL,
[FPACKUNITID] int DEFAULT 0 NOT NULL,
[FPACKUNITNAME] varchar(80) COLLATE Chinese_PRC_CI_AS NULL,
[M01] decimal(23,6) DEFAULT 0 NOT NULL,
[S01] decimal(23,6) DEFAULT 0 NOT NULL,
[S02] decimal(23,6) DEFAULT 0 NOT NULL,
[S03] decimal(23,6) DEFAULT 0 NOT NULL,
[InProductionQty] decimal(23,6) DEFAULT 0 NOT NULL,
[InStockQty] decimal(23,6) DEFAULT 0 NOT NULL,
[TotalStockQty] decimal(23,6) DEFAULT 0 NOT NULL,
[OrderLotQty] decimal(23,6) DEFAULT 0 NOT NULL,
[FirmLotQty] decimal(23,6) DEFAULT 0 NOT NULL,
[FFirmQty] decimal(23,6) DEFAULT 0 NOT NULL,
[FRECORDDAY] int DEFAULT 0 NOT NULL,
[FRECORDMONTH] int DEFAULT 0 NOT NULL,
[FRECORDYEAR] int DEFAULT 0 NOT NULL,
[countM] int DEFAULT 0 NOT NULL
)
GO

View File

@@ -1,9 +1,9 @@
CREATE FUNCTION PackageValConver(@cnvNumber decimal(23,6) ,@coefficient int)
RETURNS decimal(23,6) --<EFBFBD><EFBFBD><EFBFBD>ط<EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
alter FUNCTION PackageValConver(@cnvNumber decimal(23,6) ,@coefficient int)
RETURNS decimal(23,2) --<EFBFBD><EFBFBD><EFBFBD>ط<EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
as
BEGIN
declare @result decimal(23,6)
select @result = (CASE @coefficient
select @result = (CASE isnull(@coefficient,0)
WHEN 0
THEN @cnvNumber ELSE (@cnvNumber/@coefficient)
END)