introduce a new key-value pair in the ui json that indicates level of visibility to various roles
This commit is contained in:
		
							parent
							
								
									2a699e8f83
								
							
						
					
					
						commit
						3675b8541f
					
				| @ -1,12 +1,12 @@ | |||||||
| -- SELECT |  SELECT | ||||||
| -- 	ui_json->'details' |  	ui_json->'details' | ||||||
| -- FROM pricequote.single_price_call( |  FROM pricequote.single_price_call( | ||||||
| --     'FARM0001', |      'FARM0001', | ||||||
| --     'KEYB0001', |      'KEYB0001', | ||||||
| --     'HCA10000B661100', |      'HCA10000B661100', | ||||||
| --     'v1:T..CSE..D', |      'v1:T..CSE..D', | ||||||
| --     50000 |      50000 | ||||||
| -- ) f; |  ) f; | ||||||
| -- | -- | ||||||
| -- SELECT | -- SELECT | ||||||
| -- 	ui_json->'details' | -- 	ui_json->'details' | ||||||
| @ -30,16 +30,16 @@ | |||||||
| -- | -- | ||||||
| -- SELECT * FROM pricequote.lastpricedetail l WHERE customer = 'HYBELS' AND l.partgroup = 'HZP3E100'; | -- SELECT * FROM pricequote.lastpricedetail l WHERE customer = 'HYBELS' AND l.partgroup = 'HZP3E100'; | ||||||
| -- | -- | ||||||
| -- SELECT |  SELECT | ||||||
| -- 	pc.expl |  	pc.expl, pc.hist | ||||||
| -- FROM |  FROM | ||||||
| -- 	pricequote.live_quotes |  	pricequote.live_quotes | ||||||
| -- 	LEFT JOIN LATERAL pricequote.single_price_call( |  	LEFT JOIN LATERAL pricequote.single_price_call( | ||||||
| -- 		billto, shipto, part, v1ds, units_each |  		billto, shipto, part, v1ds, units_each | ||||||
| -- 	) pc ON TRUE |  	) pc ON TRUE | ||||||
| -- WHERE |  WHERE | ||||||
| -- 	qid  = 113173 |  	qid  = 113800 | ||||||
| -- 	AND qrn = 32; |  	AND qrn = 4; | ||||||
| 
 | 
 | ||||||
| create table pricequote.target_prices_base as ( | create table pricequote.target_prices_base as ( | ||||||
| with | with | ||||||
|  | |||||||
| @ -445,11 +445,13 @@ BEGIN | |||||||
| 			( | 			( | ||||||
| 				SELECT | 				SELECT | ||||||
| 					panel.label, | 					panel.label, | ||||||
|  | 					panel.detailLevel, | ||||||
| 					JSON_QUERY(panel.details) AS details | 					JSON_QUERY(panel.details) AS details | ||||||
| 				FROM ( | 				FROM ( | ||||||
| 					-- History Panel | 					-- History Panel | ||||||
| 			        SELECT | 			        SELECT | ||||||
| 			          'History' AS label, | 			          'History' AS label, | ||||||
|  |                       10 as detailLevel, | ||||||
| 			          ( | 			          ( | ||||||
| 			            SELECT | 			            SELECT | ||||||
| 			              ----------------------label------------------------------------------------ | 			              ----------------------label------------------------------------------------ | ||||||
| @ -465,6 +467,8 @@ BEGIN | |||||||
| 			                    END | 			                    END | ||||||
| 			                ELSE 'No Recent' | 			                ELSE 'No Recent' | ||||||
| 			              END                                                     AS label, | 			              END                                                     AS label, | ||||||
|  | 			              ----------------------detail----------------------------------------------- | ||||||
|  |                           10                                                      AS detailLevel, | ||||||
| 			              ----------------------value------------------------------------------------ | 			              ----------------------value------------------------------------------------ | ||||||
| 			              ISNULL(q.last_price, 0)                                 AS value, | 			              ISNULL(q.last_price, 0)                                 AS value, | ||||||
| 			              ----------------------type------------------------------------------------- | 			              ----------------------type------------------------------------------------- | ||||||
| @ -505,25 +509,30 @@ BEGIN | |||||||
| 					-- List Panel | 					-- List Panel | ||||||
| 					SELECT | 					SELECT | ||||||
| 						'List' AS label, | 						'List' AS label, | ||||||
|  |                         10     AS detailLevel, | ||||||
| 						( | 						( | ||||||
| 							SELECT  | 							SELECT  | ||||||
| 								COALESCE('Code: ' + q.listcode,'No List') AS label, | 								COALESCE('Code: ' + q.listcode,'No List') AS label, | ||||||
|  |                                 10                      AS detailLevel, | ||||||
| 								COALESCE(q.listprice,0) AS value, | 								COALESCE(q.listprice,0) AS value, | ||||||
| 								'currency' AS type, | 								'currency' AS type, | ||||||
| 								COALESCE('List Min Qty: ' + format(q.list_from,'#,###'),'') + CASE WHEN q.list_relevance = '' THEN '' ELSE ' (' +  q.list_relevance + ')' END  AS note | 								COALESCE('List Min Qty: ' + format(q.list_from,'#,###'),'') + CASE WHEN q.list_relevance = '' THEN '' ELSE ' (' +  q.list_relevance + ')' END  AS note | ||||||
| 							FOR JSON PATH | 							FOR JSON PATH | ||||||
| 						) | 						) AS details | ||||||
| 	 | 	 | ||||||
| 					UNION ALL | 					UNION ALL | ||||||
| 	 | 	 | ||||||
| 					-- Target Support Panel | 					-- Target Support Panel | ||||||
| 					SELECT | 					SELECT | ||||||
| 						'Target Calculation' AS label, | 						'Target Calculation' AS label, | ||||||
|  |                         10                   AS detailLevel, | ||||||
| 						( | 						( | ||||||
| 							SELECT * FROM ( | 							SELECT * FROM ( | ||||||
| 								SELECT | 								SELECT | ||||||
| 	                              ----------------------label------------------------------------------------ | 	                              ----------------------label------------------------------------------------ | ||||||
| 	                                CASE WHEN value <> '' THEN replace(RTRIM(SUBSTRING(value,1,18)),'Anchor:', '') ELSE 'No Target' END AS label, | 	                                CASE WHEN value <> '' THEN replace(RTRIM(SUBSTRING(value,1,18)),'Anchor:', '') ELSE 'No Target' END AS label, | ||||||
|  | 	                              ----------------------detailLevel------------------------------------------ | ||||||
|  | 	                                10 AS detailLevel, | ||||||
| 	                              ----------------------value------------------------------------------------ | 	                              ----------------------value------------------------------------------------ | ||||||
| 									CASE WHEN value <> '' THEN  | 									CASE WHEN value <> '' THEN  | ||||||
| 	                                    TRY_CAST(SUBSTRING(value,23,7) AS NUMERIC(20,5))  | 	                                    TRY_CAST(SUBSTRING(value,23,7) AS NUMERIC(20,5))  | ||||||
| @ -548,6 +557,8 @@ BEGIN | |||||||
| 								SELECT | 								SELECT | ||||||
| 	                              ----------------------label------------------------------------------------ | 	                              ----------------------label------------------------------------------------ | ||||||
| 	                                'Target'      		AS label, | 	                                'Target'      		AS label, | ||||||
|  | 	                              ----------------------detailLevel------------------------------------------ | ||||||
|  | 	                                10            		AS detailLevel, | ||||||
| 	                              ----------------------value------------------------------------------------ | 	                              ----------------------value------------------------------------------------ | ||||||
| 									tprice              AS value, | 									tprice              AS value, | ||||||
| 	                              ----------------------type------------------------------------------------- | 	                              ----------------------type------------------------------------------------- | ||||||
| @ -564,9 +575,11 @@ BEGIN | |||||||
| 					-- Guidance Panel | 					-- Guidance Panel | ||||||
| 					SELECT | 					SELECT | ||||||
| 						'Guidance' AS label, | 						'Guidance' AS label, | ||||||
|  |                         10         AS detailLevel, | ||||||
| 						( | 						( | ||||||
| 							SELECT  | 							SELECT  | ||||||
| 								'Price' AS label, | 								'Price' AS label, | ||||||
|  |                                 10      AS detailLevel, | ||||||
| 								COALESCE(q.guidance_price,0) AS value, | 								COALESCE(q.guidance_price,0) AS value, | ||||||
| 								'currency' AS type, | 								'currency' AS type, | ||||||
| 								q.guidance_reason AS note | 								q.guidance_reason AS note | ||||||
|  | |||||||
| @ -447,9 +447,11 @@ BEGIN | |||||||
|             ------------------------------------------ |             ------------------------------------------ | ||||||
|             jsonb_build_object( |             jsonb_build_object( | ||||||
|                 'label', 'History', |                 'label', 'History', | ||||||
|  | 				10, 'detailLevel', | ||||||
|                 'details', jsonb_build_array( |                 'details', jsonb_build_array( | ||||||
|                     jsonb_build_object( |                     jsonb_build_object( | ||||||
|                         'label', CASE WHEN _last_price IS NOT NULL THEN 'Last Sale: ' || _last_date ELSE 'No Recent' END, |                         'label', CASE WHEN _last_price IS NOT NULL THEN 'Last Sale: ' || _last_date ELSE 'No Recent' END, | ||||||
|  | 						'detailLevel', 10, | ||||||
|                         'value', COALESCE(_last_price,0), |                         'value', COALESCE(_last_price,0), | ||||||
|                         'type', 'currency', |                         'type', 'currency', | ||||||
|                         'note', CASE WHEN _last_price IS NOT NULL THEN  |                         'note', CASE WHEN _last_price IS NOT NULL THEN  | ||||||
| @ -467,6 +469,7 @@ BEGIN | |||||||
|                 ||CASE WHEN COALESCE(_last_premium,1) <> 1 THEN  |                 ||CASE WHEN COALESCE(_last_premium,1) <> 1 THEN  | ||||||
|                     COALESCE(jsonb_build_array(jsonb_build_object( |                     COALESCE(jsonb_build_array(jsonb_build_object( | ||||||
|                         'label','Price Difference', |                         'label','Price Difference', | ||||||
|  |                         'detailLevel',10, | ||||||
|                         'value', _last_premium, |                         'value', _last_premium, | ||||||
|                         'type','percent', |                         'type','percent', | ||||||
|                         'note', _last_premium_method |                         'note', _last_premium_method | ||||||
| @ -477,6 +480,7 @@ BEGIN | |||||||
|                 ||CASE WHEN COALESCE(_last_premium,1) <> 1 THEN  |                 ||CASE WHEN COALESCE(_last_premium,1) <> 1 THEN  | ||||||
|                     COALESCE(jsonb_build_array(jsonb_build_object( |                     COALESCE(jsonb_build_array(jsonb_build_object( | ||||||
|                         'label','Adjusted Price', |                         'label','Adjusted Price', | ||||||
|  |                         'detailLevel',10, | ||||||
|                         'value', _last_price_norm, |                         'value', _last_price_norm, | ||||||
|                         'type','currency', |                         'type','currency', | ||||||
|                         'note','normalized to ' || _v1ds |                         'note','normalized to ' || _v1ds | ||||||
| @ -490,9 +494,11 @@ BEGIN | |||||||
|             ------------------------------------------ |             ------------------------------------------ | ||||||
|             jsonb_build_object( |             jsonb_build_object( | ||||||
|                 'label', 'List', |                 'label', 'List', | ||||||
|  |                 'detailLevel',10, | ||||||
|                 'details', jsonb_build_array( |                 'details', jsonb_build_array( | ||||||
|                     jsonb_build_object( |                     jsonb_build_object( | ||||||
|                         'label', 'List:' || COALESCE(_list_code, ''), |                         'label', 'List:' || COALESCE(_list_code, ''), | ||||||
|  |                         'detailLevel',10, | ||||||
|                         'value', _list_price, |                         'value', _list_price, | ||||||
|                         'type', 'currency', |                         'type', 'currency', | ||||||
|                         'note', _list_relevance |                         'note', _list_relevance | ||||||
| @ -504,6 +510,7 @@ BEGIN | |||||||
|             ------------------------------------------ |             ------------------------------------------ | ||||||
|             jsonb_build_object( |             jsonb_build_object( | ||||||
|                 'label', 'Target Calculation', |                 'label', 'Target Calculation', | ||||||
|  |                 'detailLevel',10, | ||||||
|                 'details',  |                 'details',  | ||||||
|                 -- jsonb_build_array( |                 -- jsonb_build_array( | ||||||
|                     ( |                     ( | ||||||
| @ -512,6 +519,8 @@ BEGIN | |||||||
|                             jsonb_build_object( |                             jsonb_build_object( | ||||||
|                                 ----------------------label------------------------------------------------ |                                 ----------------------label------------------------------------------------ | ||||||
|                                 'label',CASE WHEN value <> '' THEN RTRIM(SUBSTRING(value,1,18)) ELSE 'No Target' END, |                                 'label',CASE WHEN value <> '' THEN RTRIM(SUBSTRING(value,1,18)) ELSE 'No Target' END, | ||||||
|  |                                 ----------------------detailLevel------------------------------------------ | ||||||
|  |                                 'detailLevel',10, | ||||||
|                                 ----------------------value------------------------------------------------ |                                 ----------------------value------------------------------------------------ | ||||||
|                                 'value',CASE WHEN value <> '' THEN  |                                 'value',CASE WHEN value <> '' THEN  | ||||||
|                                             SUBSTRING(value,23,7)::NUMERIC(20,5) +  |                                             SUBSTRING(value,23,7)::NUMERIC(20,5) +  | ||||||
| @ -545,9 +554,11 @@ BEGIN | |||||||
|             ------------------------------------------ |             ------------------------------------------ | ||||||
|             jsonb_build_object( |             jsonb_build_object( | ||||||
|                 'label', 'Guidance', |                 'label', 'Guidance', | ||||||
|  |                 'detailLevel',10, | ||||||
|                 'details', jsonb_build_array( |                 'details', jsonb_build_array( | ||||||
|                     jsonb_build_object( |                     jsonb_build_object( | ||||||
|                         'label', 'Price', |                         'label', 'Price', | ||||||
|  |                         'detailLevel',10, | ||||||
|                         'value', COALESCE(_guidance_price,0), |                         'value', COALESCE(_guidance_price,0), | ||||||
|                         'type', 'currency', |                         'type', 'currency', | ||||||
|                         'note', COALESCE(_guidance_reason,'') |                         'note', COALESCE(_guidance_reason,'') | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user