combine panels

This commit is contained in:
Paul Trowbridge 2025-08-11 20:47:08 -04:00
parent 3f56f04f8b
commit a649924c86
2 changed files with 66 additions and 75 deletions

View File

@ -499,45 +499,38 @@ BEGIN
SELECT SELECT
'Target Calculation' AS label, 'Target Calculation' AS label,
( (
SELECT SELECT * FROM (
----------------------label------------------------------------------------ SELECT
CASE WHEN value <> '' THEN RTRIM(SUBSTRING(value,1,18)) ELSE 'No Target' END AS label, ----------------------label------------------------------------------------
----------------------value------------------------------------------------ CASE WHEN value <> '' THEN RTRIM(SUBSTRING(value,1,18)) ELSE 'No Target' END AS label,
CASE WHEN value <> '' THEN ----------------------value------------------------------------------------
TRY_CAST(SUBSTRING(value,23,7) AS NUMERIC(20,5)) CASE WHEN value <> '' THEN
+ CASE SUBSTRING(value,19,1) WHEN '+' THEN 0 ELSE -1 END TRY_CAST(SUBSTRING(value,23,7) AS NUMERIC(20,5))
ELSE 0 END AS value, + CASE SUBSTRING(value,19,1) WHEN '+' THEN 0 ELSE -1 END
----------------------type------------------------------------------------- ELSE 0 END AS value,
CASE WHEN value <> '' THEN ----------------------type-------------------------------------------------
CASE SUBSTRING(value,19,1) WHEN '+' THEN 'currency' ELSE 'Percent' END CASE WHEN value <> '' THEN
ELSE '' END AS type, CASE SUBSTRING(value,19,1) WHEN '+' THEN 'currency' ELSE 'Percent' END
----------------------note------------------------------------------------- ELSE '' END AS type,
CASE WHEN value <> '' THEN ----------------------note-------------------------------------------------
CASE SUBSTRING(value,19,1) WHEN '+' THEN 'Price' ELSE 'Premium' END CASE WHEN value <> '' THEN
ELSE '' END AS note CASE SUBSTRING(value,19,1) WHEN '+' THEN 'Price' ELSE 'Premium' END
FROM @queue q ELSE '' END AS note
OUTER APPLY OPENJSON(q.expl, '$.target_math') FROM @queue q
WITH (value NVARCHAR(MAX) '$') OUTER APPLY OPENJSON(q.expl, '$.target_math')
FOR JSON PATH WITH (value NVARCHAR(MAX) '$')
) AS details UNION ALL
SELECT
----------------------label------------------------------------------------
UNION ALL 'Price' AS label,
----------------------value------------------------------------------------
-- Target Price tprice AS value,
SELECT ----------------------type-------------------------------------------------
'Target Total' AS label, 'currency' AS type,
( ----------------------note-------------------------------------------------
SELECT 'Total' AS note
----------------------label------------------------------------------------ FROM @queue q
'Price' AS label, ) x
----------------------value------------------------------------------------
tprice AS value,
----------------------type-------------------------------------------------
'currency' AS type,
----------------------note-------------------------------------------------
'' AS note
FROM @queue q
FOR JSON PATH FOR JSON PATH
) AS details ) AS details

View File

@ -485,42 +485,40 @@ BEGIN
jsonb_build_object( jsonb_build_object(
'label', 'Target Calculation', 'label', 'Target Calculation',
'details', 'details',
( -- jsonb_build_array(
SELECT (
jsonb_agg( SELECT
jsonb_build_object( jsonb_agg(
----------------------label------------------------------------------------ jsonb_build_object(
'label',CASE WHEN value <> '' THEN RTRIM(SUBSTRING(value,1,18)) ELSE 'No Target' END, ----------------------label------------------------------------------------
----------------------value------------------------------------------------ 'label',CASE WHEN value <> '' THEN RTRIM(SUBSTRING(value,1,18)) ELSE 'No Target' END,
'value',CASE WHEN value <> '' THEN ----------------------value------------------------------------------------
SUBSTRING(value,23,7)::NUMERIC(20,5) + 'value',CASE WHEN value <> '' THEN
CASE SUBSTRING(value,19,1) WHEN '+' THEN 0 ELSE -1 END SUBSTRING(value,23,7)::NUMERIC(20,5) +
ELSE CASE SUBSTRING(value,19,1) WHEN '+' THEN 0 ELSE -1 END
0 ELSE
END, 0
----------------------type------------------------------------------------- END,
'type', CASE WHEN value <> '' THEN ----------------------type-------------------------------------------------
CASE SUBSTRING(value,19,1) 'type', CASE WHEN value <> '' THEN
WHEN '+' THEN 'currency' CASE SUBSTRING(value,19,1)
ELSE 'Percent' WHEN '+' THEN 'currency'
END ELSE 'Percent'
ELSE '' END, END
----------------------note------------------------------------------------- ELSE '' END,
'note',CASE WHEN value <> '' THEN ----------------------note-------------------------------------------------
CASE SUBSTRING(value,19,1) 'note',CASE WHEN value <> '' THEN
WHEN '+' THEN 'Price' CASE SUBSTRING(value,19,1)
ELSE 'Premium' WHEN '+' THEN 'Price'
END ELSE 'Premium'
ELSE '' END END
) ELSE '' END
) )
FROM jsonb_array_elements_text(COALESCE(_tmath,'{}'::jsonb)) ae )
) FROM jsonb_array_elements_text(COALESCE(_tmath,'{}'::jsonb)) ae
), )
jsonb_build_object( ||jsonb_build_object('label','Price','value',_tprice,'type','currency','note','Total')
'label', 'Target Total', -- )
'details',
jsonb_build_object('label','Price','value',_tprice,'type','currency','note','')
), ),
------------------------------------------ ------------------------------------------
-- history -- history