140 lines
3.8 KiB
MySQL
140 lines
3.8 KiB
MySQL
|
|
|
|||
|
|
IF EXISTS(SELECT * FROM SYS.PROCEDURES WHERE NAME='PROC_ProductionSchedule')
|
|||
|
|
DROP PROCEDURE dbo.PROC_ProductionSchedule;
|
|||
|
|
GO
|
|||
|
|
|
|||
|
|
CREATE PROCEDURE PROC_ProductionSchedule
|
|||
|
|
@TableName varchar(100)
|
|||
|
|
,@STARTDATE date
|
|||
|
|
,@ENDDATE date
|
|||
|
|
,@LCID int
|
|||
|
|
,@SeqFld varchar(200)
|
|||
|
|
AS
|
|||
|
|
begin
|
|||
|
|
|
|||
|
|
SELECT
|
|||
|
|
A.FID
|
|||
|
|
,A.FBILLNO
|
|||
|
|
,AE.FMATERIALID
|
|||
|
|
,AE.FENTRYID
|
|||
|
|
,C.FNUMBER
|
|||
|
|
,C_L.FNAME
|
|||
|
|
,C_L.FSPECIFICATION
|
|||
|
|
--,(CASE
|
|||
|
|
-- CS.FEXPUNIT
|
|||
|
|
-- WHEN 'Y' THEN
|
|||
|
|
-- CONVERT ( VARCHAR, CAST(CS.FEXPPERIOD AS INT) ) + '<27><>'
|
|||
|
|
-- WHEN 'M' THEN
|
|||
|
|
-- CONVERT ( VARCHAR, CAST(CS.FEXPPERIOD AS INT) /12 ) + '<27><>'
|
|||
|
|
-- WHEN 'D' THEN
|
|||
|
|
-- CONVERT ( VARCHAR, CAST(CS.FEXPPERIOD AS INT) /365) + '<27><>' ELSE ''
|
|||
|
|
--END) AS '<EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD>'
|
|||
|
|
,(CASE
|
|||
|
|
CS.FEXPUNIT
|
|||
|
|
WHEN 'Y' THEN
|
|||
|
|
CONVERT ( VARCHAR, CAST(CS.FEXPPERIOD AS INT) * 12 ) + '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
|||
|
|
WHEN 'M' THEN
|
|||
|
|
CONVERT ( VARCHAR, CAST(CS.FEXPPERIOD AS INT) ) + '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
|||
|
|
WHEN 'D' THEN
|
|||
|
|
CONVERT ( VARCHAR, CAST(CS.FEXPPERIOD AS INT) / 365 * 12) + '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>' ELSE ''
|
|||
|
|
END) AS 'ShelfLife'
|
|||
|
|
--,'' AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
|||
|
|
,CS.FSAFESTOCK --<EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
--,CS.FSTOREUNITID --<EFBFBD><EFBFBD><EFBFBD>浥λ
|
|||
|
|
--,CP.FLOTYIELD -- 'ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
|||
|
|
--,CP.FPACKUNITCONVERRATIO -- '<27><>װ<EFBFBD><D7B0><EFBFBD><EFBFBD>'
|
|||
|
|
--,CP.FPACKUNITCONVERRATIO -- '<27><>װ<EFBFBD><D7B0><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD>'
|
|||
|
|
--,CP.FPACKUNITID -- '<27><>λ'
|
|||
|
|
--,AE.M01
|
|||
|
|
--,AE.S01
|
|||
|
|
--,AE.S02
|
|||
|
|
--,AE.S03
|
|||
|
|
,'' AS 'M01'
|
|||
|
|
,'' AS 'S01'
|
|||
|
|
,'' AS 'S02'
|
|||
|
|
,'' AS 'S03'
|
|||
|
|
,B.FFirmQty
|
|||
|
|
,B.FOrderQty
|
|||
|
|
,B.FMATERIALID
|
|||
|
|
FROM
|
|||
|
|
(
|
|||
|
|
SELECT
|
|||
|
|
A.FMATERIALID
|
|||
|
|
,A_B.FSALEORDERENTRYID
|
|||
|
|
,SUM(A.FFirmQty) as 'FFirmQty'
|
|||
|
|
,SUM(A.FORDERQTY) as 'FOrderQty'
|
|||
|
|
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.FRELEASETYPE
|
|||
|
|
,A.FMATERIALID
|
|||
|
|
,A_B.FSALEORDERENTRYID
|
|||
|
|
) B
|
|||
|
|
--Ԥ<EFBFBD>ⵥ
|
|||
|
|
LEFT JOIN T_PLN_FORECASTENTRY AE ON B.FSALEORDERENTRYID = AE.FENTRYID
|
|||
|
|
LEFT JOIN T_PLN_FORECAST A ON A.FID = AE.FID
|
|||
|
|
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
|
|||
|
|
WHERE
|
|||
|
|
--A.FDATE BETWEEN '2023-12-01 00:00:00' AND '2023-12-31 23:59:59'
|
|||
|
|
A.FDATE BETWEEN @STARTDATE AND @ENDDATE
|
|||
|
|
|
|||
|
|
--<EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>λ
|
|||
|
|
alter table #TMPMPS add STOREUNITNAME varchar(10)
|
|||
|
|
update #TMPMPS set #TMPMPS.STOREUNITNAME = B_L.FNAME from T_BD_UNIT_L B_L where B_L.FUNITID = #TMPMPS.FSTOREUNITID
|
|||
|
|
|
|||
|
|
--alter table #TMPMPS add FPACKUNITNAME varchar(10)
|
|||
|
|
--update #TMPMPS set #TMPMPS.FPACKUNITNAME = B_L.FNAME from T_BD_UNIT_L B_L where B_L.FUNITID = #TMPMPS.FPACKUNITID
|
|||
|
|
|
|||
|
|
declare @sql varchar(2000)
|
|||
|
|
|
|||
|
|
set @sql = '
|
|||
|
|
select
|
|||
|
|
FID
|
|||
|
|
,FENTRYID
|
|||
|
|
,FBILLNO
|
|||
|
|
,FMATERIALID
|
|||
|
|
,FNAME
|
|||
|
|
,FSPECIFICATION
|
|||
|
|
,ShelfLife
|
|||
|
|
--,'''' --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
--,FLOTYIELD --ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
--,FPACKUNITCONVERRATIO -- <20><>װ<EFBFBD><D7B0><EFBFBD><EFBFBD>
|
|||
|
|
--,CAST(FPACKUNITCONVERRATIO AS VARCHAR)+STOREUNITNAME+''/''+FPACKUNITNAME as FPACKUNITCONVT --<EFBFBD><EFBFBD>װ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
--,FPACKUNITID --<EFBFBD><EFBFBD>λ
|
|||
|
|
,FSTOREUNITID
|
|||
|
|
,STOREUNITNAME
|
|||
|
|
,'''' AS --<EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<EFBFBD><EFBFBD>
|
|||
|
|
,CAST(FSAFESTOCK AS INT) AS SAFESTOCK
|
|||
|
|
,FSEQ
|
|||
|
|
,0 AS M01
|
|||
|
|
,0 AS S01
|
|||
|
|
,0 AS S02
|
|||
|
|
,0 AS S03
|
|||
|
|
--,(B.PlanQty / CP.FPACKUNITCONVERRATIO)AS ''ϵͳ<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>''
|
|||
|
|
--,(B.VerifyQty / CP.FPACKUNITCONVERRATIO) AS ''ȷ<EFBFBD>ϼƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>''
|
|||
|
|
,FFirmQty --ȷ<EFBFBD>ϼƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
,FFirmQty as FirmLotQty --ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
,FOrderQty as OrderLotQty --<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
,'+@SeqFld+'
|
|||
|
|
into '+ @TableName +' From #TMPMPS t0 '
|
|||
|
|
--select @sql
|
|||
|
|
EXECUTE(@sql)
|
|||
|
|
drop table #TMPMPS
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
go
|
|||
|
|
|
|||
|
|
--DECLARE @STARTDATE DATETIME ,@ENDDATE DATETIME
|
|||
|
|
--SELECT
|
|||
|
|
-- @STARTDATE = DATEADD(MONTH, DATEDIFF(MONTH, 0, '2023-12-15'), 0)
|
|||
|
|
-- ,@ENDDATE = DATEADD(MS,-3, DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(MONTH, 1, '2023-12-15')), 0))
|
|||
|
|
--DECLARE @LCID INT
|
|||
|
|
--SET @LCID = 2052
|
|||
|
|
|
|||
|
|
--EXEC PROC_ProductionSchedule @STARTDATE,@ENDDATE, @LCID;
|