From 96f4a36724c21868d060ad501e6cae349196c436 Mon Sep 17 00:00:00 2001 From: Christian Date: Thu, 11 Jun 2026 09:45:11 +0200 Subject: [PATCH] Handle missing supplier_invoices.sag_id in supplier invoice listing --- app/billing/backend/supplier_invoices.py | 27 +++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/app/billing/backend/supplier_invoices.py b/app/billing/backend/supplier_invoices.py index aa76d79..6fe80f3 100644 --- a/app/billing/backend/supplier_invoices.py +++ b/app/billing/backend/supplier_invoices.py @@ -9,7 +9,7 @@ from typing import List, Dict, Optional from datetime import datetime, date, timedelta from decimal import Decimal from pathlib import Path -from app.core.database import execute_query, execute_insert, execute_update, execute_query_single +from app.core.database import execute_query, execute_insert, execute_update, execute_query_single, table_has_column from app.core.config import settings from app.services.economic_service import get_economic_service from app.services.ollama_service import ollama_service @@ -710,8 +710,29 @@ async def list_supplier_invoices( params.append(vendor_id) if sag_id: - query += " AND si.sag_id = %s" - params.append(sag_id) + if table_has_column("supplier_invoices", "sag_id"): + query += " AND si.sag_id = %s" + params.append(sag_id) + elif ( + table_has_column("supplier_invoice_relations", "supplier_invoice_id") + and table_has_column("supplier_invoice_relations", "relation_type") + and table_has_column("supplier_invoice_relations", "relation_id") + ): + query += """ + AND EXISTS ( + SELECT 1 + FROM supplier_invoice_relations sir + WHERE sir.supplier_invoice_id = si.id + AND sir.relation_type = 'sag' + AND sir.relation_id = %s + ) + """ + params.append(sag_id) + else: + logger.warning( + "⚠️ supplier invoice sag filter requested, but no schema link available (sag_id column/relation table missing)" + ) + query += " AND 1 = 0" if overdue_only: query += " AND si.due_date < CURRENT_DATE AND si.paid_date IS NULL"