fix: use card's own currency for all card statement transactions

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Ali 2026-03-26 23:17:59 +04:00
parent e975cfbe26
commit 677c1492e7
1 changed files with 4 additions and 2 deletions

View File

@ -1359,7 +1359,9 @@ def get_card_statement_transactions(from_date, to_date, card_account_number, log
if date_diff(getdate(to_date), getdate(from_date)) > 90:
return {"success": False, "message": "Card statement date range cannot exceed 90 days."}
pan = frappe.db.get_value("Kapital Bank Card", card_account_number, "pan") or card_account_number
card_doc = frappe.db.get_value("Kapital Bank Card", card_account_number, ["pan", "currency"], as_dict=True)
pan = (card_doc.pan if card_doc else None) or card_account_number
card_currency = (card_doc.currency if card_doc else None) or "AZN"
# Fetch card statement (date format: YYYY-MM-DD, raw Frappe date)
client = BIRBankClient(login_name)
@ -1401,7 +1403,7 @@ def get_card_statement_transactions(from_date, to_date, card_account_number, log
# Amount and currency
amount = abs(flt(txn.get("amount") or txn.get("originalAmount") or 0))
currency = (txn.get("originalCurrencyStr") or txn.get("currencyStr") or "AZN").strip()
currency = card_currency
# Direction: DEBIT/CREDIT → D/C
direction = (txn.get("direction") or "").upper()