fix: multi currency bank reco issue
This commit is contained in:
parent
06c7a7e660
commit
6d0c6a17d9
@ -45,7 +45,7 @@ class BankTransaction(StatusUpdater):
|
|||||||
def clear_linked_payment_entries(self):
|
def clear_linked_payment_entries(self):
|
||||||
for payment_entry in self.payment_entries:
|
for payment_entry in self.payment_entries:
|
||||||
allocated_amount = get_total_allocated_amount(payment_entry)
|
allocated_amount = get_total_allocated_amount(payment_entry)
|
||||||
paid_amount = get_paid_amount(payment_entry)
|
paid_amount = get_paid_amount(payment_entry, self.currency)
|
||||||
|
|
||||||
if paid_amount and allocated_amount:
|
if paid_amount and allocated_amount:
|
||||||
if flt(allocated_amount[0]["allocated_amount"]) > flt(paid_amount):
|
if flt(allocated_amount[0]["allocated_amount"]) > flt(paid_amount):
|
||||||
@ -80,9 +80,17 @@ def get_total_allocated_amount(payment_entry):
|
|||||||
AND
|
AND
|
||||||
bt.docstatus = 1""", (payment_entry.payment_document, payment_entry.payment_entry), as_dict=True)
|
bt.docstatus = 1""", (payment_entry.payment_document, payment_entry.payment_entry), as_dict=True)
|
||||||
|
|
||||||
def get_paid_amount(payment_entry):
|
def get_paid_amount(payment_entry, currency):
|
||||||
if payment_entry.payment_document in ["Payment Entry", "Sales Invoice", "Purchase Invoice"]:
|
if payment_entry.payment_document in ["Payment Entry", "Sales Invoice", "Purchase Invoice"]:
|
||||||
return frappe.db.get_value(payment_entry.payment_document, payment_entry.payment_entry, "paid_amount")
|
|
||||||
|
paid_amount_field = "paid_amount"
|
||||||
|
if payment_entry.payment_document == 'Payment Entry':
|
||||||
|
doc = frappe.get_doc("Payment Entry", payment_entry.payment_entry)
|
||||||
|
paid_amount_field = ("base_paid_amount"
|
||||||
|
if doc.paid_to_account_currency == currency else "paid_amount")
|
||||||
|
|
||||||
|
return frappe.db.get_value(payment_entry.payment_document,
|
||||||
|
payment_entry.payment_entry, paid_amount_field)
|
||||||
|
|
||||||
elif payment_entry.payment_document == "Journal Entry":
|
elif payment_entry.payment_document == "Journal Entry":
|
||||||
return frappe.db.get_value(payment_entry.payment_document, payment_entry.payment_entry, "total_credit")
|
return frappe.db.get_value(payment_entry.payment_document, payment_entry.payment_entry, "total_credit")
|
||||||
|
@ -124,8 +124,6 @@ def check_matching_amount(bank_account, company, transaction):
|
|||||||
'txt': '%%%s%%' % amount
|
'txt': '%%%s%%' % amount
|
||||||
}, as_dict=True)
|
}, as_dict=True)
|
||||||
|
|
||||||
frappe.errprint(journal_entries)
|
|
||||||
|
|
||||||
if transaction.credit > 0:
|
if transaction.credit > 0:
|
||||||
sales_invoices = frappe.db.sql("""
|
sales_invoices = frappe.db.sql("""
|
||||||
SELECT
|
SELECT
|
||||||
|
Loading…
x
Reference in New Issue
Block a user