87 lines
2.9 KiB
SQL
87 lines
2.9 KiB
SQL
set work_mem TO '4GB';
|
|
|
|
DROP VIEW IF EXISTS rlarp.quote_review;
|
|
CREATE VIEW rlarp.quote_review AS
|
|
WITH
|
|
lq AS MATERIALIZED (
|
|
SELECT
|
|
lq.*
|
|
,substring(lq.part,1,8) mold
|
|
FROM
|
|
pricequote.live_quotes lq
|
|
)
|
|
,lqg AS (
|
|
SELECT
|
|
lq.*
|
|
,pricing->'product'->>'mold' part_group
|
|
CASE SUBSTR(bc.cclass,2,3)
|
|
--if the bill to class is ditsributor, then it's either warehouse or drop
|
|
WHEN 'DIS' THEN
|
|
--if the ship-to is a different name than the bill-to then it's drop, otherwise it's warehouse
|
|
CASE SUBSTR(sc.cclass,2,3)
|
|
WHEN 'DIS' THEN 'WHS'
|
|
ELSE 'DRP'
|
|
END
|
|
--CASE WHEN RTRIM(SUBSTR(LTRIM(SC.BVADR7)||SC.BVNAME,1,30)) = RTRIM(SUBSTR(LTRIM(BC.BVADR7)||BC.BVNAME,1,30)) THEN 'DIS' ELSE 'DRP' END
|
|
--everything else does not involve a distributor and is considered direct
|
|
ELSE 'DIR'
|
|
END qchan,
|
|
,CASE osm.chan WHEN 'DRP' THEN rtrim(osm.shipgrp) ELSE rtrim(osm.account) END customer
|
|
,pricing->'customer'->>'cust' qcust
|
|
,pricing->'product'->>'itemrel' item_fit
|
|
,(pricing->'product'->>'pltq')::numeric pltq
|
|
,(pricing->'guidance'->'finalPrice'->>'Price')::numeric guidance
|
|
,pricing->'guidance'->'finalPrice'->>'Reason' reason
|
|
,(pricing->'product'->>'cstd_usd_ina')::numeric cstd_usd
|
|
,(pricing->'product'->>'fstd_usd_ina')::numeric fstd_usd
|
|
,(pricing->'guidance'->>'ltp')::numeric ltp
|
|
,(pricing->'guidance'->>'optimization')::numeric optimization
|
|
,(pricing->'guidance'->>'inflationFactor')::numeric inflation
|
|
,jsonb_pretty(pricing) pricing
|
|
FROM
|
|
lq
|
|
LEFT OUTER JOIN rlarp.cust bc ON
|
|
bc.cust = lq.billto
|
|
LEFT OUTER JOIN rlarp.cust sc ON
|
|
bc.cust = lq.shipto
|
|
LEFT JOIN LATERAL rlarp.guidance_r1(
|
|
rlarp.get_guidance_dseg(lq.billto,lq.shipto,substring(lq.part,1,8),lq.v1ds,lq.units_each,2025)
|
|
) pricing ON TRUE
|
|
WHERE
|
|
lq.qstat ~ 'Submitted'
|
|
)
|
|
,hist AS (
|
|
SELECT
|
|
g.*
|
|
,gset.chan
|
|
--,gset.mold moldh
|
|
,gset.v1ds v1dsh
|
|
,gset.cust
|
|
,gset.vers
|
|
,je.k
|
|
,seas.*
|
|
FROM
|
|
lqg g
|
|
LEFT OUTER JOIN rlarp.price_pool_dev p ON
|
|
p.gset @> jsonb_build_object('mold',g.part_group)
|
|
AND p.gset ? 'cust'
|
|
AND p.gset ? 'v1ds'
|
|
LEFT JOIN LATERAL jsonb_to_record(p.gset) AS gset(
|
|
chan text
|
|
,mold text
|
|
,v1ds text
|
|
,v0ds text
|
|
,cust text
|
|
,vers text
|
|
--,nurs text
|
|
--,ghse text
|
|
) ON TRUE
|
|
LEFT JOIN LATERAL jsonb_each(p.season) je(k,v) on true
|
|
LEFT JOIN Lateral jsonb_to_record(je.v) as seas(
|
|
units numeric
|
|
,sales_usd numeric
|
|
,price_usd numeric
|
|
) ON TRUE
|
|
)
|
|
SELECT * FROM hist
|