From 36f52134cea29ff6866039231ede7fb332d34d61 Mon Sep 17 00:00:00 2001 From: Paul Trowbridge Date: Fri, 3 Oct 2025 16:35:17 -0400 Subject: [PATCH] move guidance to top --- procs/single_price_call.ms.sql | 129 ++++++++++++++++----------------- 1 file changed, 63 insertions(+), 66 deletions(-) diff --git a/procs/single_price_call.ms.sql b/procs/single_price_call.ms.sql index 4f70a83..ff28118 100644 --- a/procs/single_price_call.ms.sql +++ b/procs/single_price_call.ms.sql @@ -471,6 +471,69 @@ BEGIN panel.detailLevel, JSON_QUERY(panel.details) AS details FROM ( + -- Target Support Panel + SELECT + 'Target Calculation' AS label, + 5 AS detailLevel, + ( + SELECT * FROM ( + SELECT + ----------------------label------------------------------------------------ + CASE WHEN value <> '' THEN replace(RTRIM(SUBSTRING(value,1,18)),'Anchor:', '') ELSE 'No Target' END AS label, + ----------------------detailLevel------------------------------------------ + 10 AS detailLevel, + ----------------------value------------------------------------------------ + CASE WHEN value <> '' THEN + TRY_CAST(SUBSTRING(value,23,7) AS NUMERIC(20,5)) + + CASE SUBSTRING(value,19,1) WHEN '+' THEN 0 ELSE -1 END + ELSE 0 END AS value, + ----------------------type------------------------------------------------- + CASE WHEN value <> '' THEN + CASE SUBSTRING(value,19,1) WHEN '+' THEN 'currency' ELSE 'Percent' END + ELSE '' END AS type, + ----------------------note------------------------------------------------- + CASE WHEN value <> '' THEN + CASE WHEN CHARINDEX('Anchor',value) <> 0 THEN + 'Base Floor' + ELSE + CASE SUBSTRING(value,19,1) WHEN '+' THEN 'Price' ELSE 'Premium' END + END + ELSE '' END AS note + FROM @queue q + OUTER APPLY OPENJSON(q.expl, '$.target_math') + WITH (value NVARCHAR(MAX) '$') + UNION ALL + SELECT + ----------------------label------------------------------------------------ + 'Target' AS label, + ----------------------detailLevel------------------------------------------ + 5 AS detailLevel, + ----------------------value------------------------------------------------ + tprice AS value, + ----------------------type------------------------------------------------- + 'currency' AS type, + ----------------------note------------------------------------------------- + 'Total' AS note + FROM @queue q + ) x + FOR JSON PATH + ) AS details + + UNION ALL + + -- Guidance Panel + SELECT + 'Guidance' AS label, + 1 AS detailLevel, + ( + SELECT + 'Price' AS label, + 1 AS detailLevel, + COALESCE(q.guidance_price,0) AS value, + 'currency' AS type, + q.guidance_reason AS note + FOR JSON PATH + ) -- Cost SELECT 'Cost' AS label, @@ -557,72 +620,6 @@ BEGIN COALESCE('List Min Qty: ' + format(q.list_from,'#,###'),'') + CASE WHEN q.list_relevance = '' THEN '' ELSE ' (' + q.list_relevance + ')' END AS note FOR JSON PATH ) AS details - - UNION ALL - - -- Target Support Panel - SELECT - 'Target Calculation' AS label, - 5 AS detailLevel, - ( - SELECT * FROM ( - SELECT - ----------------------label------------------------------------------------ - CASE WHEN value <> '' THEN replace(RTRIM(SUBSTRING(value,1,18)),'Anchor:', '') ELSE 'No Target' END AS label, - ----------------------detailLevel------------------------------------------ - 10 AS detailLevel, - ----------------------value------------------------------------------------ - CASE WHEN value <> '' THEN - TRY_CAST(SUBSTRING(value,23,7) AS NUMERIC(20,5)) - + CASE SUBSTRING(value,19,1) WHEN '+' THEN 0 ELSE -1 END - ELSE 0 END AS value, - ----------------------type------------------------------------------------- - CASE WHEN value <> '' THEN - CASE SUBSTRING(value,19,1) WHEN '+' THEN 'currency' ELSE 'Percent' END - ELSE '' END AS type, - ----------------------note------------------------------------------------- - CASE WHEN value <> '' THEN - CASE WHEN CHARINDEX('Anchor',value) <> 0 THEN - 'Base Floor' - ELSE - CASE SUBSTRING(value,19,1) WHEN '+' THEN 'Price' ELSE 'Premium' END - END - ELSE '' END AS note - FROM @queue q - OUTER APPLY OPENJSON(q.expl, '$.target_math') - WITH (value NVARCHAR(MAX) '$') - UNION ALL - SELECT - ----------------------label------------------------------------------------ - 'Target' AS label, - ----------------------detailLevel------------------------------------------ - 5 AS detailLevel, - ----------------------value------------------------------------------------ - tprice AS value, - ----------------------type------------------------------------------------- - 'currency' AS type, - ----------------------note------------------------------------------------- - 'Total' AS note - FROM @queue q - ) x - FOR JSON PATH - ) AS details - - UNION ALL - - -- Guidance Panel - SELECT - 'Guidance' AS label, - 1 AS detailLevel, - ( - SELECT - 'Price' AS label, - 1 AS detailLevel, - COALESCE(q.guidance_price,0) AS value, - 'currency' AS type, - q.guidance_reason AS note - FOR JSON PATH - ) ) AS panel FOR JSON PATH ) AS details,