diff --git a/reports-app/backend/app/services/treasury_service.py b/reports-app/backend/app/services/treasury_service.py index 9840f1b..9f46cc9 100644 --- a/reports-app/backend/app/services/treasury_service.py +++ b/reports-app/backend/app/services/treasury_service.py @@ -257,6 +257,11 @@ class TreasuryService: # sold_precedent = suma sold pentru rânduri cu dataact IS NULL # total_incasari = suma incasari pentru rânduri cu dataact IS NOT NULL # total_plati = suma plati pentru rânduri cu dataact IS NOT NULL + # Notă: where_clause poate fi gol sau poate conține "WHERE ..." + # Dacă e gol, adăugăm WHERE; dacă nu, adăugăm AND + dataact_null_cond = " AND dataact IS NULL" if where_clause else " WHERE dataact IS NULL" + dataact_not_null_cond = " AND dataact IS NOT NULL" if where_clause else " WHERE dataact IS NOT NULL" + totals_plsql = f""" DECLARE v_an NUMBER; @@ -270,18 +275,15 @@ class TreasuryService: -- Sold precedent: suma sold pentru rânduri fără dată (opening balance) SELECT NVL(SUM(sold), 0) INTO :sold_precedent_all - FROM ({base_select}) sub{where_clause} - WHERE dataact IS NULL; + FROM ({base_select}) sub{where_clause}{dataact_null_cond}; -- Total încasări: suma incasari pentru rânduri cu dată (transactions) SELECT NVL(SUM(incasari), 0) INTO :total_incasari_all - FROM ({base_select}) sub{where_clause} - WHERE dataact IS NOT NULL; + FROM ({base_select}) sub{where_clause}{dataact_not_null_cond}; -- Total plăți: suma plati pentru rânduri cu dată (transactions) SELECT NVL(SUM(plati), 0) INTO :total_plati_all - FROM ({base_select}) sub{where_clause} - WHERE dataact IS NOT NULL; + FROM ({base_select}) sub{where_clause}{dataact_not_null_cond}; END; """