baseline functional, but json doesn't look correct in fc.log or the sql

This commit is contained in:
Paul Trowbridge 2022-04-13 01:34:54 -04:00
parent a0fb500f29
commit 9c6ed6b304
4 changed files with 70 additions and 39 deletions

View File

@ -55,7 +55,7 @@ server.get('/baseline', bodyParser.json(), function(req, res) {
var path = './routes/baseline/baseline.sql'; var path = './routes/baseline/baseline.sql';
var args = []; var args = [];
var app_req = JSON.stringify(req.body);
var app_baseline_from_date = req.body.app_baseline_from_date; var app_baseline_from_date = req.body.app_baseline_from_date;
var app_baseline_to_date = req.body.app_baseline_to_date; var app_baseline_to_date = req.body.app_baseline_to_date;
var app_first_forecast_date = req.body.app_first_forecast_date; var app_first_forecast_date = req.body.app_first_forecast_date;
@ -71,6 +71,7 @@ server.get('/baseline', bodyParser.json(), function(req, res) {
console.log(req.body); console.log(req.body);
//parse the where clause into the main sql statement //parse the where clause into the main sql statement
//sql = sql.replace(new RegExp("where_clause", 'g'), w) //sql = sql.replace(new RegExp("where_clause", 'g'), w)
sql = sql.replace(new RegExp("app_req", 'g'), app_req);
sql = sql.replace(new RegExp("app_baseline_from_date", 'g'), app_baseline_from_date); sql = sql.replace(new RegExp("app_baseline_from_date", 'g'), app_baseline_from_date);
sql = sql.replace(new RegExp("app_baseline_to_date", 'g'), app_baseline_to_date); sql = sql.replace(new RegExp("app_baseline_to_date", 'g'), app_baseline_to_date);
sql = sql.replace(new RegExp("app_first_forecast_date", 'g'), app_first_forecast_date); sql = sql.replace(new RegExp("app_first_forecast_date", 'g'), app_first_forecast_date);

View File

@ -48,6 +48,7 @@ setup
* logid (added if missing) * logid (added if missing)
issues issues
- [ ] baseline request json is not depostiing correctly into the sql
- [ ] what if you create a func table but some of the values are null? (orders without quotes) - [ ] what if you create a func table but some of the values are null? (orders without quotes)
- [x] what if you want certain things like invoice numbers included in the baseline, is a func table necesary? no, just leave fkey null and no table will be setup - [x] what if you want certain things like invoice numbers included in the baseline, is a func table necesary? no, just leave fkey null and no table will be setup
- [ ] baseline needs to populate all columns in sequential order like the scale route - [ ] baseline needs to populate all columns in sequential order like the scale route

View File

@ -1,20 +1,30 @@
DELETE FROM tpsv.dcard WHERE app_version = 'app_forecast_name'; DELETE FROM tpsv.dcard WHERE app_version = 'app_forecast_name';
WITH WITH
baseline AS ( req AS (SELECT $$app_req$$::jsonb j)
,ilog AS (
INSERT INTO
fc.log (doc)
SELECT
req.j
FROM
req
RETURNING *
)
,baseline AS (
SELECT SELECT
o.id null::integer AS id
,o.logid ,null::integer AS logid
,o."Trans. Date" ,o."Trans. Date"
,o."Post Date" ,o."Post Date"
,o."Description" ,o."Description"
,o."Amount" ,sum(o."Amount") AS "Amount"
,o."Category" ,o."Category"
,o."Party" ,o."Party"
,o."Reason" ,o."Reason"
,o.app_units ,sum(o.app_units) AS app_units
,'app_forecast_name' "version" ,'app_forecast_name' AS app_version
,'actuals' iter ,'baseline' AS app_iter
,null::bigint app_logid ,(SELECT id FROM ilog) AS app_logid
FROM FROM
tpsv.dcard o tpsv.dcard o
WHERE WHERE
@ -27,52 +37,72 @@ WHERE
OR ("Post Date" BETWEEN 'app_baseline_from_date'::date AND 'app_baseline_to_date'::date) OR ("Post Date" BETWEEN 'app_baseline_from_date'::date AND 'app_baseline_to_date'::date)
) )
--be sure to pre-exclude unwanted items, like canceled orders, non-gross sales, and short-ships --be sure to pre-exclude unwanted items, like canceled orders, non-gross sales, and short-ships
UNION ALL GROUP BY
SELECT o."Trans. Date"
o.id ,o."Post Date"
,o.logid
,o."Trans. Date" + interval '1 year' AS "Trans. Date"
,o."Post Date" + interval '1 year' AS "Post Date"
,o."Description" ,o."Description"
,o."Amount"
,o."Category" ,o."Category"
,o."Party" ,o."Party"
,o."Reason" ,o."Reason"
,o.app_units UNION ALL
,'app_forecast_name' "version" SELECT
,'plug' iter null::integer AS id
,null::bigint app_logid ,null::integer AS logid
,o."Trans. Date" + interval '1 year' AS "Trans. Date"
,o."Post Date" + interval '1 year' AS "Post Date"
,o."Description"
,sum(o."Amount") AS "Amount"
,o."Category"
,o."Party"
,o."Reason"
,sum(o.app_units) AS app_units
,'app_forecast_name' AS app_version
,'baseline' AS app_iter
,(SELECT id FROM ilog) AS app_logid
FROM FROM
tpsv.dcard o tpsv.dcard o
LEFT OUTER JOIN fc.perd pdate ON LEFT OUTER JOIN fc.perd tdate ON
(o."Post Date" + interval '1 year' )::date <@ pdate.drange
LEFT OUTER JOIN fc.perd tdate ON
(o."Trans. Date" + interval '1 year' )::date <@ tdate.drange (o."Trans. Date" + interval '1 year' )::date <@ tdate.drange
LEFT OUTER JOIN fc.perd pdate ON
(o."Post Date" + interval '1 year' )::date <@ pdate.drange
WHERE WHERE
"Trans. Date" BETWEEN 'app_plug_fromdate'::date AND 'app_plug_todate'::date "Trans. Date" BETWEEN 'app_plug_fromdate'::date AND 'app_plug_todate'::date
--be sure to pre-exclude unwanted items, like canceled orders, non-gross sales, and short-ships --be sure to pre-exclude unwanted items, like canceled orders, non-gross sales, and short-ships
) GROUP BY
o."Trans. Date"
,o."Post Date"
,o."Description"
,o."Category"
,o."Party"
,o."Reason")
,incr AS ( ,incr AS (
SELECT SELECT
o.id null::integer AS id
,o.logid ,null::integer AS logid
,o."Trans. Date" + interval '1 year' AS "Trans. Date" ,o."Trans. Date" + interval '1 year' AS "Trans. Date"
,o."Post Date" + interval '1 year' AS "Post Date" ,o."Post Date" + interval '1 year' AS "Post Date"
,o."Description" ,o."Description"
,o."Amount" ,sum(o."Amount") AS "Amount"
,o."Category" ,o."Category"
,o."Party" ,o."Party"
,o."Reason" ,o."Reason"
,o.app_units ,sum(o.app_units) AS app_units
,'app_forecast_name' "version" ,'app_forecast_name' AS app_version
,'baseline' iter ,'baseline' AS app_iter
,null::bigint app_logid ,(SELECT id FROM ilog) AS app_logid
FROM FROM
baseline o baseline o
LEFT OUTER JOIN fc.perd pdate ON
(o."Post Date" + interval '1 year' )::date <@ pdate.drange
LEFT OUTER JOIN fc.perd tdate ON LEFT OUTER JOIN fc.perd tdate ON
(o."Trans. Date" + interval '1 year' )::date <@ tdate.drange (o."Trans. Date" + interval '1 year' )::date <@ tdate.drange
LEFT OUTER JOIN fc.perd pdate ON
(o."Post Date" + interval '1 year' )::date <@ pdate.drange
GROUP BY
o."Trans. Date"
,o."Post Date"
,o."Description"
,o."Category"
,o."Party"
,o."Reason"
) )
,ins AS ( ,ins AS (
INSERT INTO INSERT INTO

View File

@ -219,13 +219,11 @@ SELECT
-- fc.live -- fc.live
$$,incr AS ( $$,incr AS (
SELECT SELECT
$$||_clist_inc|| $$||_clist_inc||$$
$$
,'app_forecast_name' "version"
,'baseline' iter
,null::bigint app_logid
FROM FROM
baseline o$$||E'\n'||_perd_joins||$$ baseline o$$||E'\n'||_perd_joins||$$
GROUP BY
$$||_clist_group||$$
) )
,ins AS ( ,ins AS (
INSERT INTO INSERT INTO
@ -251,7 +249,8 @@ RAISE NOTICE E'_baseline -------> \n%',_baseline;
SELECT SELECT
$$DELETE FROM $$||_target_table||$$ WHERE $$||_version_col||$$ = 'app_forecast_name'; $$DELETE FROM $$||_target_table||$$ WHERE $$||_version_col||$$ = 'app_forecast_name';
WITH WITH
ilog AS ( req AS (SELECT $$||'$$app_req$$::jsonb j)'||$$
,ilog AS (
INSERT INTO INSERT INTO
fc.log (doc) fc.log (doc)
SELECT SELECT