diff --git a/route_sql/build/addmonth_vd.sql b/build/addmonth_vd.sql similarity index 100% rename from route_sql/build/addmonth_vd.sql rename to build/addmonth_vd.sql diff --git a/route_sql/build/build_fcpool.sql b/build/build_fcpool.sql similarity index 100% rename from route_sql/build/build_fcpool.sql rename to build/build_fcpool.sql diff --git a/route_sql/build/build_forecast.sql b/build/build_forecast.sql similarity index 96% rename from route_sql/build/build_forecast.sql rename to build/build_forecast.sql index abe8521..22e5f5c 100644 --- a/route_sql/build/build_forecast.sql +++ b/build/build_forecast.sql @@ -1,572 +1,572 @@ ---\timing -truncate table rlarp.osmf_dev; - -WITH -gld AS ( - SELECT - N1COMP COMP - ,N1CCYY FSYR - ,KPMAXP PERDS - ,N1FSPP PERD - ,to_char(N1FSYP,'FM0000') FSPR - ,N1SD01 SDAT - ,N1ED01 EDAT - ,to_char(N1ED01,'yymm') CAPR - ,N1ED01 - N1SD01 +1 NDAYS - ,CASE WHEN EXTRACT(MONTH FROM N1ED01) >= 6 THEN EXTRACT(YEAR FROM N1ED01) + 1 ELSE EXTRACT(YEAR FROM N1ED01) END SSYR - ,to_char(CASE WHEN EXTRACT(MONTH FROM N1ED01) >= 6 THEN EXTRACT(MONTH FROM N1ED01) -5 ELSE EXTRACT(MONTH FROM N1ED01) +7 END,'00') SSPR - FROM - LGDAT.GLDATREF - INNER JOIN LGDAT.GLDATE ON - KPCOMP = N1COMP AND - KPCCYY = N1CCYY - WHERE - N1COMP = 93 - --AND DIGITS(N1FSYP) = '1901' -) ---SELECT * FROM gld -,baseline AS ( - SELECT - -----------documents------------- - null::int "ddord#" - ,null::int "dditm#" - ,null::int "fgbol#" - ,null::int "fgent#" - ,null::int "diinv#" - ,null::int "dilin#" - ,null::int quoten - ,null::int quotel - ----------dates/status------------------ - ,o.odate dcodat - ,o.rdate ddqdat - ,null::date dcmdat - ,null::date fesdat - ,greatest(least(o.sdate,gld.edat),gld.sdat) dhidat - ,null::text fesind - ,null::text dhpost - ,o.fspr - -----------measures-------------------- - ,null::numeric ddqtoi - ,null::numeric ddqtsi - ,null::numeric fgqshp - ,null::numeric diqtsh - ,null::numeric diext - ,null::numeric ditdis - ,null::jsonb discj - ,null::text dhincr - ,plnt - ,o.promo - ,null::text return_reas - ,o.terms - ,null::text custpo - ,null::text remit_to - ,null::text bill_class - ,o.bill_cust - ,null::text bill_rep - ,null::text bill_terr - ,null::text ship_class - ,ship_cust - ,null::text ship_rep - ,null::text ship_terr - ,null::text dsm - ,null::text account - ,null::text shipgrp - ,null::text geo - ,null::text chan - ,null::text chansub - ,null::text orig_ctry - ,null::text orig_prov - ,null::text orig_post - ,null::text bill_ctry - ,null::text bill_prov - ,null::text bill_post - ,null::text dest_ctry - ,null::text dest_prov - ,null::text dest_post - ,o.part - ,null::text styc - ,null::text colc - ,null::text colgrp - ,null::text coltier - ,null::text colstat - ,null::text sizc - ,null::text pckg - ,null::text kit - ,null::text brnd - ,null::text majg - ,null::text ming - ,null::text majs - ,null::text mins - ,null::text gldco - ,null::text gldc - ,null::text glec - ,null::text harm - ,null::text clss - ,null::text brand - ,null::text assc - ,null::text ddunit - ,null::text unti - ,null::numeric lbs - ,null::numeric plt - ,null::text plcd - ,o.fs_line - ,o.r_currency - ,null::numeric r_rate - ,o.c_currency - ,null::numeric c_rate - ,sum(o.fb_qty) fb_qty - ,sum(o.fb_val_loc) fb_val_loc - ,sum(o.fb_val_loc_dis) fb_val_loc_dis - ,sum(o.fb_val_loc_qt) fb_val_loc_qt - ,sum(o.fb_val_loc_pl) fb_val_loc_pl - ,sum(o.fb_val_loc_tar) fb_val_loc_tar - ,sum(o.fb_cst_loc) fb_cst_loc - ,sum(o.fb_cst_loc_cur) fb_cst_loc_cur - ,sum(o.fb_cst_loc_fut) fb_cst_loc_fut - ,o.calc_status - ,o.flag - ,o.odate - ,o.oseas - ,o.rdate - ,o.rseas - -----when null, greatest/least is just going to act like coalesce - ,greatest(least(o.sdate,gld.edat),gld.sdat) sdate - ,ss.ssyr sseas - ,'15mo' "version" - ,'actuals' iter - FROM - rlarp.osm_dev o - --snap the ship dates of the historic fiscal period - LEFT OUTER JOIN gld ON - gld.fspr = o.fspr - --get the shipping season for open orders based on the snapped date - LEFT OUTER JOIN gld ss ON - greatest(least(o.sdate,gld.edat),gld.sdat) BETWEEN ss.sdat AND ss.edat - WHERE - ( - o.odate BETWEEN '2019-06-01' AND '2019-01-31' - OR (o.calc_status IN ('OPEN','BACKORDER') and o.odate < '2020-02-01') - OR o.fspr BETWEEN '2001' AND '2008' - ) - AND fs_line = '41010' - AND calc_status <> 'CANCELED' - GROUP BY - o.fspr - ,plnt - ,o.promo - ,o.terms - ,o.bill_cust - ,ship_cust - ,o.part - ,o.fs_line - ,o.r_currency - ,o.c_currency - ,o.calc_status - ,o.flag - ,o.odate - ,o.oseas - ,o.rdate - ,o.rseas - ,greatest(least(o.sdate,gld.edat),gld.sdat) - ,ss.ssyr - UNION ALL - SELECT - -----------documents------------- - null::int "ddord#" - ,null::int "dditm#" - ,null::int "fgbol#" - ,null::int "fgent#" - ,null::int "diinv#" - ,null::int "dilin#" - ,null::int quoten - ,null::int quotel - ----------dates/status------------------ - ,o.odate + interval '1 year' dcodat - ,o.rdate + interval '1 year' ddqdat - ,null::date dcmdat - ,null::date fesdat - ,greatest(least(o.sdate,gld.edat),gld.sdat) + interval '1 year' dhidat - ,null::text fesind - ,null::text dhpost - ,o.fspr - -----------measures-------------------- - ,null::numeric ddqtoi - ,null::numeric ddqtsi - ,null::numeric fgqshp - ,null::numeric diqtsh - ,null::numeric diext - ,null::numeric ditdis - ,null::jsonb discj - ,null::text dhincr - ,plnt - ,o.promo - ,null::text return_reas - ,o.terms - ,null::text custpo - ,null::text remit_to - ,null::text bill_class - ,o.bill_cust - ,null::text bill_rep - ,null::text bill_terr - ,null::text ship_class - ,ship_cust - ,null::text ship_rep - ,null::text ship_terr - ,null::text dsm - ,null::text account - ,null::text shipgrp - ,null::text geo - ,null::text chan - ,null::text chansub - ,null::text orig_ctry - ,null::text orig_prov - ,null::text orig_post - ,null::text bill_ctry - ,null::text bill_prov - ,null::text bill_post - ,null::text dest_ctry - ,null::text dest_prov - ,null::text dest_post - ,o.part - ,null::text styc - ,null::text colc - ,null::text colgrp - ,null::text coltier - ,null::text colstat - ,null::text sizc - ,null::text pckg - ,null::text kit - ,null::text brnd - ,null::text majg - ,null::text ming - ,null::text majs - ,null::text mins - ,null::text gldco - ,null::text gldc - ,null::text glec - ,null::text harm - ,null::text clss - ,null::text brand - ,null::text assc - ,null::text ddunit - ,null::text unti - ,null::numeric lbs - ,null::numeric plt - ,null::text plcd - ,o.fs_line - ,o.r_currency - ,null::numeric r_rate - ,o.c_currency - ,null::numeric c_rate - ,sum(o.fb_qty) fb_qty - ,sum(o.fb_val_loc) fb_val_loc - ,sum(o.fb_val_loc_dis) fb_val_loc_dis - ,sum(o.fb_val_loc_qt) fb_val_loc_qt - ,sum(o.fb_val_loc_pl) fb_val_loc_pl - ,sum(o.fb_val_loc_tar) fb_val_loc_tar - ,sum(o.fb_cst_loc) fb_cst_loc - ,sum(o.fb_cst_loc_cur) fb_cst_loc_cur - ,sum(o.fb_cst_loc_fut) fb_cst_loc_fut - ,o.calc_status - ,o.flag - ,o.odate + interval '1 year' odate - ,o.oseas + 1 rseas - ,o.rdate + interval '1 year' rdate - ,o.rseas + 1 rseas - -----when null, greatest/least is just going to act like coalesce - ,greatest(least(o.sdate,gld.edat),gld.sdat) + interval '1 year' sdate - ,ss.ssyr sseas - ,'actuals' "version" - ,'actuals_plug' iter - FROM - rlarp.osm_dev o - LEFT OUTER JOIN gld ON - gld.fspr = o.fspr - LEFT OUTER JOIN gld ss ON - greatest(least(o.sdate,gld.edat),gld.sdat) + interval '1 year' BETWEEN ss.sdat AND ss.edat - WHERE - o.odate BETWEEN '2019-02-01' AND '2019-05-31' - AND fs_line = '41010' - AND calc_status <> 'CANCELED' - ------exclude actuals for now and use forecast to get the plug for the rest of the year - AND false - GROUP BY - o.fspr - ,plnt - ,o.promo - ,o.terms - ,o.bill_cust - ,ship_cust - ,o.part - ,o.fs_line - ,o.r_currency - ,o.c_currency - ,o.calc_status - ,o.flag - ,o.odate - ,o.oseas - ,o.rdate - ,o.rseas - ,greatest(least(o.sdate,gld.edat),gld.sdat) - ,ss.ssyr - UNION ALL - SELECT - -----------documents------------- - null::int "ddord#" - ,null::int "dditm#" - ,null::int "fgbol#" - ,null::int "fgent#" - ,null::int "diinv#" - ,null::int "dilin#" - ,null::int quoten - ,null::int quotel - ----------dates/status------------------ - ,o.odate + interval '1 year' dcodat - ,o.rdate + interval '1 year' ddqdat - ,null::date dcmdat - ,null::date fesdat - ,greatest(least(o.sdate,gld.edat),gld.sdat) + interval '1 year' dhidat - ,null::text fesind - ,null::text dhpost - ,o.fspr - -----------measures-------------------- - ,null::numeric ddqtoi - ,null::numeric ddqtsi - ,null::numeric fgqshp - ,null::numeric diqtsh - ,null::numeric diext - ,null::numeric ditdis - ,null::jsonb discj - ,null::text dhincr - ,plnt - ,o.promo - ,null::text return_reas - ,o.terms - ,null::text custpo - ,null::text remit_to - ,null::text bill_class - ,o.bill_cust - ,null::text bill_rep - ,null::text bill_terr - ,null::text ship_class - ,ship_cust - ,null::text ship_rep - ,null::text ship_terr - ,null::text dsm - ,null::text account - ,null::text shipgrp - ,null::text geo - ,null::text chan - ,null::text chansub - ,null::text orig_ctry - ,null::text orig_prov - ,null::text orig_post - ,null::text bill_ctry - ,null::text bill_prov - ,null::text bill_post - ,null::text dest_ctry - ,null::text dest_prov - ,null::text dest_post - ,o.part - ,null::text styc - ,null::text colc - ,null::text colgrp - ,null::text coltier - ,null::text colstat - ,null::text sizc - ,null::text pckg - ,null::text kit - ,null::text brnd - ,null::text majg - ,null::text ming - ,null::text majs - ,null::text mins - ,null::text gldco - ,null::text gldc - ,null::text glec - ,null::text harm - ,null::text clss - ,null::text brand - ,null::text assc - ,null::text ddunit - ,null::text unti - ,null::numeric lbs - ,null::numeric plt - ,null::text plcd - ,o.fs_line - ,o.r_currency - ,null::numeric r_rate - ,o.c_currency - ,null::numeric c_rate - ,sum(o.fb_qty) fb_qty - ,sum(o.fb_val_loc) fb_val_loc - ,sum(o.fb_val_loc_dis) fb_val_loc_dis - ,sum(o.fb_val_loc_qt) fb_val_loc_qt - ,sum(o.fb_val_loc_pl) fb_val_loc_pl - ,sum(o.fb_val_loc_tar) fb_val_loc_tar - ,sum(o.fb_cst_loc) fb_cst_loc - ,sum(o.fb_cst_loc_cur) fb_cst_loc_cur - ,sum(o.fb_cst_loc_fut) fb_cst_loc_fut - ,o.calc_status - ,o.flag - ,o.odate odate - ,o.oseas rseas - ,o.rdate rdate - ,o.rseas rseas - -----when null, greatest/least is just going to act like coalesce - ,greatest(least(o.sdate,gld.edat),gld.sdat) sdate - ,ss.ssyr sseas - ,'actuals' "version" - ,'forecast_plug' iter - FROM - rlarp.osmp_dev o - LEFT OUTER JOIN gld ON - gld.fspr = o.fspr - LEFT OUTER JOIN gld ss ON - greatest(least(o.sdate,gld.edat),gld.sdat) BETWEEN ss.sdat AND ss.edat - WHERE - o.odate BETWEEN '2020-02-01' AND '2020-05-31' - AND fs_line = '41010' - AND calc_status <> 'CANCELED' - GROUP BY - o.fspr - ,plnt - ,o.promo - ,o.terms - ,o.bill_cust - ,ship_cust - ,o.part - ,o.fs_line - ,o.r_currency - ,o.c_currency - ,o.calc_status - ,o.flag - ,o.odate - ,o.oseas - ,o.rdate - ,o.rseas - ,greatest(least(o.sdate,gld.edat),gld.sdat) - ,ss.ssyr -) -,incr AS ( -SELECT - o."ddord#" - ,o."dditm#" - ,o."fgbol#" - ,o."fgent#" - ,o."diinv#" - ,o."dilin#" - ,o.quoten - ,o.quotel - ,o.dcodat + interval '1 year' --incremented - ,o.ddqdat + interval '1 year' --incremented - ,o.dcmdat - ,o.fesdat - ,o.dhidat + interval '1 year' --incremented - ,o.fesind - ,o.dhpost - ,gld.fspr --incremented - ,o.ddqtoi - ,o.ddqtsi - ,o.fgqshp - ,o.diqtsh - ,o.diext - ,o.ditdis - ,o.discj - ,o.dhincr - ,o.plnt - ,o.promo - ,o.return_reas - ,o.terms - ,o.custpo - ,o.remit_to - ,o.bill_class - ,o.bill_cust - ,o.bill_rep - ,o.bill_terr - ,o.ship_class - ,o.ship_cust - ,o.ship_rep - ,o.ship_terr - ,o.dsm - ,o.account - ,o.shipgrp - ,o.geo - ,o.chan - ,o.chansub - ,o.orig_ctry - ,o.orig_prov - ,o.orig_post - ,o.bill_ctry - ,o.bill_prov - ,o.bill_post - ,o.dest_ctry - ,o.dest_prov - ,o.dest_post - ,o.part - ,o.styc - ,o.colc - ,o.colgrp - ,o.coltier - ,o.colstat - ,o.sizc - ,o.pckg - ,o.kit - ,o.brnd - ,o.majg - ,o.ming - ,o.majs - ,o.mins - ,o.gldco - ,o.gldc - ,o.glec - ,o.harm - ,o.clss - ,o.brand - ,o.assc - ,o.ddunit - ,o.unti - ,o.lbs - ,o.plt - ,o.plcd - ,o.fs_line - ,o.r_currency - ,o.r_rate - ,o.c_currency - ,o.c_rate - ,o.fb_qty - ,o.fb_val_loc - ,o.fb_val_loc_dis - ,o.fb_val_loc_qt - ,o.fb_val_loc_pl - ,o.fb_val_loc_tar - ,o.fb_cst_loc - ,o.fb_cst_loc_cur - ,o.fb_cst_loc_fut - ,o.calc_status - ,o.flag - ,o.odate + interval '1 year' --incremented - ,o.oseas + 1 --incremented - ,o.rdate + interval '1 year' --incremented - ,o.rseas + 1 --incremented - ,o.sdate + interval '1 year' --incremented - ,o.sseas + 1 --incremented - ,'b21' "version" - ,'copy' iter -FROM - baseline o - LEFT OUTER JOIN gld ON - o.sdate + interval '1 year' BETWEEN gld.sdat and gld.edat -WHERE - o.odate + interval '1 year' >= '2020-06-01' -) -INSERT INTO rlarp.osmf_dev -SELECT * FROM incr -UNION ALL -SELECT * FROM baseline; - ----identify short ships: causes disconnect with actual sales------------------------------------------------------------------- ---UPDATE rlarp.osmfs SET iter = 'short ship' WHERE calc_status = 'CLOSED' AND flag = 'REMAINDER'; - ----identify goofy ship dates: causes disconnect with sales when splicing in a forecast that has this problem------------------- +--\timing +truncate table rlarp.osmf_dev; + +WITH +gld AS ( + SELECT + N1COMP COMP + ,N1CCYY FSYR + ,KPMAXP PERDS + ,N1FSPP PERD + ,to_char(N1FSYP,'FM0000') FSPR + ,N1SD01 SDAT + ,N1ED01 EDAT + ,to_char(N1ED01,'yymm') CAPR + ,N1ED01 - N1SD01 +1 NDAYS + ,CASE WHEN EXTRACT(MONTH FROM N1ED01) >= 6 THEN EXTRACT(YEAR FROM N1ED01) + 1 ELSE EXTRACT(YEAR FROM N1ED01) END SSYR + ,to_char(CASE WHEN EXTRACT(MONTH FROM N1ED01) >= 6 THEN EXTRACT(MONTH FROM N1ED01) -5 ELSE EXTRACT(MONTH FROM N1ED01) +7 END,'00') SSPR + FROM + LGDAT.GLDATREF + INNER JOIN LGDAT.GLDATE ON + KPCOMP = N1COMP AND + KPCCYY = N1CCYY + WHERE + N1COMP = 93 + --AND DIGITS(N1FSYP) = '1901' +) +--SELECT * FROM gld +,baseline AS ( + SELECT + -----------documents------------- + null::int "ddord#" + ,null::int "dditm#" + ,null::int "fgbol#" + ,null::int "fgent#" + ,null::int "diinv#" + ,null::int "dilin#" + ,null::int quoten + ,null::int quotel + ----------dates/status------------------ + ,o.odate dcodat + ,o.rdate ddqdat + ,null::date dcmdat + ,null::date fesdat + ,greatest(least(o.sdate,gld.edat),gld.sdat) dhidat + ,null::text fesind + ,null::text dhpost + ,o.fspr + -----------measures-------------------- + ,null::numeric ddqtoi + ,null::numeric ddqtsi + ,null::numeric fgqshp + ,null::numeric diqtsh + ,null::numeric diext + ,null::numeric ditdis + ,null::jsonb discj + ,null::text dhincr + ,plnt + ,o.promo + ,null::text return_reas + ,o.terms + ,null::text custpo + ,null::text remit_to + ,null::text bill_class + ,o.bill_cust + ,null::text bill_rep + ,null::text bill_terr + ,null::text ship_class + ,ship_cust + ,null::text ship_rep + ,null::text ship_terr + ,null::text dsm + ,null::text account + ,null::text shipgrp + ,null::text geo + ,null::text chan + ,null::text chansub + ,null::text orig_ctry + ,null::text orig_prov + ,null::text orig_post + ,null::text bill_ctry + ,null::text bill_prov + ,null::text bill_post + ,null::text dest_ctry + ,null::text dest_prov + ,null::text dest_post + ,o.part + ,null::text styc + ,null::text colc + ,null::text colgrp + ,null::text coltier + ,null::text colstat + ,null::text sizc + ,null::text pckg + ,null::text kit + ,null::text brnd + ,null::text majg + ,null::text ming + ,null::text majs + ,null::text mins + ,null::text gldco + ,null::text gldc + ,null::text glec + ,null::text harm + ,null::text clss + ,null::text brand + ,null::text assc + ,null::text ddunit + ,null::text unti + ,null::numeric lbs + ,null::numeric plt + ,null::text plcd + ,o.fs_line + ,o.r_currency + ,null::numeric r_rate + ,o.c_currency + ,null::numeric c_rate + ,sum(o.fb_qty) fb_qty + ,sum(o.fb_val_loc) fb_val_loc + ,sum(o.fb_val_loc_dis) fb_val_loc_dis + ,sum(o.fb_val_loc_qt) fb_val_loc_qt + ,sum(o.fb_val_loc_pl) fb_val_loc_pl + ,sum(o.fb_val_loc_tar) fb_val_loc_tar + ,sum(o.fb_cst_loc) fb_cst_loc + ,sum(o.fb_cst_loc_cur) fb_cst_loc_cur + ,sum(o.fb_cst_loc_fut) fb_cst_loc_fut + ,o.calc_status + ,o.flag + ,o.odate + ,o.oseas + ,o.rdate + ,o.rseas + -----when null, greatest/least is just going to act like coalesce + ,greatest(least(o.sdate,gld.edat),gld.sdat) sdate + ,ss.ssyr sseas + ,'15mo' "version" + ,'actuals' iter + FROM + rlarp.osm_dev o + --snap the ship dates of the historic fiscal period + LEFT OUTER JOIN gld ON + gld.fspr = o.fspr + --get the shipping season for open orders based on the snapped date + LEFT OUTER JOIN gld ss ON + greatest(least(o.sdate,gld.edat),gld.sdat) BETWEEN ss.sdat AND ss.edat + WHERE + ( + o.odate BETWEEN '2019-06-01' AND '2019-01-31' + OR (o.calc_status IN ('OPEN','BACKORDER') and o.odate < '2020-02-01') + OR o.fspr BETWEEN '2001' AND '2008' + ) + AND fs_line = '41010' + AND calc_status <> 'CANCELED' + GROUP BY + o.fspr + ,plnt + ,o.promo + ,o.terms + ,o.bill_cust + ,ship_cust + ,o.part + ,o.fs_line + ,o.r_currency + ,o.c_currency + ,o.calc_status + ,o.flag + ,o.odate + ,o.oseas + ,o.rdate + ,o.rseas + ,greatest(least(o.sdate,gld.edat),gld.sdat) + ,ss.ssyr + UNION ALL + SELECT + -----------documents------------- + null::int "ddord#" + ,null::int "dditm#" + ,null::int "fgbol#" + ,null::int "fgent#" + ,null::int "diinv#" + ,null::int "dilin#" + ,null::int quoten + ,null::int quotel + ----------dates/status------------------ + ,o.odate + interval '1 year' dcodat + ,o.rdate + interval '1 year' ddqdat + ,null::date dcmdat + ,null::date fesdat + ,greatest(least(o.sdate,gld.edat),gld.sdat) + interval '1 year' dhidat + ,null::text fesind + ,null::text dhpost + ,o.fspr + -----------measures-------------------- + ,null::numeric ddqtoi + ,null::numeric ddqtsi + ,null::numeric fgqshp + ,null::numeric diqtsh + ,null::numeric diext + ,null::numeric ditdis + ,null::jsonb discj + ,null::text dhincr + ,plnt + ,o.promo + ,null::text return_reas + ,o.terms + ,null::text custpo + ,null::text remit_to + ,null::text bill_class + ,o.bill_cust + ,null::text bill_rep + ,null::text bill_terr + ,null::text ship_class + ,ship_cust + ,null::text ship_rep + ,null::text ship_terr + ,null::text dsm + ,null::text account + ,null::text shipgrp + ,null::text geo + ,null::text chan + ,null::text chansub + ,null::text orig_ctry + ,null::text orig_prov + ,null::text orig_post + ,null::text bill_ctry + ,null::text bill_prov + ,null::text bill_post + ,null::text dest_ctry + ,null::text dest_prov + ,null::text dest_post + ,o.part + ,null::text styc + ,null::text colc + ,null::text colgrp + ,null::text coltier + ,null::text colstat + ,null::text sizc + ,null::text pckg + ,null::text kit + ,null::text brnd + ,null::text majg + ,null::text ming + ,null::text majs + ,null::text mins + ,null::text gldco + ,null::text gldc + ,null::text glec + ,null::text harm + ,null::text clss + ,null::text brand + ,null::text assc + ,null::text ddunit + ,null::text unti + ,null::numeric lbs + ,null::numeric plt + ,null::text plcd + ,o.fs_line + ,o.r_currency + ,null::numeric r_rate + ,o.c_currency + ,null::numeric c_rate + ,sum(o.fb_qty) fb_qty + ,sum(o.fb_val_loc) fb_val_loc + ,sum(o.fb_val_loc_dis) fb_val_loc_dis + ,sum(o.fb_val_loc_qt) fb_val_loc_qt + ,sum(o.fb_val_loc_pl) fb_val_loc_pl + ,sum(o.fb_val_loc_tar) fb_val_loc_tar + ,sum(o.fb_cst_loc) fb_cst_loc + ,sum(o.fb_cst_loc_cur) fb_cst_loc_cur + ,sum(o.fb_cst_loc_fut) fb_cst_loc_fut + ,o.calc_status + ,o.flag + ,o.odate + interval '1 year' odate + ,o.oseas + 1 rseas + ,o.rdate + interval '1 year' rdate + ,o.rseas + 1 rseas + -----when null, greatest/least is just going to act like coalesce + ,greatest(least(o.sdate,gld.edat),gld.sdat) + interval '1 year' sdate + ,ss.ssyr sseas + ,'actuals' "version" + ,'actuals_plug' iter + FROM + rlarp.osm_dev o + LEFT OUTER JOIN gld ON + gld.fspr = o.fspr + LEFT OUTER JOIN gld ss ON + greatest(least(o.sdate,gld.edat),gld.sdat) + interval '1 year' BETWEEN ss.sdat AND ss.edat + WHERE + o.odate BETWEEN '2019-02-01' AND '2019-05-31' + AND fs_line = '41010' + AND calc_status <> 'CANCELED' + ------exclude actuals for now and use forecast to get the plug for the rest of the year + AND false + GROUP BY + o.fspr + ,plnt + ,o.promo + ,o.terms + ,o.bill_cust + ,ship_cust + ,o.part + ,o.fs_line + ,o.r_currency + ,o.c_currency + ,o.calc_status + ,o.flag + ,o.odate + ,o.oseas + ,o.rdate + ,o.rseas + ,greatest(least(o.sdate,gld.edat),gld.sdat) + ,ss.ssyr + UNION ALL + SELECT + -----------documents------------- + null::int "ddord#" + ,null::int "dditm#" + ,null::int "fgbol#" + ,null::int "fgent#" + ,null::int "diinv#" + ,null::int "dilin#" + ,null::int quoten + ,null::int quotel + ----------dates/status------------------ + ,o.odate + interval '1 year' dcodat + ,o.rdate + interval '1 year' ddqdat + ,null::date dcmdat + ,null::date fesdat + ,greatest(least(o.sdate,gld.edat),gld.sdat) + interval '1 year' dhidat + ,null::text fesind + ,null::text dhpost + ,o.fspr + -----------measures-------------------- + ,null::numeric ddqtoi + ,null::numeric ddqtsi + ,null::numeric fgqshp + ,null::numeric diqtsh + ,null::numeric diext + ,null::numeric ditdis + ,null::jsonb discj + ,null::text dhincr + ,plnt + ,o.promo + ,null::text return_reas + ,o.terms + ,null::text custpo + ,null::text remit_to + ,null::text bill_class + ,o.bill_cust + ,null::text bill_rep + ,null::text bill_terr + ,null::text ship_class + ,ship_cust + ,null::text ship_rep + ,null::text ship_terr + ,null::text dsm + ,null::text account + ,null::text shipgrp + ,null::text geo + ,null::text chan + ,null::text chansub + ,null::text orig_ctry + ,null::text orig_prov + ,null::text orig_post + ,null::text bill_ctry + ,null::text bill_prov + ,null::text bill_post + ,null::text dest_ctry + ,null::text dest_prov + ,null::text dest_post + ,o.part + ,null::text styc + ,null::text colc + ,null::text colgrp + ,null::text coltier + ,null::text colstat + ,null::text sizc + ,null::text pckg + ,null::text kit + ,null::text brnd + ,null::text majg + ,null::text ming + ,null::text majs + ,null::text mins + ,null::text gldco + ,null::text gldc + ,null::text glec + ,null::text harm + ,null::text clss + ,null::text brand + ,null::text assc + ,null::text ddunit + ,null::text unti + ,null::numeric lbs + ,null::numeric plt + ,null::text plcd + ,o.fs_line + ,o.r_currency + ,null::numeric r_rate + ,o.c_currency + ,null::numeric c_rate + ,sum(o.fb_qty) fb_qty + ,sum(o.fb_val_loc) fb_val_loc + ,sum(o.fb_val_loc_dis) fb_val_loc_dis + ,sum(o.fb_val_loc_qt) fb_val_loc_qt + ,sum(o.fb_val_loc_pl) fb_val_loc_pl + ,sum(o.fb_val_loc_tar) fb_val_loc_tar + ,sum(o.fb_cst_loc) fb_cst_loc + ,sum(o.fb_cst_loc_cur) fb_cst_loc_cur + ,sum(o.fb_cst_loc_fut) fb_cst_loc_fut + ,o.calc_status + ,o.flag + ,o.odate odate + ,o.oseas rseas + ,o.rdate rdate + ,o.rseas rseas + -----when null, greatest/least is just going to act like coalesce + ,greatest(least(o.sdate,gld.edat),gld.sdat) sdate + ,ss.ssyr sseas + ,'actuals' "version" + ,'forecast_plug' iter + FROM + rlarp.osmp_dev o + LEFT OUTER JOIN gld ON + gld.fspr = o.fspr + LEFT OUTER JOIN gld ss ON + greatest(least(o.sdate,gld.edat),gld.sdat) BETWEEN ss.sdat AND ss.edat + WHERE + o.odate BETWEEN '2020-02-01' AND '2020-05-31' + AND fs_line = '41010' + AND calc_status <> 'CANCELED' + GROUP BY + o.fspr + ,plnt + ,o.promo + ,o.terms + ,o.bill_cust + ,ship_cust + ,o.part + ,o.fs_line + ,o.r_currency + ,o.c_currency + ,o.calc_status + ,o.flag + ,o.odate + ,o.oseas + ,o.rdate + ,o.rseas + ,greatest(least(o.sdate,gld.edat),gld.sdat) + ,ss.ssyr +) +,incr AS ( +SELECT + o."ddord#" + ,o."dditm#" + ,o."fgbol#" + ,o."fgent#" + ,o."diinv#" + ,o."dilin#" + ,o.quoten + ,o.quotel + ,o.dcodat + interval '1 year' --incremented + ,o.ddqdat + interval '1 year' --incremented + ,o.dcmdat + ,o.fesdat + ,o.dhidat + interval '1 year' --incremented + ,o.fesind + ,o.dhpost + ,gld.fspr --incremented + ,o.ddqtoi + ,o.ddqtsi + ,o.fgqshp + ,o.diqtsh + ,o.diext + ,o.ditdis + ,o.discj + ,o.dhincr + ,o.plnt + ,o.promo + ,o.return_reas + ,o.terms + ,o.custpo + ,o.remit_to + ,o.bill_class + ,o.bill_cust + ,o.bill_rep + ,o.bill_terr + ,o.ship_class + ,o.ship_cust + ,o.ship_rep + ,o.ship_terr + ,o.dsm + ,o.account + ,o.shipgrp + ,o.geo + ,o.chan + ,o.chansub + ,o.orig_ctry + ,o.orig_prov + ,o.orig_post + ,o.bill_ctry + ,o.bill_prov + ,o.bill_post + ,o.dest_ctry + ,o.dest_prov + ,o.dest_post + ,o.part + ,o.styc + ,o.colc + ,o.colgrp + ,o.coltier + ,o.colstat + ,o.sizc + ,o.pckg + ,o.kit + ,o.brnd + ,o.majg + ,o.ming + ,o.majs + ,o.mins + ,o.gldco + ,o.gldc + ,o.glec + ,o.harm + ,o.clss + ,o.brand + ,o.assc + ,o.ddunit + ,o.unti + ,o.lbs + ,o.plt + ,o.plcd + ,o.fs_line + ,o.r_currency + ,o.r_rate + ,o.c_currency + ,o.c_rate + ,o.fb_qty + ,o.fb_val_loc + ,o.fb_val_loc_dis + ,o.fb_val_loc_qt + ,o.fb_val_loc_pl + ,o.fb_val_loc_tar + ,o.fb_cst_loc + ,o.fb_cst_loc_cur + ,o.fb_cst_loc_fut + ,o.calc_status + ,o.flag + ,o.odate + interval '1 year' --incremented + ,o.oseas + 1 --incremented + ,o.rdate + interval '1 year' --incremented + ,o.rseas + 1 --incremented + ,o.sdate + interval '1 year' --incremented + ,o.sseas + 1 --incremented + ,'b21' "version" + ,'copy' iter +FROM + baseline o + LEFT OUTER JOIN gld ON + o.sdate + interval '1 year' BETWEEN gld.sdat and gld.edat +WHERE + o.odate + interval '1 year' >= '2020-06-01' +) +INSERT INTO rlarp.osmf_dev +SELECT * FROM incr +UNION ALL +SELECT * FROM baseline; + +---identify short ships: causes disconnect with actual sales------------------------------------------------------------------- +--UPDATE rlarp.osmfs SET iter = 'short ship' WHERE calc_status = 'CLOSED' AND flag = 'REMAINDER'; + +---identify goofy ship dates: causes disconnect with sales when splicing in a forecast that has this problem------------------- --UPDATE rlarp.osmfs SET iter = 'bad date' WHERE adj_shipdate < adj_orderdate; \ No newline at end of file diff --git a/route_sql/build/build_part.sql b/build/build_part.sql similarity index 96% rename from route_sql/build/build_part.sql rename to build/build_part.sql index 79f86c2..1d12fbc 100644 --- a/route_sql/build/build_part.sql +++ b/build/build_part.sql @@ -1,52 +1,52 @@ -WITH -pool AS ( - SELECT - substr(a.v6part,1,3) "family" - ,substr(a.v6part,1,8) mold - ,a.v6part part - ,COALESCE(m.avmajg,p.awmajg) majg - ,COALESCE(m.avming,p.awming) ming - ,COALESCE(m.avmajs,p.awmajs) majs - ,COALESCE(m.avmins,p.awmins) mins - FROM - lgdat.stka a - LEFT OUTER JOIN lgdat.stkmm m ON - m.avpart = v6part - LEFT OUTER JOIN lgdat.stkmp p ON - p.awpart = a.v6part - WHERE - COALESCE(awgled, avgled) = '1RE' - AND v6stat = 'A' - --and avmajg = '910' - GROUP BY - a.v6part - ,COALESCE(m.avmajg,p.awmajg) - ,COALESCE(m.avming,p.awming) - ,COALESCE(m.avmajs,p.awmajs) - ,COALESCE(m.avmins,p.awmins) -) -,llist AS ( - SELECT - family - ,mold - ,min(part) part - ,jsonb_agg(majg) majg - ,jsonb_agg(ming) ming - ,jsonb_agg(majs) majs - ,jsonb_agg(mins) mins - FROM - pool - GROUP BY - family - ,mold -) -SELECT - family - ,mold - ,part - ,(SELECT jsonb_agg(x.e) FROM (SELECT DISTINCT a.e FROM jsonb_array_elements(llist.majg) a(e)) x) majg - ,(SELECT jsonb_agg(x.e) FROM (SELECT DISTINCT a.e FROM jsonb_array_elements(llist.ming) a(e)) x) ming - ,(SELECT jsonb_agg(x.e) FROM (SELECT DISTINCT a.e FROM jsonb_array_elements(llist.majs) a(e)) x) majs - ,(SELECT jsonb_agg(x.e) FROM (SELECT DISTINCT a.e FROM jsonb_array_elements(llist.mins) a(e)) x) mins -FROM +WITH +pool AS ( + SELECT + substr(a.v6part,1,3) "family" + ,substr(a.v6part,1,8) mold + ,a.v6part part + ,COALESCE(m.avmajg,p.awmajg) majg + ,COALESCE(m.avming,p.awming) ming + ,COALESCE(m.avmajs,p.awmajs) majs + ,COALESCE(m.avmins,p.awmins) mins + FROM + lgdat.stka a + LEFT OUTER JOIN lgdat.stkmm m ON + m.avpart = v6part + LEFT OUTER JOIN lgdat.stkmp p ON + p.awpart = a.v6part + WHERE + COALESCE(awgled, avgled) = '1RE' + AND v6stat = 'A' + --and avmajg = '910' + GROUP BY + a.v6part + ,COALESCE(m.avmajg,p.awmajg) + ,COALESCE(m.avming,p.awming) + ,COALESCE(m.avmajs,p.awmajs) + ,COALESCE(m.avmins,p.awmins) +) +,llist AS ( + SELECT + family + ,mold + ,min(part) part + ,jsonb_agg(majg) majg + ,jsonb_agg(ming) ming + ,jsonb_agg(majs) majs + ,jsonb_agg(mins) mins + FROM + pool + GROUP BY + family + ,mold +) +SELECT + family + ,mold + ,part + ,(SELECT jsonb_agg(x.e) FROM (SELECT DISTINCT a.e FROM jsonb_array_elements(llist.majg) a(e)) x) majg + ,(SELECT jsonb_agg(x.e) FROM (SELECT DISTINCT a.e FROM jsonb_array_elements(llist.ming) a(e)) x) ming + ,(SELECT jsonb_agg(x.e) FROM (SELECT DISTINCT a.e FROM jsonb_array_elements(llist.majs) a(e)) x) majs + ,(SELECT jsonb_agg(x.e) FROM (SELECT DISTINCT a.e FROM jsonb_array_elements(llist.mins) a(e)) x) mins +FROM llist \ No newline at end of file diff --git a/route_sql/build/build_pool.sql b/build/build_pool.sql similarity index 96% rename from route_sql/build/build_pool.sql rename to build/build_pool.sql index 00eee29..da2b02d 100644 --- a/route_sql/build/build_pool.sql +++ b/build/build_pool.sql @@ -1,518 +1,518 @@ -BEGIN; -DROP TABLE rlarp.osm_fcpool; ---EXPLAIN ---\timing -CREATE TABLE rlarp.osm_fcpool AS ( -WITH ----------------------------------------last actual date------------------------------------------------------------------------------------------------------------------------------------------------ -SALES_CUTOFF AS ( - SELECT MAX(FSPR) MAX_FSPR FROM RLARP.OSM -) -,GLD AS ( - SELECT - N1COMP COMP - ,N1CCYY FSYR - ,KPMAXP PERDS - ,N1FSPP PERD - ,to_char(N1FSYP,'FM0000') FSPR - ,N1SD01 SDAT - ,N1ED01 EDAT - ,to_char(N1ED01,'yymm') CAPR - ,N1ED01 - N1SD01 +1 NDAYS - ,CASE WHEN EXTRACT(MONTH FROM N1ED01) >= 6 THEN EXTRACT(YEAR FROM N1ED01) + 1 ELSE EXTRACT(YEAR FROM N1ED01) END SSYR - ,to_char(CASE WHEN EXTRACT(MONTH FROM N1ED01) >= 6 THEN EXTRACT(MONTH FROM N1ED01) -5 ELSE EXTRACT(MONTH FROM N1ED01) +7 END,'00') SSPR - --if the period date is less than the first forecasted order it is actual from perspective of the plan - ,CASE WHEN MAX_FSPR = to_char(N1FSYP,'FM0000') THEN 'C' ELSE CASE WHEN SALES_CUTOFF.MAX_FSPR > to_char(N1FSYP,'FM0000') THEN 'P' ELSE 'F' END END CM - ,CASE - WHEN MAX_FSPR = to_char(N1FSYP,'FM0000') THEN - 'C' - ELSE - CASE - WHEN SALES_CUTOFF.MAX_FSPR > to_char(N1FSYP,'FM0000') THEN - CASE - WHEN SUBSTR(SALES_CUTOFF.MAX_FSPR,1,2) > SUBSTR(to_char(N1FSYP,'FM0000'),1,2) THEN - 'P' - ELSE - 'C' - END - ELSE - 'F' - END - END CY - FROM - LGDAT.GLDATREF - INNER JOIN LGDAT.GLDATE ON - KPCOMP = N1COMP AND - KPCCYY = N1CCYY - CROSS JOIN SALES_CUTOFF - WHERE - N1COMP = 93 - --AND DIGITS(N1FSYP) = '1901' -) ---SELECT * FROM gld ---CREATE INDEX SE_DAT ON gld (sdat, edat); ---SELECT daterange(MIN(SDAT),CURRENT_DATE,'[]') INTO _ytd FROM GLD WHERE CY = 'C'; ---SELECT ssyr INTO _y FROM gld WHERE current_date <@ daterange(sdat,edat); ---CREATE TEMP TABLE rslt AS ---RETURN QUERY ----------------------------------------segments-------------------------------------------------------------------------------------------------------------------------------------------------------- -,SEG AS ( - SELECT - x.GLEC - ,x.SEGM - FROM - ( - VALUES - ('1CU','Retail'), - ('1GR','Greenhouse'), - ('1NU','Nursery'), - ('1RE','Retail'), - ('2WI','Greenhouse'), - ('3BM','Other'), - ('3CO','Other'), - ('3PE','Other'), - ('3PP','Other'), - ('4CO','Other'), - ('4RA','Other'), - ('9MI','Other'), - ('9SA','Other'), - ('9TO','Other') - ) X(GLEC, SEGM) -) ----------------------------------------branding flag--------------------------------------------------------------------------------------------------------------------------------------------------- -,MG AS ( - SELECT - X.F1, X.MING, X.GRP - FROM - ( - VALUES - ('L','000','Branded'), - ('L','B10','Branded'), - ('L','B11','Branded'), - ('L','B52','Branded'), - ('L','C10','Branded'), - ('L','D12','Branded'), - ('L','M11','Branded'), - ('L','P12','Branded'), - ('L','P13','Branded'), - ('L','S10','Branded'), - ('L','Y10','Branded'), - ('L','Y11','Branded'), - ('L','Y12','Branded'), - ('P','B10','Branded'), - ('P','B11','Branded'), - ('P','B52','Branded') - ) AS X (F1, MING, GRP) -) ----------------------------------------directors------------------------------------------------------------------------------------------------------------------------------------------------------- -,REPC AS ( - SELECT - LTRIM(RTRIM(C.A9)) RCODE - ,LTRIM(RTRIM(C.A9)) || ' - ' || C.A30 REPP - ,COALESCE(Q.DIR,'Other') DIRECTOR - FROM - LGDAT.CODE C - LEFT OUTER JOIN RLARP.QRH Q ON - Q.QR = LTRIM(RTRIM(C.A9)) - WHERE - C.A2 = 'MM' -) ---MOLD DESCRIPTIONS -,MD AS ( - SELECT - U.MOLD - ,MAX(U.DESCR) DESCR - FROM - ( - SELECT - SUBSTR(M.AVPART,1,8) MOLD - ,MAX(M.AVDES1) DESCR - FROM - LGDAT.STKMM M - WHERE - LENGTH(M.AVPART) > 8 - AND SUBSTR(M.AVGLED,1,1) <= '2' - GROUP BY - SUBSTR(M.AVPART,1,8) - UNION ALL - SELECT - SUBSTR(P.AWPART,1,8) MOLD - ,MAX(P.AWDES1) DESCR - FROM - LGDAT.STKMP P - WHERE - LENGTH(P.AWPART) > 8 - AND SUBSTR(P.AWGLED,1,1) <= '2' - GROUP BY - SUBSTR(P.AWPART,1,8) - ) U - GROUP BY - U.MOLD -) -----------------------------------------------------sales major codes---------------------------------------------------------------------------------------------------------------------------------- -,SJ AS ( - SELECT * FROM LGDAT.MMSL WHERE COALESCE(BSMNCD,'') = '' -) -----------------------------------------------------sales minor codes---------------------------------------------------------------------------------------------------------------------------------- -,SI AS ( - SELECT * FROM LGDAT.MMSL WHERE COALESCE(BSMNCD,'') <> '' -) -----------------------------------------------------date ranges per season------------------------------------------------------------------------------------------------------------------------------ -,seas AS( - SELECT - ssyr - ,daterange(MIN(sdat),MAX(edat),'[]') dr - ,current_date <@ daterange(MIN(sdat),MAX(edat),'[]') cy - FROM - gld - GROUP BY - ssyr - ORDER BY - ssyr DESC -) -,intv AS ( - SELECT current_date - lower(dr) dy from seas where cy = true -) -,std AS ( -SELECT - s.ssyr - ,s.dr - ,s.cy - ,daterange(lower(dr),dy + LOWER(dr),'[]') ytd -FROM - seas s - CROSS JOIN intv -) ---select * from std ----------------------------------------union actual and forecast--------------------------------------------------------------------------------------------------------------------------------------- -,UN AS ( - --plan - SELECT - osm.plnt - ,osm."ddord#" - ,osm."dditm#" - ,osm."fgbol#" - ,osm."fgent#" - ,osm."diinv#" - ,osm."dilin#" - ,osm.promo - ,osm.return_reas - ,osm.terms - ,osm.custpo - ,osm.dhincr - ,osm.diext - ,osm.ditdis - ,osm.dcodat - ,osm.ddqdat - ,osm.dcmdat - ,osm.dhidat - ,osm.fspr - ,osm.remit_to - ,osm.bill_class - ,osm.bill_cust - ,osm.bill_rep - ,osm.bill_terr - ,osm.ship_class - ,osm.ship_cust - ,osm.ship_rep - ,osm.ship_terr - ,osm.quota_rep - ,osm.account - ,osm.shipgrp - ,osm.geo - ,osm.chan - ,osm.orig_ctry - ,osm.orig_prov - ,osm.orig_post - ,osm.dest_ctry - ,osm.dest_prov - ,osm.dest_post - ,osm.part - ,osm.ord_gldc - ,osm.majg - ,osm.ming - ,osm.majs - ,osm.mins - ,osm.gldc - ,osm.glec - ,osm.harm - ,osm.clss - ,osm.brand - ,osm.assc - ,osm.fs_line - ,osm.r_currency - ,osm.r_rate - ,osm.c_currency - ,osm.c_rate - ,osm.ddqtoi - ,osm.ddqtsi - ,osm.fgqshp - ,osm.diqtsh - ,osm.fb_qty - ,osm.fb_cst_loc - ,osm.fb_cst_loc_cur - ,osm.fb_cst_loc_fut - ,osm.fb_val_loc - ,osm.fb_val_loc_pl - ,osm.calc_status - ,osm.flag - ,osm.orderdate - ,osm.requestdate - ,greatest(least(osm.shipdate,sd.edat),sd.sdat) shipdate - ,osm.adj_orderdate - ,osm.adj_requestdate - ,osm.adj_shipdate - ,osm."version" - ,osm.iter - ----------------presentation columns---------------------------------------------- - ,null::text iterdet - ,null::jsonb iterdef - ,OD.SSYR order_season - ,to_char(osm.adj_orderdate,'Mon') order_month - ,SD.SSYR ship_season - ,to_char(osm.adj_shipdate,'Mon') ship_month - ,RD.SSYR request_season - ,to_char(osm.adj_requestdate,'Mon') request_month - ,osm.PART ||COALESCE(' - '|| RTRIM(COALESCE(AVDES1, AWDES1)),'') part_descr - ,F.F3||COALESCE(' - '||F.DESCR,'') part_family - ,SUBSTRING(PART,1,8)||COALESCE(' - '||MD.DESCR,'') part_group - ,COALESCE(MG.GRP,'Unbranded') branding - ,CASE WHEN substring(osm.glec,1,1) <= '2' THEN SUBSTRING(osm.part,9,3) ELSE '' END color - ,COALESCE(SEG.SEGM,'Other') segm - ,osm.bill_cust || COALESCE(' - '|| RTRIM(BC.BVNAME),'') bill_cust_descr - ,osm.account billto_group - ,osm.ship_cust || COALESCE(' - '|| RTRIM(SC.BVNAME),'') ship_cust_descr - ,osm.shipgrp shipto_group - ,osm.MAJG||COALESCE(' - '||BQDES,'') majg_descr - ,osm.MING||COALESCE(' - '||BRDES,'') ming_descr - ,osm.MAJS||COALESCE(' - '||SJ.BSDES1,'') majs_descr - ,osm.MINS||COALESCE(' - '||SI.BSDES1,'') mins_descr - ,CASE COALESCE(SEG.SEGM,'Other') - WHEN 'Retail' THEN coalesce(L.RETAIL) - ELSE osm.CHAN - END mod_chan - ,CASE COALESCE(SEG.SEGM,'Other') - WHEN 'Retail' THEN coalesce(L.RETAILSUB) - ELSE '' - END mod_chansub - ,COALESCE(REPC.REPP,osm.QUOTA_REP) quota_rep_descr - ,COALESCE(REPC.DIRECTOR,osm.QUOTA_REP) director_descr - ,fb_val_loc value_loc - ,fb_val_loc * r_rate value_usd - ,fb_cst_loc cost_loc - ,fb_cst_loc * c_rate cost_usd - ,fb_qty units - FROM - rlarp.osmfs osm - LEFT OUTER JOIN GLD SD ON - osm.FSPR = sd.FSPR - LEFT OUTER JOIN GLD OD ON - osm.ADJ_ORDERDATE BETWEEN od.SDAT AND od.EDAT - LEFT OUTER JOIN GLD RD ON - osm.ADJ_REQUESTDATE BETWEEN RD.SDAT AND RD.EDAT - LEFT OUTER JOIN SEG ON - SEG.GLEC = osm.GLEC - --AND SEG.SEGM <> 'Other' - LEFT OUTER JOIN MG ON - MG.F1 = SUBSTR(osm.PART,16,1) - AND MG.MING = osm.MING - LEFT OUTER JOIN RLARP.FAMILY F ON - F.F3 = SUBSTR(osm.PART,1,3) - LEFT OUTER JOIN LGDAT.STKMM M ON - M.AVPART = osm.PART - LEFT OUTER JOIN LGDAT.STKMP P ON - P.AWPART = osm.PART - LEFT OUTER JOIN MD ON - MD.MOLD = SUBSTR(osm.PART,1,8) - LEFT OUTER JOIN RLARP.FFCHNL L ON - L.BILL = osm.BILL_CLASS - AND L.SHIP = osm.SHIP_CLASS - LEFT OUTER JOIN LGDAT.CUST BC ON - BC.BVCUST = osm.BILL_CUST - LEFT OUTER JOIN LGDAT.CUST SC ON - SC.BVCUST = osm.SHIP_CUST - LEFT OUTER JOIN REPC ON - REPC.RCODE = osm.QUOTA_REP - LEFT OUTER JOIN SI ON - SI.BSMJCD = osm.MAJS - AND SI.BSMNCD = osm.MINS - LEFT OUTER JOIN SJ ON - SJ.BSMJCD = osm.MAJS - LEFT OUTER JOIN LGDAT.MAJG ON - BQGRP = osm.MAJG - LEFT OUTER JOIN LGDAT.MMGP ON - BRMGRP = osm.MING - AND BRGRP = osm.MAJG - WHERE - osm.FS_LINE = '41010' - AND osm.CALC_STATUS <> 'CANCELED' - AND SUBSTR(osm.GLEC,1,1) <= '2' - /* - UNION ALL - SELECT - osm.plnt - ,osm."ddord#" - ,osm."dditm#" - ,osm."fgbol#" - ,osm."fgent#" - ,osm."diinv#" - ,osm."dilin#" - ,osm.promo - ,osm.return_reas - ,osm.terms - ,osm.custpo - ,osm.dhincr - ,osm.diext - ,osm.ditdis - ,osm.dcodat - ,osm.ddqdat - ,osm.dcmdat - ,osm.dhidat - ,osm.fspr - ,osm.remit_to - ,osm.bill_class - ,osm.bill_cust - ,osm.bill_rep - ,osm.bill_terr - ,osm.ship_class - ,osm.ship_cust - ,osm.ship_rep - ,osm.ship_terr - ,osm.quota_rep - ,osm.account - ,osm.shipgrp - ,osm.geo - ,osm.chan - ,osm.orig_ctry - ,osm.orig_prov - ,osm.orig_post - ,osm.dest_ctry - ,osm.dest_prov - ,osm.dest_post - ,osm.part - ,osm.ord_gldc - ,osm.majg - ,osm.ming - ,osm.majs - ,osm.mins - ,osm.gldc - ,osm.glec - ,osm.harm - ,osm.clss - ,osm.brand - ,osm.assc - ,osm.fs_line - ,osm.r_currency - ,osm.r_rate - ,osm.c_currency - ,osm.c_rate - ,osm.ddqtoi - ,osm.ddqtsi - ,osm.fgqshp - ,osm.diqtsh - ,osm.fb_qty - ,osm.fb_cst_loc - ,osm.fb_cst_loc_cur - ,osm.fb_cst_loc_fut - ,osm.fb_val_loc - ,osm.fb_val_loc_pl - ,osm.calc_status - ,osm.flag - ,osm.orderdate - ,osm.requestdate - ,greatest(least(osm.shipdate,sd.edat),sd.sdat) shipdate - ,osm.adj_orderdate - ,osm.adj_requestdate - ,osm.adj_shipdate - ,osm."version" - ,osm.iter - ----------------presentation columns---------------------------------------------- - ,null::text iterdet - ,null::jsonb iterdef - ,OD.SSYR order_season - ,to_char(osm.adj_orderdate,'Mon') order_month - ,SD.SSYR ship_season - ,to_char(osm.adj_shipdate,'Mon') ship_month - ,RD.SSYR request_season - ,to_char(osm.adj_requestdate,'Mon') request_month - ,PART ||' - '|| RTRIM(COALESCE(AVDES1, AWDES1)) part_descr - ,F.F3||' - '||F.DESCR part_family - ,SUBSTRING(PART,1,8)||' - '||MD.DESCR part_group - ,COALESCE(MG.GRP,'Unbranded') branding - ,CASE WHEN substring(osm.glec,1,1) <= '2' THEN SUBSTRING(osm.part,9,3) ELSE '' END color - ,COALESCE(SEG.SEGM,'Other') segm - ,osm.bill_cust ||' - '|| RTRIM(BC.BVNAME) bill_cust_descr - ,osm.account billto_group - ,osm.ship_cust ||' - '|| RTRIM(SC.BVNAME) ship_cust_descr - ,osm.shipgrp shipto_group - ,osm.MAJG||COALESCE(' - '||BQDES,'') majg_descr - ,osm.MING||COALESCE(' - '||BRDES,'') ming_descr - ,osm.MAJS||COALESCE(' - '||SJ.BSDES1,'') majs_descr - ,osm.MINS||COALESCE(' - '||SI.BSDES1,'') mins_descr - ,CASE COALESCE(SEG.SEGM,'Other') - WHEN 'Retail' THEN coalesce(L.RETAIL,'') - ELSE osm.CHAN - END mod_chan - ,CASE COALESCE(SEG.SEGM,'Other') - WHEN 'Retail' THEN coalesce(L.RETAILSUB,'') - ELSE '' - END mod_chansub - ,COALESCE(REPC.REPP,osm.QUOTA_REP) quota_rep_descr - ,COALESCE(REPC.DIRECTOR,osm.QUOTA_REP) director_descr - ,osm.fb_val_loc::numeric value_loc - ,(osm.fb_val_loc * osm.r_rate)::numeric value_usd - ,osm.fb_cst_loc::numeric cost_loc - ,(osm.fb_cst_loc * osm.c_rate)::numeric cost_usd - ,osm.fb_qty::numeric units - FROM - rlarp.osmfs osm - LEFT OUTER JOIN GLD SD ON - osm.FSPR = sd.FSPR - LEFT OUTER JOIN GLD OD ON - osm.ADJ_ORDERDATE BETWEEN od.SDAT AND od.EDAT - LEFT OUTER JOIN GLD RD ON - osm.ADJ_REQUESTDATE BETWEEN RD.SDAT AND RD.EDAT - LEFT OUTER JOIN SEG ON - SEG.GLEC = osm.GLEC - --AND SEG.SEGM <> 'Other' - LEFT OUTER JOIN MG ON - MG.F1 = SUBSTR(osm.PART,16,1) - AND MG.MING = osm.MING - LEFT OUTER JOIN RLARP.FAMILY F ON - F.F3 = SUBSTR(osm.PART,1,3) - LEFT OUTER JOIN LGDAT.STKMM M ON - M.AVPART = osm.PART - LEFT OUTER JOIN LGDAT.STKMP P ON - P.AWPART = osm.PART - LEFT OUTER JOIN MD ON - MD.MOLD = SUBSTR(osm.PART,1,8) - LEFT OUTER JOIN RLARP.FFCHNL L ON - L.BILL = osm.BILL_CLASS - AND L.SHIP = osm.SHIP_CLASS - LEFT OUTER JOIN LGDAT.CUST BC ON - BC.BVCUST = osm.BILL_CUST - LEFT OUTER JOIN LGDAT.CUST SC ON - SC.BVCUST = osm.SHIP_CUST - LEFT OUTER JOIN REPC ON - REPC.RCODE = osm.QUOTA_REP - LEFT OUTER JOIN SI ON - SI.BSMJCD = osm.MAJS - AND SI.BSMNCD = osm.MINS - LEFT OUTER JOIN SJ ON - SJ.BSMJCD = osm.MAJS - LEFT OUTER JOIN LGDAT.MAJG ON - BQGRP = osm.MAJG - LEFT OUTER JOIN LGDAT.MMGP ON - BRMGRP = osm.MING - AND BRGRP = osm.MAJG - WHERE - osm.fs_line = '41010' - AND osm.calc_status <> 'CANCELED' - AND SUBSTRING(osm.glec,1,1) <= '2' - AND osm.version = 'ACTUALS' - AND osm.adj_orderdate BETWEEN '2017-06-01' AND '2018-05-31' - */ -) -SELECT * FROM UN -); +BEGIN; +DROP TABLE rlarp.osm_fcpool; +--EXPLAIN +--\timing +CREATE TABLE rlarp.osm_fcpool AS ( +WITH +---------------------------------------last actual date------------------------------------------------------------------------------------------------------------------------------------------------ +SALES_CUTOFF AS ( + SELECT MAX(FSPR) MAX_FSPR FROM RLARP.OSM +) +,GLD AS ( + SELECT + N1COMP COMP + ,N1CCYY FSYR + ,KPMAXP PERDS + ,N1FSPP PERD + ,to_char(N1FSYP,'FM0000') FSPR + ,N1SD01 SDAT + ,N1ED01 EDAT + ,to_char(N1ED01,'yymm') CAPR + ,N1ED01 - N1SD01 +1 NDAYS + ,CASE WHEN EXTRACT(MONTH FROM N1ED01) >= 6 THEN EXTRACT(YEAR FROM N1ED01) + 1 ELSE EXTRACT(YEAR FROM N1ED01) END SSYR + ,to_char(CASE WHEN EXTRACT(MONTH FROM N1ED01) >= 6 THEN EXTRACT(MONTH FROM N1ED01) -5 ELSE EXTRACT(MONTH FROM N1ED01) +7 END,'00') SSPR + --if the period date is less than the first forecasted order it is actual from perspective of the plan + ,CASE WHEN MAX_FSPR = to_char(N1FSYP,'FM0000') THEN 'C' ELSE CASE WHEN SALES_CUTOFF.MAX_FSPR > to_char(N1FSYP,'FM0000') THEN 'P' ELSE 'F' END END CM + ,CASE + WHEN MAX_FSPR = to_char(N1FSYP,'FM0000') THEN + 'C' + ELSE + CASE + WHEN SALES_CUTOFF.MAX_FSPR > to_char(N1FSYP,'FM0000') THEN + CASE + WHEN SUBSTR(SALES_CUTOFF.MAX_FSPR,1,2) > SUBSTR(to_char(N1FSYP,'FM0000'),1,2) THEN + 'P' + ELSE + 'C' + END + ELSE + 'F' + END + END CY + FROM + LGDAT.GLDATREF + INNER JOIN LGDAT.GLDATE ON + KPCOMP = N1COMP AND + KPCCYY = N1CCYY + CROSS JOIN SALES_CUTOFF + WHERE + N1COMP = 93 + --AND DIGITS(N1FSYP) = '1901' +) +--SELECT * FROM gld +--CREATE INDEX SE_DAT ON gld (sdat, edat); +--SELECT daterange(MIN(SDAT),CURRENT_DATE,'[]') INTO _ytd FROM GLD WHERE CY = 'C'; +--SELECT ssyr INTO _y FROM gld WHERE current_date <@ daterange(sdat,edat); +--CREATE TEMP TABLE rslt AS +--RETURN QUERY +---------------------------------------segments-------------------------------------------------------------------------------------------------------------------------------------------------------- +,SEG AS ( + SELECT + x.GLEC + ,x.SEGM + FROM + ( + VALUES + ('1CU','Retail'), + ('1GR','Greenhouse'), + ('1NU','Nursery'), + ('1RE','Retail'), + ('2WI','Greenhouse'), + ('3BM','Other'), + ('3CO','Other'), + ('3PE','Other'), + ('3PP','Other'), + ('4CO','Other'), + ('4RA','Other'), + ('9MI','Other'), + ('9SA','Other'), + ('9TO','Other') + ) X(GLEC, SEGM) +) +---------------------------------------branding flag--------------------------------------------------------------------------------------------------------------------------------------------------- +,MG AS ( + SELECT + X.F1, X.MING, X.GRP + FROM + ( + VALUES + ('L','000','Branded'), + ('L','B10','Branded'), + ('L','B11','Branded'), + ('L','B52','Branded'), + ('L','C10','Branded'), + ('L','D12','Branded'), + ('L','M11','Branded'), + ('L','P12','Branded'), + ('L','P13','Branded'), + ('L','S10','Branded'), + ('L','Y10','Branded'), + ('L','Y11','Branded'), + ('L','Y12','Branded'), + ('P','B10','Branded'), + ('P','B11','Branded'), + ('P','B52','Branded') + ) AS X (F1, MING, GRP) +) +---------------------------------------directors------------------------------------------------------------------------------------------------------------------------------------------------------- +,REPC AS ( + SELECT + LTRIM(RTRIM(C.A9)) RCODE + ,LTRIM(RTRIM(C.A9)) || ' - ' || C.A30 REPP + ,COALESCE(Q.DIR,'Other') DIRECTOR + FROM + LGDAT.CODE C + LEFT OUTER JOIN RLARP.QRH Q ON + Q.QR = LTRIM(RTRIM(C.A9)) + WHERE + C.A2 = 'MM' +) +--MOLD DESCRIPTIONS +,MD AS ( + SELECT + U.MOLD + ,MAX(U.DESCR) DESCR + FROM + ( + SELECT + SUBSTR(M.AVPART,1,8) MOLD + ,MAX(M.AVDES1) DESCR + FROM + LGDAT.STKMM M + WHERE + LENGTH(M.AVPART) > 8 + AND SUBSTR(M.AVGLED,1,1) <= '2' + GROUP BY + SUBSTR(M.AVPART,1,8) + UNION ALL + SELECT + SUBSTR(P.AWPART,1,8) MOLD + ,MAX(P.AWDES1) DESCR + FROM + LGDAT.STKMP P + WHERE + LENGTH(P.AWPART) > 8 + AND SUBSTR(P.AWGLED,1,1) <= '2' + GROUP BY + SUBSTR(P.AWPART,1,8) + ) U + GROUP BY + U.MOLD +) +----------------------------------------------------sales major codes---------------------------------------------------------------------------------------------------------------------------------- +,SJ AS ( + SELECT * FROM LGDAT.MMSL WHERE COALESCE(BSMNCD,'') = '' +) +----------------------------------------------------sales minor codes---------------------------------------------------------------------------------------------------------------------------------- +,SI AS ( + SELECT * FROM LGDAT.MMSL WHERE COALESCE(BSMNCD,'') <> '' +) +----------------------------------------------------date ranges per season------------------------------------------------------------------------------------------------------------------------------ +,seas AS( + SELECT + ssyr + ,daterange(MIN(sdat),MAX(edat),'[]') dr + ,current_date <@ daterange(MIN(sdat),MAX(edat),'[]') cy + FROM + gld + GROUP BY + ssyr + ORDER BY + ssyr DESC +) +,intv AS ( + SELECT current_date - lower(dr) dy from seas where cy = true +) +,std AS ( +SELECT + s.ssyr + ,s.dr + ,s.cy + ,daterange(lower(dr),dy + LOWER(dr),'[]') ytd +FROM + seas s + CROSS JOIN intv +) +--select * from std +---------------------------------------union actual and forecast--------------------------------------------------------------------------------------------------------------------------------------- +,UN AS ( + --plan + SELECT + osm.plnt + ,osm."ddord#" + ,osm."dditm#" + ,osm."fgbol#" + ,osm."fgent#" + ,osm."diinv#" + ,osm."dilin#" + ,osm.promo + ,osm.return_reas + ,osm.terms + ,osm.custpo + ,osm.dhincr + ,osm.diext + ,osm.ditdis + ,osm.dcodat + ,osm.ddqdat + ,osm.dcmdat + ,osm.dhidat + ,osm.fspr + ,osm.remit_to + ,osm.bill_class + ,osm.bill_cust + ,osm.bill_rep + ,osm.bill_terr + ,osm.ship_class + ,osm.ship_cust + ,osm.ship_rep + ,osm.ship_terr + ,osm.quota_rep + ,osm.account + ,osm.shipgrp + ,osm.geo + ,osm.chan + ,osm.orig_ctry + ,osm.orig_prov + ,osm.orig_post + ,osm.dest_ctry + ,osm.dest_prov + ,osm.dest_post + ,osm.part + ,osm.ord_gldc + ,osm.majg + ,osm.ming + ,osm.majs + ,osm.mins + ,osm.gldc + ,osm.glec + ,osm.harm + ,osm.clss + ,osm.brand + ,osm.assc + ,osm.fs_line + ,osm.r_currency + ,osm.r_rate + ,osm.c_currency + ,osm.c_rate + ,osm.ddqtoi + ,osm.ddqtsi + ,osm.fgqshp + ,osm.diqtsh + ,osm.fb_qty + ,osm.fb_cst_loc + ,osm.fb_cst_loc_cur + ,osm.fb_cst_loc_fut + ,osm.fb_val_loc + ,osm.fb_val_loc_pl + ,osm.calc_status + ,osm.flag + ,osm.orderdate + ,osm.requestdate + ,greatest(least(osm.shipdate,sd.edat),sd.sdat) shipdate + ,osm.adj_orderdate + ,osm.adj_requestdate + ,osm.adj_shipdate + ,osm."version" + ,osm.iter + ----------------presentation columns---------------------------------------------- + ,null::text iterdet + ,null::jsonb iterdef + ,OD.SSYR order_season + ,to_char(osm.adj_orderdate,'Mon') order_month + ,SD.SSYR ship_season + ,to_char(osm.adj_shipdate,'Mon') ship_month + ,RD.SSYR request_season + ,to_char(osm.adj_requestdate,'Mon') request_month + ,osm.PART ||COALESCE(' - '|| RTRIM(COALESCE(AVDES1, AWDES1)),'') part_descr + ,F.F3||COALESCE(' - '||F.DESCR,'') part_family + ,SUBSTRING(PART,1,8)||COALESCE(' - '||MD.DESCR,'') part_group + ,COALESCE(MG.GRP,'Unbranded') branding + ,CASE WHEN substring(osm.glec,1,1) <= '2' THEN SUBSTRING(osm.part,9,3) ELSE '' END color + ,COALESCE(SEG.SEGM,'Other') segm + ,osm.bill_cust || COALESCE(' - '|| RTRIM(BC.BVNAME),'') bill_cust_descr + ,osm.account billto_group + ,osm.ship_cust || COALESCE(' - '|| RTRIM(SC.BVNAME),'') ship_cust_descr + ,osm.shipgrp shipto_group + ,osm.MAJG||COALESCE(' - '||BQDES,'') majg_descr + ,osm.MING||COALESCE(' - '||BRDES,'') ming_descr + ,osm.MAJS||COALESCE(' - '||SJ.BSDES1,'') majs_descr + ,osm.MINS||COALESCE(' - '||SI.BSDES1,'') mins_descr + ,CASE COALESCE(SEG.SEGM,'Other') + WHEN 'Retail' THEN coalesce(L.RETAIL) + ELSE osm.CHAN + END mod_chan + ,CASE COALESCE(SEG.SEGM,'Other') + WHEN 'Retail' THEN coalesce(L.RETAILSUB) + ELSE '' + END mod_chansub + ,COALESCE(REPC.REPP,osm.QUOTA_REP) quota_rep_descr + ,COALESCE(REPC.DIRECTOR,osm.QUOTA_REP) director_descr + ,fb_val_loc value_loc + ,fb_val_loc * r_rate value_usd + ,fb_cst_loc cost_loc + ,fb_cst_loc * c_rate cost_usd + ,fb_qty units + FROM + rlarp.osmfs osm + LEFT OUTER JOIN GLD SD ON + osm.FSPR = sd.FSPR + LEFT OUTER JOIN GLD OD ON + osm.ADJ_ORDERDATE BETWEEN od.SDAT AND od.EDAT + LEFT OUTER JOIN GLD RD ON + osm.ADJ_REQUESTDATE BETWEEN RD.SDAT AND RD.EDAT + LEFT OUTER JOIN SEG ON + SEG.GLEC = osm.GLEC + --AND SEG.SEGM <> 'Other' + LEFT OUTER JOIN MG ON + MG.F1 = SUBSTR(osm.PART,16,1) + AND MG.MING = osm.MING + LEFT OUTER JOIN RLARP.FAMILY F ON + F.F3 = SUBSTR(osm.PART,1,3) + LEFT OUTER JOIN LGDAT.STKMM M ON + M.AVPART = osm.PART + LEFT OUTER JOIN LGDAT.STKMP P ON + P.AWPART = osm.PART + LEFT OUTER JOIN MD ON + MD.MOLD = SUBSTR(osm.PART,1,8) + LEFT OUTER JOIN RLARP.FFCHNL L ON + L.BILL = osm.BILL_CLASS + AND L.SHIP = osm.SHIP_CLASS + LEFT OUTER JOIN LGDAT.CUST BC ON + BC.BVCUST = osm.BILL_CUST + LEFT OUTER JOIN LGDAT.CUST SC ON + SC.BVCUST = osm.SHIP_CUST + LEFT OUTER JOIN REPC ON + REPC.RCODE = osm.QUOTA_REP + LEFT OUTER JOIN SI ON + SI.BSMJCD = osm.MAJS + AND SI.BSMNCD = osm.MINS + LEFT OUTER JOIN SJ ON + SJ.BSMJCD = osm.MAJS + LEFT OUTER JOIN LGDAT.MAJG ON + BQGRP = osm.MAJG + LEFT OUTER JOIN LGDAT.MMGP ON + BRMGRP = osm.MING + AND BRGRP = osm.MAJG + WHERE + osm.FS_LINE = '41010' + AND osm.CALC_STATUS <> 'CANCELED' + AND SUBSTR(osm.GLEC,1,1) <= '2' + /* + UNION ALL + SELECT + osm.plnt + ,osm."ddord#" + ,osm."dditm#" + ,osm."fgbol#" + ,osm."fgent#" + ,osm."diinv#" + ,osm."dilin#" + ,osm.promo + ,osm.return_reas + ,osm.terms + ,osm.custpo + ,osm.dhincr + ,osm.diext + ,osm.ditdis + ,osm.dcodat + ,osm.ddqdat + ,osm.dcmdat + ,osm.dhidat + ,osm.fspr + ,osm.remit_to + ,osm.bill_class + ,osm.bill_cust + ,osm.bill_rep + ,osm.bill_terr + ,osm.ship_class + ,osm.ship_cust + ,osm.ship_rep + ,osm.ship_terr + ,osm.quota_rep + ,osm.account + ,osm.shipgrp + ,osm.geo + ,osm.chan + ,osm.orig_ctry + ,osm.orig_prov + ,osm.orig_post + ,osm.dest_ctry + ,osm.dest_prov + ,osm.dest_post + ,osm.part + ,osm.ord_gldc + ,osm.majg + ,osm.ming + ,osm.majs + ,osm.mins + ,osm.gldc + ,osm.glec + ,osm.harm + ,osm.clss + ,osm.brand + ,osm.assc + ,osm.fs_line + ,osm.r_currency + ,osm.r_rate + ,osm.c_currency + ,osm.c_rate + ,osm.ddqtoi + ,osm.ddqtsi + ,osm.fgqshp + ,osm.diqtsh + ,osm.fb_qty + ,osm.fb_cst_loc + ,osm.fb_cst_loc_cur + ,osm.fb_cst_loc_fut + ,osm.fb_val_loc + ,osm.fb_val_loc_pl + ,osm.calc_status + ,osm.flag + ,osm.orderdate + ,osm.requestdate + ,greatest(least(osm.shipdate,sd.edat),sd.sdat) shipdate + ,osm.adj_orderdate + ,osm.adj_requestdate + ,osm.adj_shipdate + ,osm."version" + ,osm.iter + ----------------presentation columns---------------------------------------------- + ,null::text iterdet + ,null::jsonb iterdef + ,OD.SSYR order_season + ,to_char(osm.adj_orderdate,'Mon') order_month + ,SD.SSYR ship_season + ,to_char(osm.adj_shipdate,'Mon') ship_month + ,RD.SSYR request_season + ,to_char(osm.adj_requestdate,'Mon') request_month + ,PART ||' - '|| RTRIM(COALESCE(AVDES1, AWDES1)) part_descr + ,F.F3||' - '||F.DESCR part_family + ,SUBSTRING(PART,1,8)||' - '||MD.DESCR part_group + ,COALESCE(MG.GRP,'Unbranded') branding + ,CASE WHEN substring(osm.glec,1,1) <= '2' THEN SUBSTRING(osm.part,9,3) ELSE '' END color + ,COALESCE(SEG.SEGM,'Other') segm + ,osm.bill_cust ||' - '|| RTRIM(BC.BVNAME) bill_cust_descr + ,osm.account billto_group + ,osm.ship_cust ||' - '|| RTRIM(SC.BVNAME) ship_cust_descr + ,osm.shipgrp shipto_group + ,osm.MAJG||COALESCE(' - '||BQDES,'') majg_descr + ,osm.MING||COALESCE(' - '||BRDES,'') ming_descr + ,osm.MAJS||COALESCE(' - '||SJ.BSDES1,'') majs_descr + ,osm.MINS||COALESCE(' - '||SI.BSDES1,'') mins_descr + ,CASE COALESCE(SEG.SEGM,'Other') + WHEN 'Retail' THEN coalesce(L.RETAIL,'') + ELSE osm.CHAN + END mod_chan + ,CASE COALESCE(SEG.SEGM,'Other') + WHEN 'Retail' THEN coalesce(L.RETAILSUB,'') + ELSE '' + END mod_chansub + ,COALESCE(REPC.REPP,osm.QUOTA_REP) quota_rep_descr + ,COALESCE(REPC.DIRECTOR,osm.QUOTA_REP) director_descr + ,osm.fb_val_loc::numeric value_loc + ,(osm.fb_val_loc * osm.r_rate)::numeric value_usd + ,osm.fb_cst_loc::numeric cost_loc + ,(osm.fb_cst_loc * osm.c_rate)::numeric cost_usd + ,osm.fb_qty::numeric units + FROM + rlarp.osmfs osm + LEFT OUTER JOIN GLD SD ON + osm.FSPR = sd.FSPR + LEFT OUTER JOIN GLD OD ON + osm.ADJ_ORDERDATE BETWEEN od.SDAT AND od.EDAT + LEFT OUTER JOIN GLD RD ON + osm.ADJ_REQUESTDATE BETWEEN RD.SDAT AND RD.EDAT + LEFT OUTER JOIN SEG ON + SEG.GLEC = osm.GLEC + --AND SEG.SEGM <> 'Other' + LEFT OUTER JOIN MG ON + MG.F1 = SUBSTR(osm.PART,16,1) + AND MG.MING = osm.MING + LEFT OUTER JOIN RLARP.FAMILY F ON + F.F3 = SUBSTR(osm.PART,1,3) + LEFT OUTER JOIN LGDAT.STKMM M ON + M.AVPART = osm.PART + LEFT OUTER JOIN LGDAT.STKMP P ON + P.AWPART = osm.PART + LEFT OUTER JOIN MD ON + MD.MOLD = SUBSTR(osm.PART,1,8) + LEFT OUTER JOIN RLARP.FFCHNL L ON + L.BILL = osm.BILL_CLASS + AND L.SHIP = osm.SHIP_CLASS + LEFT OUTER JOIN LGDAT.CUST BC ON + BC.BVCUST = osm.BILL_CUST + LEFT OUTER JOIN LGDAT.CUST SC ON + SC.BVCUST = osm.SHIP_CUST + LEFT OUTER JOIN REPC ON + REPC.RCODE = osm.QUOTA_REP + LEFT OUTER JOIN SI ON + SI.BSMJCD = osm.MAJS + AND SI.BSMNCD = osm.MINS + LEFT OUTER JOIN SJ ON + SJ.BSMJCD = osm.MAJS + LEFT OUTER JOIN LGDAT.MAJG ON + BQGRP = osm.MAJG + LEFT OUTER JOIN LGDAT.MMGP ON + BRMGRP = osm.MING + AND BRGRP = osm.MAJG + WHERE + osm.fs_line = '41010' + AND osm.calc_status <> 'CANCELED' + AND SUBSTRING(osm.glec,1,1) <= '2' + AND osm.version = 'ACTUALS' + AND osm.adj_orderdate BETWEEN '2017-06-01' AND '2018-05-31' + */ +) +SELECT * FROM UN +); COMMIT; \ No newline at end of file diff --git a/route_sql/build/clone_parts.sql b/build/clone_parts.sql similarity index 96% rename from route_sql/build/clone_parts.sql rename to build/clone_parts.sql index 8b12ec3..5f04ed5 100644 --- a/route_sql/build/clone_parts.sql +++ b/build/clone_parts.sql @@ -1,1037 +1,1037 @@ -DELETE FROM lgdat.stka WHERE v6stat = 'C'; -DELETE FROM lgdat.stkmm where avtype = 'C'; -DELETE FROM lgdat.stkmp where awtype = 'C'; -DELETE FROM lgdat.icstm where cgtype = 'C'; -DELETE FROM lgdat.icstp where chtype = 'C'; -DELETE FROM lgdat.icstr where y0type = 'C'; -WITH -repl AS ( - SELECT - * - FROM - ( - VALUES - ('GAB12000DE2','Garden Bowl - Slate Blue','GAB12000A34C012LRTOQ',0.93886), - ('GAB14000DE2','Garden Bowl - Slate Blue','GAB14000A34C012LRTOT',1.30893), - ('GAB18000DE2','Garden Bowl - Slate Blue','GAB18000A34C006LRTOW',2.04076), - ('GAB22000DE2','Garden Bowl - Slate Blue','GAB22000A34C006LRTOZ',3.54985), - ('GAB12000BG3','Garden Bowl - Teal','GAB12000A34C012LRTOQ',0.93886), - ('GAB14000BG3','Garden Bowl - Teal','GAB14000A34C012LRTOT',1.30893), - ('GAB18000BG3','Garden Bowl - Teal','GAB18000A34C006LRTOW',2.04076), - ('GAB22000BG3','Garden Bowl - Teal','GAB22000A34C006LRTOZ',3.54985), - ('CNA06000A42','Caribbean Planter - Warm Gray','CNA06000A50C024LRCGA',0.36037), - ('CNA08000A42','Caribbean Planter - Warm Gray','CNA08000A50C024LRCGC',0.44575), - ('CNA06000F89','Caribbean Planter - Raspberry','CNA06000A50C024LRCGA',0.36222), - ('CNA08000F89','Caribbean Planter - Raspberry','CNA08000A50C024LRCGC',0.45024), - ('CNA10000F89','Caribbean Planter - Raspberry','CNA10000A42C012LRBXI',0.65195), - ('CNA12000F89','Caribbean Planter - Raspberry','CNA12000A42C012LRBXJ',1.63119), - ('CNA06000BG3','Caribbean Planter - Teal','CNA06000A50C024LRCGA',0.36222), - ('CNA08000BG3','Caribbean Planter - Teal','CNA08000A50C024LRCGC',0.45024), - ('CNA10000BG3','Caribbean Planter - Teal','CNA10000A42C012LRBXI',0.65195), - ('CNA12000BG3','Caribbean Planter - Teal','CNA12000A42C012LRBXJ',1.63119), - ('CNA06000A10','Caribbean Planter - White','CNA06000A50C024LRCGA',0.35215), - ('CNA08000A10','Caribbean Planter - White','CNA08000A50C024LRCGC',0.44641), - ('CNA10000A10','Caribbean Planter - White','CNA10000A42C012LRBXI',0.64485), - ('CNA12000A10','Caribbean Planter - White','CNA12000A42C012LRBXJ',1.61797), - ('CNA30000A10','Caribbean Planter - White','CNA30000G18C002LRCDG',28.85), - ('LIA06000DE2','Classic Planter - Slate Blue','LIA06000A34C024LRTIV',0.35842), - ('LIA08000DE2','Classic Planter - Slate Blue','LIA08000A34C024LRTIZ',0.56212), - ('LIA10000DE2','Classic Planter - Slate Blue','LIA10000A34C012LRTJD',1.8113), - ('LIA12000DE2','Classic Planter - Slate Blue','LIA12000A34C012LRTJH',2.42383), - ('LIA14000DE2','Classic Planter - Slate Blue','LIA14000A34C012LRTJL',2.73708), - ('LIA16000DE2','Classic Planter - Slate Blue','LIA16000A34C006LRTJP',3.05778), - ('LIA20000DE2','Classic Planter - Slate Blue','LIA20000A34C006LRTJT',5.63275), - ('LIA24000DE2','Classic Planter - Slate Blue','LIA24000A34C006LRTJY',6.35725), - ('LIA06000B78','Classic Planter - Seafoam','LIA06000A34C024LRTIV',0.35842), - ('LIA08000B78','Classic Planter - Seafoam','LIA08000A34C024LRTIZ',0.56212), - ('LIA10000B78','Classic Planter - Seafoam','LIA10000A34C012LRTJD',1.8113), - ('LIA12000B78','Classic Planter - Seafoam','LIA12000A34C012LRTJH',2.42383), - ('LIA14000B78','Classic Planter - Seafoam','LIA14000A34C012LRTJL',2.73708), - ('LIA16000B78','Classic Planter - Seafoam','LIA16000A34C006LRTJP',3.05778), - ('LIA20000B78','Classic Planter - Seafoam','LIA20000A34C006LRTJT',5.63275), - ('LIA24000B78','Classic Planter - Seafoam','LIA24000A34C006LRTJY',6.35725), - ('SLI06000DE2','Classic Saucer - Slate Blue','SLI06000A34C024LRTKB',0.18237), - ('SLI08000DE2','Classic Saucer - Slate Blue','SLI08000A34C024LRTKF',0.29674), - ('SLI10000DE2','Classic Saucer - Slate Blue','SLI10000A34C012LRTKJ',0.54887), - ('SLI12000DE2','Classic Saucer - Slate Blue','SLI12000A34C012LAH13',0.72483), - ('SLI14000DE2','Classic Saucer - Slate Blue','SLI14000A34C012LAH16',0.99295), - ('SLI17000DE2','Classic Saucer - Slate Blue','SLI17000A34C012LAH19',1.10433), - ('SLI20000DE2','Classic Saucer - Slate Blue','SLI20000A34C006LAH24',1.0319), - ('SLI24000DE2','Classic Saucer - Slate Blue','SLI24000A34C006LRTLD',1.95471), - ('SLI06000B78','Classic Saucer - Seafoam','SLI06000A34C024LRTKB',0.18237), - ('SLI08000B78','Classic Saucer - Seafoam','SLI08000A34C024LRTKF',0.29674), - ('SLI10000B78','Classic Saucer - Seafoam','SLI10000A34C012LRTKJ',0.54887), - ('SLI12000B78','Classic Saucer - Seafoam','SLI12000A34C012LAH13',0.72483), - ('SLI14000B78','Classic Saucer - Seafoam','SLI14000A34C012LAH16',0.99295), - ('SLI16000B78','Classic Saucer - Seafoam','SAA14001A10C006LRCDJ',1.10433), - ('SLI20000B78','Classic Saucer - Seafoam','SLI20000A34C006LAH24',1.0319), - ('SLI24000B78','Classic Saucer - Seafoam','SLI24000A34C006LRTLD',1.95471), - ('ECA06000DE2','Eclipse Planter - Slate Blue','ECA06000A101009LRCIG',0.42036), - ('ECA08000DE2','Eclipse Planter - Slate Blue','ECA08000A101006LRCID',0.63429), - ('ECA10000DE2','Eclipse Planter - Slate Blue','ECA10000A341020LRCEL',0.92453), - ('ECA12000DE2','Eclipse Planter - Slate Blue','ECA12000A101006LRCIA',1.25858), - ('ECA16000DE2','Eclipse Planter - Slate Blue','ECA16000A34C010LRCEX',2.57535), - ('ECA20000DE2','Eclipse Planter - Slate Blue','ECA20000A341006LRCEU',4.17568), - ('ECA06000B78','Eclipse Planter - Seafoam','ECA06000A101009LRCIG',0.42036), - ('ECA08000B78','Eclipse Planter - Seafoam','ECA08000A101006LRCID',0.63429), - ('ECA10000B78','Eclipse Planter - Seafoam','ECA10000A341020LRCEL',0.92453), - ('ECA12000B78','Eclipse Planter - Seafoam','ECA12000A101006LRCIA',1.25858), - ('ECA16000B78','Eclipse Planter - Seafoam','ECA16000A34C010LRCEX',2.57535), - ('ECA20000B78','Eclipse Planter - Seafoam','ECA20000A341006LRCEU',4.17568), - ('GDP08000DE2','Hanging Garden Planter - Slate Blue','SAA14001A10C006LRCDJ',1.5), - ('GDP08000BG3','Hanging Garden Planter - Teal','SAA14001A10C006LRCDJ',1.5), - ('MSA12001DE2','Marina Planter - Slate Blue','MSA12001A341008LRCFQ',1.85199), - ('MSA16001DE2','Marina Planter - Slate Blue','MSA16001A34C004LRAYN',2.80127), - ('MSA20001DE2','Marina Planter - Slate Blue','MSA20001A34C004LRCFW',4.88869), - ('MSA12001A42','Marina Planter - Warm Gray','MSA12001A341008LRCFQ',1.85199), - ('MSA16001A42','Marina Planter - Warm Gray','MSA16001A34C004LRAYN',2.80127), - ('MSA20001A42','Marina Planter - Warm Gray','MSA20001A34C004LRCFW',4.88869), - ('MSA12001B78','Marina Planter - Seafoam','MSA12001A341008LRCFQ',1.85199), - ('MSA16001B78','Marina Planter - Seafoam','MSA16001A34C004LRAYN',2.80127), - ('MSA20001B78','Marina Planter - Seafoam','MSA20001A34C004LRCFW',4.88869), - ('SEA07001DE2','Sedona Planter - Slate Blue','SEA07001B15C008LRAZR',0.60131), - ('SEA09001DE2','Sedona Planter - Slate Blue','SEA09001B15C008LRAZS',0.91061), - ('SEA12001DE2','Sedona Planter - Slate Blue','SEA12001B15C006LRAZU',1.55347), - ('SEA14001DE2','Sedona Planter - Slate Blue','SEA14001B15C006LRAZT',2.14701), - ('SEA16000DE2','Sedona Planter - Slate Blue','SAA14001A10C006LRCDJ',2.51344), - ('SEA07001B78','Sedona Planter - Seafoam','SEA07001B15C008LRAZR',0.60131), - ('SEA09001B78','Sedona Planter - Seafoam','SEA09001B15C008LRAZS',0.91061), - ('SEA12001B78','Sedona Planter - Seafoam','SEA12001B15C006LRAZU',1.55347), - ('SEA14001B78','Sedona Planter - Seafoam','SEA14001B15C006LRAZT',2.14701), - ('SEA16000B78','Sedona Planter - Seafoam','SAA14001A10C006LRCDJ',2.51344), - ('SEA07001A42','Sedona Planter - Warm Gray','SEA07001B15C008LRAZR',0.60131), - ('SEA09001A42','Sedona Planter - Warm Gray','SEA09001B15C008LRAZS',0.91061), - ('SEA12001A42','Sedona Planter - Warm Gray','SEA12001B15C006LRAZU',1.55347), - ('SEA14001A42','Sedona Planter - Warm Gray','SEA14001B15C006LRAZT',2.14701), - ('SEA16000A42','Sedona Planter - Warm Gray','SAA14001A10C006LRCDJ',2.51344), - ('VNP18000A42','Venetian Flower Box - Warm Gray','VNP18000A34C006LRTPN',1.44406), - ('VNP24000A42','Venetian Flower Box - Warm Gray','VNP24000A34C006LRTPR',1.63875), - ('VNP30000A42','Venetian Flower Box - Warm Gray','VNP30000A34C006LRTPV',2.31994), - ('VNP18000A10','Venetian Flower Box - White','VNP18000A34C006LRTPN',1.44406), - ('VNP24000A10','Venetian Flower Box - White','VNP24000A34C006LRTPR',1.63875), - ('VNP30000A10','Venetian Flower Box - White','VNP30000A34C006LRTPV',2.31994), - ('SVN18000A42','Venetian Flower Box Tray - Warm Gray','SVN18000A34C006LRTPZ',0.94787), - ('SVN24000A42','Venetian Flower Box Tray - Warm Gray','SVN24000A34C006LRTQD',1.04921), - ('SVN30000A42','Venetian Flower Box Tray - Warm Gray','SVN30000A34C006LRTQH',1.25193), - ('SVN18000A10','Venetian Flower Box Tray - White','SVN18000A34C006LRTPZ',0.94787), - ('SVN24000A10','Venetian Flower Box Tray - White','SVN24000A34C006LRTQD',1.04921), - ('SVN30000A10','Venetian Flower Box Tray - White','SVN30000A34C006LRTQH',1.25193), - ('ASP06000P81','Aria Square Planter - Fresh Avocado','SAA14001A10C006LRCDJ',0.852601662887377), - ('ASP08000P81','Aria Square Planter - Fresh Avocado','SAA14001A10C006LRCDJ',1.4348492660222), - ('ASP10000P81','Aria Square Planter - Fresh Avocado','SAA14001A10C006LRCDJ',2.69581191222571), - ('ASP12000P81','Aria Square Planter - Fresh Avocado','SAA14001A10C006LRCDJ',4.1862917611489), - ('ASP16000P81','Aria Square Planter - Fresh Avocado','SAA14001A10C006LRCDJ',9.09797526283241), - ('ASP06000P80','Aria Square Planter - Glossy White','SAA14001A10C006LRCDJ',0.852601662887377), - ('ASP08000P80','Aria Square Planter - Glossy White','SAA14001A10C006LRCDJ',1.4348492660222), - ('ASP10000P80','Aria Square Planter - Glossy White','SAA14001A10C006LRCDJ',2.69581191222571), - ('ASP12000P80','Aria Square Planter - Glossy White','SAA14001A10C006LRCDJ',4.1862917611489), - ('ASP16000P80','Aria Square Planter - Glossy White','SAA14001A10C006LRCDJ',9.09797526283241), - ('ASP06000P26','Aria Square Planter - Black Onyx','SAA14001A10C006LRCDJ',0.852601662887377), - ('ASP08000P26','Aria Square Planter - Black Onyx','SAA14001A10C006LRCDJ',1.4348492660222), - ('ASP10000P26','Aria Square Planter - Black Onyx','SAA14001A10C006LRCDJ',2.69581191222571), - ('ASP12000P26','Aria Square Planter - Black Onyx','SAA14001A10C006LRCDJ',4.1862917611489), - ('ASP16000P26','Aria Square Planter - Black Onyx','SAA14001A10C006LRCDJ',9.09797526283241), - ('ASP06000DE3','Aria Square Planter - Sapphire Blue','SAA14001A10C006LRCDJ',0.852601662887377), - ('ASP08000DE3','Aria Square Planter - Sapphire Blue','SAA14001A10C006LRCDJ',1.4348492660222), - ('ASP10000DE3','Aria Square Planter - Sapphire Blue','SAA14001A10C006LRCDJ',2.69581191222571), - ('ASP12000DE3','Aria Square Planter - Sapphire Blue','SAA14001A10C006LRCDJ',4.1862917611489), - ('ASP16000DE3','Aria Square Planter - Sapphire Blue','SAA14001A10C006LRCDJ',9.09797526283241), - ('ARP06000P81','Aria Round Planter - Fresh Avocado','SAA14001A10C006LRCDJ',0.70132159315339), - ('ARP08000P81','Aria Round Planter - Fresh Avocado','SAA14001A10C006LRCDJ',1.16639446371434), - ('ARP10000P81','Aria Round Planter - Fresh Avocado','SAA14001A10C006LRCDJ',2.06032580911152), - ('ARP12000P81','Aria Round Planter - Fresh Avocado','SAA14001A10C006LRCDJ',3.3063246409675), - ('ARP16000P81','Aria Round Planter - Fresh Avocado','SAA14001A10C006LRCDJ',7.29303859560353), - ('ARP06000P80','Aria Round Planter - Glossy White','SAA14001A10C006LRCDJ',0.70132159315339), - ('ARP08000P80','Aria Round Planter - Glossy White','SAA14001A10C006LRCDJ',1.16639446371434), - ('ARP10000P80','Aria Round Planter - Glossy White','SAA14001A10C006LRCDJ',2.06032580911152), - ('ARP12000P80','Aria Round Planter - Glossy White','SAA14001A10C006LRCDJ',3.3063246409675), - ('ARP16000P80','Aria Round Planter - Glossy White','SAA14001A10C006LRCDJ',7.29303859560353), - ('ARP06000P26','Aria Round Planter - Black Onyx','SAA14001A10C006LRCDJ',0.70132159315339), - ('ARP08000P26','Aria Round Planter - Black Onyx','SAA14001A10C006LRCDJ',1.16639446371434), - ('ARP10000P26','Aria Round Planter - Black Onyx','SAA14001A10C006LRCDJ',2.06032580911152), - ('ARP12000P26','Aria Round Planter - Black Onyx','SAA14001A10C006LRCDJ',3.3063246409675), - ('ARP16000P26','Aria Round Planter - Black Onyx','SAA14001A10C006LRCDJ',7.29303859560353), - ('ARP06000DE3','Aria Round Planter - Sapphire Blue','SAA14001A10C006LRCDJ',0.70132159315339), - ('ARP08000DE3','Aria Round Planter - Sapphire Blue','SAA14001A10C006LRCDJ',1.16639446371434), - ('ARP10000DE3','Aria Round Planter - Sapphire Blue','SAA14001A10C006LRCDJ',2.06032580911152), - ('ARP12000DE3','Aria Round Planter - Sapphire Blue','SAA14001A10C006LRCDJ',3.3063246409675), - ('ARP16000DE3','Aria Round Planter - Sapphire Blue','SAA14001A10C006LRCDJ',7.29303859560353), - ('ANP12000A39','Aspen Planter - Charcoal','SAA14001A10C006LRCDJ',7.09567010761259), - ('ANP15000A39','Aspen Planter - Charcoal','SAA14001A10C006LRCDJ',10.3452077597572), - ('ANP17500A39','Aspen Planter - Charcoal','SAA14001A10C006LRCDJ',14.4071298249379), - ('CAS12000P26','Cascade Tall Square Planter - Black Onyx','SAA14001A10C006LRCDJ',6.29314316635745), - ('CAS15000P26','Cascade Tall Square Planter - Black Onyx','SAA14001A10C006LRCDJ',15.3787074829932), - ('CAS12000P80','Cascade Tall Square Planter - Glossy White','SAA14001A10C006LRCDJ',6.29314316635745), - ('CAS15000P80','Cascade Tall Square Planter - Glossy White','SAA14001A10C006LRCDJ',15.3787074829932), - ('CAR12000P26','Cascade Tall Round Planter - Black Onyx','SAA14001A10C006LRCDJ',8.71982072275551), - ('CAR15000P26','Cascade Tall Round Planter - Black Onyx','SAA14001A10C006LRCDJ',15.8462292221236), - ('CAR12000P80','Cascade Tall Round Planter - Glossy White','SAA14001A10C006LRCDJ',8.71982072275551), - ('CAR15000P80','Cascade Tall Round Planter - Glossy White','SAA14001A10C006LRCDJ',15.8462292221236), - ('SKR12000G27','Santa Fe Round Planter - Black Sand','SAA14001A10C006LRCDJ',4.42057974300831), - ('SKR16000G27','Santa Fe Round Planter - Black Sand','SAA14001A10C006LRCDJ',9.79167124866476), - ('SKR12000E66','Santa Fe Round Planter - Cavern Clay','SAA14001A10C006LRCDJ',4.42057974300831), - ('SKR16000E66','Santa Fe Round Planter - Cavern Clay','SAA14001A10C006LRCDJ',9.79167124866476), - ('SKR12000A56','Santa Fe Round Planter - Pebble Gray','SAA14001A10C006LRCDJ',4.42057974300831), - ('SKR16000A56','Santa Fe Round Planter - Pebble Gray','SAA14001A10C006LRCDJ',9.79167124866476), - ('SKS12000G27','Santa Fe Square Planter - Black Sand','SAA14001A10C006LRCDJ',5.54815910808768), - ('SKS16000G27','Santa Fe Square Planter - Black Sand','SAA14001A10C006LRCDJ',10.8425160791589), - ('SKS12000E66','Santa Fe Square Planter - Cavern Clay','SAA14001A10C006LRCDJ',5.54815910808768), - ('SKS16000E66','Santa Fe Square Planter - Cavern Clay','SAA14001A10C006LRCDJ',10.8425160791589), - ('SKS12000A56','Santa Fe Square Planter - Pebble Gray','SAA14001A10C006LRCDJ',5.54815910808768), - ('SKS16000A56','Santa Fe Square Planter - Pebble Gray','SAA14001A10C006LRCDJ',10.8425160791589), - ('WBP16000P82','Whiskey Barrel Planter - Aged Oak','SAA14001A10C006LRCDJ',4.5) - ) x("target","descr","clone","cost") -) -,istka AS ( - INSERT INTO lgdat.stka - SELECT - repl.target v6part - ,v6plnt - ,v6unti - ,v6rpln - ,v6tpln - ,v6tdys - ,v6mrps - ,v6abcc - ,v6ccpy - ,v6lcdt - ,v6dbcc - ,v6ordq - ,v6opcy - ,v6mult - ,v6fut1 - ,v6fut2 - ,v6scdt - ,v6plan - ,v6cntr - ,v6untp - ,v6lvl - ,v6pack - ,v6pacu - ,v6prpt - ,v6kitc - ,v6proc - ,v6lrsp - ,v6lrsc - ,v6lrsf - ,v6lrmp - ,v6lrmc - ,v6lrmf - ,v6lwsp - ,v6lwsc - ,v6lwsf - ,v6lcsp - ,v6lcsc - ,v6lcsf - ,v6lcmp - ,v6lcmc - ,v6lcmf - ,v6lssc - ,v6lssf - ,v6lsmp - ,v6lsmc - ,v6lsmf - ,v6mpck - ,v6mpku - ,v6altf - ,v6dbuy - ,v6scdp - ,v6selp - ,v6rcps - ,v6recu - ,v6recc - ,v6ftmf - ,v6csmu - ,v6ntky - ,v6minq - ,v6maxq - ,v6moqt - ,v6estv - ,v6corg - ,v6psor - ,'C' v6stat - ,v6reas - ,v6auty - ,v6unto - ,v6reqc - ,v6buyr - ,v6lead - ,v6optr - ,v6multp - ,v6minr - ,v6perc - ,v6ola - ,v6mpqt - ,v6dpst - ,v6spdt - ,v6bbdt - ,v6orlt - ,v6autr - ,v6repp - ,v6rept - ,v6shrk - ,v6fcfn - ,v6auto - ,v6olok - ,v6oepy - ,v6prfr - ,v6cmtl - ,v6drws - ,v6drwl - ,v6denc - ,v6drel - ,v6ddat - ,v6drwn - ,v6drws2 - ,v6drwl2 - ,v6denc2 - ,v6drel2 - ,v6ddat2 - ,v6drwn2 - ,v6lotf - ,v6serf - ,v6lotb - ,v6lota - ,v6lotv - ,v6stcl - ,v6vlcd - ,v6sppp - ,v6sppc - ,v6mppp - ,v6mppc - ,v6frml - ,v6istr - ,v6engc - ,v6revl - ,v6rdat - ,v6rcvlc - ,v6sflc - ,v6cusr - ,v6cdat - ,v6ctme - ,v6uusr - ,v6udat - ,v6utme - ,v6fut3 - ,v6fut4 - ,v6fut5 - ,v6flg1 - ,v6flg2 - ,v6flg3 - ,v6flg4 - ,v6flg5 - ,v6flg6 - ,v6flg7 - ,v6flg8 - ,v6flg9 - ,v6flg10 - ,v6fut6 - ,v6fut7 - ,v6fut8 - ,v6fut9 - ,v6fut10 - ,v6fut11 - ,v6fut12 - ,v6fut13 - ,v6fut14 - ,v6fut15 - ,v6fut16 - ,v6fut17 - ,v6fut18 - ,v6fut19 - ,v6fut20 - ,v6fut21 - ,v6fut22 - ,v6fut23 - ,v6fut24 - ,v6fut25 - ,v6fut26 - ,v6fut27 - ,v6fut28 - ,v6fut29 - ,v6fut30 - ,v6fut31 - ,v6fut32 - ,v6fut33 - ,v6fut34 - ,v6fut35 - ,v6fut36 - ,v6fut37 - ,v6fut38 - ,v6fut39 - ,v6fut40 - ,v6fut41 - ,v6fut42 - ,v6fut43 - ,v6fut44 - ,v6fut45 - ,v6prcl - ,v6dbac - ,v6scdpt - ,v6apsup - ,v6matp - ,v6matm - ,v6mesc - ,v6crtm - ,v6lled - ,v6pctr - ,v6inqu - ,v6clexp - FROM - repl - INNER JOIN lgdat.stka ON - v6part = repl.clone - RETURNING * -) -, istkmm AS ( - INSERT INTO lgdat.stkmm - SELECT - repl.target avparta - ,repl.descr avdes1 - ,avdes2 - ,avdes3 - ,avunti - ,avmajg - ,avming - ,avmajs - ,avmins - ,avglcd - ,avgled - ,avharm - ,avclss - ,avfut3 - ,avfut4 - ,avfut5 - ,avfutc - ,avfutd - ,avupcc - ,avgtin - ,avnwht - ,avnwun - ,avsvol - ,avsvun - ,avengc - ,avrevl - ,avrdat - ,avcoil - ,avfut9 - ,avmspc - ,avslif - ,avdplt - ,avuver - ,avcata - ,avfedc - ,avtaxr - ,avcust - ,"avcpt#" - ,"avrev#" - ,avfut7 - ,avfut8 - ,avfutb - ,avldat - ,'C' avtype - ,avfutk - ,avfutn - ,avppap - ,avcusr - ,avcdat - ,avctme - ,avuusr - ,avudat - ,avutme - ,avsizc - ,avstlc - ,avcolc - ,avassc - ,avsasc - ,avlcoil - ,avgdfl - ,avvdfl - ,avwoqf - ,avnmfc - ,avfuth - ,avfuti - ,avfutl - ,avfutm - ,avfutp - ,avfutq - ,avfutr - ,avprun - ,avtotp - ,avdisc - ,avinvt - ,avbk01 - ,avbill - ,avbk04 - ,avbk06 - ,avoldd - ,avoldd2 - ,avlotf - ,avserf - ,avorig - ,avplan - ,avminq - ,avmaxq - ,avlead - ,avscdt - ,avestv - ,avcntr - ,avuntp - ,avlvl - ,avmoqt - ,avpack - ,avpacu - ,avprpt - ,avkitc - ,avproc - ,avlrsp - ,avlrsc - ,avlrsf - ,avlrmp - ,avlrmc - ,avlrmf - ,avlwsp - ,avlwsc - ,avlwsf - ,avlcsp - ,avlcsc - ,avlcsf - ,avlcmp - ,avlcmc - ,avlcmf - ,avlssc - ,avlssf - ,avlsmp - ,avlsmc - ,avlsmf - ,avmpck - ,avmpku - ,avaltf - ,avdbuy - ,avfut1 - ,avfut2 - ,avfut6 - ,avfuta - ,avfutg - ,avrecu - ,avftmf - ,avrecc - ,avfutj - ,avabcc - ,avcorg - ,avperc - ,avoptr - ,avmult - ,avminr - ,avshrk - ,avstat - ,avreas - ,avspdt - ,avbbdt - ,avpsor - ,avfuto - ,avdrws - ,avdrwl - ,avdenc - ,avdrel - ,avddat - ,avfute - ,avdrws2 - ,avdrwl2 - ,avdenc2 - ,avdrel2 - ,avddat2 - ,avfutf - ,avstcl - ,avvlcd - ,avsppp - ,avsppc - ,avmppp - ,avmppc - ,avflg01 - ,avflg02 - ,avflg03 - ,avflg04 - ,avflg05 - ,avflg06 - ,avflg07 - ,avflg08 - ,avflg09 - ,avflg10 - ,avfut01 - ,avfut02 - ,avfut03 - ,avfut04 - ,avfut05 - ,avfut06 - ,avfut07 - ,avfut08 - ,avfut09 - ,avfut10 - ,avfut11 - ,avfut12 - ,avfut13 - ,avfut14 - ,avfut15 - ,avfut16 - ,avfut17 - ,avfut18 - ,avfut19 - ,avfut20 - ,avfut21 - ,avfut22 - ,avfut23 - ,avfut24 - ,avfut25 - ,avfut26 - ,avfut27 - ,avfut28 - ,avfut29 - ,avfut30 - ,avfut31 - ,avfut32 - ,avfut33 - ,avfut34 - ,avfut35 - ,avfut36 - ,avfut37 - ,avfut38 - ,avfut39 - ,avfut40 - ,avfut41 - ,avfut42 - ,avfut43 - ,avfut44 - ,avfut45 - ,avudft - ,avfrml - ,avhaza - ,avlled - ,avdbac - ,avscdpt - ,avfifo - ,avantid - ,avsubt - ,avprcl - ,avotp - ,avcbyl - ,avsrvc - ,avspal - ,avpgrp - FROM - repl - INNER JOIN lgdat.stkmm m ON - m.avpart = repl.clone - RETURNING * -) -, istkmp AS ( - INSERT INTO lgdat.stkmp - SELECT - repl.target awpart - ,repl.descr awdes1 - ,awdes2 - ,awdes3 - ,awunti - ,awmajg - ,awming - ,awmajs - ,awmins - ,awgldc - ,awgled - ,awharm - ,awclss - ,awfut3 - ,awfut4 - ,awfut5 - ,awfutc - ,awfutd - ,awupcc - ,awgtin - ,awnwht - ,awnwun - ,awsvol - ,awsvun - ,'C' awtype - ,awvend - ,"awvpt#" - ,"awrev#" - ,awengc - ,awrevl - ,awrdat - ,awfut7 - ,awfut8 - ,awfutb - ,awcoil - ,awfut9 - ,awmspc - ,awuver - ,awcata - ,awslif - ,awfutk - ,awfutn - ,awppap - ,awdplt - ,awgdfl - ,awvdfl - ,awwoqf - ,awlcoil - ,awnmfc - ,awsizc - ,awstlc - ,awcolc - ,awassc - ,awsasc - ,awcusr - ,awcdat - ,awctme - ,awuusr - ,awudat - ,awutme - ,awfuth - ,awfuti - ,awfut6 - ,awfutl - ,awfutm - ,awfuto - ,awfutp - ,awfutq - ,awfutr - ,awldat - ,awlotf - ,awserf - ,awoldd - ,awbk02 - ,awoldd2 - ,awdisc - ,aworig - ,awfedc - ,awtaxr - ,awbk01 - ,awbk03 - ,awbk04 - ,awbk05 - ,awinvt - ,awconv - ,awunto - ,awreqc - ,awoptr - ,awlead - ,awcorg - ,awcntr - ,awola - ,awuntp - ,awshrk - ,awlvl - ,awmoqt - ,awpack - ,awpacu - ,awprpt - ,awbuyr - ,awauty - ,awmpqt - ,awabcc - ,awstat - ,awproc - ,awlrsp - ,awlrsc - ,awlrsf - ,awlrmp - ,awlrmc - ,awlrmf - ,awlwsp - ,awlwsc - ,awlwsf - ,awlcsp - ,awlcsc - ,awlcsf - ,awlcmp - ,awlcmc - ,awlcmf - ,awlssc - ,awlssf - ,awlsmp - ,awlsmc - ,awlsmf - ,awmpck - ,awmpku - ,awfutj - ,awfutg - ,awdbuy - ,awperc - ,awreas - ,awfut1 - ,awfut2 - ,awaltf - ,awftmf - ,awrecu - ,awrecc - ,awpsor - ,awfuta - ,awscdt - ,awdrws - ,awdrwl - ,awdenc - ,awdrel - ,awddat - ,awdrws2 - ,awdrwl2 - ,awdenc2 - ,awdrel2 - ,awddat2 - ,awfute - ,awfutf - ,awstcl - ,awvlcd - ,awsppp - ,awsppc - ,awmppp - ,awmppc - ,awflg01 - ,awflg02 - ,awflg03 - ,awflg04 - ,awflg05 - ,awflg06 - ,awflg07 - ,awflg08 - ,awflg09 - ,awflg10 - ,awfut01 - ,awfut02 - ,awfut03 - ,awfut04 - ,awfut05 - ,awfut06 - ,awfut07 - ,awfut08 - ,awfut09 - ,awfut10 - ,awfut11 - ,awfut12 - ,awfut13 - ,awfut14 - ,awfut15 - ,awfut16 - ,awfut17 - ,awfut18 - ,awfut19 - ,awfut20 - ,awfut21 - ,awfut22 - ,awfut23 - ,awfut24 - ,awfut25 - ,awfut26 - ,awfut27 - ,awfut28 - ,awfut29 - ,awfut30 - ,awfut31 - ,awfut32 - ,awfut33 - ,awfut34 - ,awfut35 - ,awfut36 - ,awfut37 - ,awfut38 - ,awfut39 - ,awfut40 - ,awfut41 - ,awfut42 - ,awfut43 - ,awfut44 - ,awfut45 - ,awudft - ,awfrml - ,awhaza - ,awlled - ,awdbac - ,awscdpt - ,awfifo - ,awantid - ,awsubt - ,awprcl - ,awotp - ,awcbyl - ,awsrvc - ,awspal - ,awpgrp - FROM - repl - INNER JOIN lgdat.stkmp ON - awpart = repl.clone - RETURNING * -) -, iicstm AS ( - INSERT INTO lgdat.icstm - SELECT - target cgpart - ,cglabs - ,cgmats - ,cgburs - ,cglaba - ,cgmata - ,cgbura - ,cglabv - ,cgmatv - ,cgburv - ,cgtptd - ,cgsdat - ,cost cgstcs - ,cgaccs - ,cgavcs - ,cgstoc - ,cgacoc - ,cgavoc - ,cgsqty - ,cgaqty - ,'C' cgtype - ,cgbrfs - ,cgbrvs - ,cgbrfa - ,cgbrva - ,cgbrfv - ,cgbrvv - ,cgfuts - ,cgfuta - ,cgfutv - ,cgplnt - ,cgfut1 - ,cgfut2 - ,cgfut3 - ,cgfut4 - ,cgfut5 - ,cgflg1 - ,cgflg2 - ,cgflg3 - FROM - repl - INNER JOIN lgdat.icstm ON - cgpart = clone - RETURNING * -) -,iicstp AS ( - INSERT INTO lgdat.icstp - SELECT - target chpart - ,chluc - ,chlcc - ,chlfc - ,chldc - ,chl1c - ,chl2c - ,chsuc - ,chscc - ,chsfc - ,chsdc - ,chs1c - ,chs2c - ,chscr - ,chlcr - ,chsdat - ,cost chstcs - ,chaccs - ,chavcs - ,chsdr - ,chs1r - ,chs2r - ,chldr - ,chl1r - ,chl2r - ,chsqty - ,chaqty - ,'C' chtype - ,chcurr - ,chsdwc - ,chacwc - ,chplnt - ,chavuc - ,chavxc - ,chavdc - ,chav1c - ,chav2c - ,chavfc - ,chfut1 - ,chfut2 - ,chfut3 - ,chfut4 - ,chfut5 - ,chflg1 - ,chflg2 - ,chflg3 - ,chflg4 - ,chflg5 - ,chflg6 - ,chflg7 - ,chcrcd - FROM - repl - INNER JOIN lgdat.icstp ON - chpart = clone - RETURNING * -) -,iicstr AS ( - INSERT INTO lgdat.icstr - SELECT - target y0part - ,y0plnt - ,cost y0stcs - ,y0accs - ,y0avcs - ,y0suc - ,y0sshr - ,y0sshc - ,y0soc - ,y0sdat - ,y0sqty - ,y0luc - ,y0lshc - ,y0loc - ,y0aqty - ,'C' y0type - ,y0smat - ,y0slab - ,y0svbr - ,y0sfbr - ,y0sotc - ,y0lmat - ,y0llab - ,y0lvbr - ,y0lfbr - ,y0lotc - ,y0amat - ,y0alab - ,y0avbr - ,y0afbr - ,y0aotc - ,y0aunc - ,y0ashc - ,y0acrc - ,y0fut1 - ,y0fut2 - ,y0fut3 - ,y0fut4 - ,y0fut5 - ,y0flg1 - ,y0flg2 - ,y0flg3 - ,y0crcd - ,y0stcr - ,y0lscr - FROM - repl - INNER JOIN lgdat.icstr ON - clone = y0part - RETURNING * -) -SELECT 'stka', count(*) FROM istka -UNION ALL -SELECT 'stkmm', count(*) FROM istkmm -UNION ALL -SELECT 'stkmp', count(*) FROM istkmp -UNION ALL -SELECT 'icstm', count(*) FROM iicstm -UNION ALL -SELECT 'icstp', count(*) FROM iicstp -UNION ALL +DELETE FROM lgdat.stka WHERE v6stat = 'C'; +DELETE FROM lgdat.stkmm where avtype = 'C'; +DELETE FROM lgdat.stkmp where awtype = 'C'; +DELETE FROM lgdat.icstm where cgtype = 'C'; +DELETE FROM lgdat.icstp where chtype = 'C'; +DELETE FROM lgdat.icstr where y0type = 'C'; +WITH +repl AS ( + SELECT + * + FROM + ( + VALUES + ('GAB12000DE2','Garden Bowl - Slate Blue','GAB12000A34C012LRTOQ',0.93886), + ('GAB14000DE2','Garden Bowl - Slate Blue','GAB14000A34C012LRTOT',1.30893), + ('GAB18000DE2','Garden Bowl - Slate Blue','GAB18000A34C006LRTOW',2.04076), + ('GAB22000DE2','Garden Bowl - Slate Blue','GAB22000A34C006LRTOZ',3.54985), + ('GAB12000BG3','Garden Bowl - Teal','GAB12000A34C012LRTOQ',0.93886), + ('GAB14000BG3','Garden Bowl - Teal','GAB14000A34C012LRTOT',1.30893), + ('GAB18000BG3','Garden Bowl - Teal','GAB18000A34C006LRTOW',2.04076), + ('GAB22000BG3','Garden Bowl - Teal','GAB22000A34C006LRTOZ',3.54985), + ('CNA06000A42','Caribbean Planter - Warm Gray','CNA06000A50C024LRCGA',0.36037), + ('CNA08000A42','Caribbean Planter - Warm Gray','CNA08000A50C024LRCGC',0.44575), + ('CNA06000F89','Caribbean Planter - Raspberry','CNA06000A50C024LRCGA',0.36222), + ('CNA08000F89','Caribbean Planter - Raspberry','CNA08000A50C024LRCGC',0.45024), + ('CNA10000F89','Caribbean Planter - Raspberry','CNA10000A42C012LRBXI',0.65195), + ('CNA12000F89','Caribbean Planter - Raspberry','CNA12000A42C012LRBXJ',1.63119), + ('CNA06000BG3','Caribbean Planter - Teal','CNA06000A50C024LRCGA',0.36222), + ('CNA08000BG3','Caribbean Planter - Teal','CNA08000A50C024LRCGC',0.45024), + ('CNA10000BG3','Caribbean Planter - Teal','CNA10000A42C012LRBXI',0.65195), + ('CNA12000BG3','Caribbean Planter - Teal','CNA12000A42C012LRBXJ',1.63119), + ('CNA06000A10','Caribbean Planter - White','CNA06000A50C024LRCGA',0.35215), + ('CNA08000A10','Caribbean Planter - White','CNA08000A50C024LRCGC',0.44641), + ('CNA10000A10','Caribbean Planter - White','CNA10000A42C012LRBXI',0.64485), + ('CNA12000A10','Caribbean Planter - White','CNA12000A42C012LRBXJ',1.61797), + ('CNA30000A10','Caribbean Planter - White','CNA30000G18C002LRCDG',28.85), + ('LIA06000DE2','Classic Planter - Slate Blue','LIA06000A34C024LRTIV',0.35842), + ('LIA08000DE2','Classic Planter - Slate Blue','LIA08000A34C024LRTIZ',0.56212), + ('LIA10000DE2','Classic Planter - Slate Blue','LIA10000A34C012LRTJD',1.8113), + ('LIA12000DE2','Classic Planter - Slate Blue','LIA12000A34C012LRTJH',2.42383), + ('LIA14000DE2','Classic Planter - Slate Blue','LIA14000A34C012LRTJL',2.73708), + ('LIA16000DE2','Classic Planter - Slate Blue','LIA16000A34C006LRTJP',3.05778), + ('LIA20000DE2','Classic Planter - Slate Blue','LIA20000A34C006LRTJT',5.63275), + ('LIA24000DE2','Classic Planter - Slate Blue','LIA24000A34C006LRTJY',6.35725), + ('LIA06000B78','Classic Planter - Seafoam','LIA06000A34C024LRTIV',0.35842), + ('LIA08000B78','Classic Planter - Seafoam','LIA08000A34C024LRTIZ',0.56212), + ('LIA10000B78','Classic Planter - Seafoam','LIA10000A34C012LRTJD',1.8113), + ('LIA12000B78','Classic Planter - Seafoam','LIA12000A34C012LRTJH',2.42383), + ('LIA14000B78','Classic Planter - Seafoam','LIA14000A34C012LRTJL',2.73708), + ('LIA16000B78','Classic Planter - Seafoam','LIA16000A34C006LRTJP',3.05778), + ('LIA20000B78','Classic Planter - Seafoam','LIA20000A34C006LRTJT',5.63275), + ('LIA24000B78','Classic Planter - Seafoam','LIA24000A34C006LRTJY',6.35725), + ('SLI06000DE2','Classic Saucer - Slate Blue','SLI06000A34C024LRTKB',0.18237), + ('SLI08000DE2','Classic Saucer - Slate Blue','SLI08000A34C024LRTKF',0.29674), + ('SLI10000DE2','Classic Saucer - Slate Blue','SLI10000A34C012LRTKJ',0.54887), + ('SLI12000DE2','Classic Saucer - Slate Blue','SLI12000A34C012LAH13',0.72483), + ('SLI14000DE2','Classic Saucer - Slate Blue','SLI14000A34C012LAH16',0.99295), + ('SLI17000DE2','Classic Saucer - Slate Blue','SLI17000A34C012LAH19',1.10433), + ('SLI20000DE2','Classic Saucer - Slate Blue','SLI20000A34C006LAH24',1.0319), + ('SLI24000DE2','Classic Saucer - Slate Blue','SLI24000A34C006LRTLD',1.95471), + ('SLI06000B78','Classic Saucer - Seafoam','SLI06000A34C024LRTKB',0.18237), + ('SLI08000B78','Classic Saucer - Seafoam','SLI08000A34C024LRTKF',0.29674), + ('SLI10000B78','Classic Saucer - Seafoam','SLI10000A34C012LRTKJ',0.54887), + ('SLI12000B78','Classic Saucer - Seafoam','SLI12000A34C012LAH13',0.72483), + ('SLI14000B78','Classic Saucer - Seafoam','SLI14000A34C012LAH16',0.99295), + ('SLI16000B78','Classic Saucer - Seafoam','SAA14001A10C006LRCDJ',1.10433), + ('SLI20000B78','Classic Saucer - Seafoam','SLI20000A34C006LAH24',1.0319), + ('SLI24000B78','Classic Saucer - Seafoam','SLI24000A34C006LRTLD',1.95471), + ('ECA06000DE2','Eclipse Planter - Slate Blue','ECA06000A101009LRCIG',0.42036), + ('ECA08000DE2','Eclipse Planter - Slate Blue','ECA08000A101006LRCID',0.63429), + ('ECA10000DE2','Eclipse Planter - Slate Blue','ECA10000A341020LRCEL',0.92453), + ('ECA12000DE2','Eclipse Planter - Slate Blue','ECA12000A101006LRCIA',1.25858), + ('ECA16000DE2','Eclipse Planter - Slate Blue','ECA16000A34C010LRCEX',2.57535), + ('ECA20000DE2','Eclipse Planter - Slate Blue','ECA20000A341006LRCEU',4.17568), + ('ECA06000B78','Eclipse Planter - Seafoam','ECA06000A101009LRCIG',0.42036), + ('ECA08000B78','Eclipse Planter - Seafoam','ECA08000A101006LRCID',0.63429), + ('ECA10000B78','Eclipse Planter - Seafoam','ECA10000A341020LRCEL',0.92453), + ('ECA12000B78','Eclipse Planter - Seafoam','ECA12000A101006LRCIA',1.25858), + ('ECA16000B78','Eclipse Planter - Seafoam','ECA16000A34C010LRCEX',2.57535), + ('ECA20000B78','Eclipse Planter - Seafoam','ECA20000A341006LRCEU',4.17568), + ('GDP08000DE2','Hanging Garden Planter - Slate Blue','SAA14001A10C006LRCDJ',1.5), + ('GDP08000BG3','Hanging Garden Planter - Teal','SAA14001A10C006LRCDJ',1.5), + ('MSA12001DE2','Marina Planter - Slate Blue','MSA12001A341008LRCFQ',1.85199), + ('MSA16001DE2','Marina Planter - Slate Blue','MSA16001A34C004LRAYN',2.80127), + ('MSA20001DE2','Marina Planter - Slate Blue','MSA20001A34C004LRCFW',4.88869), + ('MSA12001A42','Marina Planter - Warm Gray','MSA12001A341008LRCFQ',1.85199), + ('MSA16001A42','Marina Planter - Warm Gray','MSA16001A34C004LRAYN',2.80127), + ('MSA20001A42','Marina Planter - Warm Gray','MSA20001A34C004LRCFW',4.88869), + ('MSA12001B78','Marina Planter - Seafoam','MSA12001A341008LRCFQ',1.85199), + ('MSA16001B78','Marina Planter - Seafoam','MSA16001A34C004LRAYN',2.80127), + ('MSA20001B78','Marina Planter - Seafoam','MSA20001A34C004LRCFW',4.88869), + ('SEA07001DE2','Sedona Planter - Slate Blue','SEA07001B15C008LRAZR',0.60131), + ('SEA09001DE2','Sedona Planter - Slate Blue','SEA09001B15C008LRAZS',0.91061), + ('SEA12001DE2','Sedona Planter - Slate Blue','SEA12001B15C006LRAZU',1.55347), + ('SEA14001DE2','Sedona Planter - Slate Blue','SEA14001B15C006LRAZT',2.14701), + ('SEA16000DE2','Sedona Planter - Slate Blue','SAA14001A10C006LRCDJ',2.51344), + ('SEA07001B78','Sedona Planter - Seafoam','SEA07001B15C008LRAZR',0.60131), + ('SEA09001B78','Sedona Planter - Seafoam','SEA09001B15C008LRAZS',0.91061), + ('SEA12001B78','Sedona Planter - Seafoam','SEA12001B15C006LRAZU',1.55347), + ('SEA14001B78','Sedona Planter - Seafoam','SEA14001B15C006LRAZT',2.14701), + ('SEA16000B78','Sedona Planter - Seafoam','SAA14001A10C006LRCDJ',2.51344), + ('SEA07001A42','Sedona Planter - Warm Gray','SEA07001B15C008LRAZR',0.60131), + ('SEA09001A42','Sedona Planter - Warm Gray','SEA09001B15C008LRAZS',0.91061), + ('SEA12001A42','Sedona Planter - Warm Gray','SEA12001B15C006LRAZU',1.55347), + ('SEA14001A42','Sedona Planter - Warm Gray','SEA14001B15C006LRAZT',2.14701), + ('SEA16000A42','Sedona Planter - Warm Gray','SAA14001A10C006LRCDJ',2.51344), + ('VNP18000A42','Venetian Flower Box - Warm Gray','VNP18000A34C006LRTPN',1.44406), + ('VNP24000A42','Venetian Flower Box - Warm Gray','VNP24000A34C006LRTPR',1.63875), + ('VNP30000A42','Venetian Flower Box - Warm Gray','VNP30000A34C006LRTPV',2.31994), + ('VNP18000A10','Venetian Flower Box - White','VNP18000A34C006LRTPN',1.44406), + ('VNP24000A10','Venetian Flower Box - White','VNP24000A34C006LRTPR',1.63875), + ('VNP30000A10','Venetian Flower Box - White','VNP30000A34C006LRTPV',2.31994), + ('SVN18000A42','Venetian Flower Box Tray - Warm Gray','SVN18000A34C006LRTPZ',0.94787), + ('SVN24000A42','Venetian Flower Box Tray - Warm Gray','SVN24000A34C006LRTQD',1.04921), + ('SVN30000A42','Venetian Flower Box Tray - Warm Gray','SVN30000A34C006LRTQH',1.25193), + ('SVN18000A10','Venetian Flower Box Tray - White','SVN18000A34C006LRTPZ',0.94787), + ('SVN24000A10','Venetian Flower Box Tray - White','SVN24000A34C006LRTQD',1.04921), + ('SVN30000A10','Venetian Flower Box Tray - White','SVN30000A34C006LRTQH',1.25193), + ('ASP06000P81','Aria Square Planter - Fresh Avocado','SAA14001A10C006LRCDJ',0.852601662887377), + ('ASP08000P81','Aria Square Planter - Fresh Avocado','SAA14001A10C006LRCDJ',1.4348492660222), + ('ASP10000P81','Aria Square Planter - Fresh Avocado','SAA14001A10C006LRCDJ',2.69581191222571), + ('ASP12000P81','Aria Square Planter - Fresh Avocado','SAA14001A10C006LRCDJ',4.1862917611489), + ('ASP16000P81','Aria Square Planter - Fresh Avocado','SAA14001A10C006LRCDJ',9.09797526283241), + ('ASP06000P80','Aria Square Planter - Glossy White','SAA14001A10C006LRCDJ',0.852601662887377), + ('ASP08000P80','Aria Square Planter - Glossy White','SAA14001A10C006LRCDJ',1.4348492660222), + ('ASP10000P80','Aria Square Planter - Glossy White','SAA14001A10C006LRCDJ',2.69581191222571), + ('ASP12000P80','Aria Square Planter - Glossy White','SAA14001A10C006LRCDJ',4.1862917611489), + ('ASP16000P80','Aria Square Planter - Glossy White','SAA14001A10C006LRCDJ',9.09797526283241), + ('ASP06000P26','Aria Square Planter - Black Onyx','SAA14001A10C006LRCDJ',0.852601662887377), + ('ASP08000P26','Aria Square Planter - Black Onyx','SAA14001A10C006LRCDJ',1.4348492660222), + ('ASP10000P26','Aria Square Planter - Black Onyx','SAA14001A10C006LRCDJ',2.69581191222571), + ('ASP12000P26','Aria Square Planter - Black Onyx','SAA14001A10C006LRCDJ',4.1862917611489), + ('ASP16000P26','Aria Square Planter - Black Onyx','SAA14001A10C006LRCDJ',9.09797526283241), + ('ASP06000DE3','Aria Square Planter - Sapphire Blue','SAA14001A10C006LRCDJ',0.852601662887377), + ('ASP08000DE3','Aria Square Planter - Sapphire Blue','SAA14001A10C006LRCDJ',1.4348492660222), + ('ASP10000DE3','Aria Square Planter - Sapphire Blue','SAA14001A10C006LRCDJ',2.69581191222571), + ('ASP12000DE3','Aria Square Planter - Sapphire Blue','SAA14001A10C006LRCDJ',4.1862917611489), + ('ASP16000DE3','Aria Square Planter - Sapphire Blue','SAA14001A10C006LRCDJ',9.09797526283241), + ('ARP06000P81','Aria Round Planter - Fresh Avocado','SAA14001A10C006LRCDJ',0.70132159315339), + ('ARP08000P81','Aria Round Planter - Fresh Avocado','SAA14001A10C006LRCDJ',1.16639446371434), + ('ARP10000P81','Aria Round Planter - Fresh Avocado','SAA14001A10C006LRCDJ',2.06032580911152), + ('ARP12000P81','Aria Round Planter - Fresh Avocado','SAA14001A10C006LRCDJ',3.3063246409675), + ('ARP16000P81','Aria Round Planter - Fresh Avocado','SAA14001A10C006LRCDJ',7.29303859560353), + ('ARP06000P80','Aria Round Planter - Glossy White','SAA14001A10C006LRCDJ',0.70132159315339), + ('ARP08000P80','Aria Round Planter - Glossy White','SAA14001A10C006LRCDJ',1.16639446371434), + ('ARP10000P80','Aria Round Planter - Glossy White','SAA14001A10C006LRCDJ',2.06032580911152), + ('ARP12000P80','Aria Round Planter - Glossy White','SAA14001A10C006LRCDJ',3.3063246409675), + ('ARP16000P80','Aria Round Planter - Glossy White','SAA14001A10C006LRCDJ',7.29303859560353), + ('ARP06000P26','Aria Round Planter - Black Onyx','SAA14001A10C006LRCDJ',0.70132159315339), + ('ARP08000P26','Aria Round Planter - Black Onyx','SAA14001A10C006LRCDJ',1.16639446371434), + ('ARP10000P26','Aria Round Planter - Black Onyx','SAA14001A10C006LRCDJ',2.06032580911152), + ('ARP12000P26','Aria Round Planter - Black Onyx','SAA14001A10C006LRCDJ',3.3063246409675), + ('ARP16000P26','Aria Round Planter - Black Onyx','SAA14001A10C006LRCDJ',7.29303859560353), + ('ARP06000DE3','Aria Round Planter - Sapphire Blue','SAA14001A10C006LRCDJ',0.70132159315339), + ('ARP08000DE3','Aria Round Planter - Sapphire Blue','SAA14001A10C006LRCDJ',1.16639446371434), + ('ARP10000DE3','Aria Round Planter - Sapphire Blue','SAA14001A10C006LRCDJ',2.06032580911152), + ('ARP12000DE3','Aria Round Planter - Sapphire Blue','SAA14001A10C006LRCDJ',3.3063246409675), + ('ARP16000DE3','Aria Round Planter - Sapphire Blue','SAA14001A10C006LRCDJ',7.29303859560353), + ('ANP12000A39','Aspen Planter - Charcoal','SAA14001A10C006LRCDJ',7.09567010761259), + ('ANP15000A39','Aspen Planter - Charcoal','SAA14001A10C006LRCDJ',10.3452077597572), + ('ANP17500A39','Aspen Planter - Charcoal','SAA14001A10C006LRCDJ',14.4071298249379), + ('CAS12000P26','Cascade Tall Square Planter - Black Onyx','SAA14001A10C006LRCDJ',6.29314316635745), + ('CAS15000P26','Cascade Tall Square Planter - Black Onyx','SAA14001A10C006LRCDJ',15.3787074829932), + ('CAS12000P80','Cascade Tall Square Planter - Glossy White','SAA14001A10C006LRCDJ',6.29314316635745), + ('CAS15000P80','Cascade Tall Square Planter - Glossy White','SAA14001A10C006LRCDJ',15.3787074829932), + ('CAR12000P26','Cascade Tall Round Planter - Black Onyx','SAA14001A10C006LRCDJ',8.71982072275551), + ('CAR15000P26','Cascade Tall Round Planter - Black Onyx','SAA14001A10C006LRCDJ',15.8462292221236), + ('CAR12000P80','Cascade Tall Round Planter - Glossy White','SAA14001A10C006LRCDJ',8.71982072275551), + ('CAR15000P80','Cascade Tall Round Planter - Glossy White','SAA14001A10C006LRCDJ',15.8462292221236), + ('SKR12000G27','Santa Fe Round Planter - Black Sand','SAA14001A10C006LRCDJ',4.42057974300831), + ('SKR16000G27','Santa Fe Round Planter - Black Sand','SAA14001A10C006LRCDJ',9.79167124866476), + ('SKR12000E66','Santa Fe Round Planter - Cavern Clay','SAA14001A10C006LRCDJ',4.42057974300831), + ('SKR16000E66','Santa Fe Round Planter - Cavern Clay','SAA14001A10C006LRCDJ',9.79167124866476), + ('SKR12000A56','Santa Fe Round Planter - Pebble Gray','SAA14001A10C006LRCDJ',4.42057974300831), + ('SKR16000A56','Santa Fe Round Planter - Pebble Gray','SAA14001A10C006LRCDJ',9.79167124866476), + ('SKS12000G27','Santa Fe Square Planter - Black Sand','SAA14001A10C006LRCDJ',5.54815910808768), + ('SKS16000G27','Santa Fe Square Planter - Black Sand','SAA14001A10C006LRCDJ',10.8425160791589), + ('SKS12000E66','Santa Fe Square Planter - Cavern Clay','SAA14001A10C006LRCDJ',5.54815910808768), + ('SKS16000E66','Santa Fe Square Planter - Cavern Clay','SAA14001A10C006LRCDJ',10.8425160791589), + ('SKS12000A56','Santa Fe Square Planter - Pebble Gray','SAA14001A10C006LRCDJ',5.54815910808768), + ('SKS16000A56','Santa Fe Square Planter - Pebble Gray','SAA14001A10C006LRCDJ',10.8425160791589), + ('WBP16000P82','Whiskey Barrel Planter - Aged Oak','SAA14001A10C006LRCDJ',4.5) + ) x("target","descr","clone","cost") +) +,istka AS ( + INSERT INTO lgdat.stka + SELECT + repl.target v6part + ,v6plnt + ,v6unti + ,v6rpln + ,v6tpln + ,v6tdys + ,v6mrps + ,v6abcc + ,v6ccpy + ,v6lcdt + ,v6dbcc + ,v6ordq + ,v6opcy + ,v6mult + ,v6fut1 + ,v6fut2 + ,v6scdt + ,v6plan + ,v6cntr + ,v6untp + ,v6lvl + ,v6pack + ,v6pacu + ,v6prpt + ,v6kitc + ,v6proc + ,v6lrsp + ,v6lrsc + ,v6lrsf + ,v6lrmp + ,v6lrmc + ,v6lrmf + ,v6lwsp + ,v6lwsc + ,v6lwsf + ,v6lcsp + ,v6lcsc + ,v6lcsf + ,v6lcmp + ,v6lcmc + ,v6lcmf + ,v6lssc + ,v6lssf + ,v6lsmp + ,v6lsmc + ,v6lsmf + ,v6mpck + ,v6mpku + ,v6altf + ,v6dbuy + ,v6scdp + ,v6selp + ,v6rcps + ,v6recu + ,v6recc + ,v6ftmf + ,v6csmu + ,v6ntky + ,v6minq + ,v6maxq + ,v6moqt + ,v6estv + ,v6corg + ,v6psor + ,'C' v6stat + ,v6reas + ,v6auty + ,v6unto + ,v6reqc + ,v6buyr + ,v6lead + ,v6optr + ,v6multp + ,v6minr + ,v6perc + ,v6ola + ,v6mpqt + ,v6dpst + ,v6spdt + ,v6bbdt + ,v6orlt + ,v6autr + ,v6repp + ,v6rept + ,v6shrk + ,v6fcfn + ,v6auto + ,v6olok + ,v6oepy + ,v6prfr + ,v6cmtl + ,v6drws + ,v6drwl + ,v6denc + ,v6drel + ,v6ddat + ,v6drwn + ,v6drws2 + ,v6drwl2 + ,v6denc2 + ,v6drel2 + ,v6ddat2 + ,v6drwn2 + ,v6lotf + ,v6serf + ,v6lotb + ,v6lota + ,v6lotv + ,v6stcl + ,v6vlcd + ,v6sppp + ,v6sppc + ,v6mppp + ,v6mppc + ,v6frml + ,v6istr + ,v6engc + ,v6revl + ,v6rdat + ,v6rcvlc + ,v6sflc + ,v6cusr + ,v6cdat + ,v6ctme + ,v6uusr + ,v6udat + ,v6utme + ,v6fut3 + ,v6fut4 + ,v6fut5 + ,v6flg1 + ,v6flg2 + ,v6flg3 + ,v6flg4 + ,v6flg5 + ,v6flg6 + ,v6flg7 + ,v6flg8 + ,v6flg9 + ,v6flg10 + ,v6fut6 + ,v6fut7 + ,v6fut8 + ,v6fut9 + ,v6fut10 + ,v6fut11 + ,v6fut12 + ,v6fut13 + ,v6fut14 + ,v6fut15 + ,v6fut16 + ,v6fut17 + ,v6fut18 + ,v6fut19 + ,v6fut20 + ,v6fut21 + ,v6fut22 + ,v6fut23 + ,v6fut24 + ,v6fut25 + ,v6fut26 + ,v6fut27 + ,v6fut28 + ,v6fut29 + ,v6fut30 + ,v6fut31 + ,v6fut32 + ,v6fut33 + ,v6fut34 + ,v6fut35 + ,v6fut36 + ,v6fut37 + ,v6fut38 + ,v6fut39 + ,v6fut40 + ,v6fut41 + ,v6fut42 + ,v6fut43 + ,v6fut44 + ,v6fut45 + ,v6prcl + ,v6dbac + ,v6scdpt + ,v6apsup + ,v6matp + ,v6matm + ,v6mesc + ,v6crtm + ,v6lled + ,v6pctr + ,v6inqu + ,v6clexp + FROM + repl + INNER JOIN lgdat.stka ON + v6part = repl.clone + RETURNING * +) +, istkmm AS ( + INSERT INTO lgdat.stkmm + SELECT + repl.target avparta + ,repl.descr avdes1 + ,avdes2 + ,avdes3 + ,avunti + ,avmajg + ,avming + ,avmajs + ,avmins + ,avglcd + ,avgled + ,avharm + ,avclss + ,avfut3 + ,avfut4 + ,avfut5 + ,avfutc + ,avfutd + ,avupcc + ,avgtin + ,avnwht + ,avnwun + ,avsvol + ,avsvun + ,avengc + ,avrevl + ,avrdat + ,avcoil + ,avfut9 + ,avmspc + ,avslif + ,avdplt + ,avuver + ,avcata + ,avfedc + ,avtaxr + ,avcust + ,"avcpt#" + ,"avrev#" + ,avfut7 + ,avfut8 + ,avfutb + ,avldat + ,'C' avtype + ,avfutk + ,avfutn + ,avppap + ,avcusr + ,avcdat + ,avctme + ,avuusr + ,avudat + ,avutme + ,avsizc + ,avstlc + ,avcolc + ,avassc + ,avsasc + ,avlcoil + ,avgdfl + ,avvdfl + ,avwoqf + ,avnmfc + ,avfuth + ,avfuti + ,avfutl + ,avfutm + ,avfutp + ,avfutq + ,avfutr + ,avprun + ,avtotp + ,avdisc + ,avinvt + ,avbk01 + ,avbill + ,avbk04 + ,avbk06 + ,avoldd + ,avoldd2 + ,avlotf + ,avserf + ,avorig + ,avplan + ,avminq + ,avmaxq + ,avlead + ,avscdt + ,avestv + ,avcntr + ,avuntp + ,avlvl + ,avmoqt + ,avpack + ,avpacu + ,avprpt + ,avkitc + ,avproc + ,avlrsp + ,avlrsc + ,avlrsf + ,avlrmp + ,avlrmc + ,avlrmf + ,avlwsp + ,avlwsc + ,avlwsf + ,avlcsp + ,avlcsc + ,avlcsf + ,avlcmp + ,avlcmc + ,avlcmf + ,avlssc + ,avlssf + ,avlsmp + ,avlsmc + ,avlsmf + ,avmpck + ,avmpku + ,avaltf + ,avdbuy + ,avfut1 + ,avfut2 + ,avfut6 + ,avfuta + ,avfutg + ,avrecu + ,avftmf + ,avrecc + ,avfutj + ,avabcc + ,avcorg + ,avperc + ,avoptr + ,avmult + ,avminr + ,avshrk + ,avstat + ,avreas + ,avspdt + ,avbbdt + ,avpsor + ,avfuto + ,avdrws + ,avdrwl + ,avdenc + ,avdrel + ,avddat + ,avfute + ,avdrws2 + ,avdrwl2 + ,avdenc2 + ,avdrel2 + ,avddat2 + ,avfutf + ,avstcl + ,avvlcd + ,avsppp + ,avsppc + ,avmppp + ,avmppc + ,avflg01 + ,avflg02 + ,avflg03 + ,avflg04 + ,avflg05 + ,avflg06 + ,avflg07 + ,avflg08 + ,avflg09 + ,avflg10 + ,avfut01 + ,avfut02 + ,avfut03 + ,avfut04 + ,avfut05 + ,avfut06 + ,avfut07 + ,avfut08 + ,avfut09 + ,avfut10 + ,avfut11 + ,avfut12 + ,avfut13 + ,avfut14 + ,avfut15 + ,avfut16 + ,avfut17 + ,avfut18 + ,avfut19 + ,avfut20 + ,avfut21 + ,avfut22 + ,avfut23 + ,avfut24 + ,avfut25 + ,avfut26 + ,avfut27 + ,avfut28 + ,avfut29 + ,avfut30 + ,avfut31 + ,avfut32 + ,avfut33 + ,avfut34 + ,avfut35 + ,avfut36 + ,avfut37 + ,avfut38 + ,avfut39 + ,avfut40 + ,avfut41 + ,avfut42 + ,avfut43 + ,avfut44 + ,avfut45 + ,avudft + ,avfrml + ,avhaza + ,avlled + ,avdbac + ,avscdpt + ,avfifo + ,avantid + ,avsubt + ,avprcl + ,avotp + ,avcbyl + ,avsrvc + ,avspal + ,avpgrp + FROM + repl + INNER JOIN lgdat.stkmm m ON + m.avpart = repl.clone + RETURNING * +) +, istkmp AS ( + INSERT INTO lgdat.stkmp + SELECT + repl.target awpart + ,repl.descr awdes1 + ,awdes2 + ,awdes3 + ,awunti + ,awmajg + ,awming + ,awmajs + ,awmins + ,awgldc + ,awgled + ,awharm + ,awclss + ,awfut3 + ,awfut4 + ,awfut5 + ,awfutc + ,awfutd + ,awupcc + ,awgtin + ,awnwht + ,awnwun + ,awsvol + ,awsvun + ,'C' awtype + ,awvend + ,"awvpt#" + ,"awrev#" + ,awengc + ,awrevl + ,awrdat + ,awfut7 + ,awfut8 + ,awfutb + ,awcoil + ,awfut9 + ,awmspc + ,awuver + ,awcata + ,awslif + ,awfutk + ,awfutn + ,awppap + ,awdplt + ,awgdfl + ,awvdfl + ,awwoqf + ,awlcoil + ,awnmfc + ,awsizc + ,awstlc + ,awcolc + ,awassc + ,awsasc + ,awcusr + ,awcdat + ,awctme + ,awuusr + ,awudat + ,awutme + ,awfuth + ,awfuti + ,awfut6 + ,awfutl + ,awfutm + ,awfuto + ,awfutp + ,awfutq + ,awfutr + ,awldat + ,awlotf + ,awserf + ,awoldd + ,awbk02 + ,awoldd2 + ,awdisc + ,aworig + ,awfedc + ,awtaxr + ,awbk01 + ,awbk03 + ,awbk04 + ,awbk05 + ,awinvt + ,awconv + ,awunto + ,awreqc + ,awoptr + ,awlead + ,awcorg + ,awcntr + ,awola + ,awuntp + ,awshrk + ,awlvl + ,awmoqt + ,awpack + ,awpacu + ,awprpt + ,awbuyr + ,awauty + ,awmpqt + ,awabcc + ,awstat + ,awproc + ,awlrsp + ,awlrsc + ,awlrsf + ,awlrmp + ,awlrmc + ,awlrmf + ,awlwsp + ,awlwsc + ,awlwsf + ,awlcsp + ,awlcsc + ,awlcsf + ,awlcmp + ,awlcmc + ,awlcmf + ,awlssc + ,awlssf + ,awlsmp + ,awlsmc + ,awlsmf + ,awmpck + ,awmpku + ,awfutj + ,awfutg + ,awdbuy + ,awperc + ,awreas + ,awfut1 + ,awfut2 + ,awaltf + ,awftmf + ,awrecu + ,awrecc + ,awpsor + ,awfuta + ,awscdt + ,awdrws + ,awdrwl + ,awdenc + ,awdrel + ,awddat + ,awdrws2 + ,awdrwl2 + ,awdenc2 + ,awdrel2 + ,awddat2 + ,awfute + ,awfutf + ,awstcl + ,awvlcd + ,awsppp + ,awsppc + ,awmppp + ,awmppc + ,awflg01 + ,awflg02 + ,awflg03 + ,awflg04 + ,awflg05 + ,awflg06 + ,awflg07 + ,awflg08 + ,awflg09 + ,awflg10 + ,awfut01 + ,awfut02 + ,awfut03 + ,awfut04 + ,awfut05 + ,awfut06 + ,awfut07 + ,awfut08 + ,awfut09 + ,awfut10 + ,awfut11 + ,awfut12 + ,awfut13 + ,awfut14 + ,awfut15 + ,awfut16 + ,awfut17 + ,awfut18 + ,awfut19 + ,awfut20 + ,awfut21 + ,awfut22 + ,awfut23 + ,awfut24 + ,awfut25 + ,awfut26 + ,awfut27 + ,awfut28 + ,awfut29 + ,awfut30 + ,awfut31 + ,awfut32 + ,awfut33 + ,awfut34 + ,awfut35 + ,awfut36 + ,awfut37 + ,awfut38 + ,awfut39 + ,awfut40 + ,awfut41 + ,awfut42 + ,awfut43 + ,awfut44 + ,awfut45 + ,awudft + ,awfrml + ,awhaza + ,awlled + ,awdbac + ,awscdpt + ,awfifo + ,awantid + ,awsubt + ,awprcl + ,awotp + ,awcbyl + ,awsrvc + ,awspal + ,awpgrp + FROM + repl + INNER JOIN lgdat.stkmp ON + awpart = repl.clone + RETURNING * +) +, iicstm AS ( + INSERT INTO lgdat.icstm + SELECT + target cgpart + ,cglabs + ,cgmats + ,cgburs + ,cglaba + ,cgmata + ,cgbura + ,cglabv + ,cgmatv + ,cgburv + ,cgtptd + ,cgsdat + ,cost cgstcs + ,cgaccs + ,cgavcs + ,cgstoc + ,cgacoc + ,cgavoc + ,cgsqty + ,cgaqty + ,'C' cgtype + ,cgbrfs + ,cgbrvs + ,cgbrfa + ,cgbrva + ,cgbrfv + ,cgbrvv + ,cgfuts + ,cgfuta + ,cgfutv + ,cgplnt + ,cgfut1 + ,cgfut2 + ,cgfut3 + ,cgfut4 + ,cgfut5 + ,cgflg1 + ,cgflg2 + ,cgflg3 + FROM + repl + INNER JOIN lgdat.icstm ON + cgpart = clone + RETURNING * +) +,iicstp AS ( + INSERT INTO lgdat.icstp + SELECT + target chpart + ,chluc + ,chlcc + ,chlfc + ,chldc + ,chl1c + ,chl2c + ,chsuc + ,chscc + ,chsfc + ,chsdc + ,chs1c + ,chs2c + ,chscr + ,chlcr + ,chsdat + ,cost chstcs + ,chaccs + ,chavcs + ,chsdr + ,chs1r + ,chs2r + ,chldr + ,chl1r + ,chl2r + ,chsqty + ,chaqty + ,'C' chtype + ,chcurr + ,chsdwc + ,chacwc + ,chplnt + ,chavuc + ,chavxc + ,chavdc + ,chav1c + ,chav2c + ,chavfc + ,chfut1 + ,chfut2 + ,chfut3 + ,chfut4 + ,chfut5 + ,chflg1 + ,chflg2 + ,chflg3 + ,chflg4 + ,chflg5 + ,chflg6 + ,chflg7 + ,chcrcd + FROM + repl + INNER JOIN lgdat.icstp ON + chpart = clone + RETURNING * +) +,iicstr AS ( + INSERT INTO lgdat.icstr + SELECT + target y0part + ,y0plnt + ,cost y0stcs + ,y0accs + ,y0avcs + ,y0suc + ,y0sshr + ,y0sshc + ,y0soc + ,y0sdat + ,y0sqty + ,y0luc + ,y0lshc + ,y0loc + ,y0aqty + ,'C' y0type + ,y0smat + ,y0slab + ,y0svbr + ,y0sfbr + ,y0sotc + ,y0lmat + ,y0llab + ,y0lvbr + ,y0lfbr + ,y0lotc + ,y0amat + ,y0alab + ,y0avbr + ,y0afbr + ,y0aotc + ,y0aunc + ,y0ashc + ,y0acrc + ,y0fut1 + ,y0fut2 + ,y0fut3 + ,y0fut4 + ,y0fut5 + ,y0flg1 + ,y0flg2 + ,y0flg3 + ,y0crcd + ,y0stcr + ,y0lscr + FROM + repl + INNER JOIN lgdat.icstr ON + clone = y0part + RETURNING * +) +SELECT 'stka', count(*) FROM istka +UNION ALL +SELECT 'stkmm', count(*) FROM istkmm +UNION ALL +SELECT 'stkmp', count(*) FROM istkmp +UNION ALL +SELECT 'icstm', count(*) FROM iicstm +UNION ALL +SELECT 'icstp', count(*) FROM iicstp +UNION ALL SELECT 'icstr', count(*) FROM iicstr; \ No newline at end of file diff --git a/route_sql/build/copy_orders.sql b/build/copy_orders.sql similarity index 100% rename from route_sql/build/copy_orders.sql rename to build/copy_orders.sql diff --git a/route_sql/build/last_price.sql b/build/last_price.sql similarity index 95% rename from route_sql/build/last_price.sql rename to build/last_price.sql index 10c2d18..cd8c6cc 100644 --- a/route_sql/build/last_price.sql +++ b/build/last_price.sql @@ -1,120 +1,120 @@ -BEGIN; - -with p AS ( - SELECT - part - ,bill_cust - ,ship_cust - ,round(fb_val_loc/fb_qty,10) AS price - ,orderdate - ,row_number() OVER (PARTITION BY part,bill_cust, ship_cust ORDER BY orderdate DESC) rn - FROM - rlarp.osm - WHERE - fs_line = '41010' - AND calc_status <> 'CANCELED' - AND COALESCE(part,'') <> '' - AND fb_qty <> 0 - AND orderdate IS NOT NULL - ORDER BY - part - ,bill_cust - ,ship_cust - ,orderdate -) ---SELECT * FROM p WHERE rn = 1 -,incr AS ( - SELECT - b.plnt - ,b."ddord#" - ,b."dditm#" - ,b."fgbol#" - ,b."fgent#" - ,b."diinv#" - ,b."dilin#" - ,b.promo - ,b.return_reas - ,b.terms - ,b.custpo - ,b.dhincr - ,b.diext - ,b.ditdis - ,b.dcodat - ,b.ddqdat - ,b.dcmdat - ,b.dhidat - ,b.fspr - ,b.remit_to - ,b.bill_class - ,b.bill_cust - ,b.bill_rep - ,b.bill_terr - ,b.ship_class - ,b.ship_cust - ,b.ship_rep - ,b.ship_terr - ,b.quota_rep - ,b.account - ,b.shipgrp - ,b.geo - ,b.chan - ,b.orig_ctry - ,b.orig_prov - ,b.orig_post - ,b.dest_ctry - ,b.dest_prov - ,b.dest_post - ,b.part - ,b.ord_gldc - ,b.majg - ,b.ming - ,b.majs - ,b.mins - ,b.gldc - ,b.glec - ,b.harm - ,b.clss - ,b.brand - ,b.assc - ,b.fs_line - ,b.r_currency - ,b.r_rate - ,b.c_currency - ,b.c_rate - ,b.ddqtoi - ,b.ddqtsi - ,b.fgqshp - ,b.diqtsh - ,0 fb_qty - ,0 fb_cst_loc - ,0 fb_cst_loc_cur - ,0 fb_cst_loc_fut - ,b.fb_qty * p.price - b.fb_val_loc fb_val_loc - ,0 fb_val_loc_pl - ,b.calc_status - ,b.flag - ,b.orderdate - ,b.requestdate - ,b.shipdate - ,b.adj_orderdate - ,b.adj_requestdate - ,b.adj_shipdate - ,b."version" - ,'last price paid' iter - FROM - rlarp.osmfs b - INNER JOIN p ON - p.part = b.part - AND p.bill_cust = b.bill_cust - AND p.ship_cust = b.ship_cust - AND p.rn = 1 - WHERE - b.orderdate BETWEEN '2019-03-25' AND '2019-05-31' - OR b.orderdate BETWEEN '2020-03-25' AND '2020-05-31' -) -, ins AS ( - INSERT INTO rlarp.osmfs SELECT * FROM incr RETURNING * -) -SELECT fspr, sum(fb_val_loc *r_rate) FROM ins GROUP BY fspr; - +BEGIN; + +with p AS ( + SELECT + part + ,bill_cust + ,ship_cust + ,round(fb_val_loc/fb_qty,10) AS price + ,orderdate + ,row_number() OVER (PARTITION BY part,bill_cust, ship_cust ORDER BY orderdate DESC) rn + FROM + rlarp.osm + WHERE + fs_line = '41010' + AND calc_status <> 'CANCELED' + AND COALESCE(part,'') <> '' + AND fb_qty <> 0 + AND orderdate IS NOT NULL + ORDER BY + part + ,bill_cust + ,ship_cust + ,orderdate +) +--SELECT * FROM p WHERE rn = 1 +,incr AS ( + SELECT + b.plnt + ,b."ddord#" + ,b."dditm#" + ,b."fgbol#" + ,b."fgent#" + ,b."diinv#" + ,b."dilin#" + ,b.promo + ,b.return_reas + ,b.terms + ,b.custpo + ,b.dhincr + ,b.diext + ,b.ditdis + ,b.dcodat + ,b.ddqdat + ,b.dcmdat + ,b.dhidat + ,b.fspr + ,b.remit_to + ,b.bill_class + ,b.bill_cust + ,b.bill_rep + ,b.bill_terr + ,b.ship_class + ,b.ship_cust + ,b.ship_rep + ,b.ship_terr + ,b.quota_rep + ,b.account + ,b.shipgrp + ,b.geo + ,b.chan + ,b.orig_ctry + ,b.orig_prov + ,b.orig_post + ,b.dest_ctry + ,b.dest_prov + ,b.dest_post + ,b.part + ,b.ord_gldc + ,b.majg + ,b.ming + ,b.majs + ,b.mins + ,b.gldc + ,b.glec + ,b.harm + ,b.clss + ,b.brand + ,b.assc + ,b.fs_line + ,b.r_currency + ,b.r_rate + ,b.c_currency + ,b.c_rate + ,b.ddqtoi + ,b.ddqtsi + ,b.fgqshp + ,b.diqtsh + ,0 fb_qty + ,0 fb_cst_loc + ,0 fb_cst_loc_cur + ,0 fb_cst_loc_fut + ,b.fb_qty * p.price - b.fb_val_loc fb_val_loc + ,0 fb_val_loc_pl + ,b.calc_status + ,b.flag + ,b.orderdate + ,b.requestdate + ,b.shipdate + ,b.adj_orderdate + ,b.adj_requestdate + ,b.adj_shipdate + ,b."version" + ,'last price paid' iter + FROM + rlarp.osmfs b + INNER JOIN p ON + p.part = b.part + AND p.bill_cust = b.bill_cust + AND p.ship_cust = b.ship_cust + AND p.rn = 1 + WHERE + b.orderdate BETWEEN '2019-03-25' AND '2019-05-31' + OR b.orderdate BETWEEN '2020-03-25' AND '2020-05-31' +) +, ins AS ( + INSERT INTO rlarp.osmfs SELECT * FROM incr RETURNING * +) +SELECT fspr, sum(fb_val_loc *r_rate) FROM ins GROUP BY fspr; + COMMIT; \ No newline at end of file diff --git a/route_sql/build/list_changes_table.sql b/build/list_changes_table.sql similarity index 100% rename from route_sql/build/list_changes_table.sql rename to build/list_changes_table.sql diff --git a/route_sql/build/mass_scale_price.sql b/build/mass_scale_price.sql similarity index 100% rename from route_sql/build/mass_scale_price.sql rename to build/mass_scale_price.sql diff --git a/route_sql/build/new_part.sql b/build/new_part.sql similarity index 100% rename from route_sql/build/new_part.sql rename to build/new_part.sql diff --git a/route_sql/build/open_timing.sql b/build/open_timing.sql similarity index 95% rename from route_sql/build/open_timing.sql rename to build/open_timing.sql index c8772cd..1f42155 100644 --- a/route_sql/build/open_timing.sql +++ b/build/open_timing.sql @@ -1,96 +1,96 @@ -BEGIN; - -WITH -mseq AS ( - SELECT * FROM - ( - VALUES - ('Jun',1,6,-1) - ,('Jul',2,7,-1) - ,('Aug',3,8,-1) - ,('Sep',4,9,-1) - ,('Oct',5,10,-1) - ,('Nov',6,11,-1) - ,('Dec',7,12,-1) - ,('Jan',8,1,0) - ,('Feb',9,2,0) - ,('Mar',10,3,0) - ,('Apr',11,4,0) - ,('May',12,5,0) - ) x(m,s,cal,yr) -) -,alldates AS ( - SELECT - shipgrp - ,to_char(orderdate,'Mon') orderm - ,extract(month FROM age(requestdate,orderdate)) rmo - ,(sum((shipdate - requestdate)* (fb_val_loc * r_rate))/sum(fb_val_loc * r_rate))::int wav_lag - --,sum(fb_val_loc * r_rate) value_usd - FROM - rlarp.osm - WHERE - adj_orderdate >= '2017-06-01' - AND calc_status||flag <> 'CLOSEDREMAINDER' --exclude short ships when building order adjustments - AND adj_orderdate <= adj_shipdate - AND fspr IS NOT NULL - GROUP BY - shipgrp - ,to_char(orderdate,'Mon') - ,extract(month FROM age(requestdate,orderdate)) - HAVING - sum(fb_val_loc * r_rate) <> 0 -) -,lag AS ( - SELECT - shipgrp - ,orderm - ,rmo - ,wav_lag - FROM - alldates - ORDER BY - shipgrp - ,orderm - ,rmo -) -,opord AS ( -SELECT - shipgrp - ,orderdate - ,requestdate - ,shipdate - ,to_char(orderdate,'Mon') orderm - ,extract(month FROM age(requestdate,orderdate)) rmo - ,sum(fb_val_loc * r_rate) value_usd -FROM - rlarp.osm -WHERE - calc_status NOT IN ('CANCELED','CLOSED') -GROUP BY - shipgrp - ,orderdate - ,requestdate - ,shipdate - ,to_char(orderdate,'Mon') - ,extract(month FROM age(requestdate,orderdate)) -ORDER BY - value_usd DESC -) -,upd AS ( -UPDATE rlarp.osmfs o SET - adj_shipdate = greatest(shipdate + lag.wav_lag + 5 ,shipdate) -FROM - lag -WHERE - lag.shipgrp = o.shipgrp - AND lag.orderm = to_char(o.orderdate,'Mon') - AND lag.rmo = extract(month FROM age(o.requestdate,o.orderdate)) - AND o.calc_status in ('BACKORDER','OPEN') -RETURNING * -) -SELECT - sum(fb_val_loc *r_rate) filter (where adj_shipdate < '2019-04-01') - ,sum(fb_val_loc *r_rate) filter (where adj_shipdate >= '2019-04-01') -from upd; - +BEGIN; + +WITH +mseq AS ( + SELECT * FROM + ( + VALUES + ('Jun',1,6,-1) + ,('Jul',2,7,-1) + ,('Aug',3,8,-1) + ,('Sep',4,9,-1) + ,('Oct',5,10,-1) + ,('Nov',6,11,-1) + ,('Dec',7,12,-1) + ,('Jan',8,1,0) + ,('Feb',9,2,0) + ,('Mar',10,3,0) + ,('Apr',11,4,0) + ,('May',12,5,0) + ) x(m,s,cal,yr) +) +,alldates AS ( + SELECT + shipgrp + ,to_char(orderdate,'Mon') orderm + ,extract(month FROM age(requestdate,orderdate)) rmo + ,(sum((shipdate - requestdate)* (fb_val_loc * r_rate))/sum(fb_val_loc * r_rate))::int wav_lag + --,sum(fb_val_loc * r_rate) value_usd + FROM + rlarp.osm + WHERE + adj_orderdate >= '2017-06-01' + AND calc_status||flag <> 'CLOSEDREMAINDER' --exclude short ships when building order adjustments + AND adj_orderdate <= adj_shipdate + AND fspr IS NOT NULL + GROUP BY + shipgrp + ,to_char(orderdate,'Mon') + ,extract(month FROM age(requestdate,orderdate)) + HAVING + sum(fb_val_loc * r_rate) <> 0 +) +,lag AS ( + SELECT + shipgrp + ,orderm + ,rmo + ,wav_lag + FROM + alldates + ORDER BY + shipgrp + ,orderm + ,rmo +) +,opord AS ( +SELECT + shipgrp + ,orderdate + ,requestdate + ,shipdate + ,to_char(orderdate,'Mon') orderm + ,extract(month FROM age(requestdate,orderdate)) rmo + ,sum(fb_val_loc * r_rate) value_usd +FROM + rlarp.osm +WHERE + calc_status NOT IN ('CANCELED','CLOSED') +GROUP BY + shipgrp + ,orderdate + ,requestdate + ,shipdate + ,to_char(orderdate,'Mon') + ,extract(month FROM age(requestdate,orderdate)) +ORDER BY + value_usd DESC +) +,upd AS ( +UPDATE rlarp.osmfs o SET + adj_shipdate = greatest(shipdate + lag.wav_lag + 5 ,shipdate) +FROM + lag +WHERE + lag.shipgrp = o.shipgrp + AND lag.orderm = to_char(o.orderdate,'Mon') + AND lag.rmo = extract(month FROM age(o.requestdate,o.orderdate)) + AND o.calc_status in ('BACKORDER','OPEN') +RETURNING * +) +SELECT + sum(fb_val_loc *r_rate) filter (where adj_shipdate < '2019-04-01') + ,sum(fb_val_loc *r_rate) filter (where adj_shipdate >= '2019-04-01') +from upd; + COMMIT; \ No newline at end of file diff --git a/route_sql/build/part_list.sql b/build/part_list.sql similarity index 100% rename from route_sql/build/part_list.sql rename to build/part_list.sql diff --git a/route_sql/build/rep_totals.sql b/build/rep_totals.sql similarity index 100% rename from route_sql/build/rep_totals.sql rename to build/rep_totals.sql diff --git a/route_sql/build/set_cost_cur.sql b/build/set_cost_cur.sql similarity index 100% rename from route_sql/build/set_cost_cur.sql rename to build/set_cost_cur.sql diff --git a/route_sql/build/set_cost_fut.sql b/build/set_cost_fut.sql similarity index 100% rename from route_sql/build/set_cost_fut.sql rename to build/set_cost_fut.sql diff --git a/route_sql/build/set_fspr_gld.sql b/build/set_fspr_gld.sql similarity index 92% rename from route_sql/build/set_fspr_gld.sql rename to build/set_fspr_gld.sql index c975728..0aa3760 100644 --- a/route_sql/build/set_fspr_gld.sql +++ b/build/set_fspr_gld.sql @@ -1,29 +1,29 @@ -UPDATE - rlarp.osmfs f -SET - fspr = gld.fspr -FROM - ( - SELECT - N1COMP COMP - ,N1CCYY FSYRq - ,KPMAXP PERDS - ,N1FSPP PERD - ,to_char(N1FSYP,'FM0000') FSPR - ,N1SD01 SDAT - ,N1ED01 EDAT - ,to_char(N1ED01,'yymm') CAPR - ,N1ED01 - N1SD01 +1 NDAYS - ,CASE WHEN EXTRACT(MONTH FROM N1ED01) >= 6 THEN EXTRACT(YEAR FROM N1ED01) + 1 ELSE EXTRACT(YEAR FROM N1ED01) END SSYR - ,to_char(CASE WHEN EXTRACT(MONTH FROM N1ED01) >= 6 THEN EXTRACT(MONTH FROM N1ED01) -5 ELSE EXTRACT(MONTH FROM N1ED01) +7 END,'00') SSPR - FROM - LGDAT.GLDATREF - INNER JOIN LGDAT.GLDATE ON - KPCOMP = N1COMP AND - KPCCYY = N1CCYY - WHERE - N1COMP = 93 - --AND DIGITS(N1FSYP) = '1901' - ) gld -WHERE +UPDATE + rlarp.osmfs f +SET + fspr = gld.fspr +FROM + ( + SELECT + N1COMP COMP + ,N1CCYY FSYRq + ,KPMAXP PERDS + ,N1FSPP PERD + ,to_char(N1FSYP,'FM0000') FSPR + ,N1SD01 SDAT + ,N1ED01 EDAT + ,to_char(N1ED01,'yymm') CAPR + ,N1ED01 - N1SD01 +1 NDAYS + ,CASE WHEN EXTRACT(MONTH FROM N1ED01) >= 6 THEN EXTRACT(YEAR FROM N1ED01) + 1 ELSE EXTRACT(YEAR FROM N1ED01) END SSYR + ,to_char(CASE WHEN EXTRACT(MONTH FROM N1ED01) >= 6 THEN EXTRACT(MONTH FROM N1ED01) -5 ELSE EXTRACT(MONTH FROM N1ED01) +7 END,'00') SSPR + FROM + LGDAT.GLDATREF + INNER JOIN LGDAT.GLDATE ON + KPCOMP = N1COMP AND + KPCCYY = N1CCYY + WHERE + N1COMP = 93 + --AND DIGITS(N1FSYP) = '1901' + ) gld +WHERE f.adj_shipdate BETWEEN gld.sdat AND gld.edat \ No newline at end of file diff --git a/route_sql/build/set_part_master.sql b/build/set_part_master.sql similarity index 100% rename from route_sql/build/set_part_master.sql rename to build/set_part_master.sql diff --git a/route_sql/build/set_quota_rep.sql b/build/set_quota_rep.sql similarity index 100% rename from route_sql/build/set_quota_rep.sql rename to build/set_quota_rep.sql diff --git a/route_sql/build/snap_customer.sql b/build/snap_customer.sql similarity index 100% rename from route_sql/build/snap_customer.sql rename to build/snap_customer.sql diff --git a/route_sql/build/snap_fx.sql b/build/snap_fx.sql similarity index 100% rename from route_sql/build/snap_fx.sql rename to build/snap_fx.sql diff --git a/route_sql/build/snap_itemm.sql b/build/snap_itemm.sql similarity index 100% rename from route_sql/build/snap_itemm.sql rename to build/snap_itemm.sql diff --git a/route_sql/build/test_cost.sql b/build/test_cost.sql similarity index 100% rename from route_sql/build/test_cost.sql rename to build/test_cost.sql diff --git a/route_meta/adjust.json b/route_meta/adjust.json deleted file mode 100644 index 7f30995..0000000 --- a/route_meta/adjust.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "scenario": { - "ship_season": 2019, - "ship_month": "Mar", - "order_season": 2019, - "order_month": "Mar", - "version": "9p3", - "iter": [ - "forecast" - ] - }, - "adj_amount": -1248994, - "adj_qty": -2828623, - "tar_amount": 5335749, - "tar_qty": 18623740, - "stamp": "2019-03-01 10:00:00", - "user": "Trowbridge, Paul", - "source": "forecast ui", - "type":"scale_v" -} \ No newline at end of file diff --git a/sample_request.json b/sample_request.json new file mode 100644 index 0000000..61ee6ed --- /dev/null +++ b/sample_request.json @@ -0,0 +1,28 @@ +{ + "scenario": { + "quota_rep_descr": "TINA PETTIGREW", + "substance": "Plastic", + "chan": "DIR", + "billto_group": "H&A MASTRONARDI", + "shipto_group": "H&A MASTRONARDI", + "majg_descr": "110 - INJECTION", + "part_descr": "HWA13000E21B025LZBLD - 13.00 WRAPT HP CHOCOLATE", + "version": "b21", + "iter": [ + "copy", + "adj volume", + "adj price", + "upload volume", + "upload price" + ] + }, + "stamp": "2020-02-19 17:03:38", + "user": "Trowbridge, Paul", + "source": "adj", + "message": "2% on volume and price", + "tag": "standard price", + "version": "b21", + "type": "scale_vp", + "qty": 453.60, + "amount": 728.43624 +} \ No newline at end of file