parameterize sql and add route for new part

This commit is contained in:
Trowbridge 2019-03-21 15:29:17 -04:00
parent 2e6fc0e30a
commit bb83caa46f
2 changed files with 49 additions and 16 deletions

View File

@ -330,6 +330,48 @@ server.post('/scale_vp', bodyParser.json(), function (req, res) {
}); });
}) })
server.post('/new_part', bodyParser.json(), function (req, res) {
var sql = "";
var w = "";
var c = 1;
var d = 1;
var args = [];
var path = './route_sql/new_part.sql';
var callback = function(arg){
sql = arg;
({ c, w, d } = build_where(req, c, w, d, args));
if (c == 1) {
res.send("no body was sent");
return;
}
console.log("--------------------scale volume & price:-------------------");
console.log(req.body);
//console.log(args);
sql = sql.replace(new RegExp("where_clause",'g'),w);
sql = sql.replace(new RegExp("target_vol",'g'),req.body.qty);
sql = sql.replace(new RegExp("target_prc",'g'),req.body.amount);
sql = sql.replace(new RegExp("replace_request",'g'),JSON.stringify(req.body));
sql = sql.replace(new RegExp("replace_version",'g'),req.body.scenario.version);
sql = sql.replace(new RegExp("replace_source",'g'),req.body.source);
sql = sql.replace(new RegExp("replace_iterdef",'g'),JSON.stringify(req.body));
console.log(sql);
Postgres.FirstRow(sql,[],res)
}
fs.readFile(path, 'utf8', function(err, data){
if (!err){
callback(data);
} else {
console.log("fatal error pulling sql file")
callback(err);
}
});
})
function build_where(req, c, w, d, args) { function build_where(req, c, w, d, args) {
for (var i in req.body.scenario) { for (var i in req.body.scenario) {
//console.log(i); //console.log(i);
@ -360,5 +402,4 @@ function build_where(req, c, w, d, args) {
} }
; ;
return { c, w, d }; return { c, w, d };
} }

View File

@ -2,7 +2,7 @@ WITH
/* /*
the volume must be expressed in terms of units, since that is what it will be scaling the volume must be expressed in terms of units, since that is what it will be scaling
*/ */
target AS (select '{"scenario":{"quota_rep_descr":"10032 - BRYAN HILL","part_group":"XRD16002 - 16 CM SP COEX POT 4 SLOT WHBK","version":"b20","iter":["copy","adj volume","adj price"]},"stamp":"2019-03-21 11:31:57","user":"Trowbridge, Paul","source":"adj","type":"new_part","months":{"Oct":{"amount":25080,"qty":264000},"Nov":{"amount":69540,"qty":732000},"Dec":{"amount":950,"qty":10000},"Jan":{"amount":21850,"qty":230000},"Feb":{"amount":19380,"qty":204000},"Mar":{"amount":20790.621864,"qty":218848.6512},"Apr":{"amount":53297.1118899,"qty":561022.23042}},"newpart":"XNT0T1G0X19B118PYAUE - 01.00 PW SS T1G TALL CX WH/BK"}'::json def) target AS (select $$replace_request$$::json def)
--select * from newm --select * from newm
,GLD AS ( ,GLD AS (
SELECT SELECT
@ -179,11 +179,7 @@ target AS (select '{"scenario":{"quota_rep_descr":"10032 - BRYAN HILL","part_gro
mseq.m = order_month mseq.m = order_month
WHERE WHERE
-----------------scenario---------------------------- -----------------scenario----------------------------
--where_clause where_clause
quota_rep_descr = '10032 - BRYAN HILL'
AND part_group = 'XRD16002 - 16 CM SP COEX POT 4 SLOT WHBK'
AND version = 'b20'
AND iter in ('copy','short ship','bad_ship')
-----------------additional params------------------- -----------------additional params-------------------
AND calc_status||flag <> 'CLOSEDREMAINDER' --exclude short ships when building order adjustments AND calc_status||flag <> 'CLOSEDREMAINDER' --exclude short ships when building order adjustments
AND adj_orderdate <= adj_shipdate AND adj_orderdate <= adj_shipdate
@ -399,11 +395,7 @@ SELECT
rlarp.osm_fcpool rlarp.osm_fcpool
WHERE WHERE
-----------------scenario---------------------------- -----------------scenario----------------------------
--where_clause where_clause
quota_rep_descr = '10032 - BRYAN HILL'
AND part_group = 'XRD16002 - 16 CM SP COEX POT 4 SLOT WHBK'
AND version = 'b20'
AND iter in ('copy','short ship','bad_ship')
-----------------additional params------------------- -----------------additional params-------------------
AND calc_status||flag <> 'CLOSEDREMAINDER' --exclude short ships when building order adjustments AND calc_status||flag <> 'CLOSEDREMAINDER' --exclude short ships when building order adjustments
AND adj_orderdate <= adj_shipdate AND adj_orderdate <= adj_shipdate
@ -519,10 +511,10 @@ SELECT
,make_date(mxm.yr + 2020,mxm.cal,mxm.odom) + rlag adj_requestdate ,make_date(mxm.yr + 2020,mxm.cal,mxm.odom) + rlag adj_requestdate
,make_date(mxm.yr + 2020,mxm.cal,mxm.odom) + rlag + slag adj_shipdate ,make_date(mxm.yr + 2020,mxm.cal,mxm.odom) + rlag + slag adj_shipdate
,'replace_version' "version" ,'replace_version' "version"
,'replace_source'||' volume' iter ,'replace_source'||' new part' iter
-----------------------ui columns-------------------------------- -----------------------ui columns--------------------------------
,'replace_iterdet' iterdet ,'replace_iterdet' iterdet
,$${"replace_iterdef":""}$$::json iterdef ,$$replace_iterdef$$::json iterdef
,od.ssyr order_season ,od.ssyr order_season
,to_char(make_date(mxm.yr + 2020,mxm.cal,mxm.odom),'Mon') order_month ,to_char(make_date(mxm.yr + 2020,mxm.cal,mxm.odom),'Mon') order_month
,sd.ssyr ship_season ,sd.ssyr ship_season
@ -808,4 +800,4 @@ GROUP BY
,iter ,iter
) )
--SELECT * FROM insagg --SELECT * FROM insagg
SELECT json_agg(row_to_json(insagg)) x from insagg SELECT json_agg(row_to_json(insagg)) x from insagg