refactor: validate_return_against_account (#43778)

This commit is contained in:
Raffael Meyer
2024-10-22 13:44:28 +02:00
committed by GitHub
parent cfe1c8fd6a
commit c4faa0e101

View File

@@ -395,12 +395,17 @@ class AccountsController(TransactionBase):
def validate_return_against_account(self):
if self.doctype in ["Sales Invoice", "Purchase Invoice"] and self.is_return and self.return_against:
cr_dr_account_field = "debit_to" if self.doctype == "Sales Invoice" else "credit_to"
cr_dr_account_label = "Debit To" if self.doctype == "Sales Invoice" else "Credit To"
cr_dr_account_label = self.meta.get_label(cr_dr_account_field)
cr_dr_account = self.get(cr_dr_account_field)
if frappe.get_value(self.doctype, self.return_against, cr_dr_account_field) != cr_dr_account:
original_account = frappe.get_value(self.doctype, self.return_against, cr_dr_account_field)
if original_account != cr_dr_account:
frappe.throw(
_("'{0}' account: '{1}' should match the Return Against Invoice").format(
frappe.bold(cr_dr_account_label), frappe.bold(cr_dr_account)
_(
"Please set {0} to {1}, the same account that was used in the original invoice {2}."
).format(
frappe.bold(_(cr_dr_account_label, context=self.doctype)),
frappe.bold(cr_dr_account),
frappe.bold(self.return_against),
)
)