From d557fe9cc3a503dcd6a31da7835d500a13ae171e Mon Sep 17 00:00:00 2001 From: pt Date: Thu, 13 Feb 2020 01:11:51 -0500 Subject: [PATCH 01/18] put the column names back --- route_sql/build/build_fcpool.sql | 48 ++++++++++++------------- route_sql/get_pool.sql | 26 +++++++------- route_sql/scenario_package.sql | 60 ++++++++++++++++---------------- 3 files changed, 67 insertions(+), 67 deletions(-) diff --git a/route_sql/build/build_fcpool.sql b/route_sql/build/build_fcpool.sql index ba499fc..993a930 100644 --- a/route_sql/build/build_fcpool.sql +++ b/route_sql/build/build_fcpool.sql @@ -50,13 +50,13 @@ SELECT ,plnt ,promo ,terms - ,bill_cust||' - '||bc.bvname bill_custd - ,ship_cust||' - '||sc.bvname ship_custd + ,bill_cust||' - '||bc.bvname bill_cust_descr + ,ship_cust||' - '||sc.bvname ship_cust_descr ,dsm - ,coalesce(repc.repp,dsm) dsmd + ,coalesce(repc.repp,dsm) quota_rep_descr ,repc.director - ,account bill_dba - ,shipgrp ship_dba + ,account billto_group + ,shipgrp shipto_group ,chan ,chansub ,CASE seg.segm @@ -69,35 +69,35 @@ SELECT ELSE o.chan END chan_retail ,part - ,part||coalesce(' - '||i.descr,'') partd - ,stlcd partgroup - ,brnd - ,o.majg||' - '||i.majgd majgd - ,o.ming||' - '||i.mingd mingd - ,o.majs||' - '||i.majsd majsd - ,o.mins||' - '||i.minsd minsd + ,part||coalesce(' - '||i.descr,'') part_descr + ,stlcd part_group + ,brnd branding + ,o.majg||' - '||i.majgd majg_descr + ,o.ming||' - '||i.mingd ming_descr + ,o.majs||' - '||i.majsd majs_descr + ,o.mins||' - '||i.minsd mins_descr ,seg.segm ,fs_line ,r_currency ,r_rate ,c_currency ,c_rate - ,fb_qty - ,fb_val_loc + ,fb_qty units + ,fb_val_loc value_loc ,fb_val_loc * r_rate value_usd - ,fb_cst_loc + ,fb_cst_loc cost_loc ,fb_cst_loc * c_rate cost_usd ,calc_status ,flag - ,o.odate - ,to_char(CASE WHEN extract(month FROM o.odate) > 6 THEN -5 ELSE 7 END + extract(month FROM o.odate),'FM00')||' - '||to_char(o.odate,'TMMon') omonth - ,oseas - ,rdate - ,to_char(CASE WHEN extract(month FROM o.rdate) > 6 THEN -5 ELSE 7 END + extract(month FROM o.rdate),'FM00')||' - '||to_char(o.rdate,'TMMon') rmonth - ,rseas - ,sdate - ,to_char(CASE WHEN extract(month FROM o.sdate) > 6 THEN -5 ELSE 7 END + extract(month FROM o.sdate),'FM00')||' - '||to_char(o.sdate,'TMMon') smonth - ,sseas + ,o.odate order_date + ,to_char(CASE WHEN extract(month FROM o.odate) > 6 THEN -5 ELSE 7 END + extract(month FROM o.odate),'FM00')||' - '||to_char(o.odate,'TMMon') order_month + ,oseas order_season + ,rdate request_date + ,to_char(CASE WHEN extract(month FROM o.rdate) > 6 THEN -5 ELSE 7 END + extract(month FROM o.rdate),'FM00')||' - '||to_char(o.rdate,'TMMon') request_month + ,rseas request_season + ,sdate ship_date + ,to_char(CASE WHEN extract(month FROM o.sdate) > 6 THEN -5 ELSE 7 END + extract(month FROM o.sdate),'FM00')||' - '||to_char(o.sdate,'TMMon') ship_month + ,sseas ship_season ,version ,iter ,null::int logid diff --git a/route_sql/get_pool.sql b/route_sql/get_pool.sql index 2084920..3c9506b 100644 --- a/route_sql/get_pool.sql +++ b/route_sql/get_pool.sql @@ -6,20 +6,20 @@ SELECT ,ship_cust_descr ,shipto_group ,quota_rep_descr - ,director_descr + ,director ,segm - ,mod_chan - ,mod_chansub + ,chan + ,chansub ---------product info------------------ ,majg_descr ,ming_descr ,majs_descr ,mins_descr - ,brand - ,part_family + --,brand + --,part_family ,part_group ,branding - ,color + --,color ,part_descr ---------dates------------------------- ,order_season @@ -38,7 +38,7 @@ SELECT ,sum(cost_usd) cost_usd ,sum(units) units FROM - rlarp.osm_fcpool + rlarp.osm_pool WHERE quota_rep_descr = 'rep_replace' GROUP BY @@ -48,20 +48,20 @@ GROUP BY ,ship_cust_descr ,shipto_group ,quota_rep_descr - ,director_descr + ,director ,segm - ,mod_chan - ,mod_chansub + ,chan + ,chansub ---------product info------------------ ,majg_descr ,ming_descr ,majs_descr ,mins_descr - ,brand - ,part_family + --,brand + --,part_family ,part_group ,branding - ,color + --,color ,part_descr ---------dates------------------------- ,order_season diff --git a/route_sql/scenario_package.sql b/route_sql/scenario_package.sql index 5a7e9c0..4e988fa 100644 --- a/route_sql/scenario_package.sql +++ b/route_sql/scenario_package.sql @@ -5,18 +5,18 @@ mseq AS ( SELECT * FROM ( VALUES - ('Jun',1) - ,('Jul',2) - ,('Aug',3) - ,('Sep',4) - ,('Oct',5) - ,('Nov',6) - ,('Dec',7) - ,('Jan',8) - ,('Feb',9) - ,('Mar',10) - ,('Apr',11) - ,('May',12) + ('01 - Jun',1) + ,('02 - Jul',2) + ,('03 - Aug',3) + ,('04 - Sep',4) + ,('05 - Oct',5) + ,('06 - Nov',6) + ,('07 - Dec',7) + ,('08 - Jan',8) + ,('09 - Feb',9) + ,('10 - Mar',10) + ,('11 - Apr',11) + ,('12 - May',12) ) x(m,s) ) @@ -33,10 +33,10 @@ SELECT ,SUM(units) units ,SUM(value_usd) value_usd FROM - rlarp.osm_fcpool + rlarp.osm_pool WHERE where_clause - AND order_season IN (2019,2020) + AND order_season IN (2020,2021) GROUP BY order_season ,order_month @@ -94,14 +94,14 @@ GROUP BY SELECT order_month ,seq - ,SUM(units) FILTER (WHERE order_season = 2019) "2019 qty" - ,SUM(units) FILTER (WHERE order_season = 2020 AND iter IN ('copy','short ship','bad_ship')) "2020 base qty" - ,SUM(units) FILTER (WHERE order_season = 2020 AND iter NOT IN ('copy','short ship','bad_ship')) "2020 adj qty" - ,SUM(units) FILTER (WHERE order_season = 2020) "2020 tot qty" - ,SUM(value_usd) FILTER (WHERE order_season = 2019) "2019 value_usd" - ,SUM(value_usd) FILTER (WHERE order_season = 2020 AND iter IN ('copy','short ship','bad_ship')) "2020 base value_usd" - ,SUM(value_usd) FILTER (WHERE order_season = 2020 AND iter NOT IN ('copy','short ship','bad_ship')) "2020 adj value_usd" - ,SUM(value_usd) FILTER (WHERE order_season = 2020) "2020 tot value_usd" + ,SUM(units) FILTER (WHERE order_season = 2020) "2020 qty" + ,SUM(units) FILTER (WHERE order_season = 2021 AND iter IN ('copy','short ship','bad_ship')) "2021 base qty" + ,SUM(units) FILTER (WHERE order_season = 2021 AND iter NOT IN ('copy','short ship','bad_ship')) "2021 adj qty" + ,SUM(units) FILTER (WHERE order_season = 2021) "2021 tot qty" + ,SUM(value_usd) FILTER (WHERE order_season = 2020) "2020 value_usd" + ,SUM(value_usd) FILTER (WHERE order_season = 2021 AND iter IN ('copy','short ship','bad_ship')) "2021 base value_usd" + ,SUM(value_usd) FILTER (WHERE order_season = 2021 AND iter NOT IN ('copy','short ship','bad_ship')) "2021 adj value_usd" + ,SUM(value_usd) FILTER (WHERE order_season = 2021) "2021 tot value_usd" FROM months GROUP BY @@ -113,14 +113,14 @@ GROUP BY ,mlist AS ( SELECT mseq.m order_month - ,"2019 qty" - ,"2020 base qty" - ,"2020 adj qty" - ,"2020 tot qty" - ,"2019 value_usd" - ,"2020 base value_usd" - ,"2020 adj value_usd" - ,"2020 tot value_usd" + ,"2020 qty" + ,"2021 base qty" + ,"2021 adj qty" + ,"2021 tot qty" + ,"2020 value_usd" + ,"2021 base value_usd" + ,"2021 adj value_usd" + ,"2021 tot value_usd" FROM mseq LEFT OUTER JOIN mpvt ON From 040ba4caf6545526aec9dcce430b5c3648301ad8 Mon Sep 17 00:00:00 2001 From: pt Date: Thu, 13 Feb 2020 02:25:02 -0500 Subject: [PATCH 02/18] use copy not baseline, build log table --- route_sql/build/build_fcpool.sql | 9 ++++++++- route_sql/build/build_forecast.sql | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/route_sql/build/build_fcpool.sql b/route_sql/build/build_fcpool.sql index 993a930..d46ce14 100644 --- a/route_sql/build/build_fcpool.sql +++ b/route_sql/build/build_fcpool.sql @@ -128,4 +128,11 @@ FROM LEFT OUTER JOIN rlarp.itemm i ON i.item = o.part --LIMIT 100 -) WITH DATA; \ No newline at end of file +) WITH DATA; + +CREATE INDEX osm_qr ON rlarp.osm_pool(quota_rep_descr); + + +DROP TABLE IF EXISTS rlarp.osm_log; + +CREATE TABLE IF NOT EXISTS rlarp.osm_log(id INT PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY, doc jsonb); \ No newline at end of file diff --git a/route_sql/build/build_forecast.sql b/route_sql/build/build_forecast.sql index b6fbb56..abe8521 100644 --- a/route_sql/build/build_forecast.sql +++ b/route_sql/build/build_forecast.sql @@ -552,7 +552,7 @@ SELECT ,o.sdate + interval '1 year' --incremented ,o.sseas + 1 --incremented ,'b21' "version" - ,'baseline' iter + ,'copy' iter FROM baseline o LEFT OUTER JOIN gld ON From eddece49e1b4aeae6a50a367ad175b5e18e6302d Mon Sep 17 00:00:00 2001 From: pt Date: Thu, 13 Feb 2020 02:25:24 -0500 Subject: [PATCH 03/18] start on scale_vd --- route_sql/scale_vd.sql | 540 +++++++++++++++-------------------------- 1 file changed, 198 insertions(+), 342 deletions(-) diff --git a/route_sql/scale_vd.sql b/route_sql/scale_vd.sql index 739b85f..931a711 100644 --- a/route_sql/scale_vd.sql +++ b/route_sql/scale_vd.sql @@ -2,18 +2,19 @@ WITH target AS (select incr_qty qincr) ,testv AS ( SELECT - sum(fb_qty) tot - ,sum(fb_qty) FILTER (WHERE iter = 'copy') base - ,sum(fb_qty) FILTER (WHERE iterdef->>'type' = 'new basket') newpart + sum(units) tot + ,sum(units) FILTER (WHERE iter = 'copy') base + ,sum(units) FILTER (WHERE l.doc->>'type' = 'new basket') newpart FROM - rlarp.osm_fcpool + rlarp.osm_pool p + INNER JOIN rlarp.osm_log l ON + l.id = p.logid WHERE -----------------scenario---------------------------- where_clause -----------------additional params------------------- AND calc_status||flag <> 'CLOSEDREMAINDER' --exclude short ships when building order adjustments - AND adj_orderdate <= adj_shipdate - + AND order_date <= ship_date ) ,flagv AS ( SELECT @@ -38,115 +39,53 @@ target AS (select incr_qty qincr) ) --ever need receive a target of -0- qty but value <> 0? ,basemix AS ( -SELECT - plnt ---master data - ,0::numeric(11,0) "ddord#" --0 - ,0::numeric(11,0) "dditm#" --0 - ,0::numeric(11,0) "fgbol#" --0 - ,0::numeric(11,0) "fgent#" --0 - ,0::numeric(9,0) "diinv#" --0 - ,0::numeric(3,0) "dilin#" --0 + SELECT + fspr + ,plnt ---master data ,promo --history date mix - ,null::text return_reas --0 ,terms - ,''::text custpo --0 - ,'I' dhincr --0 - ,null::numeric diext - ,null::numeric ditdis - ,null::date dcodat --calculated date mix - ,null::date ddqdat --calculated date mix - ,null::date dcmdat --calculated date mix - ,null::date dhidat --calculated date mix - ,null::text fspr --calculated date mix - ,remit_to --master data - ,bill_class --master data - ,bill_cust --history cust mix - ,bill_rep --master data - ,bill_terr --master data - ,ship_class --master data - ,ship_cust --history cust mix - ,ship_rep --master data - ,ship_terr --master data - ,quota_rep --master data - ,account --master data - ,shipgrp --master data - ,geo --master data + ,bill_cust_descr --history cust mix + ,ship_cust_descr --history cust mix + ,dsm + ,quota_rep_descr --master data + ,director + ,billto_group --master data + ,shipto_group ,chan --master data - ,orig_ctry --master data - ,orig_prov --master data - ,orig_post --master data - ,dest_ctry --master data - ,dest_prov --master data - ,dest_post --master data - ,part --history part mix - ,ord_gldc --master data - ,majg --master data - ,ming --master data - ,majs --master data - ,mins --master data - ,gldc --master data - ,glec --master data - ,harm --master data - ,clss --master data - ,brand --master data - ,assc --master data + ,chansub + ,chan_retail + ,part + ,part_descr + ,part_group + ,branding + ,majg_descr + ,ming_descr + ,majs_descr + ,mins_descr + ,segm ,fs_line --master data ,r_currency --history cust mix ,r_rate --master data ,c_currency --master data ,c_rate --master data - ,0::numeric(15,5) ddqtoi --0 - ,0::numeric(15,5) ddqtsi --0 - ,0::numeric(15,5) fgqshp --0 - ,0::numeric(15,5) diqtsh --0 - ,sum(coalesce(fb_qty,0)) fb_qty --history value - ,sum(coalesce(fb_cst_loc,0)) fb_cst_loc --history part mix - ,sum(coalesce(fb_cst_loc_cur,0)) fb_cst_loc_cur --master data - ,sum(coalesce(fb_cst_loc_fut,0)) fb_cst_loc_fut --master data - ,sum(coalesce(fb_val_loc,0)) fb_val_loc --history value - ,sum(coalesce(fb_val_loc_pl,0)) fb_val_loc_pl --0 + ,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(cost_loc,0)) cost_loc --history part mix + ,sum(coalesce(cost_usd,0)) cost_usd ,calc_status --0 ,flag --0 - ,orderdate --history date mix - ,requestdate --history date mix - ,shipdate --history date mix - ,adj_orderdate --history - ,adj_requestdate --history - ,adj_shipdate --history - ,null::text "version" --calculated - ,null::text iter --calculated - ---------------ui columns------------------------- - ,order_season + ,order_date --history date mix ,order_month - ,ship_season - ,ship_month - ,request_season + ,order_season + ,request_date --history date mix ,request_month - ,part_descr - ,part_family - ,part_group - ,branding - ,color - ,segm - ,bill_cust_descr - ,billto_group - ,ship_cust_descr - ,shipto_group - ,majg_descr - ,ming_descr - ,majs_descr - ,mins_descr - ,mod_chan - ,mod_chansub - ,quota_rep_descr - ,director_descr - ,null value_loc - ,null value_usd - ,null cost_loc - ,null cost_usd - ,null units + ,request_season + ,ship_date --history date mix + ,ship_month + ,ship_season FROM - rlarp.osm_fcpool + rlarp.osm_pool WHERE -----------------scenario---------------------------- where_clause @@ -157,43 +96,31 @@ SELECT WHEN 'scale new part' THEN iterdef->>'type' = 'new basket' END AND calc_status||flag <> 'CLOSEDREMAINDER' --exclude short ships when building order adjustments - AND adj_orderdate <= adj_shipdate + AND order_date <= ship_date GROUP BY - plnt ---master data - ,promo + fspr + ,plnt ---master data + ,promo --history date mix ,terms - ,remit_to --master data - ,bill_class --master data - ,bill_cust --history cust mix - ,bill_rep --master data - ,bill_terr --master data - ,ship_class --master data - ,ship_cust --history cust mix - ,ship_rep --master data - ,ship_terr --master data - ,quota_rep --master data - ,account --master data - ,shipgrp --master data - ,geo --master data + ,bill_cust_descr --history cust mix + ,ship_cust_descr --history cust mix + ,dsm + ,quota_rep_descr --master data + ,director + ,billto_group --master data + ,shipto_group ,chan --master data - ,orig_ctry --master data - ,orig_prov --master data - ,orig_post --master data - ,dest_ctry --master data - ,dest_prov --master data - ,dest_post --master data - ,part --history part mix - ,ord_gldc --master data - ,majg --master data - ,ming --master data - ,majs --master data - ,mins --master data - ,gldc --master data - ,glec --master data - ,harm --master data - ,clss --master data - ,brand --master data - ,assc --master data + ,chansub + ,chan_retail + ,part + ,part_descr + ,part_group + ,branding + ,majg_descr + ,ming_descr + ,majs_descr + ,mins_descr + ,segm ,fs_line --master data ,r_currency --history cust mix ,r_rate --master data @@ -201,229 +128,158 @@ SELECT ,c_rate --master data ,calc_status --0 ,flag --0 - ,orderdate --history date mix - ,requestdate --history date mix - ,shipdate --history date mix - ,adj_orderdate --history - ,adj_requestdate --history - ,adj_shipdate --history - ---------------ui columns------------------------- - ,order_season + ,order_date --history date mix ,order_month - ,ship_season - ,ship_month - ,request_season + ,order_season + ,request_date --history date mix ,request_month - ,part_descr - ,part_family - ,part_group - ,branding - ,color - ,segm - ,bill_cust_descr - ,billto_group - ,ship_cust_descr - ,shipto_group - ,majg_descr - ,ming_descr - ,majs_descr - ,mins_descr - ,mod_chan - ,mod_chansub - ,quota_rep_descr - ,director_descr + ,request_season + ,ship_date --history date mix + ,ship_month + ,ship_season ) --SELECT * FROM basemix ,scale AS ( SELECT (SELECT qincr::numeric FROM target) incr - ,(SELECT sum(fb_val_loc *r_rate) FROM basemix) base - ,(SELECT qincr FROM target)/(SELECT SUM(fb_qty) FROM basemix) factor + ,(SELECT sum(value_loc *r_rate) FROM basemix) base + ,(SELECT qincr FROM target)/(SELECT SUM(units) FROM basemix) factor ) --select * from scale +,log AS ( + INSERT INTO rlarp.osm_log(doc) SELECT $$replace_iterdef$$::jsonb doc RETURNING * +) ,final AS ( -SELECT - b.plnt --master data - ,b."ddord#" --0 - ,b."dditm#" --0 - ,b."fgbol#" --0 - ,b."fgent#" --0 - ,b."diinv#" --0 - ,b."dilin#" --0 - ,b.promo --history date mix - ,b.return_reas --0 - ,b.terms --history cust mix - ,b.custpo --0 - ,b.dhincr --0 - ,b.diext --0 - ,b.ditdis --0 - ,b.dcodat --calculated date mix - ,b.ddqdat --calculated date mix - ,b.dcmdat --calculated date mix - ,b.dhidat --calculated date mix - ,b.fspr --calculated date mix - ,b.remit_to --master data - ,b.bill_class --master data - ,b.bill_cust --history cust mix - ,b.bill_rep --master data - ,b.bill_terr --master data - ,b.ship_class --master data - ,b.ship_cust --history cust mix - ,b.ship_rep --master data - ,b.ship_terr --master data - ,b.quota_rep --master data - ,b.account --master data - ,b.shipgrp --master data - ,b.geo --master data - ,b.chan --master data - ,b.orig_ctry --master data - ,b.orig_prov --master data - ,b.orig_post --master data - ,b.dest_ctry --master data - ,b.dest_prov --master data - ,b.dest_post --master data - ,b.part --history part mix - ,b.ord_gldc --master data - ,b.majg --master data - ,b.ming --master data - ,b.majs --master data - ,b.mins --master data - ,b.gldc --master data - ,b.glec --master data - ,b.harm --master data - ,b.clss --master data - ,b.brand --master data - ,b.assc --master data - ,b.fs_line --master data - ,b.r_currency --history cust mix - ,b.r_rate --master data - ,b.c_currency --master data - ,b.c_rate --master data - ,b.ddqtoi --0 - ,b.ddqtsi --0 - ,b.fgqshp --0 - ,b.diqtsh --0 - ,b.fb_qty*s.factor fb_qty - ,b.fb_cst_loc*s.factor fb_cst_loc - ,b.fb_cst_loc_cur*s.factor fb_cst_loc_cur - ,b.fb_cst_loc_fut*s.factor fb_cst_loc_fut - ,b.fb_val_loc*s.factor fb_val_loc - ,b.fb_val_loc_pl*s.factor fb_val_loc_pl - ,b.calc_status --0 - ,b.flag --0 - ,b.orderdate - ,b.requestdate - ,b.shipdate - ,b.adj_orderdate - ,b.adj_requestdate - ,b.adj_shipdate - ,'replace_version' "version" --calculated - ,'replace_source'||' volume' iter - -----------------------ui columns-------------------------------- - ,'replace_iterdet' iterdet - ,$$replace_iterdef$$::jsonb iterdef - ,b.order_season - ,b.order_month - ,b.ship_season - ,b.ship_month - ,b.request_season - ,b.request_month - ,b.part_descr - ,b.part_family - ,b.part_group - ,b.branding - ,b.color - ,b.segm - ,b.bill_cust_descr - ,b.billto_group - ,b.ship_cust_descr - ,b.shipto_group - ,b.majg_descr - ,b.ming_descr - ,b.majs_descr - ,b.mins_descr - ,b.mod_chan - ,b.mod_chansub - ,b.quota_rep_descr - ,b.director_descr - ,(b.fb_val_loc*s.factor)::numeric value_loc - ,(b.fb_val_loc*s.factor*r_rate)::numeric value_usd - ,(b.fb_cst_loc*s.factor)::numeric cost_loc - ,(b.fb_cst_loc*s.factor*c_rate)::numeric cost_usd - ,(b.fb_qty*s.factor)::numeric units + SELECT + fspr + ,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 + ,director + ,billto_group --master data + ,shipto_group + ,chan --master data + ,chansub + ,chan_retail + ,part + ,part_descr + ,part_group + ,branding + ,majg_descr + ,ming_descr + ,majs_descr + ,mins_descr + ,segm + ,fs_line --master data + ,r_currency --history cust mix + ,r_rate --master data + ,c_currency --master data + ,c_rate --master data + ,units*s.factor + ,value_loc*s.factor + ,value_usd*s.factor + ,cost_loc*s.factor + ,cost_usd*s.factor + ,calc_status --0 + ,flag --0 + ,order_date --history date mix + ,order_month + ,order_season + ,request_date --history date mix + ,request_month + ,request_season + ,ship_date --history date mix + ,ship_month + ,ship_season + ,'replace_version' "version" + ,'replace_source'||' volume' iter + ,log.id + ,log.doc->>'comment' "comment" + ,'replace_iterdet' iterdet FROM basemix b CROSS JOIN scale s ) --select sum(value_usd), count(*) from final , ins AS ( - INSERT INTO rlarp.osm_fcpool SELECT * FROM final RETURNING * + INSERT INTO rlarp.osm_pool SELECT * FROM final RETURNING * ) ,insagg AS ( -SELECT - bill_cust_descr - ,billto_group - ,ship_cust_descr - ,shipto_group - ,quota_rep_descr - ,director_descr - ,segm - ,mod_chan - ,mod_chansub - ,majg_descr - ,ming_descr - ,majs_descr - ,mins_descr - ,brand - ,part_family - ,part_group - ,branding - ,color - ,part_descr - ,order_season - ,order_month - ,ship_season - ,ship_month - ,request_season - ,request_month - ,promo - ,version - ,iter - ,sum(value_loc) value_loc - ,sum(value_usd) value_usd - ,sum(cost_loc) cost_loc - ,sum(cost_usd) cost_usd - ,sum(units) units -FROM - ins -GROUP BY - bill_cust_descr - ,billto_group - ,ship_cust_descr - ,shipto_group - ,quota_rep_descr - ,director_descr - ,segm - ,mod_chan - ,mod_chansub - ,majg_descr - ,ming_descr - ,majs_descr - ,mins_descr - ,brand - ,part_family - ,part_group - ,branding - ,color - ,part_descr - ,order_season - ,order_month - ,ship_season - ,ship_month - ,request_season - ,request_month - ,promo - ,version - ,iter + SELECT + ---------customer info----------------- + bill_cust_descr + ,billto_group + ,ship_cust_descr + ,shipto_group + ,quota_rep_descr + ,director + ,segm + ,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 + --------values------------------------- + ,sum(value_loc) value_loc + ,sum(value_usd) value_usd + ,sum(cost_loc) cost_loc + ,sum(cost_usd) cost_usd + ,sum(units) units + FROM + ins + GROUP BY + ---------customer info----------------- + bill_cust_descr + ,billto_group + ,ship_cust_descr + ,shipto_group + ,quota_rep_descr + ,director + ,segm + ,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 ) SELECT json_agg(row_to_json(insagg)) x from insagg \ No newline at end of file From 21cb531e56b42060c0eecf4e54608fde9a0cfe4b Mon Sep 17 00:00:00 2001 From: Paul Trowbridge Date: Thu, 13 Feb 2020 11:03:42 -0500 Subject: [PATCH 04/18] embed the module in the forecast pool instead of reading the json, cross join the newly inserted log file and id --- route_sql/build/build_fcpool.sql | 7 +++++-- route_sql/scale_vd.sql | 9 ++++----- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/route_sql/build/build_fcpool.sql b/route_sql/build/build_fcpool.sql index d46ce14..77440a2 100644 --- a/route_sql/build/build_fcpool.sql +++ b/route_sql/build/build_fcpool.sql @@ -102,7 +102,7 @@ SELECT ,iter ,null::int logid ,null::text "comment" - ,null::text iterdet + ,null::text module FROM rlarp.osmf_dev o LEFT OUTER JOIN lgdat.cust bc ON @@ -135,4 +135,7 @@ CREATE INDEX osm_qr ON rlarp.osm_pool(quota_rep_descr); DROP TABLE IF EXISTS rlarp.osm_log; -CREATE TABLE IF NOT EXISTS rlarp.osm_log(id INT PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY, doc jsonb); \ No newline at end of file +CREATE TABLE IF NOT EXISTS rlarp.osm_log(id INT PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY, doc jsonb); + +GRANT ALL ON TABLE rlarp.osm_log TO api; +GRANT ALL ON TABLE rlarp.osm_pool TO api; \ No newline at end of file diff --git a/route_sql/scale_vd.sql b/route_sql/scale_vd.sql index 931a711..b793c63 100644 --- a/route_sql/scale_vd.sql +++ b/route_sql/scale_vd.sql @@ -4,11 +4,9 @@ target AS (select incr_qty qincr) SELECT sum(units) tot ,sum(units) FILTER (WHERE iter = 'copy') base - ,sum(units) FILTER (WHERE l.doc->>'type' = 'new basket') newpart + ,sum(units) FILTER (WHERE module = 'new basket') newpart FROM rlarp.osm_pool p - INNER JOIN rlarp.osm_log l ON - l.id = p.logid WHERE -----------------scenario---------------------------- where_clause @@ -93,7 +91,7 @@ target AS (select incr_qty qincr) AND CASE (SELECT flag FROM flagv) WHEN 'scale all' THEN true WHEN 'scale copy' THEN iter = 'copy' - WHEN 'scale new part' THEN iterdef->>'type' = 'new basket' + WHEN 'scale new part' THEN module = 'new basket' END AND calc_status||flag <> 'CLOSEDREMAINDER' --exclude short ships when building order adjustments AND order_date <= ship_date @@ -199,10 +197,11 @@ target AS (select incr_qty qincr) ,'replace_source'||' volume' iter ,log.id ,log.doc->>'comment' "comment" - ,'replace_iterdet' iterdet + ,log.doc->>'type' module FROM basemix b CROSS JOIN scale s + CROSS JOIN log ) --select sum(value_usd), count(*) from final , ins AS ( From 04276a89cb0e90e55bed5c7df59faf33c41b5261 Mon Sep 17 00:00:00 2001 From: Paul Trowbridge Date: Thu, 13 Feb 2020 12:18:32 -0500 Subject: [PATCH 05/18] swap out iterdef with module, and point to osm_pool --- route_sql/scale_vupd.sql | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/route_sql/scale_vupd.sql b/route_sql/scale_vupd.sql index 0042a2c..2aaf58d 100644 --- a/route_sql/scale_vupd.sql +++ b/route_sql/scale_vupd.sql @@ -4,9 +4,9 @@ target AS (select target_vol vincr, target_prc pincr) SELECT sum(fb_qty) tot ,sum(fb_qty) FILTER (WHERE iter = 'copy') base - ,sum(fb_qty) FILTER (WHERE iterdef->>'type' = 'new basket') newpart + ,sum(fb_qty) FILTER (WHERE module = 'new basket') newpart FROM - rlarp.osm_fcpool + rlarp.osm_pool WHERE -----------------scenario---------------------------- where_clause @@ -145,7 +145,7 @@ target AS (select target_vol vincr, target_prc pincr) ,null cost_usd ,null units FROM - rlarp.osm_fcpool + rlarp.osm_pool WHERE -----------------scenario---------------------------- where_clause @@ -153,7 +153,7 @@ target AS (select target_vol vincr, target_prc pincr) AND CASE (SELECT flag FROM flagv) WHEN 'scale all' THEN true WHEN 'scale copy' THEN iter = 'copy' - WHEN 'scale new part' THEN iterdef->>'type' = 'new basket' + WHEN 'scale new part' THEN module = 'new basket' END AND calc_status||flag <> 'CLOSEDREMAINDER' --exclude short ships when building order adjustments AND adj_orderdate <= adj_shipdate @@ -496,7 +496,7 @@ target AS (select target_vol vincr, target_prc pincr) ) --select sum(value_usd), sum(fb_qty) from pricing , ins AS ( - INSERT INTO rlarp.osm_fcpool (SELECT * FROM pricing UNION ALL SELECT * FROM volume) RETURNING * + INSERT INTO rlarp.osm_pool (SELECT * FROM pricing UNION ALL SELECT * FROM volume) RETURNING * ) ,insagg AS ( SELECT From 610c78f36fbd81c092ca90a6c66b3000ae59b91e Mon Sep 17 00:00:00 2001 From: Trowbridge Date: Thu, 13 Feb 2020 12:19:45 -0500 Subject: [PATCH 06/18] swap out basemix columns --- route_sql/scale_vupd.sql | 218 +++++++++++---------------------------- 1 file changed, 61 insertions(+), 157 deletions(-) diff --git a/route_sql/scale_vupd.sql b/route_sql/scale_vupd.sql index 2aaf58d..88d9c12 100644 --- a/route_sql/scale_vupd.sql +++ b/route_sql/scale_vupd.sql @@ -38,112 +38,50 @@ target AS (select target_vol vincr, target_prc pincr) ) ,basemix AS ( SELECT - plnt ---master data - ,0::numeric(11,0) "ddord#" --0 - ,0::numeric(11,0) "dditm#" --0 - ,0::numeric(11,0) "fgbol#" --0 - ,0::numeric(11,0) "fgent#" --0 - ,0::numeric(9,0) "diinv#" --0 - ,0::numeric(3,0) "dilin#" --0 + fspr + ,plnt ---master data ,promo --history date mix - ,null::text return_reas --0 ,terms - ,''::text custpo --0 - ,'I' dhincr --0 - ,null::numeric diext - ,null::numeric ditdis - ,null::date dcodat --calculated date mix - ,null::date ddqdat --calculated date mix - ,null::date dcmdat --calculated date mix - ,null::date dhidat --calculated date mix - ,null::text fspr --calculated date mix - ,remit_to --master data - ,bill_class --master data - ,bill_cust --history cust mix - ,bill_rep --master data - ,bill_terr --master data - ,ship_class --master data - ,ship_cust --history cust mix - ,ship_rep --master data - ,ship_terr --master data - ,quota_rep --master data - ,account --master data - ,shipgrp --master data - ,geo --master data + ,bill_cust_descr --history cust mix + ,ship_cust_descr --history cust mix + ,dsm + ,quota_rep_descr --master data + ,director + ,billto_group --master data + ,shipto_group ,chan --master data - ,orig_ctry --master data - ,orig_prov --master data - ,orig_post --master data - ,dest_ctry --master data - ,dest_prov --master data - ,dest_post --master data - ,part --history part mix - ,ord_gldc --master data - ,majg --master data - ,ming --master data - ,majs --master data - ,mins --master data - ,gldc --master data - ,glec --master data - ,harm --master data - ,clss --master data - ,brand --master data - ,assc --master data + ,chansub + ,chan_retail + ,part + ,part_descr + ,part_group + ,branding + ,majg_descr + ,ming_descr + ,majs_descr + ,mins_descr + ,segm ,fs_line --master data ,r_currency --history cust mix ,r_rate --master data ,c_currency --master data ,c_rate --master data - ,0::numeric(15,5) ddqtoi --0 - ,0::numeric(15,5) ddqtsi --0 - ,0::numeric(15,5) fgqshp --0 - ,0::numeric(15,5) diqtsh --0 - ,sum(coalesce(fb_qty,0)) fb_qty --history value - ,sum(coalesce(fb_cst_loc,0)) fb_cst_loc --history part mix - ,sum(coalesce(fb_cst_loc_cur,0)) fb_cst_loc_cur --master data - ,sum(coalesce(fb_cst_loc_fut,0)) fb_cst_loc_fut --master data - ,sum(coalesce(fb_val_loc,0)) fb_val_loc --history value - ,sum(coalesce(fb_val_loc_pl,0)) fb_val_loc_pl --0 + ,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(cost_loc,0)) cost_loc --history part mix + ,sum(coalesce(cost_usd,0)) cost_usd ,calc_status --0 ,flag --0 - ,orderdate --history date mix - ,requestdate --history date mix - ,shipdate --history date mix - ,adj_orderdate --history - ,adj_requestdate --history - ,adj_shipdate --history - ,null::text "version" --calculated - ,null::text iter --calculated - ---------------ui columns------------------------- - ,order_season + ,order_date --history date mix ,order_month - ,ship_season - ,ship_month - ,request_season + ,order_season + ,request_date --history date mix ,request_month - ,part_descr - ,part_family - ,part_group - ,branding - ,color - ,segm - ,bill_cust_descr - ,billto_group - ,ship_cust_descr - ,shipto_group - ,majg_descr - ,ming_descr - ,majs_descr - ,mins_descr - ,mod_chan - ,mod_chansub - ,quota_rep_descr - ,director_descr - ,null value_loc - ,null value_usd - ,null cost_loc - ,null cost_usd - ,null units + ,request_season + ,ship_date --history date mix + ,ship_month + ,ship_season FROM rlarp.osm_pool WHERE @@ -156,43 +94,31 @@ target AS (select target_vol vincr, target_prc pincr) WHEN 'scale new part' THEN module = 'new basket' END AND calc_status||flag <> 'CLOSEDREMAINDER' --exclude short ships when building order adjustments - AND adj_orderdate <= adj_shipdate + AND order_date <= ship_date GROUP BY - plnt ---master data - ,promo + fspr + ,plnt ---master data + ,promo --history date mix ,terms - ,remit_to --master data - ,bill_class --master data - ,bill_cust --history cust mix - ,bill_rep --master data - ,bill_terr --master data - ,ship_class --master data - ,ship_cust --history cust mix - ,ship_rep --master data - ,ship_terr --master data - ,quota_rep --master data - ,account --master data - ,shipgrp --master data - ,geo --master data + ,bill_cust_descr --history cust mix + ,ship_cust_descr --history cust mix + ,dsm + ,quota_rep_descr --master data + ,director + ,billto_group --master data + ,shipto_group ,chan --master data - ,orig_ctry --master data - ,orig_prov --master data - ,orig_post --master data - ,dest_ctry --master data - ,dest_prov --master data - ,dest_post --master data - ,part --history part mix - ,ord_gldc --master data - ,majg --master data - ,ming --master data - ,majs --master data - ,mins --master data - ,gldc --master data - ,glec --master data - ,harm --master data - ,clss --master data - ,brand --master data - ,assc --master data + ,chansub + ,chan_retail + ,part + ,part_descr + ,part_group + ,branding + ,majg_descr + ,ming_descr + ,majs_descr + ,mins_descr + ,segm ,fs_line --master data ,r_currency --history cust mix ,r_rate --master data @@ -200,37 +126,15 @@ target AS (select target_vol vincr, target_prc pincr) ,c_rate --master data ,calc_status --0 ,flag --0 - ,orderdate --history date mix - ,requestdate --history date mix - ,shipdate --history date mix - ,adj_orderdate --history - ,adj_requestdate --history - ,adj_shipdate --history - ---------------ui columns------------------------- - ,order_season + ,order_date --history date mix ,order_month - ,ship_season - ,ship_month - ,request_season + ,order_season + ,request_date --history date mix ,request_month - ,part_descr - ,part_family - ,part_group - ,branding - ,color - ,segm - ,bill_cust_descr - ,billto_group - ,ship_cust_descr - ,shipto_group - ,majg_descr - ,ming_descr - ,majs_descr - ,mins_descr - ,mod_chan - ,mod_chansub - ,quota_rep_descr - ,director_descr + ,request_season + ,ship_date --history date mix + ,ship_month + ,ship_season ) ,vscale AS ( SELECT From 994b0763218658791a677cb427052f5be4f2abd1 Mon Sep 17 00:00:00 2001 From: Trowbridge Date: Thu, 13 Feb 2020 12:21:30 -0500 Subject: [PATCH 07/18] swap out fb_qty or units --- route_sql/scale_vupd.sql | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/route_sql/scale_vupd.sql b/route_sql/scale_vupd.sql index 88d9c12..22ca8f1 100644 --- a/route_sql/scale_vupd.sql +++ b/route_sql/scale_vupd.sql @@ -2,9 +2,9 @@ WITH target AS (select target_vol vincr, target_prc pincr) ,testv AS ( SELECT - sum(fb_qty) tot - ,sum(fb_qty) FILTER (WHERE iter = 'copy') base - ,sum(fb_qty) FILTER (WHERE module = 'new basket') newpart + sum(units) tot + ,sum(units) FILTER (WHERE iter = 'copy') base + ,sum(units) FILTER (WHERE module = 'new basket') newpart FROM rlarp.osm_pool WHERE @@ -139,8 +139,8 @@ target AS (select target_vol vincr, target_prc pincr) ,vscale AS ( SELECT (SELECT vincr::numeric FROM target) incr - ,(SELECT sum(fb_qty)::numeric FROM basemix) base - ,(SELECT vincr::numeric FROM target)/(SELECT sum(fb_qty)::numeric FROM basemix) factor + ,(SELECT sum(units)::numeric FROM basemix) base + ,(SELECT vincr::numeric FROM target)/(SELECT sum(units)::numeric FROM basemix) factor ) --select * from vscale ,volume AS ( @@ -205,7 +205,7 @@ target AS (select target_vol vincr, target_prc pincr) ,b.ddqtsi --0 ,b.fgqshp --0 ,b.diqtsh --0 - ,b.fb_qty*s.factor fb_qty + ,b.units*s.factor units ,b.fb_cst_loc*s.factor fb_cst_loc ,b.fb_cst_loc_cur*s.factor fb_cst_loc_cur ,b.fb_cst_loc_fut*s.factor fb_cst_loc_fut @@ -252,7 +252,7 @@ target AS (select target_vol vincr, target_prc pincr) ,(b.fb_val_loc*s.factor*r_rate)::numeric value_usd ,(b.fb_cst_loc*s.factor)::numeric cost_loc ,(b.fb_cst_loc*s.factor*c_rate)::numeric cost_usd - ,(b.fb_qty*s.factor)::numeric units + ,(b.units*s.factor)::numeric units FROM basemix b CROSS JOIN vscale s @@ -271,7 +271,7 @@ target AS (select target_vol vincr, target_prc pincr) ,CASE WHEN (SELECT sum(fb_val_loc * r_rate) FROM volume) = 0 THEN CASE WHEN ((SELECT pincr::numeric FROM target) - (SELECT sum(fb_val_loc * r_rate) FROM volume)) <> 0 THEN --if the base value is -0- but the target value hasn't been achieved, derive a price to apply - ((SELECT pincr::numeric FROM target) - (SELECT sum(fb_val_loc * r_rate) FROM volume))/(SELECT sum(fb_qty) FROM volume) + ((SELECT pincr::numeric FROM target) - (SELECT sum(fb_val_loc * r_rate) FROM volume))/(SELECT sum(units) FROM volume) ELSE 0 END @@ -342,13 +342,13 @@ target AS (select target_vol vincr, target_prc pincr) ,b.ddqtsi --0 ,b.fgqshp --0 ,b.diqtsh --0 - ,0 fb_qty + ,0 units ,0 fb_cst_loc ,0 fb_cst_loc_cur ,0 fb_cst_loc_fut --,b.fb_val_loc*s.factor fb_val_loc - ,(CASE WHEN s.factor = 0 THEN b.fb_qty * s.mod_price/b.r_rate ELSE b.fb_val_loc*s.factor END)::numeric fb_val_loc - ,(CASE WHEN s.factor = 0 THEN b.fb_qty * s.mod_price/b.r_rate ELSE b.fb_val_loc_pl*s.factor END)::numeric fb_val_loc_pl + ,(CASE WHEN s.factor = 0 THEN b.units * s.mod_price/b.r_rate ELSE b.fb_val_loc*s.factor END)::numeric fb_val_loc + ,(CASE WHEN s.factor = 0 THEN b.units * s.mod_price/b.r_rate ELSE b.fb_val_loc_pl*s.factor END)::numeric fb_val_loc_pl --,b.fb_val_loc_pl*s.factor fb_val_loc_pl ,b.calc_status --0 ,b.flag --0 @@ -387,8 +387,8 @@ target AS (select target_vol vincr, target_prc pincr) ,b.mod_chansub ,b.quota_rep_descr ,b.director_descr - ,(CASE WHEN s.factor = 0 THEN b.fb_qty * s.mod_price/b.r_rate ELSE b.fb_val_loc*s.factor END)::numeric value_loc - ,(CASE WHEN s.factor = 0 THEN b.fb_qty * s.mod_price ELSE b.fb_val_loc*s.factor*b.r_rate END)::numeric value_usd + ,(CASE WHEN s.factor = 0 THEN b.units * s.mod_price/b.r_rate ELSE b.fb_val_loc*s.factor END)::numeric value_loc + ,(CASE WHEN s.factor = 0 THEN b.units * s.mod_price ELSE b.fb_val_loc*s.factor*b.r_rate END)::numeric value_usd ,0 cost_loc ,0 cost_usd ,0 units @@ -398,7 +398,7 @@ target AS (select target_vol vincr, target_prc pincr) WHERE s.factor <> 0 or s.mod_price <> 0 ) ---select sum(value_usd), sum(fb_qty) from pricing +--select sum(value_usd), sum(units) from pricing , ins AS ( INSERT INTO rlarp.osm_pool (SELECT * FROM pricing UNION ALL SELECT * FROM volume) RETURNING * ) From ef914f3d5ecffc71598182572b1b5919d0f75e7a Mon Sep 17 00:00:00 2001 From: Paul Trowbridge Date: Thu, 13 Feb 2020 12:26:13 -0500 Subject: [PATCH 08/18] insert to log and swap out columns on volume scale --- route_sql/scale_vupd.sql | 167 +++++++++++++-------------------------- 1 file changed, 56 insertions(+), 111 deletions(-) diff --git a/route_sql/scale_vupd.sql b/route_sql/scale_vupd.sql index 22ca8f1..613df99 100644 --- a/route_sql/scale_vupd.sql +++ b/route_sql/scale_vupd.sql @@ -143,119 +143,64 @@ target AS (select target_vol vincr, target_prc pincr) ,(SELECT vincr::numeric FROM target)/(SELECT sum(units)::numeric FROM basemix) factor ) --select * from vscale +,log AS ( + INSERT INTO rlarp.osm_log(doc) SELECT $$replace_iterdef$$::jsonb doc RETURNING * +) ,volume AS ( SELECT - b.plnt --master data - ,b."ddord#" --0 - ,b."dditm#" --0 - ,b."fgbol#" --0 - ,b."fgent#" --0 - ,b."diinv#" --0 - ,b."dilin#" --0 - ,b.promo --history date mix - ,b.return_reas --0 - ,b.terms --history cust mix - ,b.custpo --0 - ,b.dhincr --0 - ,b.diext --0 - ,b.ditdis --0 - ,b.dcodat --calculated date mix - ,b.ddqdat --calculated date mix - ,b.dcmdat --calculated date mix - ,b.dhidat --calculated date mix - ,b.fspr --calculated date mix - ,b.remit_to --master data - ,b.bill_class --master data - ,b.bill_cust --history cust mix - ,b.bill_rep --master data - ,b.bill_terr --master data - ,b.ship_class --master data - ,b.ship_cust --history cust mix - ,b.ship_rep --master data - ,b.ship_terr --master data - ,b.quota_rep --master data - ,b.account --master data - ,b.shipgrp --master data - ,b.geo --master data - ,b.chan --master data - ,b.orig_ctry --master data - ,b.orig_prov --master data - ,b.orig_post --master data - ,b.dest_ctry --master data - ,b.dest_prov --master data - ,b.dest_post --master data - ,b.part --history part mix - ,b.ord_gldc --master data - ,b.majg --master data - ,b.ming --master data - ,b.majs --master data - ,b.mins --master data - ,b.gldc --master data - ,b.glec --master data - ,b.harm --master data - ,b.clss --master data - ,b.brand --master data - ,b.assc --master data - ,b.fs_line --master data - ,b.r_currency --history cust mix - ,b.r_rate --master data - ,b.c_currency --master data - ,b.c_rate --master data - ,b.ddqtoi --0 - ,b.ddqtsi --0 - ,b.fgqshp --0 - ,b.diqtsh --0 - ,b.units*s.factor units - ,b.fb_cst_loc*s.factor fb_cst_loc - ,b.fb_cst_loc_cur*s.factor fb_cst_loc_cur - ,b.fb_cst_loc_fut*s.factor fb_cst_loc_fut - ,b.fb_val_loc*s.factor fb_val_loc - ,b.fb_val_loc_pl*s.factor fb_val_loc_pl - ,b.calc_status --0 - ,b.flag --0 - ,b.orderdate - ,b.requestdate - ,b.shipdate - ,b.adj_orderdate - ,b.adj_requestdate - ,b.adj_shipdate - ,'replace_version' "version" --calculated - ,'replace_source'||' volume' iter - -----------------------ui columns-------------------------------- - ,'replace_iterdet' iterdet - ,$$replace_iterdef$$::jsonb iterdef - ,b.order_season - ,b.order_month - ,b.ship_season - ,b.ship_month - ,b.request_season - ,b.request_month - ,b.part_descr - ,b.part_family - ,b.part_group - ,b.branding - ,b.color - ,b.segm - ,b.bill_cust_descr - ,b.billto_group - ,b.ship_cust_descr - ,b.shipto_group - ,b.majg_descr - ,b.ming_descr - ,b.majs_descr - ,b.mins_descr - ,b.mod_chan - ,b.mod_chansub - ,b.quota_rep_descr - ,b.director_descr - ,(b.fb_val_loc*s.factor)::numeric value_loc - ,(b.fb_val_loc*s.factor*r_rate)::numeric value_usd - ,(b.fb_cst_loc*s.factor)::numeric cost_loc - ,(b.fb_cst_loc*s.factor*c_rate)::numeric cost_usd - ,(b.units*s.factor)::numeric units - FROM - basemix b - CROSS JOIN vscale s + fspr + ,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 + ,director + ,billto_group --master data + ,shipto_group + ,chan --master data + ,chansub + ,chan_retail + ,part + ,part_descr + ,part_group + ,branding + ,majg_descr + ,ming_descr + ,majs_descr + ,mins_descr + ,segm + ,fs_line --master data + ,r_currency --history cust mix + ,r_rate --master data + ,c_currency --master data + ,c_rate --master data + ,units*s.factor + ,value_loc*s.factor + ,value_usd*s.factor + ,cost_loc*s.factor + ,cost_usd*s.factor + ,calc_status --0 + ,flag --0 + ,order_date --history date mix + ,order_month + ,order_season + ,request_date --history date mix + ,request_month + ,request_season + ,ship_date --history date mix + ,ship_month + ,ship_season + ,'replace_version' "version" + ,'replace_source'||' volume' iter + ,log.id + ,log.doc->>'comment' "comment" + ,log.doc->>'type' module +FROM + basemix b + CROSS JOIN scale s + CROSS JOIN log ) ,pscale AS ( SELECT From 5e4690a1f4d68e05db03695f92a9a0ccd4a4af0d Mon Sep 17 00:00:00 2001 From: Trowbridge Date: Thu, 13 Feb 2020 12:47:01 -0500 Subject: [PATCH 09/18] swap out value fields --- route_sql/scale_vupd.sql | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/route_sql/scale_vupd.sql b/route_sql/scale_vupd.sql index 613df99..62991ef 100644 --- a/route_sql/scale_vupd.sql +++ b/route_sql/scale_vupd.sql @@ -205,18 +205,18 @@ FROM ,pscale AS ( SELECT (SELECT pincr::numeric FROM target) incr - ,(SELECT sum(fb_val_loc * r_rate) FROM volume) base - ,CASE WHEN (SELECT sum(fb_val_loc * r_rate) FROM volume) = 0 THEN + ,(SELECT sum(value_loc * r_rate) FROM volume) base + ,CASE WHEN (SELECT sum(value_loc * r_rate) FROM volume) = 0 THEN --if the base value is -0- scaling will not work, need to generate price, factor goes to -0- 0 ELSE --if the target $amount is not achieved, adjust further - ((SELECT pincr::numeric FROM target)-(SELECT sum(fb_val_loc * r_rate) FROM volume))/(SELECT sum(fb_val_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(fb_val_loc * r_rate) FROM volume) = 0 THEN - CASE WHEN ((SELECT pincr::numeric FROM target) - (SELECT sum(fb_val_loc * r_rate) FROM volume)) <> 0 THEN + ,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 --if the base value is -0- but the target value hasn't been achieved, derive a price to apply - ((SELECT pincr::numeric FROM target) - (SELECT sum(fb_val_loc * r_rate) FROM volume))/(SELECT sum(units) FROM volume) + ((SELECT pincr::numeric FROM target) - (SELECT sum(value_loc * r_rate) FROM volume))/(SELECT sum(units) FROM volume) ELSE 0 END @@ -291,10 +291,10 @@ FROM ,0 fb_cst_loc ,0 fb_cst_loc_cur ,0 fb_cst_loc_fut - --,b.fb_val_loc*s.factor fb_val_loc - ,(CASE WHEN s.factor = 0 THEN b.units * s.mod_price/b.r_rate ELSE b.fb_val_loc*s.factor END)::numeric fb_val_loc - ,(CASE WHEN s.factor = 0 THEN b.units * s.mod_price/b.r_rate ELSE b.fb_val_loc_pl*s.factor END)::numeric fb_val_loc_pl - --,b.fb_val_loc_pl*s.factor fb_val_loc_pl + --,b.value_loc*s.factor value_loc + ,(CASE WHEN s.factor = 0 THEN b.units * s.mod_price/b.r_rate ELSE b.value_loc*s.factor END)::numeric value_loc + ,(CASE WHEN s.factor = 0 THEN b.units * s.mod_price/b.r_rate ELSE b.value_loc_pl*s.factor END)::numeric value_loc_pl + --,b.value_loc_pl*s.factor value_loc_pl ,b.calc_status --0 ,b.flag --0 ,b.orderdate @@ -332,8 +332,8 @@ FROM ,b.mod_chansub ,b.quota_rep_descr ,b.director_descr - ,(CASE WHEN s.factor = 0 THEN b.units * s.mod_price/b.r_rate ELSE b.fb_val_loc*s.factor END)::numeric value_loc - ,(CASE WHEN s.factor = 0 THEN b.units * s.mod_price ELSE b.fb_val_loc*s.factor*b.r_rate END)::numeric value_usd + ,(CASE WHEN s.factor = 0 THEN b.units * s.mod_price/b.r_rate ELSE b.value_loc*s.factor END)::numeric value_loc + ,(CASE WHEN s.factor = 0 THEN b.units * s.mod_price ELSE b.value_loc*s.factor*b.r_rate END)::numeric value_usd ,0 cost_loc ,0 cost_usd ,0 units From fb7fdc7959382be0109474a98d97737554380c40 Mon Sep 17 00:00:00 2001 From: Trowbridge Date: Thu, 13 Feb 2020 12:47:25 -0500 Subject: [PATCH 10/18] swap out columns on price adjust --- route_sql/scale_vupd.sql | 162 +++++++++++++-------------------------- 1 file changed, 52 insertions(+), 110 deletions(-) diff --git a/route_sql/scale_vupd.sql b/route_sql/scale_vupd.sql index 62991ef..d07d878 100644 --- a/route_sql/scale_vupd.sql +++ b/route_sql/scale_vupd.sql @@ -199,7 +199,7 @@ target AS (select target_vol vincr, target_prc pincr) ,log.doc->>'type' module FROM basemix b - CROSS JOIN scale s + CROSS JOIN vscale s CROSS JOIN log ) ,pscale AS ( @@ -225,121 +225,63 @@ FROM END mod_price ) --select * from pscale -,pricing AS ( - SELECT - b.plnt --master data - ,b."ddord#" --0 - ,b."dditm#" --0 - ,b."fgbol#" --0 - ,b."fgent#" --0 - ,b."diinv#" --0 - ,b."dilin#" --0 - ,b.promo --history date mix - ,b.return_reas --0 - ,b.terms --history cust mix - ,b.custpo --0 - ,b.dhincr --0 - ,b.diext --0 - ,b.ditdis --0 - ,b.dcodat --calculated date mix - ,b.ddqdat --calculated date mix - ,b.dcmdat --calculated date mix - ,b.dhidat --calculated date mix - ,b.fspr --calculated date mix - ,b.remit_to --master data - ,b.bill_class --master data - ,b.bill_cust --history cust mix - ,b.bill_rep --master data - ,b.bill_terr --master data - ,b.ship_class --master data - ,b.ship_cust --history cust mix - ,b.ship_rep --master data - ,b.ship_terr --master data - ,b.quota_rep --master data - ,b.account --master data - ,b.shipgrp --master data - ,b.geo --master data - ,b.chan --master data - ,b.orig_ctry --master data - ,b.orig_prov --master data - ,b.orig_post --master data - ,b.dest_ctry --master data - ,b.dest_prov --master data - ,b.dest_post --master data - ,b.part --history part mix - ,b.ord_gldc --master data - ,b.majg --master data - ,b.ming --master data - ,b.majs --master data - ,b.mins --master data - ,b.gldc --master data - ,b.glec --master data - ,b.harm --master data - ,b.clss --master data - ,b.brand --master data - ,b.assc --master data - ,b.fs_line --master data - ,b.r_currency --history cust mix - ,b.r_rate --master data - ,b.c_currency --master data - ,b.c_rate --master data - ,b.ddqtoi --0 - ,b.ddqtsi --0 - ,b.fgqshp --0 - ,b.diqtsh --0 - ,0 units - ,0 fb_cst_loc - ,0 fb_cst_loc_cur - ,0 fb_cst_loc_fut - --,b.value_loc*s.factor value_loc ,(CASE WHEN s.factor = 0 THEN b.units * s.mod_price/b.r_rate ELSE b.value_loc*s.factor END)::numeric value_loc ,(CASE WHEN s.factor = 0 THEN b.units * s.mod_price/b.r_rate ELSE b.value_loc_pl*s.factor END)::numeric value_loc_pl - --,b.value_loc_pl*s.factor value_loc_pl - ,b.calc_status --0 - ,b.flag --0 - ,b.orderdate - ,b.requestdate - ,b.shipdate - ,b.adj_orderdate - ,b.adj_requestdate - ,b.adj_shipdate - ,'replace_version' "version" --calculated - ,'replace_source'||' price' iter - -----------------------ui columns-------------------------------- - ,'replace_iterdet' iterdet - ,$$replace_iterdef$$::jsonb iterdef - ,b.order_season - ,b.order_month - ,b.ship_season - ,b.ship_month - ,b.request_season - ,b.request_month - ,b.part_descr - ,b.part_family - ,b.part_group - ,b.branding - ,b.color - ,b.segm - ,b.bill_cust_descr - ,b.billto_group - ,b.ship_cust_descr - ,b.shipto_group - ,b.majg_descr - ,b.ming_descr - ,b.majs_descr - ,b.mins_descr - ,b.mod_chan - ,b.mod_chansub - ,b.quota_rep_descr - ,b.director_descr +,pricing AS ( + SELECT + fspr + ,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 + ,director + ,billto_group --master data + ,shipto_group + ,chan --master data + ,chansub + ,chan_retail + ,part + ,part_descr + ,part_group + ,branding + ,majg_descr + ,ming_descr + ,majs_descr + ,mins_descr + ,segm + ,fs_line --master data + ,r_currency --history cust mix + ,r_rate --master data + ,c_currency --master data + ,c_rate --master data + ,0::numeric units ,(CASE WHEN s.factor = 0 THEN b.units * s.mod_price/b.r_rate ELSE b.value_loc*s.factor END)::numeric value_loc - ,(CASE WHEN s.factor = 0 THEN b.units * s.mod_price ELSE b.value_loc*s.factor*b.r_rate END)::numeric value_usd - ,0 cost_loc - ,0 cost_usd - ,0 units + ,(CASE WHEN s.factor = 0 THEN b.units * s.mod_price ELSE b.value_usd*s.factor END)::numeric value_usd + ,0::numeric cost_loc + ,0::numeric cost_usd + ,calc_status --0 + ,flag --0 + ,order_date --history date mix + ,order_month + ,order_season + ,request_date --history date mix + ,request_month + ,request_season + ,ship_date --history date mix + ,ship_month + ,ship_season + ,'replace_version' "version" + ,'replace_source'||' price' iter + ,log.id + ,log.doc->>'comment' "comment" + ,log.doc->>'type' module FROM volume b CROSS JOIN pscale s + CROSS JOIN log WHERE s.factor <> 0 or s.mod_price <> 0 ) From f83746b892c272f6db1f471a1349007f978b3b4c Mon Sep 17 00:00:00 2001 From: Trowbridge Date: Thu, 13 Feb 2020 12:48:51 -0500 Subject: [PATCH 11/18] swap out returning columns --- route_sql/scale_vupd.sql | 137 ++++++++++++++++++++------------------- 1 file changed, 72 insertions(+), 65 deletions(-) diff --git a/route_sql/scale_vupd.sql b/route_sql/scale_vupd.sql index d07d878..490925c 100644 --- a/route_sql/scale_vupd.sql +++ b/route_sql/scale_vupd.sql @@ -290,70 +290,77 @@ FROM INSERT INTO rlarp.osm_pool (SELECT * FROM pricing UNION ALL SELECT * FROM volume) RETURNING * ) ,insagg AS ( -SELECT - bill_cust_descr - ,billto_group - ,ship_cust_descr - ,shipto_group - ,quota_rep_descr - ,director_descr - ,segm - ,mod_chan - ,mod_chansub - ,majg_descr - ,ming_descr - ,majs_descr - ,mins_descr - ,brand - ,part_family - ,part_group - ,branding - ,color - ,part_descr - ,order_season - ,order_month - ,ship_season - ,ship_month - ,request_season - ,request_month - ,promo - ,version - ,iter - ,sum(value_loc) value_loc - ,sum(value_usd) value_usd - ,sum(cost_loc) cost_loc - ,sum(cost_usd) cost_usd - ,sum(units) units -FROM - ins -GROUP BY - bill_cust_descr - ,billto_group - ,ship_cust_descr - ,shipto_group - ,quota_rep_descr - ,director_descr - ,segm - ,mod_chan - ,mod_chansub - ,majg_descr - ,ming_descr - ,majs_descr - ,mins_descr - ,brand - ,part_family - ,part_group - ,branding - ,color - ,part_descr - ,order_season - ,order_month - ,ship_season - ,ship_month - ,request_season - ,request_month - ,promo - ,version - ,iter + SELECT + ---------customer info----------------- + bill_cust_descr + ,billto_group + ,ship_cust_descr + ,shipto_group + ,quota_rep_descr + ,director + ,segm + ,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 + --------values------------------------- + ,sum(value_loc) value_loc + ,sum(value_usd) value_usd + ,sum(cost_loc) cost_loc + ,sum(cost_usd) cost_usd + ,sum(units) units + FROM + ins + GROUP BY + ---------customer info----------------- + bill_cust_descr + ,billto_group + ,ship_cust_descr + ,shipto_group + ,quota_rep_descr + ,director + ,segm + ,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 ) SELECT json_agg(row_to_json(insagg)) x from insagg From e49c0513835f1832016d3b68faa0dcf46321eb3e Mon Sep 17 00:00:00 2001 From: Trowbridge Date: Thu, 13 Feb 2020 13:08:02 -0500 Subject: [PATCH 12/18] clean-up minor errors, running now --- route_sql/scale_vupd.sql | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/route_sql/scale_vupd.sql b/route_sql/scale_vupd.sql index 490925c..e7330fe 100644 --- a/route_sql/scale_vupd.sql +++ b/route_sql/scale_vupd.sql @@ -12,7 +12,7 @@ target AS (select target_vol vincr, target_prc pincr) where_clause -----------------additional params------------------- AND calc_status||flag <> 'CLOSEDREMAINDER' --exclude short ships when building order adjustments - AND adj_orderdate <= adj_shipdate + AND order_date <= ship_date ) ,flagv AS ( @@ -176,11 +176,11 @@ target AS (select target_vol vincr, target_prc pincr) ,r_rate --master data ,c_currency --master data ,c_rate --master data - ,units*s.factor - ,value_loc*s.factor - ,value_usd*s.factor - ,cost_loc*s.factor - ,cost_usd*s.factor + ,units*s.factor units + ,value_loc*s.factor value_loc + ,value_usd*s.factor value_usd + ,cost_loc*s.factor cost_loc + ,cost_usd*s.factor cost_usd ,calc_status --0 ,flag --0 ,order_date --history date mix @@ -225,8 +225,6 @@ FROM END mod_price ) --select * from pscale - ,(CASE WHEN s.factor = 0 THEN b.units * s.mod_price/b.r_rate ELSE b.value_loc*s.factor END)::numeric value_loc - ,(CASE WHEN s.factor = 0 THEN b.units * s.mod_price/b.r_rate ELSE b.value_loc_pl*s.factor END)::numeric value_loc_pl ,pricing AS ( SELECT fspr From a4d34ec83abbc0edd9fb9f83ab392abd6bde56e0 Mon Sep 17 00:00:00 2001 From: Trowbridge Date: Thu, 13 Feb 2020 13:10:18 -0500 Subject: [PATCH 13/18] add column names --- route_sql/scale_vd.sql | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/route_sql/scale_vd.sql b/route_sql/scale_vd.sql index b793c63..a285bdb 100644 --- a/route_sql/scale_vd.sql +++ b/route_sql/scale_vd.sql @@ -178,10 +178,10 @@ target AS (select incr_qty qincr) ,c_currency --master data ,c_rate --master data ,units*s.factor - ,value_loc*s.factor - ,value_usd*s.factor - ,cost_loc*s.factor - ,cost_usd*s.factor + ,value_loc*s.factor value_loc + ,value_usd*s.factor value_usd + ,cost_loc*s.factor cost_loc + ,cost_usd*s.factor cost_usd ,calc_status --0 ,flag --0 ,order_date --history date mix From 79ec4739c182d7245bfa4b0c2695b266c3f51d9f Mon Sep 17 00:00:00 2001 From: Trowbridge Date: Thu, 13 Feb 2020 13:18:55 -0500 Subject: [PATCH 14/18] swap out basemix coluns --- route_sql/scale_pd.sql | 227 ++++++++++++----------------------------- 1 file changed, 68 insertions(+), 159 deletions(-) diff --git a/route_sql/scale_pd.sql b/route_sql/scale_pd.sql index 2b16515..2f744d3 100644 --- a/route_sql/scale_pd.sql +++ b/route_sql/scale_pd.sql @@ -1,157 +1,88 @@ WITH target AS (select target_increment incr) ,basemix AS ( -SELECT - plnt ---master data - ,0::numeric(11,0) "ddord#" --0 - ,0::numeric(11,0) "dditm#" --0 - ,0::numeric(11,0) "fgbol#" --0 - ,0::numeric(11,0) "fgent#" --0 - ,0::numeric(9,0) "diinv#" --0 - ,0::numeric(3,0) "dilin#" --0 + SELECT + fspr + ,plnt ---master data ,promo --history date mix - ,null::text return_reas --0 ,terms - ,''::text custpo --0 - ,'I' dhincr --0 - ,null::numeric diext - ,null::numeric ditdis - ,null::date dcodat --calculated date mix - ,null::date ddqdat --calculated date mix - ,null::date dcmdat --calculated date mix - ,null::date dhidat --calculated date mix - ,null::text fspr --calculated date mix - ,remit_to --master data - ,bill_class --master data - ,bill_cust --history cust mix - ,bill_rep --master data - ,bill_terr --master data - ,ship_class --master data - ,ship_cust --history cust mix - ,ship_rep --master data - ,ship_terr --master data - ,quota_rep --master data - ,account --master data - ,shipgrp --master data - ,geo --master data + ,bill_cust_descr --history cust mix + ,ship_cust_descr --history cust mix + ,dsm + ,quota_rep_descr --master data + ,director + ,billto_group --master data + ,shipto_group ,chan --master data - ,orig_ctry --master data - ,orig_prov --master data - ,orig_post --master data - ,dest_ctry --master data - ,dest_prov --master data - ,dest_post --master data - ,part --history part mix - ,ord_gldc --master data - ,majg --master data - ,ming --master data - ,majs --master data - ,mins --master data - ,gldc --master data - ,glec --master data - ,harm --master data - ,clss --master data - ,brand --master data - ,assc --master data + ,chansub + ,chan_retail + ,part + ,part_descr + ,part_group + ,branding + ,majg_descr + ,ming_descr + ,majs_descr + ,mins_descr + ,segm ,fs_line --master data ,r_currency --history cust mix ,r_rate --master data ,c_currency --master data ,c_rate --master data - ,0::numeric(15,5) ddqtoi --0 - ,0::numeric(15,5) ddqtsi --0 - ,0::numeric(15,5) fgqshp --0 - ,0::numeric(15,5) diqtsh --0 - ,sum(coalesce(fb_qty,0)) fb_qty --history value - ,sum(coalesce(fb_cst_loc,0)) fb_cst_loc --history part mix - ,sum(coalesce(fb_cst_loc_cur,0)) fb_cst_loc_cur --master data - ,sum(coalesce(fb_cst_loc_fut,0)) fb_cst_loc_fut --master data - ,sum(coalesce(fb_val_loc,0)) fb_val_loc --history value - ,sum(coalesce(fb_val_loc_pl,0)) fb_val_loc_pl --0 + ,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(cost_loc,0)) cost_loc --history part mix + ,sum(coalesce(cost_usd,0)) cost_usd ,calc_status --0 ,flag --0 - ,orderdate --history date mix - ,requestdate --history date mix - ,shipdate --history date mix - ,adj_orderdate --history - ,adj_requestdate --history - ,adj_shipdate --history - ,'b20' "version" --calculated - ,'adjustment' iter --calculated - ---------------ui columns------------------------- - ,order_season + ,order_date --history date mix ,order_month - ,ship_season - ,ship_month - ,request_season + ,order_season + ,request_date --history date mix ,request_month - ,part_descr - ,part_family - ,part_group - ,branding - ,color - ,segm - ,bill_cust_descr - ,billto_group - ,ship_cust_descr - ,shipto_group - ,majg_descr - ,ming_descr - ,majs_descr - ,mins_descr - ,mod_chan - ,mod_chansub - ,quota_rep_descr - ,director_descr - ,null value_loc - ,null value_usd - ,null cost_loc - ,null cost_usd - ,null units + ,request_season + ,ship_date --history date mix + ,ship_month + ,ship_season FROM - rlarp.osm_fcpool + rlarp.osm_pool WHERE -----------------scenario---------------------------- where_clause -----------------additional params------------------- + AND CASE (SELECT flag FROM flagv) + WHEN 'scale all' THEN true + WHEN 'scale copy' THEN iter = 'copy' + WHEN 'scale new part' THEN module = 'new basket' + END AND calc_status||flag <> 'CLOSEDREMAINDER' --exclude short ships when building order adjustments - AND adj_orderdate <= adj_shipdate + AND order_date <= ship_date GROUP BY - plnt ---master data - ,promo + fspr + ,plnt ---master data + ,promo --history date mix ,terms - ,remit_to --master data - ,bill_class --master data - ,bill_cust --history cust mix - ,bill_rep --master data - ,bill_terr --master data - ,ship_class --master data - ,ship_cust --history cust mix - ,ship_rep --master data - ,ship_terr --master data - ,quota_rep --master data - ,account --master data - ,shipgrp --master data - ,geo --master data + ,bill_cust_descr --history cust mix + ,ship_cust_descr --history cust mix + ,dsm + ,quota_rep_descr --master data + ,director + ,billto_group --master data + ,shipto_group ,chan --master data - ,orig_ctry --master data - ,orig_prov --master data - ,orig_post --master data - ,dest_ctry --master data - ,dest_prov --master data - ,dest_post --master data - ,part --history part mix - ,ord_gldc --master data - ,majg --master data - ,ming --master data - ,majs --master data - ,mins --master data - ,gldc --master data - ,glec --master data - ,harm --master data - ,clss --master data - ,brand --master data - ,assc --master data + ,chansub + ,chan_retail + ,part + ,part_descr + ,part_group + ,branding + ,majg_descr + ,ming_descr + ,majs_descr + ,mins_descr + ,segm ,fs_line --master data ,r_currency --history cust mix ,r_rate --master data @@ -159,37 +90,15 @@ SELECT ,c_rate --master data ,calc_status --0 ,flag --0 - ,orderdate --history date mix - ,requestdate --history date mix - ,shipdate --history date mix - ,adj_orderdate --history - ,adj_requestdate --history - ,adj_shipdate --history - ---------------ui columns------------------------- - ,order_season + ,order_date --history date mix ,order_month - ,ship_season - ,ship_month - ,request_season + ,order_season + ,request_date --history date mix ,request_month - ,part_descr - ,part_family - ,part_group - ,branding - ,color - ,segm - ,bill_cust_descr - ,billto_group - ,ship_cust_descr - ,shipto_group - ,majg_descr - ,ming_descr - ,majs_descr - ,mins_descr - ,mod_chan - ,mod_chansub - ,quota_rep_descr - ,director_descr + ,request_season + ,ship_date --history date mix + ,ship_month + ,ship_season ) ,scale AS ( SELECT From 9793596d270a18488ed23b1021113c3a87e9da4f Mon Sep 17 00:00:00 2001 From: Trowbridge Date: Thu, 13 Feb 2020 13:19:06 -0500 Subject: [PATCH 15/18] switch scale columns --- route_sql/scale_pd.sql | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/route_sql/scale_pd.sql b/route_sql/scale_pd.sql index 2f744d3..bf8a760 100644 --- a/route_sql/scale_pd.sql +++ b/route_sql/scale_pd.sql @@ -103,16 +103,16 @@ target AS (select target_increment incr) ,scale AS ( SELECT (SELECT incr::numeric FROM target) incr - ,(SELECT sum(fb_val_loc * r_rate) FROM basemix) base - ,CASE WHEN (SELECT sum(fb_val_loc * r_rate) FROM basemix) = 0 THEN + ,(SELECT sum(value_loc * r_rate) FROM basemix) base + ,CASE WHEN (SELECT sum(value_loc * r_rate) FROM basemix) = 0 THEN 0 ELSE - (SELECT incr::numeric FROM target)/(SELECT sum(fb_val_loc * r_rate) FROM basemix) + (SELECT incr::numeric FROM target)/(SELECT sum(value_loc * r_rate) FROM basemix) END factor - ,CASE WHEN (SELECT sum(fb_val_loc * r_rate) FROM basemix) = 0 THEN - CASE WHEN ((SELECT incr::numeric FROM target) - (SELECT sum(fb_val_loc * r_rate) FROM basemix)) <> 0 THEN + ,CASE WHEN (SELECT sum(value_loc * r_rate) FROM basemix) = 0 THEN + CASE WHEN ((SELECT incr::numeric FROM target) - (SELECT sum(value_loc * r_rate) FROM basemix)) <> 0 THEN --if the base value is -0- but the target value hasn't been achieved, derive a price to apply - ((SELECT incr::numeric FROM target) - (SELECT sum(fb_val_loc * r_rate) FROM basemix))/(SELECT sum(fb_qty) FROM basemix) + ((SELECT incr::numeric FROM target) - (SELECT sum(value_loc * r_rate) FROM basemix))/(SELECT sum(units) FROM basemix) ELSE 0 END @@ -182,14 +182,14 @@ SELECT ,b.ddqtsi --0 ,b.fgqshp --0 ,b.diqtsh --0 - ,0 fb_qty + ,0 units ,0 fb_cst_loc ,0 fb_cst_loc_cur ,0 fb_cst_loc_fut - --,b.fb_val_loc*s.factor fb_val_loc - ,(CASE WHEN s.factor = 0 THEN b.fb_qty * s.mod_price/b.r_rate ELSE b.fb_val_loc*s.factor END)::numeric fb_val_loc - ,(CASE WHEN s.factor = 0 THEN b.fb_qty * s.mod_price/b.r_rate ELSE b.fb_val_loc_pl*s.factor END)::numeric fb_val_loc_pl - --,b.fb_val_loc_pl*s.factor fb_val_loc_pl + --,b.value_loc*s.factor value_loc + ,(CASE WHEN s.factor = 0 THEN b.units * s.mod_price/b.r_rate ELSE b.value_loc*s.factor END)::numeric value_loc + ,(CASE WHEN s.factor = 0 THEN b.units * s.mod_price/b.r_rate ELSE b.value_loc_pl*s.factor END)::numeric value_loc_pl + --,b.value_loc_pl*s.factor value_loc_pl ,b.calc_status --0 ,b.flag --0 ,b.orderdate @@ -227,8 +227,8 @@ SELECT ,b.mod_chansub ,b.quota_rep_descr ,b.director_descr - ,(CASE WHEN s.factor = 0 THEN b.fb_qty * s.mod_price/b.r_rate ELSE b.fb_val_loc*s.factor END)::numeric value_loc - ,(CASE WHEN s.factor = 0 THEN b.fb_qty * s.mod_price ELSE b.fb_val_loc*s.factor*r_rate END)::numeric value_usd + ,(CASE WHEN s.factor = 0 THEN b.units * s.mod_price/b.r_rate ELSE b.value_loc*s.factor END)::numeric value_loc + ,(CASE WHEN s.factor = 0 THEN b.units * s.mod_price ELSE b.value_loc*s.factor*r_rate END)::numeric value_usd ,0 cost_loc ,0 cost_usd ,0 units From a4cf5b760707042e27c4acb25a11f2399df4521d Mon Sep 17 00:00:00 2001 From: Trowbridge Date: Thu, 13 Feb 2020 13:20:33 -0500 Subject: [PATCH 16/18] insert new columns and log --- route_sql/scale_pd.sql | 175 ++++++++++++++--------------------------- 1 file changed, 59 insertions(+), 116 deletions(-) diff --git a/route_sql/scale_pd.sql b/route_sql/scale_pd.sql index bf8a760..daf9159 100644 --- a/route_sql/scale_pd.sql +++ b/route_sql/scale_pd.sql @@ -120,123 +120,66 @@ target AS (select target_increment incr) 0 END mod_price ) +,log AS ( + INSERT INTO rlarp.osm_log(doc) SELECT $$replace_iterdef$$::jsonb doc RETURNING * +) ,final AS ( -SELECT - b.plnt --master data - ,b."ddord#" --0 - ,b."dditm#" --0 - ,b."fgbol#" --0 - ,b."fgent#" --0 - ,b."diinv#" --0 - ,b."dilin#" --0 - ,b.promo --history date mix - ,b.return_reas --0 - ,b.terms --history cust mix - ,b.custpo --0 - ,b.dhincr --0 - ,b.diext --0 - ,b.ditdis --0 - ,b.dcodat --calculated date mix - ,b.ddqdat --calculated date mix - ,b.dcmdat --calculated date mix - ,b.dhidat --calculated date mix - ,b.fspr --calculated date mix - ,b.remit_to --master data - ,b.bill_class --master data - ,b.bill_cust --history cust mix - ,b.bill_rep --master data - ,b.bill_terr --master data - ,b.ship_class --master data - ,b.ship_cust --history cust mix - ,b.ship_rep --master data - ,b.ship_terr --master data - ,b.quota_rep --master data - ,b.account --master data - ,b.shipgrp --master data - ,b.geo --master data - ,b.chan --master data - ,b.orig_ctry --master data - ,b.orig_prov --master data - ,b.orig_post --master data - ,b.dest_ctry --master data - ,b.dest_prov --master data - ,b.dest_post --master data - ,b.part --history part mix - ,b.ord_gldc --master data - ,b.majg --master data - ,b.ming --master data - ,b.majs --master data - ,b.mins --master data - ,b.gldc --master data - ,b.glec --master data - ,b.harm --master data - ,b.clss --master data - ,b.brand --master data - ,b.assc --master data - ,b.fs_line --master data - ,b.r_currency --history cust mix - ,b.r_rate --master data - ,b.c_currency --master data - ,b.c_rate --master data - ,b.ddqtoi --0 - ,b.ddqtsi --0 - ,b.fgqshp --0 - ,b.diqtsh --0 - ,0 units - ,0 fb_cst_loc - ,0 fb_cst_loc_cur - ,0 fb_cst_loc_fut - --,b.value_loc*s.factor value_loc - ,(CASE WHEN s.factor = 0 THEN b.units * s.mod_price/b.r_rate ELSE b.value_loc*s.factor END)::numeric value_loc - ,(CASE WHEN s.factor = 0 THEN b.units * s.mod_price/b.r_rate ELSE b.value_loc_pl*s.factor END)::numeric value_loc_pl - --,b.value_loc_pl*s.factor value_loc_pl - ,b.calc_status --0 - ,b.flag --0 - ,b.orderdate - ,b.requestdate - ,b.shipdate - ,b.adj_orderdate - ,b.adj_requestdate - ,b.adj_shipdate - ,'replace_version' "version" --calculated - ,'replace_source'||' price' iter --calculated - -----------------------ui columns-------------------------------- - ,'replace_iterdet' iterdet - ,$$replace_iterdef$$::jsonb iterdef - ,b.order_season - ,b.order_month - ,b.ship_season - ,b.ship_month - ,b.request_season - ,b.request_month - ,b.part_descr - ,b.part_family - ,b.part_group - ,b.branding - ,b.color - ,b.segm - ,b.bill_cust_descr - ,b.billto_group - ,b.ship_cust_descr - ,b.shipto_group - ,b.majg_descr - ,b.ming_descr - ,b.majs_descr - ,b.mins_descr - ,b.mod_chan - ,b.mod_chansub - ,b.quota_rep_descr - ,b.director_descr - ,(CASE WHEN s.factor = 0 THEN b.units * s.mod_price/b.r_rate ELSE b.value_loc*s.factor END)::numeric value_loc - ,(CASE WHEN s.factor = 0 THEN b.units * s.mod_price ELSE b.value_loc*s.factor*r_rate END)::numeric value_usd - ,0 cost_loc - ,0 cost_usd - ,0 units -FROM - basemix b - CROSS JOIN scale s -WHERE - s.factor <> 0 or s.mod_price <> 0 + SELECT + fspr + ,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 + ,director + ,billto_group --master data + ,shipto_group + ,chan --master data + ,chansub + ,chan_retail + ,part + ,part_descr + ,part_group + ,branding + ,majg_descr + ,ming_descr + ,majs_descr + ,mins_descr + ,segm + ,fs_line --master data + ,r_currency --history cust mix + ,r_rate --master data + ,c_currency --master data + ,c_rate --master data + ,0::numeric units + ,(CASE WHEN s.factor = 0 THEN b.units * s.mod_price/b.r_rate ELSE b.value_loc*s.factor END)::numeric value_loc + ,(CASE WHEN s.factor = 0 THEN b.units * s.mod_price ELSE b.value_usd*s.factor END)::numeric value_usd + ,0::numeric cost_loc + ,0::numeric cost_usd + ,calc_status --0 + ,flag --0 + ,order_date --history date mix + ,order_month + ,order_season + ,request_date --history date mix + ,request_month + ,request_season + ,ship_date --history date mix + ,ship_month + ,ship_season + ,'replace_version' "version" + ,'replace_source'||' price' iter + ,log.id + ,log.doc->>'comment' "comment" + ,log.doc->>'type' module + FROM + volume b + CROSS JOIN pscale s + CROSS JOIN log + WHERE + s.factor <> 0 or s.mod_price <> 0 ) --select sum(value_usd), count(*) from final , ins AS ( From b3122a50bbb22ef601f215b1b5c4e7733b181033 Mon Sep 17 00:00:00 2001 From: Paul Trowbridge Date: Thu, 13 Feb 2020 13:56:29 -0500 Subject: [PATCH 17/18] swap out return rows --- route_sql/scale_pd.sql | 139 ++++++++++++++++++++++------------------- 1 file changed, 73 insertions(+), 66 deletions(-) diff --git a/route_sql/scale_pd.sql b/route_sql/scale_pd.sql index daf9159..8f61076 100644 --- a/route_sql/scale_pd.sql +++ b/route_sql/scale_pd.sql @@ -183,73 +183,80 @@ target AS (select target_increment incr) ) --select sum(value_usd), count(*) from final , ins AS ( - INSERT INTO rlarp.osm_fcpool SELECT * FROM final RETURNING * + INSERT INTO rlarp.osm_pool SELECT * FROM final RETURNING * ) ,insagg AS ( -SELECT - bill_cust_descr - ,billto_group - ,ship_cust_descr - ,shipto_group - ,quota_rep_descr - ,director_descr - ,segm - ,mod_chan - ,mod_chansub - ,majg_descr - ,ming_descr - ,majs_descr - ,mins_descr - ,brand - ,part_family - ,part_group - ,branding - ,color - ,part_descr - ,order_season - ,order_month - ,ship_season - ,ship_month - ,request_season - ,request_month - ,promo - ,version - ,iter - ,sum(value_loc) value_loc - ,sum(value_usd) value_usd - ,sum(cost_loc) cost_loc - ,sum(cost_usd) cost_usd - ,sum(units) units -FROM - ins -GROUP BY - bill_cust_descr - ,billto_group - ,ship_cust_descr - ,shipto_group - ,quota_rep_descr - ,director_descr - ,segm - ,mod_chan - ,mod_chansub - ,majg_descr - ,ming_descr - ,majs_descr - ,mins_descr - ,brand - ,part_family - ,part_group - ,branding - ,color - ,part_descr - ,order_season - ,order_month - ,ship_season - ,ship_month - ,request_season - ,request_month - ,promo - ,version - ,iter + SELECT + ---------customer info----------------- + bill_cust_descr + ,billto_group + ,ship_cust_descr + ,shipto_group + ,quota_rep_descr + ,director + ,segm + ,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 + --------values------------------------- + ,sum(value_loc) value_loc + ,sum(value_usd) value_usd + ,sum(cost_loc) cost_loc + ,sum(cost_usd) cost_usd + ,sum(units) units + FROM + ins + GROUP BY + ---------customer info----------------- + bill_cust_descr + ,billto_group + ,ship_cust_descr + ,shipto_group + ,quota_rep_descr + ,director + ,segm + ,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 ) SELECT json_agg(row_to_json(insagg)) x from insagg From 0c394b255746e837c66c9bf5035dce24ac7a91d2 Mon Sep 17 00:00:00 2001 From: Trowbridge Date: Thu, 13 Feb 2020 14:00:04 -0500 Subject: [PATCH 18/18] update CTE names, remove volume filter --- route_sql/scale_pd.sql | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/route_sql/scale_pd.sql b/route_sql/scale_pd.sql index 8f61076..b119180 100644 --- a/route_sql/scale_pd.sql +++ b/route_sql/scale_pd.sql @@ -52,11 +52,6 @@ target AS (select target_increment incr) -----------------scenario---------------------------- where_clause -----------------additional params------------------- - AND CASE (SELECT flag FROM flagv) - WHEN 'scale all' THEN true - WHEN 'scale copy' THEN iter = 'copy' - WHEN 'scale new part' THEN module = 'new basket' - END AND calc_status||flag <> 'CLOSEDREMAINDER' --exclude short ships when building order adjustments AND order_date <= ship_date GROUP BY @@ -175,8 +170,8 @@ target AS (select target_increment incr) ,log.doc->>'comment' "comment" ,log.doc->>'type' module FROM - volume b - CROSS JOIN pscale s + basemix b + CROSS JOIN scale s CROSS JOIN log WHERE s.factor <> 0 or s.mod_price <> 0