353 lines
13 KiB
SQL
353 lines
13 KiB
SQL
WITH
|
|
customers AS (
|
|
SELECT shipgrp,dsm,pounds::numeric pounds FROM (VALUES
|
|
('AL PAR PEAT CO','10035 - MATTHEW STAAL','20000'),
|
|
('AMA PLASTICS','40040 - TINA PETTIGREW','10000'),
|
|
('AMERICAN FARMS','10039 - DUSTIN KUYKENDOLL','50000'),
|
|
('ARMSTRONG GROWERS','30035 - RODNEY RIOS','50000'),
|
|
('AUBIN NURSERIES LTD','40040 - TINA PETTIGREW','5000'),
|
|
('BRADFORD CO-OP STORAGE LTD','40040 - TINA PETTIGREW','5000'),
|
|
('BRADFORD GREENHOUSES','40040 - TINA PETTIGREW','50000'),
|
|
('CAL COLOR','30054 - JASON MOTTIN','15000'),
|
|
('CONROE GREENHOUSES INC','10041 - TAMARA RISKEN','13438'),
|
|
('CY GROWERS SUPPLIES LTD','40042 - TOM MORRIS','18710'),
|
|
('DAN & JERRYS GREENHOUSE','13027 - STEVE RUSTEBERG','50000'),
|
|
('DEVRY GREENHOUSES','40042 - TOM MORRIS','24957'),
|
|
('DREAM WITH COLORS','30035 - RODNEY RIOS','50000'),
|
|
('ENCHANTED GARDENS','10041 - TAMARA RISKEN','2396'),
|
|
('FREEMAN HERBS','40039 - DAVE BODO','20000'),
|
|
('GARDEN STATE GROWERS','10043 - CHERISSE GILSTROP','60000'),
|
|
('GREAT LAKES GREENHOUSES','13025 - JAMES REGER','2000'),
|
|
('GREEN LAKE NURSERY','10041 - TAMARA RISKEN','11218'),
|
|
('HALIFAX SEED CO INC','40040 - TINA PETTIGREW','5000'),
|
|
('HARTS NURSERY','30053 - SKYE SAWYER','15000'),
|
|
('HEARTLAND GROWERS','10048 - PHILIP BIEDENBACH','67000'),
|
|
('HJS WHOLESALE LTD','40040 - TINA PETTIGREW','10000'),
|
|
('HYDROGARDEN SUPPLY SERVICES','40040 - TINA PETTIGREW','10000'),
|
|
('IRRIGATION PLUS INC','40040 - TINA PETTIGREW','3000'),
|
|
('IWASAKI BROS INC','30053 - SKYE SAWYER','14000'),
|
|
('JEFFRIES NURSERIES','40040 - TINA PETTIGREW','5000'),
|
|
('JOHNSON GARDEN CENTER','10041 - TAMARA RISKEN','1240'),
|
|
('KAW VALLEY GREENHOUSES','10041 - TAMARA RISKEN','6100'),
|
|
('KAWAHARA NURSERY','30054 - JASON MOTTIN','25000'),
|
|
('LA FERME GROVER INC','40043 - JEFFREY SCHAEFER','4000'),
|
|
('LUCAS GREENHOUSE','10043 - CHERISSE GILSTROP','22500'),
|
|
('MARIA GARDENS','10048 - PHILIP BIEDENBACH','9000'),
|
|
('MARTINSON''S GARDEN WORKS','10049 - STEVEN STUPPIELLO','50000'),
|
|
('MEYERS FRUIT FARM','70011 - DNU-SUSAN MURTAUGH','20000'),
|
|
('NOEL WILSON INC','40043 - JEFFREY SCHAEFER','20000'),
|
|
('NUTRIEN AG SOLUTIONS','40042 - TOM MORRIS','8993'),
|
|
('OELSCHIG NURSERY INC','10040 - RYAN CHITWOOD','56924'),
|
|
('OLSONS GREENHOUSE GARDENS','12028 - JACOB WILKINSON','20000'),
|
|
('PACIFIC GROWER','30053 - SKYE SAWYER','88000'),
|
|
('PARKS BROTHERS FARMS','10041 - TAMARA RISKEN','10380'),
|
|
('PETERSON NURSERY LLC','10041 - TAMARA RISKEN','2396'),
|
|
('PINEAE GREENHOUSES & DIST INC','12028 - JACOB WILKINSON','50000'),
|
|
('PLEASANT VALLEY FARM INC','10041 - TAMARA RISKEN','54666'),
|
|
('PLEASANT VIEW GARDENS','13028 - RICHARD MEULE','28000'),
|
|
('RAINBOW GREENHOUSES','40042 - TOM MORRIS','7929'),
|
|
('REKKER GARDENS INC','40040 - TINA PETTIGREW','2500'),
|
|
('RICHARDSON BROS GREENHOUSE INC','13027 - STEVE RUSTEBERG','90000'),
|
|
('ROWE PLANT FARM','10041 - TAMARA RISKEN','4096'),
|
|
('SEDAN FLORAL','10041 - TAMARA RISKEN','27744'),
|
|
('SHERIDAN NURSERIES','40039 - DAVE BODO','18816'),
|
|
('SMITH GARDENS INC','30053 - SKYE SAWYER','44000'),
|
|
('STOKLEY NURSERY','10049 - STEVEN STUPPIELLO','80000'),
|
|
('TERIS SUPPLY SERVICES','40043 - JEFFREY SCHAEFER','12000'),
|
|
('TIDAL CREEK GROWERS','10043 - CHERISSE GILSTROP','20623'),
|
|
('UNCLE JOHN''S PLANT FARM','10048 - PHILIP BIEDENBACH','10000'),
|
|
('WELBY GARDENS','12028 - JACOB WILKINSON','4507')
|
|
) x(shipgrp,dsm,pounds)
|
|
)
|
|
,parts AS (
|
|
SELECT part,units::numeric units,price::numeric price,pounds::numeric pounds FROM (VALUES
|
|
('KEP010P0G18B524','43378',0.04,956.4849,0.02205),
|
|
('KET12P10G18B027','3615',0.54,1075.8963,0.29762),
|
|
('KEP010Q0G18B281','28919',0.072,1275.03871,0.04409),
|
|
('KET08Q11G18B019','3615',0.6785,914.595,0.253),
|
|
('KEP015P0G18B316','36149',0.05506,956.50254,0.02646),
|
|
('KET10P15G18B030','3615',0.5488,1075.8963,0.29762),
|
|
('KEP020Q0G18B170','28919',0.105,1912.70266,0.06614),
|
|
('KET08Q21G18B019','3615',0.9132,1753.3473,0.48502)
|
|
) x(part,units,price,pounds,weight)
|
|
)
|
|
,seg AS (
|
|
SELECT
|
|
x.GLEC glec
|
|
,x.SEGM segm
|
|
FROM
|
|
(
|
|
VALUES
|
|
('1SU','Sustainable'),
|
|
('1CU','Sustainable'),
|
|
('1GR','Greenhouse'),
|
|
('1NU','Nursery'),
|
|
('1RE','Retail'),
|
|
('2WI','Greenhouse'),
|
|
('3BM','Other'),
|
|
('3CO','Other'),
|
|
('3PE','Other'),
|
|
('3PP','Other'),
|
|
('4CO','Other'),
|
|
('4RA','Other'),
|
|
('9MI','Other'),
|
|
('9SA','Other'),
|
|
('9TO','Other')
|
|
) X(GLEC, SEGM)
|
|
)
|
|
,keystone AS (
|
|
select
|
|
c.shipgrp
|
|
,c.dsm
|
|
,c.pounds
|
|
,p.part
|
|
,p.units
|
|
,p.price
|
|
,p.pounds
|
|
,c.pounds/10000 scale
|
|
,round((c.pounds/10000)*p.units,0) fc_units
|
|
,round((c.pounds/10000)*p.units,0)*(p.pounds/p.units) fc_lbs
|
|
FROM
|
|
customers c
|
|
CROSS JOIN parts p
|
|
)
|
|
,alldates AS (
|
|
SELECT
|
|
bill_cust_descr
|
|
,ship_cust_descr
|
|
,shipto_group
|
|
,promo
|
|
,terms
|
|
,r_currency
|
|
-- ,order_month
|
|
-- ,mseq.s seq
|
|
,order_date
|
|
-- ,request_date
|
|
,ship_date
|
|
-- ,ship_month
|
|
-- ,sum(value_usd) value_usd_net
|
|
,sum(pounds) pounds_net
|
|
-- ,sum(value_usd) FILTER (WHERE iter IN ('copy','actuals','actuals_plug')) value_usd_baseline
|
|
,sum(pounds) FILTER (WHERE iter IN ('copy','actuals','actuals_plug')) pounds_baseline
|
|
FROM
|
|
rlarp.osm_pool
|
|
WHERE
|
|
shipto_group IN (select distinct shipgrp FROM customers)
|
|
-----------------scenario----------------------------
|
|
-- AND version IN ('b26')
|
|
AND order_season = 2026
|
|
-----------------additional params-------------------
|
|
AND calc_status||flag <> 'CLOSEDREMAINDER' --exclude short ships when building order adjustments
|
|
AND order_date <= ship_date
|
|
GROUP BY
|
|
bill_cust_descr
|
|
,ship_cust_descr
|
|
,shipto_group
|
|
,promo
|
|
,terms
|
|
,r_currency
|
|
-- ,order_month
|
|
-- ,mseq.s seq
|
|
,order_date
|
|
-- ,request_date
|
|
,ship_date
|
|
-- ,ship_month
|
|
-- HAVING
|
|
-- sum(value_usd) <> 0
|
|
)
|
|
,date_rank as (
|
|
SELECT
|
|
bill_cust_descr
|
|
,ship_cust_descr
|
|
,shipto_group
|
|
,promo
|
|
,terms
|
|
,r_currency
|
|
,order_date
|
|
,ship_date
|
|
,row_number() over (partition by shipto_group order by pounds_baseline desc) rn
|
|
,COALESCE(pounds_baseline ,pounds_net) pounds
|
|
-- ,CASE WHEN sum(pounds_net) OVER () = 0 THEN 0 ELSE round(pounds_net / sum(pounds_net) OVER (),5) END fc_mix
|
|
-- ,CASE WHEN sum(pounds_baseline) OVER () = 0 THEN 0 ELSE round(pounds_baseline / sum(pounds_baseline) OVER (),5) END baseline_mix
|
|
FROM
|
|
alldates
|
|
ORDER BY
|
|
order_date ASC
|
|
,ship_date ASC
|
|
)
|
|
,date_mix as (
|
|
SELECT
|
|
bill_cust_descr
|
|
,ship_cust_descr
|
|
,shipto_group
|
|
,promo
|
|
,terms
|
|
,r_currency
|
|
,order_date
|
|
,ship_date
|
|
,rn
|
|
,pounds/sum(pounds) over (partition by shipto_group) mix
|
|
-- ,CASE WHEN sum(pounds_net) OVER () = 0 THEN 0 ELSE round(pounds_net / sum(pounds_net) OVER (),5) END fc_mix
|
|
-- ,CASE WHEN sum(pounds_baseline) OVER () = 0 THEN 0 ELSE round(pounds_baseline / sum(pounds_baseline) OVER (),5) END baseline_mix
|
|
FROM
|
|
date_rank
|
|
WHERE
|
|
rn <= 3
|
|
ORDER BY
|
|
order_date ASC
|
|
,ship_date ASC
|
|
)
|
|
,combine AS (
|
|
SELECT
|
|
k.*
|
|
,d.*
|
|
,k.scale * d.mix factor
|
|
,d.mix * k.scale * k.fc_lbs split_pounds
|
|
,d.mix * k.scale * k.units split_units
|
|
FROM
|
|
keystone k
|
|
LEFT OUTER JOIN date_mix d ON
|
|
d.shipto_group = k.shipgrp
|
|
)
|
|
-- SELECT * FROM date_mix where shipto_group ~ 'SHERIDAN'
|
|
-- select * from combine
|
|
,basemix AS (
|
|
SELECT
|
|
od.fspr
|
|
,c.promo
|
|
,c.terms
|
|
,c.r_currency
|
|
,c.bill_cust_descr
|
|
,c.ship_cust_descr
|
|
,c.dsm quota_rep_descr
|
|
,c.part
|
|
,round(c.factor * c.units,0) units
|
|
,round(c.factor * c.fc_lbs,0) pounds
|
|
,round(c.factor * c.units,0)* c.price value_usd --assume that target dollars are USD
|
|
,c.order_date
|
|
,od.sortmo order_month
|
|
,od.ssyr order_season
|
|
,c.ship_date request_date
|
|
,sd.sortmo request_month
|
|
,sd.ssyr request_season
|
|
,c.ship_date
|
|
,sd.sortmo ship_month
|
|
,sd.ssyr ship_season
|
|
,c.factor
|
|
,c.split_pounds
|
|
FROM
|
|
combine c
|
|
LEFT OUTER JOIN rlarp.gld sd ON
|
|
c.ship_date <@ sd.drange
|
|
LEFT OUTER JOIN rlarp.gld od ON
|
|
c.order_date <@ od.drange
|
|
)
|
|
,log AS (
|
|
INSERT INTO rlarp.osm_log (doc) SELECT jsonb_build_object('user',current_user,'tag','Keystone Incr','type','Keystone Incr','stamp',current_timestamp,'source','top level','message','Keystone Incr') RETURNING *
|
|
)
|
|
,final AS (
|
|
SELECT
|
|
b.fspr
|
|
,i.dplt plnt
|
|
,b.promo
|
|
,b.terms
|
|
,b.bill_cust_descr
|
|
,b.ship_cust_descr
|
|
,r.rcode
|
|
,b.quota_rep_descr
|
|
,r.director
|
|
,bc.dba billto_group
|
|
,sc.dba shipto_group
|
|
,CASE SUBSTRING(bc.cclass,2,3)
|
|
--if the bill to class is ditsributor, then it's either warehouse or drop
|
|
WHEN 'DIS' THEN
|
|
--if the ship-to is a different name than the bill-to then it's drop, otherwise it's warehouse
|
|
CASE SUBSTRING(sc.cclass,2,3)
|
|
WHEN 'DIS' THEN 'WHS'
|
|
ELSE 'DRP'
|
|
END
|
|
--CASE WHEN RTRIM(SUBSTRING(LTRIM(SC.BVADR7)||SC.BVNAME,1,30)) = RTRIM(SUBSTRING(LTRIM(BC.BVADR7)||BC.BVNAME,1,30)) THEN 'DIS' ELSE 'DRP' END
|
|
--everything else does not involve a distributor and is considered direct
|
|
ELSE 'DIR'
|
|
END chan
|
|
,CASE SUBSTRING(bc.cclass,2,3)
|
|
WHEN 'DIS' THEN
|
|
--if the ship-to is a different name than the bill-to then it's drop, otherwise it's warehouse
|
|
CASE SUBSTRING(sc.cclass,2,3)
|
|
WHEN 'DIS' THEN 'WHS'
|
|
ELSE CASE SUBSTRING(sc.cclass,1,1) WHEN 'R' THEN 'RDP' ELSE 'DRP' END
|
|
END
|
|
WHEN 'MAS' THEN 'RMN'
|
|
WHEN 'NAT' THEN 'RMN'
|
|
ELSE CASE SUBSTRING(sc.cclass,1,1) WHEN 'R' THEN 'RDI' ELSE 'DIR' END
|
|
END chansub
|
|
,null::text chan_retail
|
|
,b.part
|
|
,b.part || ' - ' || i.descr
|
|
,i.partgroup
|
|
,i.branding
|
|
,i.majgd majg_descr
|
|
,i.mingd ming_descr
|
|
,i.majsd majs_descr
|
|
,i.minsd mins_descr
|
|
,seg.segm
|
|
,CASE WHEN i.majg = '610' THEN 'Fiber' ELSE 'Plastic' END substance
|
|
,'41010' fs_line --master data
|
|
,b.r_currency --history cust mix
|
|
,rx.rate r_rate --master data
|
|
,pl.curr c_currency --master data
|
|
,cx.rate c_rate --master data
|
|
,round(b.units ,2) units
|
|
,round((b.value_usd / COALESCE(rx.rate,1))::numeric ,2) value_loc --b.value is denominated in USD, need to apply currency to get to local, assume 1 if using a fake customer
|
|
,round(b.value_usd ,2) value_usd --b.value is already denominated in usd
|
|
,round((i.futstd*b.units)::numeric ,2) cost_loc
|
|
,round((i.futstdus*b.units)::numeric,2) cost_usd
|
|
,'CLOSED' calc_status
|
|
,'SHIPMENT' flag
|
|
,b.order_date
|
|
,b.order_month
|
|
,b.order_season
|
|
,b.request_date
|
|
,b.request_month
|
|
,b.request_season
|
|
,b.ship_date
|
|
,b.ship_month
|
|
,b.ship_season
|
|
,'b26' "version"
|
|
,'Keystone Incr' iter
|
|
,log.id
|
|
,COALESCE(log.doc->>'tag','') "tag"
|
|
,log.doc->>'message' "comment"
|
|
,log.doc->>'type' module
|
|
,round(b.units * i.nwht * CASE i.nwun WHEN 'KG' THEN 2.2046 ELSE 1 END, 2) pounds
|
|
-- ,i.nwht * CASE i.nwun WHEN 'KG' THEN 2.2046 ELSE 1 END weight
|
|
-- ,b.pounds ref_pounds
|
|
FROM
|
|
basemix b
|
|
CROSS JOIN log
|
|
LEFT OUTER JOIN rlarp.repc r ON
|
|
r.repp = b.quota_rep_descr
|
|
LEFT OUTER JOIN "CMS.CUSLG".itemm i ON
|
|
i.item = b.part
|
|
LEFT OUTER JOIN rlarp.cust bc ON
|
|
bc.code = rtrim(substring(b.bill_cust_descr,1,8))
|
|
LEFT OUTER JOIN rlarp.cust sc ON
|
|
sc.code = rtrim(substring(b.ship_cust_descr,1,8))
|
|
LEFT OUTER JOIN seg ON
|
|
seg.glec = i.glec
|
|
LEFT OUTER JOIN rlarp.plpr pl ON
|
|
pl.plnt = i.dplt
|
|
LEFT OUTER JOIN rlarp.ffcret cx ON
|
|
cx.perd = pl.gl AND
|
|
cx.rtyp = 'MA' AND
|
|
cx.fcur = pl.curr AND
|
|
cx.tcur = 'US'
|
|
LEFT OUTER JOIN rlarp.ffcret rx ON
|
|
rx.perd = pl.gl AND
|
|
rx.rtyp = 'MA' AND
|
|
rx.fcur = b.r_currency AND
|
|
rx.tcur = 'US'
|
|
)
|
|
INSERT INTO rlarp.osm_pool SELECT * FROM final;
|
|
-- select * from final
|