get fuctional through basemix
This commit is contained in:
		
							parent
							
								
									f18b35364d
								
							
						
					
					
						commit
						966b072f72
					
				| @ -2,7 +2,7 @@ WITH | ||||
| /* | ||||
| the volume must be expressed in terms of units, since that is what it will be scaling | ||||
| */ | ||||
| target AS (select $$replace_request$$::json def) | ||||
| target AS (select '{"scenario":{"quota_rep_descr":"30033 - ROBERT NELSON","mod_chan":"DISTRIBUTOR","shipto_group":"KINNEY BONDED","version":"b20","iter":["copy"]},"stamp":"2019-03-22 03:24:28","user":"Trowbridge, Paul","source":"adj","type":"new_part","months":{"Jun":{"amount":"49649.1264","qty":"266248"},"Jul":{"amount":"37780.1","qty":"111786"},"Aug":{"amount":"36449.5","qty":"200396"},"Sep":{"amount":"29804.36","qty":"142327"},"Oct":{"amount":"48592.24","qty":"195356"},"Nov":{"amount":"33608.52","qty":"158100"},"Dec":{"amount":"50410.33","qty":"185462"},"Jan":{"amount":"60578.05","qty":"180712"},"Feb":{"amount":"36233.39","qty":"171236"},"Mar":{"amount":68208.7799685946,"qty":"223464.85292"},"Apr":{"amount":57397.3621278386,"qty":"263108.09419"},"May":{"amount":78626.8773843847,"qty":"324395.89234"}},"newpart":"XNT0TQT2G18B220 - 01.00 Q PER PRP CX BKBK","basket":[{"part_descr":"XNT0TQT2G18B220 - 01.00 Q PER PRP CX BKBK","bill_cust_descr":"KINN0002 - KINNEY BONDED WAREHOUSE INC","ship_cust_descr":"KINN0002 - KINNEY BONDED WAREHOUSE INC","mix":0.61885609384386},{"part_descr":"XNT0TQT2G18B220 - 01.00 Q PER PRP CX BKBK","bill_cust_descr":"KINN0002 - KINNEY BONDED WAREHOUSE INC","ship_cust_descr":"KINN0003 - KINNEY BONDED WAREHOUSE INC","mix":0.381143906156143}]}'::json def) | ||||
| --select * from newm | ||||
| ,GLD AS ( | ||||
|     SELECT  | ||||
| @ -179,7 +179,13 @@ target AS (select $$replace_request$$::json def) | ||||
|             mseq.m = order_month | ||||
|     WHERE | ||||
|         -----------------scenario---------------------------- | ||||
|         where_clause | ||||
|         --where_clause | ||||
|         quota_rep_descr = '30033 - ROBERT NELSON' | ||||
|         AND mod_chan = 'DISTRIBUTOR' | ||||
|         AND shipto_group = 'KINNEY BONDED' | ||||
|         AND "version" = 'b20' | ||||
|         AND iter = 'copy' | ||||
|         --probably dont want to include adjustments that have blown away volume and good sources of dating info | ||||
|         -----------------additional params------------------- | ||||
|         AND calc_status||flag <> 'CLOSEDREMAINDER' --exclude short ships when building order adjustments | ||||
|         AND adj_orderdate <= adj_shipdate | ||||
| @ -281,7 +287,8 @@ FROM | ||||
|                             LIMIT 1 | ||||
|                         ) | ||||
| ) | ||||
| --SELECT * FROM mmixp order by seq asc, vperc desc | ||||
| --SELECT * FROM mxm | ||||
| --this basemix is probably join going to be part-bill-ship with all master data joined later since it is not known if any original is salvaged | ||||
| ,basemix AS ( | ||||
| SELECT | ||||
|         null::text plnt          ---master data  | ||||
| @ -291,7 +298,7 @@ SELECT | ||||
|         ,0::numeric(11,0) "fgent#" | ||||
|         ,0::numeric(9,0) "diinv#" | ||||
|         ,0::numeric(3,0) "dilin#" | ||||
|         ,null::text promo          --history  | ||||
|         ,mxm.promo          --history  | ||||
|         ,null::text return_reas | ||||
|         ,null::text terms | ||||
|         ,''::text custpo | ||||
| @ -303,27 +310,27 @@ SELECT | ||||
|         ,null::date dcmdat | ||||
|         ,null::date dhidat | ||||
|         ,null::text fspr | ||||
|         ,remit_to | ||||
|         ,bill_class | ||||
|         ,bill_cust | ||||
|         ,bill_rep | ||||
|         ,bill_terr | ||||
|         ,ship_class | ||||
|         ,ship_cust | ||||
|         ,ship_rep | ||||
|         ,ship_terr | ||||
|         ,quota_rep | ||||
|         ,account | ||||
|         ,shipgrp | ||||
|         ,geo | ||||
|         ,chan | ||||
|         ,orig_ctry | ||||
|         ,orig_prov | ||||
|         ,orig_post | ||||
|         ,dest_ctry | ||||
|         ,dest_prov | ||||
|         ,dest_post | ||||
|         ,null::text part          --history part mix | ||||
|         ,null::text remit_to | ||||
|         ,null::text bill_class | ||||
|         ,(regexp_match(jr.bill_cust_descr,'(.*?)(?= - |$)'))[1] bill_cust | ||||
|         ,null:: text bill_rep | ||||
|         ,null::text bill_terr | ||||
|         ,null::text ship_class | ||||
|         ,(regexp_match(jr.ship_cust_descr,'(.*?)(?= - |$)'))[1] ship_cust | ||||
|         ,null::text ship_rep | ||||
|         ,null::text ship_terr | ||||
|         ,null::text quota_rep | ||||
|         ,null::text account | ||||
|         ,null::text shipgrp | ||||
|         ,null::text geo | ||||
|         ,null::text chan | ||||
|         ,null::text orig_ctry | ||||
|         ,null::text orig_prov | ||||
|         ,null::text orig_post | ||||
|         ,null::text dest_ctry | ||||
|         ,null::text dest_prov | ||||
|         ,null::text dest_post | ||||
|         ,(regexp_match(jr.part_descr,'(.*?)(?= - |$)'))[1] part | ||||
|         ,null::text ord_gldc | ||||
|         ,null::text majg | ||||
|         ,null::text ming | ||||
| @ -335,219 +342,66 @@ SELECT | ||||
|         ,null::text clss | ||||
|         ,null::text brand | ||||
|         ,null::text assc | ||||
|         ,fs_line | ||||
|         ,r_currency | ||||
|         ,r_rate | ||||
|         ,null::text fs_line | ||||
|         ,null::text r_currency | ||||
|         ,null::numeric r_rate | ||||
|         ,null::text c_currency | ||||
|         ,null::numeric c_rate | ||||
|         ,0::numeric(15,5) ddqtoi | ||||
|         ,0::numeric(15,5) ddqtsi | ||||
|         ,0::numeric(15,5) fgqshp | ||||
|         ,0::numeric(15,5) diqtsh | ||||
|         ,0::numeric fb_qty          --history value | ||||
|         ,mxm.qty*mxm.momix*jr.mix fb_qty          --history value | ||||
|         ,0::numeric fb_cst_loc          --history part mix | ||||
|         ,0::numeric fb_cst_loc_cur | ||||
|         ,0::numeric fb_cst_loc_fut | ||||
|         ,0::numeric fb_val_loc          --history value | ||||
|         ,mxm.amount*mxm.momix*jr.mix fb_val_loc          --history value | ||||
|         ,0::numeric fb_val_loc_pl | ||||
|         ,calc_status | ||||
|         ,flag | ||||
|         ,null::date orderdate          --history  | ||||
|         ,null::date requestdate          --history  | ||||
|         ,null::date shipdate          --history  | ||||
|         ,null::date adj_orderdate          --history  | ||||
|         ,null::date adj_requestdate          --history  | ||||
|         ,null::date adj_shipdate          --history  | ||||
|         ,null::text "version" | ||||
|         ,null::text iter | ||||
|         ---------------ui columns------------------------- | ||||
|         ,null::numeric order_season | ||||
|         ,null::text order_month | ||||
|         ,null::numeric ship_season | ||||
|         ,null::text ship_month | ||||
|         ,null::numeric request_season | ||||
|         ,null::text request_month | ||||
|         ,null::text part_descr | ||||
|         ,null::text part_family | ||||
|         ,null::text part_group | ||||
|         ,null::text branding | ||||
|         ,null::text color | ||||
|         ,null::text segm | ||||
|         ,bill_cust_descr | ||||
|         ,billto_group | ||||
|         ,ship_cust_descr | ||||
|         ,shipto_group | ||||
|         ,null::text majg_descr | ||||
|         ,null::text ming_descr | ||||
|         ,null::text majs_descr | ||||
|         ,null::text mins_descr | ||||
|         ,mod_chan | ||||
|         ,mod_chansub | ||||
|         ,quota_rep_descr | ||||
|         ,director_descr | ||||
|         ,null::numeric value_loc | ||||
|         ,null::numeric value_usd | ||||
|         ,null::numeric cost_loc | ||||
|         ,null::numeric cost_usd | ||||
|         ,null::numeric units | ||||
|         ,sum(coalesce(fb_val_loc * r_rate,0)) agg | ||||
|     FROM | ||||
|         rlarp.osm_fcpool | ||||
|     WHERE | ||||
|         -----------------scenario---------------------------- | ||||
|         where_clause | ||||
|         -----------------additional params------------------- | ||||
|         AND calc_status||flag <> 'CLOSEDREMAINDER' --exclude short ships when building order adjustments | ||||
|         AND adj_orderdate <= adj_shipdate | ||||
|     GROUP BY | ||||
|         remit_to | ||||
|         ,bill_class | ||||
|         ,bill_cust | ||||
|         ,bill_rep | ||||
|         ,bill_terr | ||||
|         ,ship_class | ||||
|         ,ship_cust | ||||
|         ,ship_rep | ||||
|         ,ship_terr | ||||
|         ,quota_rep | ||||
|         ,account | ||||
|         ,shipgrp | ||||
|         ,geo | ||||
|         ,chan | ||||
|         ,orig_ctry | ||||
|         ,orig_prov | ||||
|         ,orig_post | ||||
|         ,dest_ctry | ||||
|         ,dest_prov | ||||
|         ,dest_post | ||||
|         ,fs_line | ||||
|         ,r_currency | ||||
|         ,r_rate | ||||
|         ,calc_status | ||||
|         ,flag | ||||
|         ,bill_cust_descr | ||||
|         ,billto_group | ||||
|         ,ship_cust_descr | ||||
|         ,shipto_group | ||||
|         ,mod_chan | ||||
|         ,mod_chansub | ||||
|         ,quota_rep_descr | ||||
|         ,director_descr | ||||
| ) | ||||
| ,applyx AS ( | ||||
| SELECT | ||||
|     b.plnt          --master data  | ||||
|     ,b."ddord#" | ||||
|     ,b."dditm#" | ||||
|     ,b."fgbol#" | ||||
|     ,b."fgent#" | ||||
|     ,b."diinv#" | ||||
|     ,b."dilin#" | ||||
|     ,mxm.promo          --history  | ||||
|     ,b.return_reas | ||||
|     ,b.terms          --history cust mix | ||||
|     ,b.custpo | ||||
|     ,b.dhincr | ||||
|     ,b.diext | ||||
|     ,b.ditdis | ||||
|     ,b.dcodat | ||||
|     ,b.ddqdat | ||||
|     ,b.dcmdat | ||||
|     ,b.dhidat | ||||
|     ,sd.fspr fspr | ||||
|     ,b.remit_to          --master data  | ||||
|     ,b.bill_class          --master data  | ||||
|     ,b.bill_cust          --history cust mix | ||||
|     ,b.bill_rep          --master data  | ||||
|     ,b.bill_terr          --master data  | ||||
|     ,b.ship_class          --master data  | ||||
|     ,b.ship_cust          --history cust mix | ||||
|     ,b.ship_rep          --master data  | ||||
|     ,b.ship_terr          --master data  | ||||
|     ,b.quota_rep          --master data  | ||||
|     ,b.account          --master data  | ||||
|     ,b.shipgrp          --master data  | ||||
|     ,b.geo          --master data  | ||||
|     ,b.chan          --master data  | ||||
|     ,b.orig_ctry          --master data  | ||||
|     ,b.orig_prov          --master data  | ||||
|     ,b.orig_post          --master data  | ||||
|     ,b.dest_ctry          --master data  | ||||
|     ,b.dest_prov          --master data  | ||||
|     ,b.dest_post          --master data  | ||||
|     ,(SELECT (regexp_match(def->>'newpart','(.*) - '::text))[1] FROM target) part          --history part mix | ||||
|     ,b.ord_gldc          --master data  | ||||
|     ,b.majg          --master data  | ||||
|     ,b.ming          --master data  | ||||
|     ,b.majs          --master data  | ||||
|     ,b.mins          --master data  | ||||
|     ,b.gldc          --master data  | ||||
|     ,b.glec          --master data  | ||||
|     ,b.harm          --master data  | ||||
|     ,b.clss          --master data  | ||||
|     ,b.brand          --master data  | ||||
|     ,b.assc          --master data  | ||||
|     ,b.fs_line          --master data  | ||||
|     ,b.r_currency          --history cust mix | ||||
|     ,b.r_rate          --master data  | ||||
|     ,b.c_currency          --master data  | ||||
|     ,b.c_rate          --master data  | ||||
|     ,b.ddqtoi | ||||
|     ,b.ddqtsi | ||||
|     ,b.fgqshp | ||||
|     ,b.diqtsh | ||||
|     ,(b.agg/sum(b.agg) OVER (partition by mxm.*))*mxm.momix*mxm.qty fb_qty | ||||
|     ,b.fb_cst_loc | ||||
|     ,b.fb_cst_loc_cur | ||||
|     ,b.fb_cst_loc_fut | ||||
|     ,(b.agg/sum(b.agg) OVER (partition by mxm.*))*mxm.momix*mxm.amount fb_val_loc | ||||
|     ,b.fb_val_loc_pl | ||||
|     ,b.calc_status | ||||
|     ,b.flag | ||||
|         ,null::text calc_status | ||||
|         ,null::text flag | ||||
|         ,make_date(mxm.yr + 2020,mxm.cal,mxm.odom) orderdate | ||||
|         ,make_date(mxm.yr + 2020,mxm.cal,mxm.odom) + rlag requestdate | ||||
|         ,make_date(mxm.yr + 2020,mxm.cal,mxm.odom) + rlag + slag shipdate | ||||
|         ,make_date(mxm.yr + 2020,mxm.cal,mxm.odom) adj_orderdate | ||||
|         ,make_date(mxm.yr + 2020,mxm.cal,mxm.odom) + rlag adj_requestdate | ||||
|         ,make_date(mxm.yr + 2020,mxm.cal,mxm.odom) + rlag + slag adj_shipdate | ||||
|     ,'replace_version' "version" | ||||
|     ,'replace_source'||' new part'  iter | ||||
|     -----------------------ui columns-------------------------------- | ||||
|     ,'replace_iterdet' iterdet | ||||
|     ,$$replace_iterdef$$::json iterdef | ||||
|         ,null::text "version" | ||||
|         ,null::text iter | ||||
|         ---------------ui columns------------------------- | ||||
|         ,od.ssyr order_season | ||||
|         ,to_char(make_date(mxm.yr + 2020,mxm.cal,mxm.odom),'Mon') order_month | ||||
|         ,sd.ssyr ship_season | ||||
|         ,to_char(make_date(mxm.yr + 2020,mxm.cal,mxm.odom) + rlag + slag,'Mon') ship_month | ||||
|         ,rd.ssyr request_season | ||||
|         ,to_char(make_date(mxm.yr + 2020,mxm.cal,mxm.odom) + rlag,'Mon')  request_month | ||||
|     ,b.part_descr | ||||
|     ,b.part_family | ||||
|     ,b.part_group | ||||
|     ,b.branding | ||||
|     ,b.color | ||||
|     ,b.segm | ||||
|     ,b.bill_cust_descr | ||||
|     ,b.billto_group | ||||
|     ,b.ship_cust_descr | ||||
|     ,b.shipto_group | ||||
|     ,b.majg_descr | ||||
|     ,b.ming_descr | ||||
|     ,b.majs_descr | ||||
|     ,b.mins_descr | ||||
|     ,b.mod_chan | ||||
|     ,b.mod_chansub | ||||
|     ,b.quota_rep_descr | ||||
|     ,b.director_descr | ||||
|     ,b.value_loc | ||||
|     ,b.value_usd | ||||
|     ,b.cost_loc | ||||
|     ,b.cost_usd | ||||
|     ,b.units | ||||
|     --,(b.agg/sum(b.agg) OVER (partition by mxm.*)) bmix | ||||
|     --,mxm.* | ||||
|         ,jr.part_descr part_descr | ||||
|         ,null::text part_family | ||||
|         ,null::text part_group | ||||
|         ,null::text branding | ||||
|         ,null::text color | ||||
|         ,null::text segm | ||||
|         ,jr.bill_cust_descr | ||||
|         ,null::text billto_group | ||||
|         ,jr.ship_cust_descr | ||||
|         ,null::text shipto_group | ||||
|         ,null::text majg_descr | ||||
|         ,null::text ming_descr | ||||
|         ,null::text majs_descr | ||||
|         ,null::text mins_descr | ||||
|         ,null::text mod_chan | ||||
|         ,null::text mod_chansub | ||||
|         ,null::text quota_rep_descr | ||||
|         ,null::text director_descr | ||||
|         ,null::numeric value_loc | ||||
|         ,null::numeric value_usd | ||||
|         ,null::numeric cost_loc | ||||
|         ,null::numeric cost_usd | ||||
|         ,null::numeric units | ||||
|         ,jr.mix | ||||
|     FROM | ||||
|     basemix b | ||||
|         target | ||||
|         JOIN LATERAL json_array_elements(def->'basket') as ae(e) ON true | ||||
|         JOIN LATERAL json_to_record(ae.e) as jr(part_descr text, bill_cust_descr text, ship_cust_descr text, mix numeric) ON true | ||||
|         CROSS JOIN mxm | ||||
|         LEFT OUTER JOIN gld od ON | ||||
|             make_date(mxm.yr + 2020,mxm.cal,mxm.odom) BETWEEN od.sdat AND od.edat | ||||
| @ -556,6 +410,7 @@ FROM | ||||
|         LEFT OUTER JOIN gld sd ON | ||||
|             make_date(mxm.yr + 2020,mxm.cal,mxm.odom) + rlag + slag BETWEEN sd.sdat AND sd.edat | ||||
| ) | ||||
| --SELECT * FROM basemix | ||||
| ,final AS ( | ||||
| SELECT | ||||
|     COALESCE(m.avdplt,p.awdplt) plnt          --master data  | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user