diff --git a/api/alembic/versions/sql/0002_functions.sql b/api/alembic/versions/sql/0002_functions.sql index c8c2011..0670ae1 100644 --- a/api/alembic/versions/sql/0002_functions.sql +++ b/api/alembic/versions/sql/0002_functions.sql @@ -3244,7 +3244,7 @@ BEGIN LEFT JOIN collegial_approval ca ON ca.line_id = bl.id AND s_ca LEFT JOIN ckk ck ON ck.line_id = bl.id AND (s_ckk OR s_need_bk) LEFT JOIN contract_detail cd ON cd.line_id = bl.id AND (s_cd OR s_need_bk) - WHERE bl.budget_form_id = p_form_id AND ei.sheet = p_sheet + WHERE bl.budget_form_id = p_form_id AND ei.sheet = p_sheet AND (p_direction is null OR bl.direction is null or bl.direction = p_direction) AND (s_need_ap OR s_cs OR s_ca OR s_ckk OR s_cd OR s_need_bk) GROUP BY bl.expense_item_id ), @@ -3257,7 +3257,7 @@ BEGIN SUM(blq.transfer_to_q2) AS tq2, SUM(blq.transfer_to_q3) AS tq3, SUM(blq.transfer_to_q4) AS tq4 FROM budget_line bl JOIN expense_item ei ON ei.id = bl.expense_item_id LEFT JOIN budget_line_quarter blq ON blq.line_id = bl.id AND blq.quarter = 1 - WHERE bl.budget_form_id = p_form_id AND ei.sheet = p_sheet AND s_q1 + WHERE bl.budget_form_id = p_form_id AND ei.sheet = p_sheet AND s_q1 AND (p_direction is null OR bl.direction is null or bl.direction = p_direction) GROUP BY bl.expense_item_id ), aq2 AS ( @@ -3270,7 +3270,7 @@ BEGIN SUM(blq.transfer_to_q3) AS tq3, SUM(blq.transfer_to_q4) AS tq4 FROM budget_line bl JOIN expense_item ei ON ei.id = bl.expense_item_id LEFT JOIN budget_line_quarter blq ON blq.line_id = bl.id AND blq.quarter = 2 - WHERE bl.budget_form_id = p_form_id AND ei.sheet = p_sheet AND s_q2 + WHERE bl.budget_form_id = p_form_id AND ei.sheet = p_sheet AND s_q2 AND (p_direction is null OR bl.direction is null or bl.direction = p_direction) GROUP BY bl.expense_item_id ), aq3 AS ( @@ -3283,7 +3283,7 @@ BEGIN SUM(blq.transfer_to_q4) AS tq4 FROM budget_line bl JOIN expense_item ei ON ei.id = bl.expense_item_id LEFT JOIN budget_line_quarter blq ON blq.line_id = bl.id AND blq.quarter = 3 - WHERE bl.budget_form_id = p_form_id AND ei.sheet = p_sheet AND s_q3 + WHERE bl.budget_form_id = p_form_id AND ei.sheet = p_sheet AND s_q3 AND (p_direction is null OR bl.direction is null or bl.direction = p_direction) GROUP BY bl.expense_item_id ), aq4 AS ( @@ -3296,7 +3296,7 @@ BEGIN SUM(blq.actual_spod) AS spod FROM budget_line bl JOIN expense_item ei ON ei.id = bl.expense_item_id LEFT JOIN budget_line_quarter blq ON blq.line_id = bl.id AND blq.quarter = 4 - WHERE bl.budget_form_id = p_form_id AND ei.sheet = p_sheet AND (s_q4 OR s_tot) + WHERE bl.budget_form_id = p_form_id AND ei.sheet = p_sheet AND (s_q4 OR s_tot) AND (p_direction is null OR bl.direction is null or bl.direction = p_direction) GROUP BY bl.expense_item_id ), atot AS ( @@ -3308,7 +3308,7 @@ BEGIN SUM(blq.payment_amount) AS pay FROM budget_line bl JOIN expense_item ei ON ei.id = bl.expense_item_id LEFT JOIN budget_line_quarter blq ON blq.line_id = bl.id - WHERE bl.budget_form_id = p_form_id AND ei.sheet = p_sheet AND s_tot + WHERE bl.budget_form_id = p_form_id AND ei.sheet = p_sheet AND s_tot AND (p_direction is null OR bl.direction is null or bl.direction = p_direction) GROUP BY bl.expense_item_id ), -- ═══ Pre-computed per-node aggregates (one pass over tw × agg) ═════════ @@ -4427,7 +4427,7 @@ BEGIN LEFT JOIN v3.sequestration sg ON sg.line_id = bl.id AND sg.actor='SSP_GO' AND s_need_ap LEFT JOIN v3.reserve r ON r.line_id = bl.id AND s_need_ap LEFT JOIN v3.ckk ck ON ck.line_id = bl.id AND s_book - WHERE bl.budget_form_id = p_form_id AND ei.sheet = p_sheet + WHERE bl.budget_form_id = p_form_id AND ei.sheet = p_sheet and (p_direction is null OR bl.direction is null or bl.direction = p_direction) AND (s_need_ap OR s_book) GROUP BY bl.expense_item_id ), @@ -4453,7 +4453,7 @@ BEGIN FROM v3.budget_line bl JOIN v3.expense_item ei ON ei.id = bl.expense_item_id JOIN v3.budget_line_quarter q ON q.line_id = bl.id - WHERE bl.budget_form_id = p_form_id AND ei.sheet = p_sheet + WHERE bl.budget_form_id = p_form_id AND ei.sheet = p_sheet and (p_direction is null OR bl.direction is null or bl.direction = p_direction) GROUP BY bl.expense_item_id, q.quarter ), -- Tree-rollup