include guidance logic
This commit is contained in:
parent
eaba629002
commit
f54081f69d
@ -5,6 +5,8 @@ pgrp AS (
|
||||
o.bill_dba
|
||||
,o.ship_dba
|
||||
,o.dsm
|
||||
,i.partgroup
|
||||
,i.pricegroup
|
||||
,o.part
|
||||
,o.odate
|
||||
,o.qtyord
|
||||
@ -31,6 +33,8 @@ pgrp AS (
|
||||
o.bill_dba
|
||||
,o.ship_dba
|
||||
,o.dsm
|
||||
,i.partgroup
|
||||
,i.pricegroup
|
||||
,o.part
|
||||
,o.odate
|
||||
,o.qtyord
|
||||
@ -70,7 +74,10 @@ pgrp AS (
|
||||
o.account
|
||||
,o.shipgrp
|
||||
,o.dsm
|
||||
,i.partgroup
|
||||
,i.pricegroup
|
||||
,o.part
|
||||
,o.glec
|
||||
,o.oseas
|
||||
-- ,o.odate
|
||||
,og.sortmo omon
|
||||
@ -88,15 +95,20 @@ pgrp AS (
|
||||
o.odate BETWEEN og.sdat and og.edat
|
||||
LEFT OUTER JOIN rlarp.gld sg ON
|
||||
o.sdate BETWEEN sg.sdat and sg.edat
|
||||
LEFT OUTER JOIN "CMS.CUSLG".itemm i ON
|
||||
i.item = o.part
|
||||
WHERE
|
||||
iter IN ('actuals','actuals_plug','copy')
|
||||
AND fs_line = '41010'
|
||||
AND substring(glec,1,1) <= '2'
|
||||
AND substring(o.glec,1,1) <= '2'
|
||||
GROUP BY
|
||||
o.account
|
||||
,o.shipgrp
|
||||
,o.dsm
|
||||
,i.partgroup
|
||||
,i.pricegroup
|
||||
,o.part
|
||||
,o.glec
|
||||
,o.oseas
|
||||
-- ,o.odate
|
||||
,og.sortmo
|
||||
@ -109,7 +121,11 @@ pgrp AS (
|
||||
grp.account
|
||||
,grp.shipgrp
|
||||
,grp.dsm
|
||||
,r.director
|
||||
,grp.partgroup
|
||||
,grp.pricegroup
|
||||
,grp.part
|
||||
-- ,grp.glec
|
||||
,grp.oseas
|
||||
,grp.omon
|
||||
-- ,grp.odate
|
||||
@ -127,6 +143,42 @@ pgrp AS (
|
||||
,seq.price
|
||||
,seq.avgprice
|
||||
,seq.pltq
|
||||
,ROUND(CASE WHEN seq.uselimits THEN
|
||||
CASE
|
||||
WHEN glec = '1NU' THEN
|
||||
--if more than 8/24 pallets, use floor
|
||||
CASE WHEN grp.qty >= 24*seq.pltq THEN seq.floor
|
||||
-- if more than a pallet use the target price
|
||||
ELSE CASE WHEN qtyord >= 8*seq.pltq THEN (seq.ceiling + seq.floor) / 2
|
||||
-- if more than a pallet use the target price
|
||||
ELSE CASE WHEN qtyord >= 2*seq.pltq THEN seq.ceiling
|
||||
-- if more than a pallet use the target price
|
||||
ELSE seq.ceiling * 1.05
|
||||
END END END
|
||||
ELSE
|
||||
CASE WHEN pricegroup ~ '(Hanger|Dish)' THEN
|
||||
--at least 1 pallets is lower limit
|
||||
CASE WHEN qtyord >= 01*seq.pltq THEN seq.floor
|
||||
--at least 2 pallets is mid range
|
||||
ELSE CASE WHEN qtyord >= 0.5*seq.pltq THEN (seq.ceiling + seq.floor) / 2
|
||||
--less than a pallet is upper + 15%
|
||||
ELSE seq.ceiling
|
||||
END END
|
||||
ELSE
|
||||
--at least 8 pallets is lower limit
|
||||
CASE WHEN qtyord >= 08*seq.pltq THEN seq.floor
|
||||
--at least 2 pallets is mid range
|
||||
ELSE CASE WHEN qtyord >= 2*seq.pltq THEN (seq.ceiling + seq.floor) / 2
|
||||
--at least 1 pallet is upper range
|
||||
ELSE CASE WHEN qtyord >= 1*seq.pltq THEN seq.ceiling
|
||||
--less than a pallet is upper + 15%
|
||||
ELSE seq.ceiling * 1.15
|
||||
END END END
|
||||
END
|
||||
END
|
||||
ELSE
|
||||
null
|
||||
END,5) guid
|
||||
FROM
|
||||
grp
|
||||
LEFT OUTER JOIN seq ON
|
||||
@ -134,3 +186,5 @@ pgrp AS (
|
||||
AND seq.bill_dba = grp.account
|
||||
AND seq.part = grp.part
|
||||
AND seq.rn = 1
|
||||
LEFT OUTER JOIN rlarp.repc r ON
|
||||
r.repp = grp.dsm
|
||||
|
||||
Loading…
Reference in New Issue
Block a user