fix: cancel common party advance jv while canceling the invoice
(cherry picked from commit 6a928b92df)
This commit is contained in:
@@ -739,6 +739,46 @@ def cancel_exchange_gain_loss_journal(
|
|||||||
gain_loss_je.cancel()
|
gain_loss_je.cancel()
|
||||||
|
|
||||||
|
|
||||||
|
def cancel_common_party_journal(self):
|
||||||
|
if self.doctype not in ["Sales Invoice", "Purchase Invoice"]:
|
||||||
|
return
|
||||||
|
|
||||||
|
if not frappe.db.get_single_value("Accounts Settings", "enable_common_party_accounting"):
|
||||||
|
return
|
||||||
|
|
||||||
|
party_link = self.get_common_party_link()
|
||||||
|
if not party_link:
|
||||||
|
return
|
||||||
|
|
||||||
|
journal_entry = frappe.db.get_value(
|
||||||
|
"Journal Entry Account",
|
||||||
|
filters={
|
||||||
|
"reference_type": self.doctype,
|
||||||
|
"reference_name": self.name,
|
||||||
|
"docstatus": 1,
|
||||||
|
},
|
||||||
|
fieldname="parent",
|
||||||
|
)
|
||||||
|
|
||||||
|
if not journal_entry:
|
||||||
|
return
|
||||||
|
|
||||||
|
common_party_journal = frappe.db.get_value(
|
||||||
|
"Journal Entry",
|
||||||
|
filters={
|
||||||
|
"name": journal_entry,
|
||||||
|
"is_system_generated": True,
|
||||||
|
"docstatus": 1,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
|
if not common_party_journal:
|
||||||
|
return
|
||||||
|
|
||||||
|
common_party_je = frappe.get_doc("Journal Entry", common_party_journal)
|
||||||
|
common_party_je.cancel()
|
||||||
|
|
||||||
|
|
||||||
def update_accounting_ledgers_after_reference_removal(
|
def update_accounting_ledgers_after_reference_removal(
|
||||||
ref_type: str | None = None, ref_no: str | None = None, payment_name: str | None = None
|
ref_type: str | None = None, ref_no: str | None = None, payment_name: str | None = None
|
||||||
):
|
):
|
||||||
|
|||||||
@@ -1463,6 +1463,7 @@ class AccountsController(TransactionBase):
|
|||||||
remove_from_bank_transaction,
|
remove_from_bank_transaction,
|
||||||
)
|
)
|
||||||
from erpnext.accounts.utils import (
|
from erpnext.accounts.utils import (
|
||||||
|
cancel_common_party_journal,
|
||||||
cancel_exchange_gain_loss_journal,
|
cancel_exchange_gain_loss_journal,
|
||||||
unlink_ref_doc_from_payment_entries,
|
unlink_ref_doc_from_payment_entries,
|
||||||
)
|
)
|
||||||
@@ -1474,6 +1475,7 @@ class AccountsController(TransactionBase):
|
|||||||
|
|
||||||
# Cancel Exchange Gain/Loss Journal before unlinking
|
# Cancel Exchange Gain/Loss Journal before unlinking
|
||||||
cancel_exchange_gain_loss_journal(self)
|
cancel_exchange_gain_loss_journal(self)
|
||||||
|
cancel_common_party_journal(self)
|
||||||
|
|
||||||
if frappe.db.get_single_value("Accounts Settings", "unlink_payment_on_cancellation_of_invoice"):
|
if frappe.db.get_single_value("Accounts Settings", "unlink_payment_on_cancellation_of_invoice"):
|
||||||
unlink_ref_doc_from_payment_entries(self)
|
unlink_ref_doc_from_payment_entries(self)
|
||||||
@@ -2302,6 +2304,7 @@ class AccountsController(TransactionBase):
|
|||||||
jv.posting_date = self.posting_date
|
jv.posting_date = self.posting_date
|
||||||
jv.company = self.company
|
jv.company = self.company
|
||||||
jv.remark = f"Adjustment for {self.doctype} {self.name}"
|
jv.remark = f"Adjustment for {self.doctype} {self.name}"
|
||||||
|
jv.is_system_generated = True
|
||||||
|
|
||||||
reconcilation_entry = frappe._dict()
|
reconcilation_entry = frappe._dict()
|
||||||
advance_entry = frappe._dict()
|
advance_entry = frappe._dict()
|
||||||
|
|||||||
Reference in New Issue
Block a user