From 7432d51f936f2f137183f798f46ff9d9276161d6 Mon Sep 17 00:00:00 2001 From: Trowbridge Date: Wed, 6 Mar 2019 10:24:18 -0500 Subject: [PATCH] add scale for volume and price --- index.js | 360 +++++++++++++++++++++++++------------- route_meta/scale_vupd.sql | 358 ++++++++++++++++++++++++------------- 2 files changed, 479 insertions(+), 239 deletions(-) diff --git a/index.js b/index.js index 9fee18b..4ed2eea 100644 --- a/index.js +++ b/index.js @@ -2412,9 +2412,9 @@ server.get('/scale_vp', bodyParser.json(), function (req, res) { //console.log(args); w = `WITH - target AS (select ` + req.body.amount +` incr) + target AS (select ` + req.body.qty + ` vincr, `+ req.body.amount +` pincr) ,basemix AS ( - SELECT + SELECT plnt ---master data ,0::numeric(11,0) "ddord#" --0 ,0::numeric(11,0) "dditm#" --0 @@ -2605,129 +2605,249 @@ server.get('/scale_vp', bodyParser.json(), function (req, res) { ,quota_rep_descr ,director_descr ) - ,scale AS ( + ,vscale AS ( SELECT - (SELECT incr::numeric FROM target) incr - ,(SELECT sum(fb_val_loc *r_rate) FROM basemix) base - ,(SELECT incr::numeric FROM target)/(SELECT sum(fb_val_loc *r_rate) FROM basemix) factor + (SELECT vincr::numeric FROM target) incr + ,(SELECT sum(fb_qty) FROM basemix) base + ,(SELECT vincr::numeric FROM target)/(SELECT sum(fb_qty) FROM basemix) factor ) - ,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 fb_qty - ,0 fb_cst_loc - ,0 fb_cst_loc_cur - ,0 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 - ,b.version --calculated - ,b.iter --calculated - -----------------------ui columns-------------------------------- - ,'scale volume' iterdet - ,null::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 - ,0 cost_loc - ,0 cost_usd - ,0 units - FROM - basemix b - CROSS JOIN scale s + ,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.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 + ,b.version --calculated + ,b.iter --calculated + -----------------------ui columns-------------------------------- + ,'scale vp' iterdet + ,null::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 + FROM + basemix b + CROSS JOIN vscale s + ) + ,pscale AS ( + SELECT + (SELECT pincr::numeric FROM target) incr + ,(SELECT sum(fb_val_loc * r_rate) FROM volume) base + ,(SELECT pincr::numeric FROM target)/(SELECT sum(fb_val_loc) FROM volume) factor + ) + ,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 fb_qty + ,0 fb_cst_loc + ,0 fb_cst_loc_cur + ,0 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 + ,b.version --calculated + ,b.iter --calculated + -----------------------ui columns-------------------------------- + ,'scale vp' iterdet + ,null::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 + ,0 cost_loc + ,0 cost_usd + ,0 units + FROM + basemix b + CROSS JOIN pscale s ) --select sum(value_usd), count(*) from final , ins AS ( - INSERT INTO rlarp.osm_fcpool SELECT * FROM final RETURNING * + INSERT INTO rlarp.osm_fcpool SELECT * FROM pricing RETURNING * ) ,insagg AS ( SELECT diff --git a/route_meta/scale_vupd.sql b/route_meta/scale_vupd.sql index c94df6b..d793eda 100644 --- a/route_meta/scale_vupd.sql +++ b/route_meta/scale_vupd.sql @@ -1,7 +1,7 @@ WITH target AS (select -50000 vincr, 20000 pincr) ,basemix AS ( -SELECT + SELECT plnt ---master data ,0::numeric(11,0) "ddord#" --0 ,0::numeric(11,0) "dditm#" --0 @@ -196,129 +196,249 @@ SELECT ,quota_rep_descr ,director_descr ) -,scale AS ( +,vscale AS ( SELECT - (SELECT incr::numeric FROM target) incr - ,(SELECT sum(fb_val_loc *r_rate) FROM basemix) base - ,(SELECT incr::numeric FROM target)/(SELECT sum(fb_val_loc *r_rate) FROM basemix) factor + (SELECT vincr::numeric FROM target) incr + ,(SELECT sum(fb_qty) FROM basemix) base + ,(SELECT vincr::numeric FROM target)/(SELECT sum(fb_qty) FROM basemix) factor ) -,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 - ,b.version --calculated - ,b.iter --calculated - -----------------------ui columns-------------------------------- - ,'scale volume' iterdet - ,null::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 -FROM - basemix b - CROSS JOIN scale s +,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.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 + ,b.version --calculated + ,b.iter --calculated + -----------------------ui columns-------------------------------- + ,'scale vp' iterdet + ,null::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 + FROM + basemix b + CROSS JOIN vscale s +) +,pscale AS ( + SELECT + (SELECT pincr::numeric FROM target) incr + ,(SELECT sum(fb_val_loc * r_rate) FROM volume) base + ,(SELECT pincr::numeric FROM target)/(SELECT sum(fb_val_loc) FROM volume) factor +) +,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 fb_qty + ,0 fb_cst_loc + ,0 fb_cst_loc_cur + ,0 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 + ,b.version --calculated + ,b.iter --calculated + -----------------------ui columns-------------------------------- + ,'scale vp' iterdet + ,null::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 + ,0 cost_loc + ,0 cost_usd + ,0 units + FROM + basemix b + CROSS JOIN pscale s ) --select sum(value_usd), count(*) from final , ins AS ( - INSERT INTO rlarp.osm_fcpool SELECT * FROM final RETURNING * + INSERT INTO rlarp.osm_fcpool SELECT * FROM pricing RETURNING * ) ,insagg AS ( SELECT