refactor: remove references using framework
This commit is contained in:
parent
fbdfb8151c
commit
42df0d3d67
@ -37,7 +37,7 @@ erpnext.accounts.SalesInvoiceController = class SalesInvoiceController extends e
|
|||||||
super.onload();
|
super.onload();
|
||||||
|
|
||||||
this.frm.ignore_doctypes_on_cancel_all = ['POS Invoice', 'Timesheet', 'POS Invoice Merge Log',
|
this.frm.ignore_doctypes_on_cancel_all = ['POS Invoice', 'Timesheet', 'POS Invoice Merge Log',
|
||||||
'POS Closing Entry', 'Journal Entry', 'Payment Entry', "Repost Payment Ledger", "Repost Accounting Ledger"];
|
'POS Closing Entry', 'Journal Entry', 'Payment Entry', "Repost Payment Ledger", "Repost Accounting Ledger", "Unreconcile Payments", "Unreconcile Payment Entries"];
|
||||||
|
|
||||||
if(!this.frm.doc.__islocal && !this.frm.doc.customer && this.frm.doc.debit_to) {
|
if(!this.frm.doc.__islocal && !this.frm.doc.customer && this.frm.doc.debit_to) {
|
||||||
// show debit_to in print format
|
// show debit_to in print format
|
||||||
|
@ -388,6 +388,8 @@ class SalesInvoice(SellingController):
|
|||||||
"Repost Payment Ledger Items",
|
"Repost Payment Ledger Items",
|
||||||
"Repost Accounting Ledger",
|
"Repost Accounting Ledger",
|
||||||
"Repost Accounting Ledger Items",
|
"Repost Accounting Ledger Items",
|
||||||
|
"Unreconcile Payments",
|
||||||
|
"Unreconcile Payment Entries",
|
||||||
"Payment Ledger Entry",
|
"Payment Ledger Entry",
|
||||||
"Serial and Batch Bundle",
|
"Serial and Batch Bundle",
|
||||||
)
|
)
|
||||||
|
@ -211,6 +211,28 @@ class AccountsController(TransactionBase):
|
|||||||
def before_cancel(self):
|
def before_cancel(self):
|
||||||
validate_einvoice_fields(self)
|
validate_einvoice_fields(self)
|
||||||
|
|
||||||
|
def _remove_references_in_unreconcile(self):
|
||||||
|
upe = frappe.qb.DocType("UnReconcile Payment Entries")
|
||||||
|
rows = (
|
||||||
|
frappe.qb.from_(upe)
|
||||||
|
.select(upe.name, upe.parent)
|
||||||
|
.where((upe.reference_doctype == self.doctype) & (upe.reference_name == self.name))
|
||||||
|
.run(as_dict=True)
|
||||||
|
)
|
||||||
|
|
||||||
|
references_map = frappe._dict()
|
||||||
|
for x in rows:
|
||||||
|
references_map.setdefault(x.parent, []).append(x.name)
|
||||||
|
|
||||||
|
for doc, rows in references_map.items():
|
||||||
|
unreconcile_doc = frappe.get_doc("Unreconcile Payments", doc)
|
||||||
|
for row in rows:
|
||||||
|
unreconcile_doc.remove(unreconcile_doc.get("allocations", {"name": row})[0])
|
||||||
|
|
||||||
|
unreconcile_doc.flags.ignore_validate_update_after_submit = True
|
||||||
|
unreconcile_doc.flags.ignore_links = True
|
||||||
|
unreconcile_doc.save(ignore_permissions=True)
|
||||||
|
|
||||||
def on_trash(self):
|
def on_trash(self):
|
||||||
# delete references in 'Repost Payment Ledger'
|
# delete references in 'Repost Payment Ledger'
|
||||||
rpi = frappe.qb.DocType("Repost Payment Ledger Items")
|
rpi = frappe.qb.DocType("Repost Payment Ledger Items")
|
||||||
@ -218,10 +240,7 @@ class AccountsController(TransactionBase):
|
|||||||
(rpi.voucher_type == self.doctype) & (rpi.voucher_no == self.name)
|
(rpi.voucher_type == self.doctype) & (rpi.voucher_no == self.name)
|
||||||
).run()
|
).run()
|
||||||
|
|
||||||
upe = frappe.qb.DocType("UnReconcile Payment Entries")
|
self._remove_references_in_unreconcile()
|
||||||
frappe.qb.from_(upe).delete().where(
|
|
||||||
(upe.reference_doctype == self.doctype) & (upe.reference_name == self.name)
|
|
||||||
).run()
|
|
||||||
|
|
||||||
# delete sl and gl entries on deletion of transaction
|
# delete sl and gl entries on deletion of transaction
|
||||||
if frappe.db.get_single_value("Accounts Settings", "delete_linked_ledger_entries"):
|
if frappe.db.get_single_value("Accounts Settings", "delete_linked_ledger_entries"):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user