Browse Source

Use CAD payment value for crypto invoice reconciliation

main
def 6 days ago
parent
commit
717f4010a7
  1. 25
      backend/app.py

25
backend/app.py

@ -1006,12 +1006,35 @@ def recalc_invoice_totals(invoice_id):
conn.close() conn.close()
return return
invoice_currency = str(invoice.get("currency_code") or "CAD").upper()
if invoice_currency == "CAD":
cursor.execute(""" cursor.execute("""
SELECT COALESCE(SUM(payment_amount), 0) AS total_paid SELECT COALESCE(SUM(
CASE
WHEN UPPER(COALESCE(payment_currency, '')) = 'CAD'
THEN payment_amount
ELSE COALESCE(cad_value_at_payment, 0)
END
), 0) AS total_paid
FROM payments FROM payments
WHERE invoice_id = %s WHERE invoice_id = %s
AND payment_status = 'confirmed' AND payment_status = 'confirmed'
""", (invoice_id,)) """, (invoice_id,))
else:
cursor.execute("""
SELECT COALESCE(SUM(
CASE
WHEN UPPER(COALESCE(payment_currency, '')) = %s
THEN payment_amount
ELSE 0
END
), 0) AS total_paid
FROM payments
WHERE invoice_id = %s
AND payment_status = 'confirmed'
""", (invoice_currency, invoice_id))
row = cursor.fetchone() row = cursor.fetchone()
total_paid = to_decimal(row["total_paid"]) total_paid = to_decimal(row["total_paid"])

Loading…
Cancel
Save