save the tags and comments when converting the pool; debug and work on how to adjust mix as simply as possible
This commit is contained in:
parent
efba5e2a6d
commit
e87caff7f6
@ -59,7 +59,7 @@ repc AS (
|
||||
)
|
||||
--select * from si
|
||||
,logload AS (
|
||||
INSERT INTO rlarp.osm_log (doc) SELECT jsonb_build_object('user',current_user,'tag','baseline','type','build_pool','stamp',current_timestamp,'source','top level','message','don''t undo') RETURNING *
|
||||
INSERT INTO rlarp.osm_log (doc) SELECT jsonb_build_object('user',current_user,'tag','baseline','type','build_pool','stamp',current_timestamp,'source','top level','message','baseline') RETURNING *
|
||||
)
|
||||
--select * from logload
|
||||
,loadset AS (
|
||||
|
||||
@ -122,8 +122,8 @@ SELECT
|
||||
ship_date,
|
||||
ship_season,
|
||||
version,
|
||||
iter,
|
||||
tag
|
||||
tag iter,
|
||||
comment tag
|
||||
FROM
|
||||
rlarp.osm_pool
|
||||
WHERE
|
||||
|
||||
517
debug/debug.sql
Normal file
517
debug/debug.sql
Normal file
@ -0,0 +1,517 @@
|
||||
-- 4/5/2025, 11:58:08 AM: POST /new_basket (Add new part and/or customer.)
|
||||
-- 4/5/2025, 11:58:08 AM: SQL file: ./route_sql/new_basket.sql
|
||||
-- 4/5/2025, 11:58:08 AM: Building WHERE from {"scenario":{"segm":["Greenhouse","Nursery","Other","Sustainable",""],"quota_rep_descr":"13028 - RICHARD MEULE","shipto_group":"COSTA","majg_descr":"110 - 110 - INJECTION","part_group":"SQD05500","version":"b26","iter":["copy","plan","adj volume"]},"stamp":"2025-04-05 11:57:43","user":"Trowbridge, Paul","source":"adj","type":"new_basket","months":{"08 - Jan":{"amount":554784.528,"qty":5439064}},"newpart":"KEP015P0X56B316","basket":[{"part_descr":"KEP015P0X56B316","bill_cust_descr":"COST0017 - COSTA FARMS LLC-GOULDS FL","ship_cust_descr":"COST0007 - COSTA COLOR-MIAMI FL","mix":"5.82453157381491E-03"},{"part_descr":"KEP015P0X56B316PYMLI","bill_cust_descr":"COST0017 - COSTA FARMS LLC-GOULDS FL","ship_cust_descr":"COST0007 - COSTA COLOR-MIAMI FL","mix":"5.82453157381491E-03"},{"part_descr":"KEP015P0X19B316","bill_cust_descr":"COST0017 - COSTA FARMS LLC-GOULDS FL","ship_cust_descr":"COST0007 - COSTA COLOR-MIAMI FL","mix":"1.16490631476298E-02"},{"part_descr":"KEP015P0X19B316PYMGL","bill_cust_descr":"COST0017 - COSTA FARMS LLC-GOULDS FL","ship_cust_descr":"COST0007 - COSTA COLOR-MIAMI FL","mix":"1.16490631476298E-02"},{"part_descr":"KET10P15G18B030","bill_cust_descr":"COST0017 - COSTA FARMS LLC-GOULDS FL","ship_cust_descr":"COST0007 - COSTA COLOR-MIAMI FL","mix":"2.23714962721527E-03"},{"part_descr":"KEP010P0X19B524","bill_cust_descr":"COST0017 - COSTA FARMS LLC-GOULDS FL","ship_cust_descr":"COST0007 - COSTA COLOR-MIAMI FL","mix":"6.74586656821835E-02"},{"part_descr":"KEP010P0X19B262PYMLE","bill_cust_descr":"COST0017 - COSTA FARMS LLC-GOULDS FL","ship_cust_descr":"COST0007 - COSTA COLOR-MIAMI FL","mix":"6.74586656821835E-02"},{"part_descr":"KEP010P0X19B524","bill_cust_descr":"COST0017 - COSTA FARMS LLC-GOULDS FL","ship_cust_descr":"COST0007 - COSTA COLOR-MIAMI FL","mix":0.375841137372166},{"part_descr":"KEP010P0X19B262PYMLE","bill_cust_descr":"COST0017 - COSTA FARMS LLC-GOULDS FL","ship_cust_descr":"COST0007 - COSTA COLOR-MIAMI FL","mix":0.375841137372166},{"part_descr":"KET12P10A10B027","bill_cust_descr":"COST0017 - COSTA FARMS LLC-GOULDS FL","ship_cust_descr":"COST0007 - COSTA COLOR-MIAMI FL","mix":0.036989452596991},{"part_descr":"KET10P15A10B030","bill_cust_descr":"COST0017 - COSTA FARMS LLC-GOULDS FL","ship_cust_descr":"COST0007 - COSTA COLOR-MIAMI FL","mix":"2.23714962721527E-03"},{"part_descr":"KET12P10G18B027","bill_cust_descr":"COST0017 - COSTA FARMS LLC-GOULDS FL","ship_cust_descr":"COST0007 - COSTA COLOR-MIAMI FL","mix":0.036989452596991}],"message":"quote mix","tag":"Keystone Incr","version":"1.10.1","username":"Trowbridge, Paul"}
|
||||
-- 4/5/2025, 11:58:08 AM: Returning segm IN ('Greenhouse','Nursery','Other','Sustainable','')
|
||||
-- AND quota_rep_descr = '13028 - RICHARD MEULE'
|
||||
-- AND shipto_group = 'COSTA'
|
||||
-- AND majg_descr = '110 - 110 - INJECTION'
|
||||
-- AND part_group = 'SQD05500'
|
||||
-- AND version = 'b26'
|
||||
-- AND iter IN ('copy','plan','adj volume')
|
||||
-- AND order_date >= least('2025-04-05 11:57:43'::date,'2021-06-01')
|
||||
-- 4/5/2025, 11:58:08 AM: Running query:
|
||||
WITH
|
||||
/*
|
||||
the volume must be expressed in terms of units, since that is what it will be scaling
|
||||
*/
|
||||
target AS (select $${"scenario":{"segm":["Greenhouse","Nursery","Other","Sustainable",""],"quota_rep_descr":"13028 - RICHARD MEULE","shipto_group":"COSTA","majg_descr":"110 - 110 - INJECTION","part_group":"SQD05500","version":"b26","iter":["copy","plan","adj volume"]},"stamp":"2025-04-05T15:58:08.504Z","user":"Trowbridge, Paul","source":"adj","type":"new_basket","months":{"08 - Jan":{"amount":554784.528,"qty":5439064}},"newpart":"KEP015P0X56B316","basket":[{"part_descr":"KEP015P0X56B316","bill_cust_descr":"COST0017 - COSTA FARMS LLC-GOULDS FL","ship_cust_descr":"COST0007 - COSTA COLOR-MIAMI FL","mix":"5.82453157381491E-03"},{"part_descr":"KEP015P0X56B316PYMLI","bill_cust_descr":"COST0017 - COSTA FARMS LLC-GOULDS FL","ship_cust_descr":"COST0007 - COSTA COLOR-MIAMI FL","mix":"5.82453157381491E-03"},{"part_descr":"KEP015P0X19B316","bill_cust_descr":"COST0017 - COSTA FARMS LLC-GOULDS FL","ship_cust_descr":"COST0007 - COSTA COLOR-MIAMI FL","mix":"1.16490631476298E-02"},{"part_descr":"KEP015P0X19B316PYMGL","bill_cust_descr":"COST0017 - COSTA FARMS LLC-GOULDS FL","ship_cust_descr":"COST0007 - COSTA COLOR-MIAMI FL","mix":"1.16490631476298E-02"},{"part_descr":"KET10P15G18B030","bill_cust_descr":"COST0017 - COSTA FARMS LLC-GOULDS FL","ship_cust_descr":"COST0007 - COSTA COLOR-MIAMI FL","mix":"2.23714962721527E-03"},{"part_descr":"KEP010P0X19B524","bill_cust_descr":"COST0017 - COSTA FARMS LLC-GOULDS FL","ship_cust_descr":"COST0007 - COSTA COLOR-MIAMI FL","mix":"6.74586656821835E-02"},{"part_descr":"KEP010P0X19B262PYMLE","bill_cust_descr":"COST0017 - COSTA FARMS LLC-GOULDS FL","ship_cust_descr":"COST0007 - COSTA COLOR-MIAMI FL","mix":"6.74586656821835E-02"},{"part_descr":"KEP010P0X19B524","bill_cust_descr":"COST0017 - COSTA FARMS LLC-GOULDS FL","ship_cust_descr":"COST0007 - COSTA COLOR-MIAMI FL","mix":0.375841137372166},{"part_descr":"KEP010P0X19B262PYMLE","bill_cust_descr":"COST0017 - COSTA FARMS LLC-GOULDS FL","ship_cust_descr":"COST0007 - COSTA COLOR-MIAMI FL","mix":0.375841137372166},{"part_descr":"KET12P10A10B027","bill_cust_descr":"COST0017 - COSTA FARMS LLC-GOULDS FL","ship_cust_descr":"COST0007 - COSTA COLOR-MIAMI FL","mix":0.036989452596991},{"part_descr":"KET10P15A10B030","bill_cust_descr":"COST0017 - COSTA FARMS LLC-GOULDS FL","ship_cust_descr":"COST0007 - COSTA COLOR-MIAMI FL","mix":"2.23714962721527E-03"},{"part_descr":"KET12P10G18B027","bill_cust_descr":"COST0017 - COSTA FARMS LLC-GOULDS FL","ship_cust_descr":"COST0007 - COSTA COLOR-MIAMI FL","mix":0.036989452596991}],"message":"quote mix","tag":"Keystone Incr","version":"1.10.1","username":"Trowbridge, Paul"}$$::json def)
|
||||
-- select 'target', * from target
|
||||
--
|
||||
,GLD AS (
|
||||
SELECT
|
||||
N1COMP COMP
|
||||
,N1CCYY FSYR
|
||||
,KPMAXP PERDS
|
||||
,N1FSPP PERD
|
||||
,to_char(N1FSYP,'FM0000') FSPR
|
||||
,N1SD01 SDAT
|
||||
,N1ED01 EDAT
|
||||
,daterange(n1sd01, n1ed01,'[]') drange
|
||||
,to_char(N1ED01,'yymm') CAPR
|
||||
,N1ED01 - N1SD01 +1 NDAYS
|
||||
,CASE WHEN EXTRACT(MONTH FROM N1ED01) >= 6 THEN EXTRACT(YEAR FROM N1ED01) + 1 ELSE EXTRACT(YEAR FROM N1ED01) END SSYR
|
||||
,to_char(CASE WHEN EXTRACT(MONTH FROM N1ED01) >= 6 THEN EXTRACT(MONTH FROM N1ED01) -5 ELSE EXTRACT(MONTH FROM N1ED01) +7 END,'FM00') SSPR
|
||||
,to_char(CASE WHEN EXTRACT(MONTH FROM N1ED01) >= 6 THEN EXTRACT(MONTH FROM N1ED01) -5 ELSE EXTRACT(MONTH FROM N1ED01) +7 END,'FM00') || ' - '|| TO_CHAR(n1ed01,'FMMon') SORTMO
|
||||
FROM
|
||||
LGDAT.GLDATREF
|
||||
INNER JOIN LGDAT.GLDATE ON
|
||||
KPCOMP = N1COMP AND
|
||||
KPCCYY = N1CCYY
|
||||
WHERE
|
||||
N1COMP = 93
|
||||
--AND DIGITS(N1FSYP) = '1901'
|
||||
)
|
||||
-- select 'GLD', * from GLD
|
||||
--
|
||||
,mseq AS (
|
||||
SELECT * FROM
|
||||
(
|
||||
VALUES
|
||||
('01 - Jun',1,6,-1)
|
||||
,('02 - Jul',2,7,-1)
|
||||
,('03 - Aug',3,8,-1)
|
||||
,('04 - Sep',4,9,-1)
|
||||
,('05 - Oct',5,10,-1)
|
||||
,('06 - Nov',6,11,-1)
|
||||
,('07 - Dec',7,12,-1)
|
||||
,('08 - Jan',8,1,0)
|
||||
,('09 - Feb',9,2,0)
|
||||
,('10 - Mar',10,3,0)
|
||||
,('11 - Apr',11,4,0)
|
||||
,('12 - May',12,5,0)
|
||||
) x(m,s,cal,yr)
|
||||
)
|
||||
-- select 'mseq', * from mseq
|
||||
--
|
||||
,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)
|
||||
)
|
||||
-- select 'seg', * from seg
|
||||
--
|
||||
,copr AS (
|
||||
SELECT
|
||||
LTRIM(RTRIM(A9)) AS COMP,
|
||||
A30 AS DESCR,
|
||||
SUBSTR(C.A249,242,2) CURR,
|
||||
SUBSTR(C.A249,32,4) AS GL,
|
||||
SUBSTR(C.A249,190,4) AS AR,
|
||||
SUBSTR(C.A249,182,4) AS AP,
|
||||
SUBSTR(C.A249,198,4) AS FA,
|
||||
SUBSTR(C.A249,238,4) AS IC ,
|
||||
SUBSTR(D.A249,9,5) CONS_FUNC
|
||||
FROM
|
||||
LGDAT.CODE
|
||||
LEFT OUTER JOIN LGDAT.NAME C ON
|
||||
'C0000'||LTRIM(RTRIM(A9)) = C.A7
|
||||
LEFT OUTER JOIN LGDAT.NAME D ON
|
||||
'D0000'||LTRIM(RTRIM(A9)) = D.A7
|
||||
WHERE
|
||||
A2 = 'AA' OR A2 IS NULL
|
||||
)
|
||||
-- select 'copr', * from copr
|
||||
--
|
||||
,alldates AS (
|
||||
SELECT
|
||||
promo
|
||||
,terms
|
||||
,r_currency
|
||||
,order_month
|
||||
,mseq.s seq
|
||||
,order_date
|
||||
,request_date
|
||||
,ship_date
|
||||
,sum(value_usd) value_usd
|
||||
FROM
|
||||
rlarp.osm_pool
|
||||
LEFT OUTER JOIN mseq ON
|
||||
mseq.m = order_month
|
||||
WHERE
|
||||
-----------------scenario----------------------------
|
||||
segm IN ('Greenhouse','Nursery','Other','Sustainable','')
|
||||
AND quota_rep_descr = '13028 - RICHARD MEULE'
|
||||
AND shipto_group = 'COSTA'
|
||||
AND majg_descr = '110 - 110 - INJECTION'
|
||||
AND part_group = 'SQD05500'
|
||||
AND version = 'b26'
|
||||
AND iter IN ('copy','plan','adj volume')
|
||||
AND order_date >= least('2025-04-05 11:57:43'::date,'2021-06-01')
|
||||
--probably dont want to include adjustments that have blown away volume and good sources of dating info
|
||||
-----------------additional params-------------------
|
||||
AND calc_status||flag <> 'CLOSEDREMAINDER' --exclude short ships when building order adjustments
|
||||
AND order_date <= ship_date
|
||||
GROUP BY
|
||||
promo
|
||||
,terms
|
||||
,r_currency
|
||||
,order_month
|
||||
,mseq.s
|
||||
,order_date
|
||||
,request_date
|
||||
,ship_date
|
||||
-- HAVING
|
||||
-- sum(value_usd) <> 0
|
||||
)
|
||||
-- select 'alldates', * from alldates
|
||||
--
|
||||
,dom AS (
|
||||
SELECT
|
||||
extract(day FROM order_date) DOM
|
||||
,sum(value_usd) value_usd
|
||||
FROM
|
||||
alldates
|
||||
GROUP BY
|
||||
extract(day FROM order_date)
|
||||
)
|
||||
-- select 'dom', * from dom
|
||||
--
|
||||
,mmix AS (
|
||||
SELECT
|
||||
to_char(order_date,'Mon') _month
|
||||
,seq
|
||||
,promo
|
||||
,terms
|
||||
,(SELECT r_currency FROM alldates GROUP BY r_currency ORDER BY SUM(value_usd) DESC LIMIT 1) r_currency
|
||||
--should terms be included here?
|
||||
,sum(extract(day from order_date)*value_usd) dom_wa
|
||||
--,request_date-order_date rlag
|
||||
,sum((request_date-order_date)*(value_usd)) rlag_wa
|
||||
--,ship_date - request_date slag
|
||||
,sum((ship_date - request_date)*(value_usd)) slag_wa
|
||||
,COALESCE(nullif(sum(value_usd),0),1) value_usd
|
||||
FROM
|
||||
alldates
|
||||
GROUP BY
|
||||
to_char(order_date,'Mon')
|
||||
,seq
|
||||
,promo
|
||||
,terms
|
||||
--,extract(day from order_date)
|
||||
--,request_date-order_date
|
||||
--,ship_date - request_date
|
||||
)
|
||||
-- select 'mmix', * from mmix
|
||||
--
|
||||
,targm AS (
|
||||
SELECT
|
||||
je.key as month
|
||||
,r.amount
|
||||
,r.qty
|
||||
,s
|
||||
,cal
|
||||
,yr
|
||||
FROM
|
||||
target
|
||||
JOIN LATERAL json_each(def->'months') je ON true
|
||||
JOIN LATERAL json_to_record(je.value) as r (amount numeric, qty numeric) ON TRUE
|
||||
LEFT OUTER JOIN mseq ON
|
||||
mseq.m = je.key
|
||||
)
|
||||
--select 'targm', * from targm
|
||||
--
|
||||
,mmixp AS (
|
||||
SELECT
|
||||
_month
|
||||
,seq
|
||||
,promo
|
||||
,terms
|
||||
,r_currency
|
||||
,greatest(least(round((dom_wa/value_usd)::numeric,0)::int,28),1) odom
|
||||
,round((rlag_wa/value_usd)::numeric,0)::int rlag
|
||||
,round((slag_wa/value_usd)::numeric,0)::int slag
|
||||
,value_usd/sum(value_usd) over (partition by _month) momix
|
||||
--,value_usd/SUM(value_usd) over (PARTITION BY _month) vperc
|
||||
FROM
|
||||
mmix
|
||||
)
|
||||
--select 'mmixp', * from mmixp
|
||||
--
|
||||
,mxm AS (
|
||||
SELECT
|
||||
t.month
|
||||
,t.amount
|
||||
,t.qty
|
||||
,t.s
|
||||
,t.cal
|
||||
,t.yr
|
||||
,x.momix
|
||||
,x.odom
|
||||
,x.rlag
|
||||
,x.slag
|
||||
,x.promo
|
||||
,x.terms
|
||||
,x.r_currency
|
||||
FROM
|
||||
targm t
|
||||
LEFT OUTER JOIN mmixp x ON
|
||||
x._month = (
|
||||
SELECT
|
||||
_month
|
||||
FROM
|
||||
mmixp
|
||||
ORDER BY
|
||||
abs(seq - t.s) ASC
|
||||
LIMIT 1
|
||||
)
|
||||
)
|
||||
SELECT 'mxm', * FROM mxm
|
||||
|
||||
--
|
||||
,basemix AS (
|
||||
SELECT
|
||||
sd.fspr
|
||||
,mxm.promo
|
||||
,mxm.terms
|
||||
,mxm.r_currency
|
||||
,jr.bill_cust_descr
|
||||
,jr.ship_cust_descr
|
||||
,rtrim((regexp_match(jr.part_descr,'(.*?)(?= - |$)'))[1]) part
|
||||
,jr.part_descr
|
||||
,substring(jr.part_descr,1,8) part_group
|
||||
,mxm.qty*mxm.momix*jr.mix units
|
||||
,mxm.amount*mxm.momix*jr.mix value_usd --assume that target dollars are USD
|
||||
,make_date(mxm.yr + 2026,mxm.cal,mxm.odom) order_date
|
||||
,od.sortmo order_month
|
||||
,od.ssyr order_season
|
||||
,make_date(mxm.yr + 2026,mxm.cal,mxm.odom) + rlag request_date
|
||||
,rd.sortmo request_month
|
||||
,rd.ssyr request_season
|
||||
,make_date(mxm.yr + 2026,mxm.cal,mxm.odom) + rlag + slag ship_date
|
||||
,sd.sortmo ship_month
|
||||
,sd.ssyr ship_season
|
||||
,jr.mix
|
||||
FROM
|
||||
target
|
||||
JOIN LATERAL json_array_elements(def->'basket') as ae(e) ON true
|
||||
JOIN LATERAL json_to_record(ae.e) as jr(part_descr text, bill_cust_descr text, ship_cust_descr text, mix numeric) ON true
|
||||
CROSS JOIN mxm
|
||||
LEFT OUTER JOIN gld od ON
|
||||
od.drange @> make_date(mxm.yr + 2026,mxm.cal,mxm.odom)
|
||||
LEFT OUTER JOIN gld rd ON
|
||||
rd.drange @> (make_date(mxm.yr + 2026,mxm.cal,mxm.odom) + rlag)
|
||||
LEFT OUTER JOIN gld sd ON
|
||||
sd.drange @> (make_date(mxm.yr + 2026,mxm.cal,mxm.odom) + rlag + slag)
|
||||
)
|
||||
-- SELECT 'basemix', * FROM basemix
|
||||
--
|
||||
,log AS (
|
||||
INSERT INTO rlarp.osm_log(doc) SELECT $${"scenario":{"segm":["Greenhouse","Nursery","Other","Sustainable",""],"quota_rep_descr":"13028 - RICHARD MEULE","shipto_group":"COSTA","majg_descr":"110 - 110 - INJECTION","part_group":"SQD05500","version":"b26","iter":["copy","plan","adj volume"]},"stamp":"2025-04-05T15:58:08.504Z","user":"Trowbridge, Paul","source":"adj","type":"new_basket","months":{"08 - Jan":{"amount":554784.528,"qty":5439064}},"newpart":"KEP015P0X56B316","basket":[{"part_descr":"KEP015P0X56B316","bill_cust_descr":"COST0017 - COSTA FARMS LLC-GOULDS FL","ship_cust_descr":"COST0007 - COSTA COLOR-MIAMI FL","mix":"5.82453157381491E-03"},{"part_descr":"KEP015P0X56B316PYMLI","bill_cust_descr":"COST0017 - COSTA FARMS LLC-GOULDS FL","ship_cust_descr":"COST0007 - COSTA COLOR-MIAMI FL","mix":"5.82453157381491E-03"},{"part_descr":"KEP015P0X19B316","bill_cust_descr":"COST0017 - COSTA FARMS LLC-GOULDS FL","ship_cust_descr":"COST0007 - COSTA COLOR-MIAMI FL","mix":"1.16490631476298E-02"},{"part_descr":"KEP015P0X19B316PYMGL","bill_cust_descr":"COST0017 - COSTA FARMS LLC-GOULDS FL","ship_cust_descr":"COST0007 - COSTA COLOR-MIAMI FL","mix":"1.16490631476298E-02"},{"part_descr":"KET10P15G18B030","bill_cust_descr":"COST0017 - COSTA FARMS LLC-GOULDS FL","ship_cust_descr":"COST0007 - COSTA COLOR-MIAMI FL","mix":"2.23714962721527E-03"},{"part_descr":"KEP010P0X19B524","bill_cust_descr":"COST0017 - COSTA FARMS LLC-GOULDS FL","ship_cust_descr":"COST0007 - COSTA COLOR-MIAMI FL","mix":"6.74586656821835E-02"},{"part_descr":"KEP010P0X19B262PYMLE","bill_cust_descr":"COST0017 - COSTA FARMS LLC-GOULDS FL","ship_cust_descr":"COST0007 - COSTA COLOR-MIAMI FL","mix":"6.74586656821835E-02"},{"part_descr":"KEP010P0X19B524","bill_cust_descr":"COST0017 - COSTA FARMS LLC-GOULDS FL","ship_cust_descr":"COST0007 - COSTA COLOR-MIAMI FL","mix":0.375841137372166},{"part_descr":"KEP010P0X19B262PYMLE","bill_cust_descr":"COST0017 - COSTA FARMS LLC-GOULDS FL","ship_cust_descr":"COST0007 - COSTA COLOR-MIAMI FL","mix":0.375841137372166},{"part_descr":"KET12P10A10B027","bill_cust_descr":"COST0017 - COSTA FARMS LLC-GOULDS FL","ship_cust_descr":"COST0007 - COSTA COLOR-MIAMI FL","mix":0.036989452596991},{"part_descr":"KET10P15A10B030","bill_cust_descr":"COST0017 - COSTA FARMS LLC-GOULDS FL","ship_cust_descr":"COST0007 - COSTA COLOR-MIAMI FL","mix":"2.23714962721527E-03"},{"part_descr":"KET12P10G18B027","bill_cust_descr":"COST0017 - COSTA FARMS LLC-GOULDS FL","ship_cust_descr":"COST0007 - COSTA COLOR-MIAMI FL","mix":0.036989452596991}],"message":"quote mix","tag":"Keystone Incr","version":"1.10.1","username":"Trowbridge, Paul"}$$::jsonb doc RETURNING *
|
||||
)
|
||||
-- select 'log', * from log
|
||||
--
|
||||
,final AS (
|
||||
SELECT
|
||||
b.fspr
|
||||
,i.dplt plnt
|
||||
,b.promo
|
||||
,COALESCE(b.terms,bc.bvterm) terms
|
||||
,b.bill_cust_descr
|
||||
,b.ship_cust_descr
|
||||
,(SELECT max(rcode) FROM rlarp.repc WHERE repp ~ (log.doc->'scenario'->>'quota_rep_descr')) dsm
|
||||
,log.doc->'scenario'->>'quota_rep_descr' quota_rep_descr
|
||||
,(SELECT max(director) FROM rlarp.repc WHERE repp ~ (log.doc->'scenario'->>'quota_rep_descr')) director
|
||||
,COALESCE(CASE bc.BVADR6 WHEN '' THEN bc.BVNAME ELSE bc.BVADR6 END,b.bill_cust_descr) billto_group
|
||||
,COALESCE(CASE sc.BVADR6 WHEN '' THEN sc.BVNAME ELSE sc.BVADR6 END,b.ship_cust_descr) shipto_group
|
||||
,CASE SUBSTRING(bc.bvclas,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.bvclas,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.bvclas,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.bvclas,2,3)
|
||||
WHEN 'DIS' THEN 'WHS'
|
||||
ELSE CASE SUBSTRING(sc.bvclas,1,1) WHEN 'R' THEN 'RDP' ELSE 'DRP' END
|
||||
END
|
||||
WHEN 'MAS' THEN 'RMN'
|
||||
WHEN 'NAT' THEN 'RMN'
|
||||
ELSE CASE SUBSTRING(sc.bvclas,1,1) WHEN 'R' THEN 'RDI' ELSE 'DIR' END
|
||||
END chansub
|
||||
,null::text chan_retail
|
||||
,b.part
|
||||
,b.part_descr
|
||||
,b.part_group
|
||||
,i.branding
|
||||
,i.majg||' - '||i.majgd majg_descr
|
||||
,i.ming||' - '||i.mingd ming_descr
|
||||
,i.majs||' - '||i.majsd majs_descr
|
||||
,i.mins||' - '||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
|
||||
,copr.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((COALESCE(im.cgstcs,ip.chstcs, ir.y0stcs)*b.units)::numeric ,2) cost_loc
|
||||
,round((COALESCE(im.cgstcs,ip.chstcs, ir.y0stcs)*b.units*cx.rate)::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"
|
||||
,'adj'||' volume' 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
|
||||
FROM
|
||||
basemix b
|
||||
CROSS JOIN log
|
||||
LEFT OUTER JOIN "CMS.CUSLG".itemm i ON
|
||||
i.item = b.part
|
||||
LEFT OUTER JOIN SEG ON
|
||||
SEG.GLEC = i.glec -- AND
|
||||
-- SEG.SEGM <> 'Other'
|
||||
LEFT OUTER JOIN LGDAT.CUST BC ON
|
||||
BC.BVCUST = rtrim(substring(b.bill_cust_descr,1,8))
|
||||
LEFT OUTER JOIN LGDAT.CUST SC ON
|
||||
SC.BVCUST = rtrim(substring(b.ship_cust_descr,1,8))
|
||||
LEFT OUTER JOIN rlarp.repc r ON
|
||||
r.rcode = CASE WHEN i.ming = 'B52' THEN 'PW' ELSE
|
||||
--if the gl expense code is 1RE use the retail rep assigned to the bill-to customer if available
|
||||
CASE WHEN COALESCE(seg.segm,'') = 'Retail' AND COALESCE((SELECT currep FROM lgpgm.usrcust where cucust = bc.bvcust),'') <> ''
|
||||
THEN
|
||||
(SELECT currep FROM lgpgm.usrcust where cucust = bc.bvcust)
|
||||
--default logic
|
||||
ELSE
|
||||
CASE SUBSTR(bc.bvclas,2,3)
|
||||
WHEN 'DIS' THEN sc.bvsalm
|
||||
ELSE bc.bvsalm
|
||||
END
|
||||
END
|
||||
END
|
||||
LEFT OUTER JOIN lgdat.icstm im ON
|
||||
im.cgpart = b.part AND
|
||||
im.cgplnt = i.dplt
|
||||
LEFT OUTER JOIN lgdat.icstp ip ON
|
||||
ip.chpart = b.part AND
|
||||
ip.chplnt = i.dplt
|
||||
LEFT OUTER JOIN lgdat.icstr ir ON
|
||||
ir.y0part = b.part AND
|
||||
ir.y0plnt = i.dplt
|
||||
LEFT OUTER JOIN lgdat.plnt ON
|
||||
yaplnt = i.dplt
|
||||
LEFT OUTER JOIN copr ON
|
||||
copr.comp = yacomp::text
|
||||
LEFT OUTER JOIN (select 'US' fcur, 1.0 rate UNION ALL select 'CA', 0.7409) cx ON
|
||||
-- cx.perd = '2412' AND
|
||||
-- cx.rtyp = 'MA' AND
|
||||
cx.fcur = copr.curr -- AND
|
||||
-- cx.tcur = 'US'
|
||||
LEFT OUTER JOIN (select 'US' fcur, 1.0 rate UNION ALL select 'CA', 0.7409) rx ON
|
||||
-- rx.perd = '2412' AND
|
||||
-- rx.rtyp = 'MA' AND
|
||||
rx.fcur = COALESCE(bc.bvcurr,b.r_currency) -- AND
|
||||
-- rx.tcur = 'US'
|
||||
)
|
||||
-- select 'final', * from final
|
||||
--
|
||||
, ins AS (
|
||||
INSERT INTO rlarp.osm_pool SELECT * FROM final RETURNING *
|
||||
)
|
||||
,insagg AS (
|
||||
SELECT
|
||||
---------customer info-----------------
|
||||
bill_cust_descr
|
||||
,billto_group
|
||||
,ship_cust_descr
|
||||
,shipto_group
|
||||
,quota_rep_descr
|
||||
,director
|
||||
,segm
|
||||
,substance
|
||||
,chan
|
||||
,chansub
|
||||
---------product info------------------
|
||||
,majg_descr
|
||||
,ming_descr
|
||||
,majs_descr
|
||||
,mins_descr
|
||||
--,brand
|
||||
--,part_family
|
||||
,part_group
|
||||
,branding
|
||||
--,color
|
||||
,part_descr
|
||||
---------dates-------------------------
|
||||
,order_season
|
||||
,order_month
|
||||
,ship_season
|
||||
,ship_month
|
||||
,request_season
|
||||
,request_month
|
||||
,promo
|
||||
,version
|
||||
,iter
|
||||
,logid
|
||||
,tag
|
||||
,comment
|
||||
--------values-------------------------
|
||||
,sum(value_loc) value_loc
|
||||
,sum(value_usd) value_usd
|
||||
,sum(cost_loc) cost_loc
|
||||
,sum(cost_usd) cost_usd
|
||||
,sum(units) units
|
||||
,sum(pounds) pounds
|
||||
FROM
|
||||
ins
|
||||
GROUP BY
|
||||
---------customer info-----------------
|
||||
bill_cust_descr
|
||||
,billto_group
|
||||
,ship_cust_descr
|
||||
,shipto_group
|
||||
,quota_rep_descr
|
||||
,director
|
||||
,segm
|
||||
,substance
|
||||
,chan
|
||||
,chansub
|
||||
---------product info------------------
|
||||
,majg_descr
|
||||
,ming_descr
|
||||
,majs_descr
|
||||
,mins_descr
|
||||
--,brand
|
||||
--,part_family
|
||||
,part_group
|
||||
,branding
|
||||
--,color
|
||||
,part_descr
|
||||
---------dates-------------------------
|
||||
,order_season
|
||||
,order_month
|
||||
,ship_season
|
||||
,ship_month
|
||||
,request_season
|
||||
,request_month
|
||||
,promo
|
||||
,version
|
||||
,iter
|
||||
,logid
|
||||
,tag
|
||||
,comment
|
||||
)
|
||||
-- select 'insagg', * from insagg
|
||||
--
|
||||
SELECT json_agg(row_to_json(insagg)) x from insagg
|
||||
110
debug/req.json
Normal file
110
debug/req.json
Normal file
@ -0,0 +1,110 @@
|
||||
{
|
||||
"scenario": {
|
||||
"segm": [
|
||||
"Greenhouse",
|
||||
"Nursery",
|
||||
"Other",
|
||||
"Sustainable",
|
||||
""
|
||||
],
|
||||
"quota_rep_descr": "13028 - RICHARD MEULE",
|
||||
"shipto_group": "COSTA",
|
||||
"majg_descr": "110 - 110 - INJECTION",
|
||||
"part_group": "SQD05500",
|
||||
"version": "b26",
|
||||
"iter": [
|
||||
"copy",
|
||||
"plan",
|
||||
"adj volume"
|
||||
]
|
||||
},
|
||||
"stamp": "2025-04-05T15:58:08.504Z",
|
||||
"user": "Trowbridge, Paul",
|
||||
"source": "adj",
|
||||
"type": "new_basket",
|
||||
"months": {
|
||||
"08 - Jan": {
|
||||
"amount": 554784.528,
|
||||
"qty": 5439064
|
||||
}
|
||||
},
|
||||
"newpart": "KEP015P0X56B316",
|
||||
"basket": [
|
||||
{
|
||||
"part_descr": "KEP015P0X56B316",
|
||||
"bill_cust_descr": "COST0017 - COSTA FARMS LLC-GOULDS FL",
|
||||
"ship_cust_descr": "COST0007 - COSTA COLOR-MIAMI FL",
|
||||
"mix": "5.82453157381491E-03"
|
||||
},
|
||||
{
|
||||
"part_descr": "KEP015P0X56B316PYMLI",
|
||||
"bill_cust_descr": "COST0017 - COSTA FARMS LLC-GOULDS FL",
|
||||
"ship_cust_descr": "COST0007 - COSTA COLOR-MIAMI FL",
|
||||
"mix": "5.82453157381491E-03"
|
||||
},
|
||||
{
|
||||
"part_descr": "KEP015P0X19B316",
|
||||
"bill_cust_descr": "COST0017 - COSTA FARMS LLC-GOULDS FL",
|
||||
"ship_cust_descr": "COST0007 - COSTA COLOR-MIAMI FL",
|
||||
"mix": "1.16490631476298E-02"
|
||||
},
|
||||
{
|
||||
"part_descr": "KEP015P0X19B316PYMGL",
|
||||
"bill_cust_descr": "COST0017 - COSTA FARMS LLC-GOULDS FL",
|
||||
"ship_cust_descr": "COST0007 - COSTA COLOR-MIAMI FL",
|
||||
"mix": "1.16490631476298E-02"
|
||||
},
|
||||
{
|
||||
"part_descr": "KET10P15G18B030",
|
||||
"bill_cust_descr": "COST0017 - COSTA FARMS LLC-GOULDS FL",
|
||||
"ship_cust_descr": "COST0007 - COSTA COLOR-MIAMI FL",
|
||||
"mix": "2.23714962721527E-03"
|
||||
},
|
||||
{
|
||||
"part_descr": "KEP010P0X19B524",
|
||||
"bill_cust_descr": "COST0017 - COSTA FARMS LLC-GOULDS FL",
|
||||
"ship_cust_descr": "COST0007 - COSTA COLOR-MIAMI FL",
|
||||
"mix": "6.74586656821835E-02"
|
||||
},
|
||||
{
|
||||
"part_descr": "KEP010P0X19B262PYMLE",
|
||||
"bill_cust_descr": "COST0017 - COSTA FARMS LLC-GOULDS FL",
|
||||
"ship_cust_descr": "COST0007 - COSTA COLOR-MIAMI FL",
|
||||
"mix": "6.74586656821835E-02"
|
||||
},
|
||||
{
|
||||
"part_descr": "KEP010P0X19B524",
|
||||
"bill_cust_descr": "COST0017 - COSTA FARMS LLC-GOULDS FL",
|
||||
"ship_cust_descr": "COST0007 - COSTA COLOR-MIAMI FL",
|
||||
"mix": 0.375841137372166
|
||||
},
|
||||
{
|
||||
"part_descr": "KEP010P0X19B262PYMLE",
|
||||
"bill_cust_descr": "COST0017 - COSTA FARMS LLC-GOULDS FL",
|
||||
"ship_cust_descr": "COST0007 - COSTA COLOR-MIAMI FL",
|
||||
"mix": 0.375841137372166
|
||||
},
|
||||
{
|
||||
"part_descr": "KET12P10A10B027",
|
||||
"bill_cust_descr": "COST0017 - COSTA FARMS LLC-GOULDS FL",
|
||||
"ship_cust_descr": "COST0007 - COSTA COLOR-MIAMI FL",
|
||||
"mix": 0.036989452596991
|
||||
},
|
||||
{
|
||||
"part_descr": "KET10P15A10B030",
|
||||
"bill_cust_descr": "COST0017 - COSTA FARMS LLC-GOULDS FL",
|
||||
"ship_cust_descr": "COST0007 - COSTA COLOR-MIAMI FL",
|
||||
"mix": "2.23714962721527E-03"
|
||||
},
|
||||
{
|
||||
"part_descr": "KET12P10G18B027",
|
||||
"bill_cust_descr": "COST0017 - COSTA FARMS LLC-GOULDS FL",
|
||||
"ship_cust_descr": "COST0007 - COSTA COLOR-MIAMI FL",
|
||||
"mix": 0.036989452596991
|
||||
}
|
||||
],
|
||||
"message": "quote mix",
|
||||
"tag": "Keystone Incr",
|
||||
"version": "1.10.1",
|
||||
"username": "Trowbridge, Paul"
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user