diff --git a/erpnext/accounts/doctype/unreconcile_payment_entries/unreconcile_payment_entries.json b/erpnext/accounts/doctype/unreconcile_payment_entries/unreconcile_payment_entries.json index 5beb39d0342..f70f4db2a8e 100644 --- a/erpnext/accounts/doctype/unreconcile_payment_entries/unreconcile_payment_entries.json +++ b/erpnext/accounts/doctype/unreconcile_payment_entries/unreconcile_payment_entries.json @@ -6,41 +6,18 @@ "editable_grid": 1, "engine": "InnoDB", "field_order": [ - "voucher_type", - "voucher_no", - "reference_type", + "reference_doctype", "reference_name", "allocated_amount", "unlinked" ], "fields": [ - { - "fieldname": "voucher_type", - "fieldtype": "Link", - "in_list_view": 1, - "label": "Voucher Type", - "options": "DocType" - }, - { - "fieldname": "voucher_no", - "fieldtype": "Dynamic Link", - "in_list_view": 1, - "label": "Voucher No", - "options": "voucher_type" - }, - { - "fieldname": "reference_type", - "fieldtype": "Link", - "in_list_view": 1, - "label": "Reference Type", - "options": "DocType" - }, { "fieldname": "reference_name", "fieldtype": "Dynamic Link", "in_list_view": 1, "label": "Reference Name", - "options": "reference_type" + "options": "reference_doctype" }, { "fieldname": "allocated_amount", @@ -54,12 +31,19 @@ "fieldtype": "Check", "in_list_view": 1, "label": "Unlinked" + }, + { + "fieldname": "reference_doctype", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Reference Type", + "options": "DocType" } ], "index_web_pages_for_search": 1, "istable": 1, "links": [], - "modified": "2023-08-22 11:22:20.381079", + "modified": "2023-08-22 15:00:33.203161", "modified_by": "Administrator", "module": "Accounts", "name": "Unreconcile Payment Entries", diff --git a/erpnext/accounts/doctype/unreconcile_payments/unreconcile_payments.js b/erpnext/accounts/doctype/unreconcile_payments/unreconcile_payments.js index d6670037d46..03a8253dd2f 100644 --- a/erpnext/accounts/doctype/unreconcile_payments/unreconcile_payments.js +++ b/erpnext/accounts/doctype/unreconcile_payments/unreconcile_payments.js @@ -1,8 +1,25 @@ // Copyright (c) 2023, Frappe Technologies Pvt. Ltd. and contributors // For license information, please see license.txt -// frappe.ui.form.on("Unreconcile Payments", { -// refresh(frm) { +frappe.ui.form.on("Unreconcile Payments", { + refresh(frm) { + frm.set_query("voucher_type", function() { + return { + filters: { + name: "Payment Entry" + } + } + }); -// }, -// }); + + frm.set_query("voucher_no", function(doc) { + return { + filters: { + company: doc.company, + docstatus: 1 + } + } + }); + + }, +}); diff --git a/erpnext/accounts/doctype/unreconcile_payments/unreconcile_payments.json b/erpnext/accounts/doctype/unreconcile_payments/unreconcile_payments.json index c182a63b654..f4b3cd70901 100644 --- a/erpnext/accounts/doctype/unreconcile_payments/unreconcile_payments.json +++ b/erpnext/accounts/doctype/unreconcile_payments/unreconcile_payments.json @@ -9,7 +9,9 @@ "engine": "InnoDB", "field_order": [ "company", - "entries", + "voucher_type", + "voucher_no", + "references", "amended_from" ], "fields": [ @@ -29,16 +31,28 @@ "options": "Company" }, { - "fieldname": "entries", + "fieldname": "voucher_type", + "fieldtype": "Link", + "label": "Voucher Type", + "options": "DocType" + }, + { + "fieldname": "voucher_no", + "fieldtype": "Dynamic Link", + "label": "Voucher No", + "options": "voucher_type" + }, + { + "fieldname": "references", "fieldtype": "Table", - "label": "Entries", + "label": "References", "options": "Unreconcile Payment Entries" } ], "index_web_pages_for_search": 1, "is_submittable": 1, "links": [], - "modified": "2023-08-22 11:07:03.854434", + "modified": "2023-08-22 14:11:13.073414", "modified_by": "Administrator", "module": "Accounts", "name": "Unreconcile Payments", diff --git a/erpnext/accounts/doctype/unreconcile_payments/unreconcile_payments.py b/erpnext/accounts/doctype/unreconcile_payments/unreconcile_payments.py index 96bcc009170..df08d79f01f 100644 --- a/erpnext/accounts/doctype/unreconcile_payments/unreconcile_payments.py +++ b/erpnext/accounts/doctype/unreconcile_payments/unreconcile_payments.py @@ -1,9 +1,38 @@ # Copyright (c) 2023, Frappe Technologies Pvt. Ltd. and contributors # For license information, please see license.txt -# import frappe +import frappe from frappe.model.document import Document +from erpnext.accounts.utils import unlink_ref_doc_from_payment_entries, update_voucher_outstanding + class UnreconcilePayments(Document): - pass + def before_save(self): + if self.voucher_type == "Payment Entry": + references = frappe.db.get_all( + "Payment Entry Reference", + filters={"docstatus": 1, "parent": self.voucher_no}, + fields=["reference_doctype", "reference_name", "allocated_amount"], + ) + + self.set("references", []) + for ref in references: + self.append("references", ref) + + def on_submit(self): + payment_type, paid_from, paid_to, party_type, party = frappe.db.get_all( + self.voucher_type, + filters={"name": self.voucher_no}, + fields=["payment_type", "paid_from", "paid_to", "party_type", "party"], + as_list=1, + )[0] + account = paid_from if payment_type == "Receive" else paid_to + + for ref in self.references: + doc = frappe.get_doc(ref.reference_doctype, ref.reference_name) + unlink_ref_doc_from_payment_entries(doc) + update_voucher_outstanding( + ref.reference_doctype, ref.reference_name, account, party_type, party + ) + frappe.db.set_value("Unreconcile Payment Entries", ref.name, "unlinked", True)