[易飛]包材Forcast四周滾動需求
【背景】整理整頓, 倉庫最大的庫容佔用在於封裝材料, 特別是紙箱,托盤,泡沫片,封裝管等,價值不高, 但佔用面積比較大。
【解決方案】
1. 此類材料, 不走LRP請購即不在合約評審時下請購單。
2. 補貨將按庫存補貨點補貨,補貨點庫存, 初步將設定為3天平均用 量。物控一,三,五定期跑補貨報表。
3. 採購按補貨請購單的數量通知進貨。即我們的採購訂單就是供應商的進貨通知單。
因我們包材種類比較多,需求波動也比較大, 為方便供應商提前備他們的原材料, 及供應商建一定的安全存放庫存, 這邊會和IT小龔溝通一下, 專門這對此類材料開發滾動1個月的需求報表給採購, 由採購轉供應商備料和備成品。
要壓縮此類材料庫存, 關鍵在於供應商要有一定的備料庫存, 我們的補貨點是基於平均用量來算, 不排除個別時間段, 實際用量會超過平均用量比較多造成緊急進料, 請採購提前和供應商探討備料的可行性。
-- ============================================= -- Author: <David Gong> -- Create date: <2015-12-22> -- Modify by: -- Description: <forcast for purchase> -- ============================================= ALTER PROC [dbo].[UP_ForcastForPur]asdeclare @NEEDAFTER BIT --需求日期後的需求是否納入計算:1->是;0->否declare @now as char(8), @wkdate1 as char(8), @wkdate2 as char(8), @wkdate3 as char(8), @wkdate4 as char(8)set @NEEDAFTER=1set @now=convert(char(8),getdate(),112)set @wkdate1=convert(char(8),dateadd(week,1,getdate()),112)set @wkdate2=convert(char(8),dateadd(week,2,getdate()),112)set @wkdate3=convert(char(8),dateadd(week,3,getdate()),112) set @wkdate4=convert(char(8),dateadd(week,4,getdate()),112);with A --計算預計領用需求as(select TB003 品號,ISNULL(SUM(TB004-TB005)*ISNULL(MD004,1)/ISNULL(MD003,1),0) as 預計領用,TA009 as 領用日期 from MOCTA INNER JOIN MOCTB ON TA001=TB001 AND TA002=TB002 LEFT JOIN INVMD ON MD001=TB003 AND MD002=TB007 AND MD007='Y'WHERE UPPER(TA011)<>'Y' AND TB018='Y' AND LEFT(TB003,3)='312' AND TB015 >=@now AND TB015 <@wkdate4 --TB015<=(CASE @NEEDAFTER WHEN 1 THEN '99991231' ELSE @NEEDDATE END) --AND TA009 >=@now AND TA009 <@wkdate4 group by TB003,TA009,MD004,MD003),B --計算安全存放庫存量與現有庫存量as(select MC001 品號,MC004 安全存放庫存,MC007 現有庫存 from INVMC WHERE MC002='01' and left(MC001,3)='312'), C --計算4周預計領用分布as(SELECT A.品號,預計領用, case when A.領用日期 >=@now AND A.領用日期 <@wkdate1 then '第一周' when A.領用日期 >=@wkdate1 AND A.領用日期 <@wkdate2 then '第二周' when A.領用日期 >=@wkdate2 AND A.領用日期 <@wkdate3 then '第三周' when A.領用日期 >=@wkdate3 AND A.領用日期 <@wkdate4 then '第四周' else '其他' END 所屬周FROM A )--計算結果select pvt.品號,MB002 AS 品名,MB003 AS 規格,MA002 AS 主供應商,isnull(pvt.第一周,0) as 第一周,isnull(pvt.第二周,0) as 第二周,isnull(pvt.第三周,0) as 第三周,isnull(pvt.第四周,0) as 第四周,isnull(pvt.第一周,0)+isnull(pvt.第二周,0)+isnull(pvt.第三周,0)+isnull(pvt.第四周,0) 總需求,case when (isnull(pvt.第一周,0)+isnull(pvt.第二周,0)+isnull(pvt.第三周,0)+isnull(pvt.第四周,0)-現有庫存)<=0 then 0 else (isnull(pvt.第一周,0)+isnull(pvt.第二周,0)+isnull(pvt.第三周,0)+isnull(pvt.第四周,0)-現有庫存) END as 缺料情況,現有庫存, CASE WHEN MB034='R' then '按補貨點' WHEN MB034='M' then '按MRP需求' WHEN MB034='L' then '按LRP需求' WHEN MB034='N' then '不需' else '按曆史銷售' END as 補貨政策, @now+'~'+@wkdate4 as 日期from ( select 品號,預計領用,所屬周 from C) p PIVOT(SUM(預計領用) FOR 所屬周 in([第一周],[第二周],[第三周],[第四周])) as pvt INNER JOIN INVMB ON pvt.品號=MB001 LEFT JOIN PURMA ON MB032=MA001 INNER JOIN B ON pvt.品號=B.品號order by pvt.品號