mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-26 18:42:49 +00:00
refactor(reports): label revenue categories from a key column
CATEGORY_LABEL_EXPR wraps the classifying CASE, so it only works where the classification happens in the same SELECT. A report that classifies in a subquery and labels in the wrapper has a plain key column to label instead. CATEGORY_LABEL_OF takes that key expression; CATEGORY_LABEL_EXPR is now defined through it, so its three existing callers are unchanged. Mirrors CATEGORY_LABEL_OF in operations-classification.ts. Claude-Session: https://claude.ai/code/session_01LoY3hNWqcaAC1pYmGPN7jr
This commit is contained in:
@@ -139,8 +139,15 @@ const labelCase = (expr: string, options: ReportFilterOption[]): string =>
|
||||
.map((o) => `WHEN '${o.value}' THEN '${o.label.replace(/'/g, "''")}'`)
|
||||
.join('\n ')}\nEND`;
|
||||
|
||||
/**
|
||||
* The same labelling applied to a key that is already a column — for reports
|
||||
* that classify in a subquery and label in the wrapper.
|
||||
*/
|
||||
export const CATEGORY_LABEL_OF = (keyExpr: string): string =>
|
||||
labelCase(keyExpr, REVENUE_CATEGORIES);
|
||||
|
||||
/** The category as a business label rather than its key, for display columns. */
|
||||
export const CATEGORY_LABEL_EXPR = labelCase(REVENUE_CATEGORY_EXPR, REVENUE_CATEGORIES);
|
||||
export const CATEGORY_LABEL_EXPR = CATEGORY_LABEL_OF(REVENUE_CATEGORY_EXPR);
|
||||
|
||||
/**
|
||||
* Period-over-period change, as a percentage.
|
||||
|
||||
Reference in New Issue
Block a user