Handle missing supplier_invoices.sag_id in supplier invoice listing
This commit is contained in:
parent
1e84ba267c
commit
96f4a36724
@ -9,7 +9,7 @@ from typing import List, Dict, Optional
|
|||||||
from datetime import datetime, date, timedelta
|
from datetime import datetime, date, timedelta
|
||||||
from decimal import Decimal
|
from decimal import Decimal
|
||||||
from pathlib import Path
|
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.core.config import settings
|
||||||
from app.services.economic_service import get_economic_service
|
from app.services.economic_service import get_economic_service
|
||||||
from app.services.ollama_service import ollama_service
|
from app.services.ollama_service import ollama_service
|
||||||
@ -710,8 +710,29 @@ async def list_supplier_invoices(
|
|||||||
params.append(vendor_id)
|
params.append(vendor_id)
|
||||||
|
|
||||||
if sag_id:
|
if sag_id:
|
||||||
query += " AND si.sag_id = %s"
|
if table_has_column("supplier_invoices", "sag_id"):
|
||||||
params.append(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:
|
if overdue_only:
|
||||||
query += " AND si.due_date < CURRENT_DATE AND si.paid_date IS NULL"
|
query += " AND si.due_date < CURRENT_DATE AND si.paid_date IS NULL"
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user