add scale for volume and price

This commit is contained in:
Trowbridge 2019-03-06 10:24:18 -05:00
parent afc002634b
commit 7432d51f93
2 changed files with 479 additions and 239 deletions

360
index.js
View File

@ -2412,9 +2412,9 @@ server.get('/scale_vp', bodyParser.json(), function (req, res) {
//console.log(args); //console.log(args);
w = w =
`WITH `WITH
target AS (select ` + req.body.amount +` incr) target AS (select ` + req.body.qty + ` vincr, `+ req.body.amount +` pincr)
,basemix AS ( ,basemix AS (
SELECT SELECT
plnt ---master data plnt ---master data
,0::numeric(11,0) "ddord#" --0 ,0::numeric(11,0) "ddord#" --0
,0::numeric(11,0) "dditm#" --0 ,0::numeric(11,0) "dditm#" --0
@ -2605,129 +2605,249 @@ server.get('/scale_vp', bodyParser.json(), function (req, res) {
,quota_rep_descr ,quota_rep_descr
,director_descr ,director_descr
) )
,scale AS ( ,vscale AS (
SELECT SELECT
(SELECT incr::numeric FROM target) incr (SELECT vincr::numeric FROM target) incr
,(SELECT sum(fb_val_loc *r_rate) FROM basemix) base ,(SELECT sum(fb_qty) FROM basemix) base
,(SELECT incr::numeric FROM target)/(SELECT sum(fb_val_loc *r_rate) FROM basemix) factor ,(SELECT vincr::numeric FROM target)/(SELECT sum(fb_qty) FROM basemix) factor
) )
,final AS ( ,volume AS (
SELECT SELECT
b.plnt --master data b.plnt --master data
,b."ddord#" --0 ,b."ddord#" --0
,b."dditm#" --0 ,b."dditm#" --0
,b."fgbol#" --0 ,b."fgbol#" --0
,b."fgent#" --0 ,b."fgent#" --0
,b."diinv#" --0 ,b."diinv#" --0
,b."dilin#" --0 ,b."dilin#" --0
,b.promo --history date mix ,b.promo --history date mix
,b.return_reas --0 ,b.return_reas --0
,b.terms --history cust mix ,b.terms --history cust mix
,b.custpo --0 ,b.custpo --0
,b.dhincr --0 ,b.dhincr --0
,b.diext --0 ,b.diext --0
,b.ditdis --0 ,b.ditdis --0
,b.dcodat --calculated date mix ,b.dcodat --calculated date mix
,b.ddqdat --calculated date mix ,b.ddqdat --calculated date mix
,b.dcmdat --calculated date mix ,b.dcmdat --calculated date mix
,b.dhidat --calculated date mix ,b.dhidat --calculated date mix
,b.fspr --calculated date mix ,b.fspr --calculated date mix
,b.remit_to --master data ,b.remit_to --master data
,b.bill_class --master data ,b.bill_class --master data
,b.bill_cust --history cust mix ,b.bill_cust --history cust mix
,b.bill_rep --master data ,b.bill_rep --master data
,b.bill_terr --master data ,b.bill_terr --master data
,b.ship_class --master data ,b.ship_class --master data
,b.ship_cust --history cust mix ,b.ship_cust --history cust mix
,b.ship_rep --master data ,b.ship_rep --master data
,b.ship_terr --master data ,b.ship_terr --master data
,b.quota_rep --master data ,b.quota_rep --master data
,b.account --master data ,b.account --master data
,b.shipgrp --master data ,b.shipgrp --master data
,b.geo --master data ,b.geo --master data
,b.chan --master data ,b.chan --master data
,b.orig_ctry --master data ,b.orig_ctry --master data
,b.orig_prov --master data ,b.orig_prov --master data
,b.orig_post --master data ,b.orig_post --master data
,b.dest_ctry --master data ,b.dest_ctry --master data
,b.dest_prov --master data ,b.dest_prov --master data
,b.dest_post --master data ,b.dest_post --master data
,b.part --history part mix ,b.part --history part mix
,b.ord_gldc --master data ,b.ord_gldc --master data
,b.majg --master data ,b.majg --master data
,b.ming --master data ,b.ming --master data
,b.majs --master data ,b.majs --master data
,b.mins --master data ,b.mins --master data
,b.gldc --master data ,b.gldc --master data
,b.glec --master data ,b.glec --master data
,b.harm --master data ,b.harm --master data
,b.clss --master data ,b.clss --master data
,b.brand --master data ,b.brand --master data
,b.assc --master data ,b.assc --master data
,b.fs_line --master data ,b.fs_line --master data
,b.r_currency --history cust mix ,b.r_currency --history cust mix
,b.r_rate --master data ,b.r_rate --master data
,b.c_currency --master data ,b.c_currency --master data
,b.c_rate --master data ,b.c_rate --master data
,b.ddqtoi --0 ,b.ddqtoi --0
,b.ddqtsi --0 ,b.ddqtsi --0
,b.fgqshp --0 ,b.fgqshp --0
,b.diqtsh --0 ,b.diqtsh --0
,0 fb_qty ,b.fb_qty*s.factor fb_qty
,0 fb_cst_loc ,b.fb_cst_loc*s.factor fb_cst_loc
,0 fb_cst_loc_cur ,b.fb_cst_loc_cur*s.factor fb_cst_loc_cur
,0 fb_cst_loc_fut ,b.fb_cst_loc_fut*s.factor fb_cst_loc_fut
,b.fb_val_loc*s.factor fb_val_loc ,b.fb_val_loc*s.factor fb_val_loc
,b.fb_val_loc_pl*s.factor fb_val_loc_pl ,b.fb_val_loc_pl*s.factor fb_val_loc_pl
,b.calc_status --0 ,b.calc_status --0
,b.flag --0 ,b.flag --0
,b.orderdate ,b.orderdate
,b.requestdate ,b.requestdate
,b.shipdate ,b.shipdate
,b.adj_orderdate ,b.adj_orderdate
,b.adj_requestdate ,b.adj_requestdate
,b.adj_shipdate ,b.adj_shipdate
,b.version --calculated ,b.version --calculated
,b.iter --calculated ,b.iter --calculated
-----------------------ui columns-------------------------------- -----------------------ui columns--------------------------------
,'scale volume' iterdet ,'scale vp' iterdet
,null::jsonb iterdef ,null::jsonb iterdef
,b.order_season ,b.order_season
,b.order_month ,b.order_month
,b.ship_season ,b.ship_season
,b.ship_month ,b.ship_month
,b.request_season ,b.request_season
,b.request_month ,b.request_month
,b.part_descr ,b.part_descr
,b.part_family ,b.part_family
,b.part_group ,b.part_group
,b.branding ,b.branding
,b.color ,b.color
,b.segm ,b.segm
,b.bill_cust_descr ,b.bill_cust_descr
,b.billto_group ,b.billto_group
,b.ship_cust_descr ,b.ship_cust_descr
,b.shipto_group ,b.shipto_group
,b.majg_descr ,b.majg_descr
,b.ming_descr ,b.ming_descr
,b.majs_descr ,b.majs_descr
,b.mins_descr ,b.mins_descr
,b.mod_chan ,b.mod_chan
,b.mod_chansub ,b.mod_chansub
,b.quota_rep_descr ,b.quota_rep_descr
,b.director_descr ,b.director_descr
,(b.fb_val_loc*s.factor)::numeric value_loc ,(b.fb_val_loc*s.factor)::numeric value_loc
,(b.fb_val_loc*s.factor*r_rate)::numeric value_usd ,(b.fb_val_loc*s.factor*r_rate)::numeric value_usd
,0 cost_loc ,(b.fb_cst_loc*s.factor)::numeric cost_loc
,0 cost_usd ,(b.fb_cst_loc*s.factor*c_rate)::numeric cost_usd
,0 units ,(b.fb_qty*s.factor)::numeric units
FROM FROM
basemix b basemix b
CROSS JOIN scale s 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 --select sum(value_usd), count(*) from final
, ins AS ( , ins AS (
INSERT INTO rlarp.osm_fcpool SELECT * FROM final RETURNING * INSERT INTO rlarp.osm_fcpool SELECT * FROM pricing RETURNING *
) )
,insagg AS ( ,insagg AS (
SELECT SELECT

View File

@ -1,7 +1,7 @@
WITH WITH
target AS (select -50000 vincr, 20000 pincr) target AS (select -50000 vincr, 20000 pincr)
,basemix AS ( ,basemix AS (
SELECT SELECT
plnt ---master data plnt ---master data
,0::numeric(11,0) "ddord#" --0 ,0::numeric(11,0) "ddord#" --0
,0::numeric(11,0) "dditm#" --0 ,0::numeric(11,0) "dditm#" --0
@ -196,129 +196,249 @@ SELECT
,quota_rep_descr ,quota_rep_descr
,director_descr ,director_descr
) )
,scale AS ( ,vscale AS (
SELECT SELECT
(SELECT incr::numeric FROM target) incr (SELECT vincr::numeric FROM target) incr
,(SELECT sum(fb_val_loc *r_rate) FROM basemix) base ,(SELECT sum(fb_qty) FROM basemix) base
,(SELECT incr::numeric FROM target)/(SELECT sum(fb_val_loc *r_rate) FROM basemix) factor ,(SELECT vincr::numeric FROM target)/(SELECT sum(fb_qty) FROM basemix) factor
) )
,final AS ( ,volume AS (
SELECT SELECT
b.plnt --master data b.plnt --master data
,b."ddord#" --0 ,b."ddord#" --0
,b."dditm#" --0 ,b."dditm#" --0
,b."fgbol#" --0 ,b."fgbol#" --0
,b."fgent#" --0 ,b."fgent#" --0
,b."diinv#" --0 ,b."diinv#" --0
,b."dilin#" --0 ,b."dilin#" --0
,b.promo --history date mix ,b.promo --history date mix
,b.return_reas --0 ,b.return_reas --0
,b.terms --history cust mix ,b.terms --history cust mix
,b.custpo --0 ,b.custpo --0
,b.dhincr --0 ,b.dhincr --0
,b.diext --0 ,b.diext --0
,b.ditdis --0 ,b.ditdis --0
,b.dcodat --calculated date mix ,b.dcodat --calculated date mix
,b.ddqdat --calculated date mix ,b.ddqdat --calculated date mix
,b.dcmdat --calculated date mix ,b.dcmdat --calculated date mix
,b.dhidat --calculated date mix ,b.dhidat --calculated date mix
,b.fspr --calculated date mix ,b.fspr --calculated date mix
,b.remit_to --master data ,b.remit_to --master data
,b.bill_class --master data ,b.bill_class --master data
,b.bill_cust --history cust mix ,b.bill_cust --history cust mix
,b.bill_rep --master data ,b.bill_rep --master data
,b.bill_terr --master data ,b.bill_terr --master data
,b.ship_class --master data ,b.ship_class --master data
,b.ship_cust --history cust mix ,b.ship_cust --history cust mix
,b.ship_rep --master data ,b.ship_rep --master data
,b.ship_terr --master data ,b.ship_terr --master data
,b.quota_rep --master data ,b.quota_rep --master data
,b.account --master data ,b.account --master data
,b.shipgrp --master data ,b.shipgrp --master data
,b.geo --master data ,b.geo --master data
,b.chan --master data ,b.chan --master data
,b.orig_ctry --master data ,b.orig_ctry --master data
,b.orig_prov --master data ,b.orig_prov --master data
,b.orig_post --master data ,b.orig_post --master data
,b.dest_ctry --master data ,b.dest_ctry --master data
,b.dest_prov --master data ,b.dest_prov --master data
,b.dest_post --master data ,b.dest_post --master data
,b.part --history part mix ,b.part --history part mix
,b.ord_gldc --master data ,b.ord_gldc --master data
,b.majg --master data ,b.majg --master data
,b.ming --master data ,b.ming --master data
,b.majs --master data ,b.majs --master data
,b.mins --master data ,b.mins --master data
,b.gldc --master data ,b.gldc --master data
,b.glec --master data ,b.glec --master data
,b.harm --master data ,b.harm --master data
,b.clss --master data ,b.clss --master data
,b.brand --master data ,b.brand --master data
,b.assc --master data ,b.assc --master data
,b.fs_line --master data ,b.fs_line --master data
,b.r_currency --history cust mix ,b.r_currency --history cust mix
,b.r_rate --master data ,b.r_rate --master data
,b.c_currency --master data ,b.c_currency --master data
,b.c_rate --master data ,b.c_rate --master data
,b.ddqtoi --0 ,b.ddqtoi --0
,b.ddqtsi --0 ,b.ddqtsi --0
,b.fgqshp --0 ,b.fgqshp --0
,b.diqtsh --0 ,b.diqtsh --0
,b.fb_qty*s.factor fb_qty ,b.fb_qty*s.factor fb_qty
,b.fb_cst_loc*s.factor fb_cst_loc ,b.fb_cst_loc*s.factor fb_cst_loc
,b.fb_cst_loc_cur*s.factor fb_cst_loc_cur ,b.fb_cst_loc_cur*s.factor fb_cst_loc_cur
,b.fb_cst_loc_fut*s.factor fb_cst_loc_fut ,b.fb_cst_loc_fut*s.factor fb_cst_loc_fut
,b.fb_val_loc*s.factor fb_val_loc ,b.fb_val_loc*s.factor fb_val_loc
,b.fb_val_loc_pl*s.factor fb_val_loc_pl ,b.fb_val_loc_pl*s.factor fb_val_loc_pl
,b.calc_status --0 ,b.calc_status --0
,b.flag --0 ,b.flag --0
,b.orderdate ,b.orderdate
,b.requestdate ,b.requestdate
,b.shipdate ,b.shipdate
,b.adj_orderdate ,b.adj_orderdate
,b.adj_requestdate ,b.adj_requestdate
,b.adj_shipdate ,b.adj_shipdate
,b.version --calculated ,b.version --calculated
,b.iter --calculated ,b.iter --calculated
-----------------------ui columns-------------------------------- -----------------------ui columns--------------------------------
,'scale volume' iterdet ,'scale vp' iterdet
,null::jsonb iterdef ,null::jsonb iterdef
,b.order_season ,b.order_season
,b.order_month ,b.order_month
,b.ship_season ,b.ship_season
,b.ship_month ,b.ship_month
,b.request_season ,b.request_season
,b.request_month ,b.request_month
,b.part_descr ,b.part_descr
,b.part_family ,b.part_family
,b.part_group ,b.part_group
,b.branding ,b.branding
,b.color ,b.color
,b.segm ,b.segm
,b.bill_cust_descr ,b.bill_cust_descr
,b.billto_group ,b.billto_group
,b.ship_cust_descr ,b.ship_cust_descr
,b.shipto_group ,b.shipto_group
,b.majg_descr ,b.majg_descr
,b.ming_descr ,b.ming_descr
,b.majs_descr ,b.majs_descr
,b.mins_descr ,b.mins_descr
,b.mod_chan ,b.mod_chan
,b.mod_chansub ,b.mod_chansub
,b.quota_rep_descr ,b.quota_rep_descr
,b.director_descr ,b.director_descr
,(b.fb_val_loc*s.factor)::numeric value_loc ,(b.fb_val_loc*s.factor)::numeric value_loc
,(b.fb_val_loc*s.factor*r_rate)::numeric value_usd ,(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)::numeric cost_loc
,(b.fb_cst_loc*s.factor*c_rate)::numeric cost_usd ,(b.fb_cst_loc*s.factor*c_rate)::numeric cost_usd
,(b.fb_qty*s.factor)::numeric units ,(b.fb_qty*s.factor)::numeric units
FROM FROM
basemix b basemix b
CROSS JOIN scale s 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 --select sum(value_usd), count(*) from final
, ins AS ( , ins AS (
INSERT INTO rlarp.osm_fcpool SELECT * FROM final RETURNING * INSERT INTO rlarp.osm_fcpool SELECT * FROM pricing RETURNING *
) )
,insagg AS ( ,insagg AS (
SELECT SELECT