From 10ca238010cba3421e78c401bd855d7d3296add2 Mon Sep 17 00:00:00 2001 From: Paul Trowbridge Date: Fri, 8 Aug 2025 17:36:58 -0400 Subject: [PATCH] commit: 2025-08-08 17:36:58 --- example_usage.ms.sql | 12 ++++++------ example_usage.pg.sql | 13 ++++++++----- procs/single_price_call.ms.sql | 4 ++-- procs/single_price_call.pg.sql | 17 ++++++++++++++--- 4 files changed, 30 insertions(+), 16 deletions(-) diff --git a/example_usage.ms.sql b/example_usage.ms.sql index 89145db..94e1780 100644 --- a/example_usage.ms.sql +++ b/example_usage.ms.sql @@ -1,10 +1,10 @@ EXEC pricing.single_price_call - @bill = 'GRIF0001', - @ship = 'GRIF0001', - @part = 'XNS0T1G3G18B096', - @v1ds = 'v1:B.L.PLT..', - @vol = 9600; + @bill = 'FARM0001', + @ship = 'KEYB0001', + @part = 'HZP3E100E21D050', + @v1ds = 'v1:T..PLT..', + @vol = 50000; SELECT @@ -50,7 +50,7 @@ WHERE SELECT * -FROM pricing.single_price_call( +FROM pricequote.single_price_call( 'GRIF0001', 'GRIF0001', 'XNS0T1G3G18B096', diff --git a/example_usage.pg.sql b/example_usage.pg.sql index d54ffe2..bb93c1c 100644 --- a/example_usage.pg.sql +++ b/example_usage.pg.sql @@ -1,9 +1,12 @@ SELECT * FROM pricequote.single_price_call( - 'GRIF0001', - 'GRIF0001', - 'XNS0T1G3G18B096', - 'v1:B..PLT..', - 9600 + 'FARM0001', + 'KEYB0001', + 'HZP3E100E21D050', + 'v1:L..BDL..', + 50000 ) f + +SELECT * FROM pricequote.target_prices tp WHERE tp.stlc = 'HZP3E100' AND ds = 'v1:T..PLT..' and chan = 'DRP' and tier = '1' and vol @> 1; + diff --git a/procs/single_price_call.ms.sql b/procs/single_price_call.ms.sql index eb472d5..d885ee0 100644 --- a/procs/single_price_call.ms.sql +++ b/procs/single_price_call.ms.sql @@ -466,7 +466,7 @@ BEGIN RTRIM(SUBSTRING(value,1,18)) AS label, TRY_CAST(SUBSTRING(value,23,7) AS NUMERIC(20,5)) + CASE SUBSTRING(value,19,1) WHEN '+' THEN 0 ELSE -1 END AS value, - CASE SUBSTRING(value,19,1) WHEN '+' THEN 'currency' ELSE 'Percentage' END AS type, + CASE SUBSTRING(value,19,1) WHEN '+' THEN 'currency' ELSE 'Percent' END AS type, CASE SUBSTRING(value,19,1) WHEN '+' THEN 'Price' ELSE 'Premium' END AS note FROM OPENJSON(q.expl, '$.target_math') WITH (value NVARCHAR(MAX) '$') @@ -497,5 +497,5 @@ BEGIN -------------------------------------------------------------------------------- -- Final: Return all calculated fields and JSON payloads. -------------------------------------------------------------------------------- - SELECT * FROM @queue; + SELECT guidance_price, ui_json FROM @queue; END; \ No newline at end of file diff --git a/procs/single_price_call.pg.sql b/procs/single_price_call.pg.sql index f08822c..eae412e 100644 --- a/procs/single_price_call.pg.sql +++ b/procs/single_price_call.pg.sql @@ -93,6 +93,8 @@ RETURNS TABLE ( ) AS $$ DECLARE _pltq NUMERIC; + _calculated_pallets INT; + _exact_pallets NUMERIC; _chan TEXT; _tier TEXT; _cust TEXT; @@ -173,8 +175,11 @@ BEGIN i.v1ds, CASE substring(_v1ds,4,1) WHEN 'B' THEN 'B' ELSE 'C' END || CASE substring(_v1ds,6,1) WHEN 'L' THEN 'L' WHEN 'P' THEN 'P' ELSE '' END, i.curstdus, - i.futstdus - INTO _pltq, _chan, _tier, _cust, _plevel, _partgroup, _stlc, _part_v1ds, _v0ds, _curstd_orig, _futstd_orig + i.futstdus, + FLOOR(_vol / NULLIF(_pltq, 0)), + ROUND(_vol / NULLIF(_pltq, 0), 5) + INTO + _pltq, _chan, _tier, _cust, _plevel, _partgroup, _stlc, _part_v1ds, _v0ds, _curstd_orig, _futstd_orig, _calculated_pallets, _exact_pallets FROM rlarp.cust bc LEFT JOIN rlarp.cust sc ON sc.code = _ship LEFT JOIN "CMS.CUSLG".itemm i ON i.item = _part @@ -185,6 +190,9 @@ BEGIN _customized := 'Customized'; END IF; + RAISE NOTICE 'Debug Inputs => stlc: "%", v1ds: "%", chan: "%", tier: "%", pallets: "%" , pltq: "%"', + _stlc, _v1ds, _chan, _tier, _calculated_pallets, _pltq; + ------------------------------------------------------------------ -- Step 2: Target price logic (current and for last_dataseg) ------------------------------------------------------------------ @@ -195,7 +203,10 @@ BEGIN AND tp.ds = _v1ds AND tp.chan = _chan AND tp.tier = _tier - AND FLOOR(_vol / NULLIF(_pltq, 0))::int <@ tp.vol; + AND tp.vol @> _calculated_pallets; + + RAISE NOTICE 'Debug: tprice=%, tmath=%, volume_range=%', + _tprice, _tmath, _volume_range; ------------------------------------------------------------------ -- Step 3: Last sale/quote/volume/segment data