Compare commits

..

No commits in common. "master" and "new_guidance" have entirely different histories.

4 changed files with 61 additions and 70 deletions

View File

@ -548,7 +548,7 @@ BEGIN
-- Target Support Panel -- Target Support Panel
SELECT SELECT
'Target Calculation' AS label, 'Target Calculation' AS label,
5 AS detailLevel, 10 AS detailLevel,
( (
SELECT * FROM ( SELECT * FROM (
SELECT SELECT
@ -581,7 +581,7 @@ BEGIN
----------------------label------------------------------------------------ ----------------------label------------------------------------------------
'Target' AS label, 'Target' AS label,
----------------------detailLevel------------------------------------------ ----------------------detailLevel------------------------------------------
5 AS detailLevel, 10 AS detailLevel,
----------------------value------------------------------------------------ ----------------------value------------------------------------------------
tprice AS value, tprice AS value,
----------------------type------------------------------------------------- ----------------------type-------------------------------------------------

View File

@ -384,8 +384,8 @@ BEGIN
,_approval_price ,_approval_price
,_approval_reason ,_approval_reason
FROM FROM
pricequote.guidance_logic(_tprice, _last_price_norm, _listprice_eff, _last_date, 1.0, 1.0, 1.0) gl pricequote.guidance_logic(_tprice, _last_price_norm, _listprice_eff, _last_date, .95, 1.0, 1.0) gl
CROSS JOIN pricequote.approval_logic(_tprice, _last_price_norm, _listprice_eff, _last_date, 1.0, 1.0, 1.0) al; CROSS JOIN pricequote.approval_logic(_tprice, _last_price_norm, _listprice_eff, _last_date, .95, 1.0, 1.0) al;
------------------------------------------------------------------ ------------------------------------------------------------------
-- Step 8: Build explanation JSON -- Step 8: Build explanation JSON

View File

@ -51,50 +51,42 @@ WITH base AS (
ranked AS ( ranked AS (
SELECT SELECT
b.* b.*
-- Most recent sale (Actuals only) -- Most recent sale
,CASE WHEN b.version = 'Actual' THEN ,ROW_NUMBER() OVER (
ROW_NUMBER() OVER (
PARTITION BY b.customer, b.partgroup PARTITION BY b.customer, b.partgroup
ORDER BY b.odate DESC ORDER BY CASE WHEN b.version = 'Actual' THEN b.odate ELSE NULL END DESC
) ) AS rn_mrs
END AS rn_mrs -- Most recent quote
-- Most recent quote (Quotes only) ,ROW_NUMBER() OVER (
,CASE WHEN b.version = 'Quotes' THEN
ROW_NUMBER() OVER (
PARTITION BY b.customer, b.partgroup PARTITION BY b.customer, b.partgroup
ORDER BY b.odate DESC ORDER BY CASE WHEN b.version = 'Quotes' THEN b.odate ELSE NULL END DESC
) ) AS rn_mrq
END AS rn_mrq -- Largest volume sale (last 12 months)
-- Largest volume sale (Actuals only; last 12 months prioritized) ,ROW_NUMBER() OVER (
,CASE WHEN b.version = 'Actual' THEN
ROW_NUMBER() OVER (
PARTITION BY b.customer, b.partgroup PARTITION BY b.customer, b.partgroup
ORDER BY ORDER BY CASE
CASE WHEN b.version = 'Actual' AND b.odate >= DATEADD(YEAR, -1, GETDATE()) THEN 1 ELSE 0 END DESC, WHEN b.version = 'Actual' AND b.odate >= DATEADD(YEAR, -1, GETDATE())
b.qty DESC THEN b.qty ELSE NULL
) END DESC
END AS rn_lvs ) AS rn_lvs
-- Largest volume quote (Quotes only; last 12 months prioritized) -- Largest volume quote (last 12 months)
,CASE WHEN b.version = 'Quotes' THEN ,ROW_NUMBER() OVER (
ROW_NUMBER() OVER (
PARTITION BY b.customer, b.partgroup PARTITION BY b.customer, b.partgroup
ORDER BY ORDER BY CASE
CASE WHEN b.version = 'Quotes' AND b.odate >= DATEADD(YEAR, -1, GETDATE()) THEN 1 ELSE 0 END DESC, WHEN b.version = 'Quotes' AND b.odate >= DATEADD(YEAR, -1, GETDATE())
b.qty DESC THEN b.qty ELSE NULL
) END DESC
END AS rn_lvq ) AS rn_lvq
,CASE WHEN b.version = 'Actual' THEN -- Most recent sale per data segment
ROW_NUMBER() OVER ( ,ROW_NUMBER() OVER (
PARTITION BY b.customer, b.partgroup, b.dataseg, b.version PARTITION BY b.customer, b.partgroup, b.dataseg, b.version
ORDER BY b.odate DESC ORDER BY CASE WHEN b.version = 'Actual' THEN b.odate ELSE NULL END DESC
) ) AS rn_dss
END AS rn_dss -- Most recent quote per data segment
,CASE WHEN b.version = 'Quotes' THEN ,ROW_NUMBER() OVER (
ROW_NUMBER() OVER (
PARTITION BY b.customer, b.partgroup, b.dataseg, b.version PARTITION BY b.customer, b.partgroup, b.dataseg, b.version
ORDER BY b.odate DESC ORDER BY CASE WHEN b.version = 'Quotes' THEN b.odate ELSE NULL END DESC
) ) AS rn_dsq
END AS rn_dsq
FROM base b FROM base b
) )
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
@ -129,7 +121,7 @@ ON #flagged(customer, partgroup, dataseg, version, part, qty, price, odate, ordn
-- Step 3.1: Explode all flags from the #flagged table -- Step 3.1: Explode all flags from the #flagged table
WITH exploded_flags AS ( WITH exploded_flags AS (
SELECT SELECT
customer, partgroup, part, dataseg, version, qty, price, odate, ordnum, quoten, customer, partgroup, part, dataseg, version, part, qty, price, odate, ordnum, quoten,
flag flag
FROM #flagged FROM #flagged
CROSS APPLY (VALUES (f1), (f2), (f3), (f4), (f5), (f6)) AS f(flag) CROSS APPLY (VALUES (f1), (f2), (f3), (f4), (f5), (f6)) AS f(flag)

View File

@ -1,11 +1,9 @@
CREATE OR REPLACE PROCEDURE pricequote.refresh_target_prices_base()
LANGUAGE plpgsql
AS $$
BEGIN
DELETE FROM pricequote.target_prices_base;
WITH expand AS ( DELETE FROM pricequote.target_prices_base;
SELECT
WITH
expand AS (
SELECT
c.compset, c.compset,
c.stlc, c.stlc,
c.floor, c.floor,
@ -15,14 +13,15 @@ BEGIN
b.vol, b.vol,
b.val, b.val,
b.price, b.price,
b.math AS math b.math math
FROM pricequote.core_target c FROM
LEFT JOIN LATERAL pricequote.build_pricing_path_base( pricequote.core_target c
c.options || jsonb_build_object('entity','Anchor','attr',c.stlc,'val',c.floor,'func','Price') LEFT JOIN LATERAL pricequote.build_pricing_path_base (options||jsonb_build_object('entity','Anchor','attr',c.stlc,'val',c.floor,'func','Price')) b ON b.lastflag
) AS b )
ON b.lastflag -- select count(*) from expand
) INSERT INTO
INSERT INTO pricequote.target_prices_base pricequote.target_prices_base
SELECT * FROM expand; SELECT
END; *
$$; FROM
expand;