diff --git a/route_sql/addmonth_vupd.sql b/route_sql/addmonth_vupd.sql index e4c0559..8300395 100644 --- a/route_sql/addmonth_vupd.sql +++ b/route_sql/addmonth_vupd.sql @@ -1,4 +1,4 @@ -WITH +WITH /* the volume must be expressed in terms of units, since that is what it will be scaling */ @@ -55,7 +55,7 @@ target AS (select target_volume vincr, target_price pincr) testv ) ,GLD AS MATERIALIZED ( - SELECT + SELECT N1COMP COMP ,N1CCYY FSYR ,KPMAXP PERDS @@ -65,19 +65,19 @@ target AS (select target_volume vincr, target_price pincr) ,N1ED01 EDAT ,daterange(n1sd01, n1ed01,'[]') drange ,to_char(N1ED01,'yymm') CAPR - ,N1ED01 - N1SD01 +1 NDAYS + ,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 - FROM - LGDAT.GLDATREF - INNER JOIN LGDAT.GLDATE ON - KPCOMP = N1COMP AND + FROM + LGDAT.GLDATREF + INNER JOIN LGDAT.GLDATE ON + KPCOMP = N1COMP AND KPCCYY = N1CCYY WHERE N1COMP = 93 ) ,mseq AS ( - SELECT * FROM + SELECT * FROM ( VALUES ('01 - Jun',1,6,-1) @@ -95,7 +95,7 @@ target AS (select target_volume vincr, target_price pincr) ) x(m,s,cal,yr) ) ,alldates AS MATERIALIZED( - SELECT + SELECT promo ,terms ,order_month @@ -112,7 +112,7 @@ target AS (select target_volume vincr, target_price pincr) -----------------scenario---------------------------- where_clause -----------------additional params------------------- - AND CASE (SELECT flag FROM flagv) + AND CASE (SELECT flag FROM flagv) WHEN 'scale all' THEN true WHEN 'scale copy' THEN iter IN ('plan','diff','copy') WHEN 'scale new part' THEN module = 'new basket' @@ -177,13 +177,13 @@ target AS (select target_volume vincr, target_price pincr) mmix ) ,closest AS ( - SELECT + SELECT _month, targm.s, m - FROM - mmixp + FROM + mmixp CROSS JOIN targm - ORDER BY - abs(seq - targm.s) ASC + ORDER BY + abs(seq - targm.s) ASC LIMIT 1 ) ---------------------the role of basemix here is to get non-dated info which is then dated in the next step--------------------- @@ -234,7 +234,7 @@ SELECT -----------------scenario---------------------------- where_clause -----------------additional params------------------- - AND CASE (SELECT flag FROM flagv) + AND CASE (SELECT flag FROM flagv) WHEN 'scale all' THEN true WHEN 'scale copy' THEN iter IN ('plan','diff','copy') WHEN 'scale new part' THEN module = 'new basket' @@ -323,15 +323,15 @@ SELECT ,round(b.cost_usd*s.factor*m.momix ,2) cost_usd ,b.calc_status ,b.flag - ,make_date(mseq.yr + 2022,mseq.cal,m.odom) order_date - ,od.sspr || ' - ' || to_char(make_date(mseq.yr + 2022,mseq.cal,m.odom),'Mon') order_month + ,make_date(mseq.yr + 2024,mseq.cal,m.odom) order_date + ,od.sspr || ' - ' || to_char(make_date(mseq.yr + 2024,mseq.cal,m.odom),'Mon') order_month ,od.ssyr order_season - ,make_date(mseq.yr + 2022,mseq.cal,m.odom) + rlag request_date - ,rd.sspr || ' - ' ||to_char(make_date(mseq.yr + 2022,mseq.cal,m.odom) + rlag,'Mon') request_month + ,make_date(mseq.yr + 2024,mseq.cal,m.odom) + rlag request_date + ,rd.sspr || ' - ' ||to_char(make_date(mseq.yr + 2024,mseq.cal,m.odom) + rlag,'Mon') request_month ,rd.ssyr request_season - ,make_date(mseq.yr + 2022,mseq.cal,m.odom) + rlag + slag ship_date - ,sd.sspr || ' - ' || to_char(make_date(mseq.yr + 2022,mseq.cal,m.odom) + rlag + slag,'Mon') ship_month - ,sd.ssyr ship_season + ,make_date(mseq.yr + 2024,mseq.cal,m.odom) + rlag + slag ship_date + ,sd.sspr || ' - ' || to_char(make_date(mseq.yr + 2024,mseq.cal,m.odom) + rlag + slag,'Mon') ship_month + ,sd.ssyr ship_season ,'replace_version' "version" ,'replace_source'||' volume' iter ,log.id @@ -347,11 +347,11 @@ FROM LEFT OUTER JOIN mseq ON mseq.m = closest.m LEFT OUTER JOIN gld od ON - make_date(mseq.yr + 2022,mseq.cal,m.odom) BETWEEN od.sdat AND od.edat + make_date(mseq.yr + 2024,mseq.cal,m.odom) BETWEEN od.sdat AND od.edat LEFT OUTER JOIN gld rd ON - make_date(mseq.yr + 2022,mseq.cal,m.odom) + rlag BETWEEN rd.sdat AND rd.edat + make_date(mseq.yr + 2024,mseq.cal,m.odom) + rlag BETWEEN rd.sdat AND rd.edat LEFT OUTER JOIN gld sd ON - make_date(mseq.yr + 2022,mseq.cal,m.odom) + rlag + slag BETWEEN sd.sdat AND sd.edat + make_date(mseq.yr + 2024,mseq.cal,m.odom) + rlag + slag BETWEEN sd.sdat AND sd.edat WHERE m._month = (SELECT _month FROM closest) ) @@ -362,7 +362,7 @@ WHERE ,CASE WHEN (SELECT sum(value_loc * r_rate) FROM volume) = 0 THEN 0 ELSE - ((SELECT pincr::numeric FROM target) - (SELECT sum(value_loc * r_rate) FROM volume))/(SELECT sum(value_loc * r_rate) FROM volume) + ((SELECT pincr::numeric FROM target) - (SELECT sum(value_loc * r_rate) FROM volume))/(SELECT sum(value_loc * r_rate) FROM volume) END factor ,CASE WHEN (SELECT sum(value_loc * r_rate) FROM volume) = 0 THEN CASE WHEN ((SELECT pincr::numeric FROM target) - (SELECT sum(value_loc * r_rate) FROM volume)) <> 0 THEN @@ -421,7 +421,7 @@ SELECT ,b.request_season ,b.ship_date ,b.ship_month - ,b.ship_season + ,b.ship_season ,'replace_version' "version" ,'replace_source'||' price' iter ,log.id diff --git a/route_sql/adj_totals.sql b/route_sql/adj_totals.sql index d855fd4..bf5ff9a 100644 --- a/route_sql/adj_totals.sql +++ b/route_sql/adj_totals.sql @@ -19,13 +19,13 @@ FROM LEFT OUTER JOIN rlarp.osm_log ON id = logid WHERE - order_season = 2022 + order_season = 2024 GROUP BY director ,quota_rep_descr ,part - ,bill_cust_descr - ,ship_cust_descr + ,bill_cust_descr + ,ship_cust_descr ,order_month ,doc->>'stamp' ,logid @@ -43,7 +43,7 @@ SELECT ,(max(stamp) FILTER (WHERE tag <> 'Initial Build'))::timestamptz "last edit" FROM preagg -GROUP BY +GROUP BY GROUPING SETS ( (director,quota_rep_descr), (director), diff --git a/route_sql/new_basket.sql b/route_sql/new_basket.sql index 2297b50..a982261 100644 --- a/route_sql/new_basket.sql +++ b/route_sql/new_basket.sql @@ -1,3 +1,4 @@ +-- Connection: usmidsap01.ubm WITH /* the volume must be expressed in terms of units, since that is what it will be scaling @@ -251,13 +252,13 @@ SELECT ,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 + 2022,mxm.cal,mxm.odom) order_date + ,make_date(mxm.yr + 2024,mxm.cal,mxm.odom) order_date ,od.sortmo order_month ,od.ssyr order_season - ,make_date(mxm.yr + 2022,mxm.cal,mxm.odom) + rlag request_date + ,make_date(mxm.yr + 2024,mxm.cal,mxm.odom) + rlag request_date ,rd.sortmo request_month ,rd.ssyr request_season - ,make_date(mxm.yr + 2022,mxm.cal,mxm.odom) + rlag + slag ship_date + ,make_date(mxm.yr + 2024,mxm.cal,mxm.odom) + rlag + slag ship_date ,sd.sortmo ship_month ,sd.ssyr ship_season ,jr.mix @@ -267,11 +268,11 @@ SELECT 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 + 2022,mxm.cal,mxm.odom) + od.drange @> make_date(mxm.yr + 2024,mxm.cal,mxm.odom) LEFT OUTER JOIN gld rd ON - rd.drange @> (make_date(mxm.yr + 2022,mxm.cal,mxm.odom) + rlag) + rd.drange @> (make_date(mxm.yr + 2024,mxm.cal,mxm.odom) + rlag) LEFT OUTER JOIN gld sd ON - sd.drange @> (make_date(mxm.yr + 2022,mxm.cal,mxm.odom) + rlag + slag) + sd.drange @> (make_date(mxm.yr + 2024,mxm.cal,mxm.odom) + rlag + slag) ) --SELECT * FROM basemix ,log AS ( @@ -329,11 +330,11 @@ SELECT ,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) ,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 ,2) cost_loc - ,round(COALESCE(im.cgstcs,ip.chstcs, ir.y0stcs)*b.units*cx.rate,2) cost_usd + ,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 @@ -423,13 +424,13 @@ FROM LEFT OUTER JOIN copr ON copr.comp = yacomp::text LEFT OUTER JOIN rlarp.ffcret cx ON - cx.perd = '2101' - AND cx.rtyp = 'BG' + cx.perd = '2310' + AND cx.rtyp = 'MA' AND cx.fcur = copr.curr AND cx.tcur = 'US' LEFT OUTER JOIN rlarp.ffcret rx ON - rx.perd = '2101' - AND rx.rtyp = 'BG' + rx.perd = '2310' + AND rx.rtyp = 'MA' AND rx.fcur = COALESCE(bc.bvcurr,b.r_currency) AND rx.tcur = 'US' ) diff --git a/route_sql/scale_vupd_sales.sql b/route_sql/scale_vupd_sales.sql index cd5ea20..daf25a6 100644 --- a/route_sql/scale_vupd_sales.sql +++ b/route_sql/scale_vupd_sales.sql @@ -1,4 +1,4 @@ -WITH +WITH target AS (select target_vol vincr, target_prc pincr) ,testv AS ( SELECT @@ -39,17 +39,17 @@ target AS (select target_vol vincr, target_prc pincr) ,basemix AS ( SELECT fspr - ,plnt ---master data + ,plnt ---master data ,promo --history date mix ,terms ,bill_cust_descr --history cust mix ,ship_cust_descr --history cust mix ,dsm - ,quota_rep_descr --master data + ,quota_rep_descr --master data ,director - ,billto_group --master data + ,billto_group --master data ,shipto_group - ,chan --master data + ,chan --master data ,chansub ,chan_retail ,part @@ -62,18 +62,18 @@ target AS (select target_vol vincr, target_prc pincr) ,mins_descr ,segm ,substance - ,fs_line --master data + ,fs_line --master data ,r_currency --history cust mix - ,r_rate --master data - ,c_currency --master data - ,c_rate --master data + ,r_rate --master data + ,c_currency --master data + ,c_rate --master data ,sum(coalesce(units,0)) units --history value ,sum(coalesce(value_loc,0)) value_loc --history value - ,sum(coalesce(value_usd,0)) value_usd --0 + ,sum(coalesce(value_usd,0)) value_usd --0 ,sum(coalesce(cost_loc,0)) cost_loc --history part mix ,sum(coalesce(cost_usd,0)) cost_usd - ,calc_status --0 - ,flag --0 + ,calc_status --0 + ,flag --0 ,order_date --history date mix ,order_month ,order_season @@ -88,9 +88,9 @@ target AS (select target_vol vincr, target_prc pincr) WHERE -----------------scenario---------------------------- where_clause - AND ship_season = 2022 + AND ship_season = 2024 -----------------additional params------------------- - AND CASE (SELECT flag FROM flagv) + AND CASE (SELECT flag FROM flagv) WHEN 'scale all' THEN true WHEN 'scale copy' THEN iter IN ('plan','diff','copy') WHEN 'scale new part' THEN module = 'new basket' @@ -99,17 +99,17 @@ target AS (select target_vol vincr, target_prc pincr) AND order_date <= ship_date GROUP BY fspr - ,plnt ---master data + ,plnt ---master data ,promo --history date mix ,terms ,bill_cust_descr --history cust mix ,ship_cust_descr --history cust mix ,dsm - ,quota_rep_descr --master data + ,quota_rep_descr --master data ,director - ,billto_group --master data + ,billto_group --master data ,shipto_group - ,chan --master data + ,chan --master data ,chansub ,chan_retail ,part @@ -122,13 +122,13 @@ target AS (select target_vol vincr, target_prc pincr) ,mins_descr ,segm ,substance - ,fs_line --master data + ,fs_line --master data ,r_currency --history cust mix - ,r_rate --master data - ,c_currency --master data - ,c_rate --master data - ,calc_status --0 - ,flag --0 + ,r_rate --master data + ,c_currency --master data + ,c_rate --master data + ,calc_status --0 + ,flag --0 ,order_date --history date mix ,order_month ,order_season @@ -152,17 +152,17 @@ target AS (select target_vol vincr, target_prc pincr) ,volume AS ( SELECT fspr - ,plnt ---master data + ,plnt ---master data ,promo --history date mix ,terms ,bill_cust_descr --history cust mix ,ship_cust_descr --history cust mix ,dsm - ,quota_rep_descr --master data + ,quota_rep_descr --master data ,director - ,billto_group --master data + ,billto_group --master data ,shipto_group - ,chan --master data + ,chan --master data ,chansub ,chan_retail ,part @@ -175,18 +175,18 @@ target AS (select target_vol vincr, target_prc pincr) ,mins_descr ,segm ,substance - ,fs_line --master data + ,fs_line --master data ,r_currency --history cust mix - ,r_rate --master data - ,c_currency --master data - ,c_rate --master data + ,r_rate --master data + ,c_currency --master data + ,c_rate --master data ,round(units*s.factor ,2) units ,round(value_loc*s.factor,2) value_loc ,round(value_usd*s.factor,2) value_usd ,round(cost_loc*s.factor ,2) cost_loc ,round(cost_usd*s.factor ,2) cost_usd - ,calc_status --0 - ,flag --0 + ,calc_status --0 + ,flag --0 ,order_date --history date mix ,order_month ,order_season @@ -233,17 +233,17 @@ FROM ,pricing AS ( SELECT fspr - ,plnt ---master data + ,plnt ---master data ,promo --history date mix ,terms ,bill_cust_descr --history cust mix ,ship_cust_descr --history cust mix ,dsm - ,quota_rep_descr --master data + ,quota_rep_descr --master data ,director - ,billto_group --master data + ,billto_group --master data ,shipto_group - ,chan --master data + ,chan --master data ,chansub ,chan_retail ,part @@ -256,18 +256,18 @@ FROM ,mins_descr ,segm ,substance - ,fs_line --master data + ,fs_line --master data ,r_currency --history cust mix - ,r_rate --master data - ,c_currency --master data - ,c_rate --master data + ,r_rate --master data + ,c_currency --master data + ,c_rate --master data ,0::numeric units ,round((CASE WHEN s.factor = 0 THEN b.units * s.mod_price/b.r_rate ELSE b.value_loc*s.factor END)::numeric,2) value_loc ,round((CASE WHEN s.factor = 0 THEN b.units * s.mod_price ELSE b.value_usd*s.factor END)::numeric ,2) value_usd ,0::numeric cost_loc ,0::numeric cost_usd - ,calc_status --0 - ,flag --0 + ,calc_status --0 + ,flag --0 ,order_date --history date mix ,order_month ,order_season diff --git a/route_sql/scenario_package.sql b/route_sql/scenario_package.sql index 1c3b77c..a710afa 100644 --- a/route_sql/scenario_package.sql +++ b/route_sql/scenario_package.sql @@ -37,7 +37,7 @@ FROM WHERE where_clause --quota_rep_descr = 'MATTHEW STAAL' - AND order_season IN (2019,2024) + AND order_season IN (2023,2024) GROUP BY order_season ,order_month @@ -95,11 +95,11 @@ GROUP BY SELECT order_month ,seq - ,SUM(units) FILTER (WHERE order_season = 2019) "2023 qty" + ,SUM(units) FILTER (WHERE order_season = 2023) "2023 qty" ,SUM(units) FILTER (WHERE order_season = 2024 AND iter IN ('copy','short ship','bad_ship','plan')) "2024 base qty" ,SUM(units) FILTER (WHERE order_season = 2024 AND iter NOT IN ('copy','short ship','bad_ship','plan')) "2024 adj qty" ,SUM(units) FILTER (WHERE order_season = 2024) "2024 tot qty" - ,SUM(value_usd) FILTER (WHERE order_season = 2019) "2023 value_usd" + ,SUM(value_usd) FILTER (WHERE order_season = 2023) "2023 value_usd" ,SUM(value_usd) FILTER (WHERE order_season = 2024 AND iter IN ('copy','short ship','bad_ship','plan')) "2024 base value_usd" ,SUM(value_usd) FILTER (WHERE order_season = 2024 AND iter NOT IN ('copy','short ship','bad_ship','plan')) "2024 adj value_usd" ,SUM(value_usd) FILTER (WHERE order_season = 2024) "2024 tot value_usd"