From 109658731b967d6944e322e549eb2c2fdfaa8920 Mon Sep 17 00:00:00 2001 From: Kavin <78342682+kavin0411@users.noreply.github.com> Date: Sat, 5 Jul 2025 13:34:11 +0530 Subject: [PATCH 1/4] fix: add company field on POS Invoice Merge Log --- .../pos_invoice_merge_log.json | 16 ++++++++++++++-- .../pos_invoice_merge_log.py | 5 ++--- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/erpnext/accounts/doctype/pos_invoice_merge_log/pos_invoice_merge_log.json b/erpnext/accounts/doctype/pos_invoice_merge_log/pos_invoice_merge_log.json index 2f94e341eb4..7d9b90f1b65 100644 --- a/erpnext/accounts/doctype/pos_invoice_merge_log/pos_invoice_merge_log.json +++ b/erpnext/accounts/doctype/pos_invoice_merge_log/pos_invoice_merge_log.json @@ -5,6 +5,7 @@ "editable_grid": 1, "engine": "InnoDB", "field_order": [ + "company", "posting_date", "posting_time", "merge_invoices_based_on", @@ -113,12 +114,22 @@ "label": "Posting Time", "no_copy": 1, "reqd": 1 + }, + { + "fieldname": "company", + "fieldtype": "Link", + "in_standard_filter": 1, + "label": "Company", + "options": "Company", + "print_hide": 1, + "remember_last_selected_value": 1, + "reqd": 1 } ], "index_web_pages_for_search": 1, "is_submittable": 1, "links": [], - "modified": "2024-03-27 13:10:15.620564", + "modified": "2025-07-02 17:08:04.747202", "modified_by": "Administrator", "module": "Accounts", "name": "POS Invoice Merge Log", @@ -179,8 +190,9 @@ "write": 1 } ], + "row_format": "Dynamic", "sort_field": "creation", "sort_order": "DESC", "states": [], "track_changes": 1 -} \ No newline at end of file +} diff --git a/erpnext/accounts/doctype/pos_invoice_merge_log/pos_invoice_merge_log.py b/erpnext/accounts/doctype/pos_invoice_merge_log/pos_invoice_merge_log.py index 818a689681c..7cf512b1364 100644 --- a/erpnext/accounts/doctype/pos_invoice_merge_log/pos_invoice_merge_log.py +++ b/erpnext/accounts/doctype/pos_invoice_merge_log/pos_invoice_merge_log.py @@ -29,11 +29,10 @@ class POSInvoiceMergeLog(Document): if TYPE_CHECKING: from frappe.types import DF - from erpnext.accounts.doctype.pos_invoice_reference.pos_invoice_reference import ( - POSInvoiceReference, - ) + from erpnext.accounts.doctype.pos_invoice_reference.pos_invoice_reference import POSInvoiceReference amended_from: DF.Link | None + company: DF.Link consolidated_credit_note: DF.Link | None consolidated_invoice: DF.Link | None customer: DF.Link From d46b68230c61703db7aeb4564d311334593986a6 Mon Sep 17 00:00:00 2001 From: Kavin <78342682+kavin0411@users.noreply.github.com> Date: Sat, 5 Jul 2025 13:34:52 +0530 Subject: [PATCH 2/4] fix: patch for updating company name on existing pos merge log records --- erpnext/patches.txt | 1 + .../v15_0/set_company_on_pos_inv_merge_log.py | 12 ++++++++++++ 2 files changed, 13 insertions(+) create mode 100644 erpnext/patches/v15_0/set_company_on_pos_inv_merge_log.py diff --git a/erpnext/patches.txt b/erpnext/patches.txt index 3561e147d59..cc92dc8dc33 100644 --- a/erpnext/patches.txt +++ b/erpnext/patches.txt @@ -424,3 +424,4 @@ execute:frappe.db.set_single_value("Accounts Settings", "confirm_before_resettin erpnext.patches.v15_0.rename_pos_closing_entry_fields #2025-06-13 erpnext.patches.v15_0.update_pegged_currencies erpnext.patches.v15_0.set_status_cancelled_on_cancelled_pos_opening_entry_and_pos_closing_entry +erpnext.patches.v15_0.set_company_on_pos_inv_merge_log \ No newline at end of file diff --git a/erpnext/patches/v15_0/set_company_on_pos_inv_merge_log.py b/erpnext/patches/v15_0/set_company_on_pos_inv_merge_log.py new file mode 100644 index 00000000000..8f83898a877 --- /dev/null +++ b/erpnext/patches/v15_0/set_company_on_pos_inv_merge_log.py @@ -0,0 +1,12 @@ +import frappe + + +def execute(): + pos_invoice_merge_logs = frappe.db.get_all( + "POS Invoice Merge Log", {"docstatus": 1}, ["name", "pos_closing_entry"] + ) + + for log in pos_invoice_merge_logs: + if log.pos_closing_entry and frappe.db.exists("POS Closing Entry", log.pos_closing_entry): + company = frappe.db.get_value("POS Closing Entry", log.pos_closing_entry, "company") + frappe.db.set_value("POS Invoice Merge Log", log.name, "company", company) From b4b473185f5e8509ee7f1a446ee0670b2b4c8891 Mon Sep 17 00:00:00 2001 From: Kavin <78342682+kavin0411@users.noreply.github.com> Date: Sat, 5 Jul 2025 21:58:07 +0530 Subject: [PATCH 3/4] fix: pass company on create_merge_logs --- .../doctype/pos_invoice_merge_log/pos_invoice_merge_log.py | 1 + 1 file changed, 1 insertion(+) diff --git a/erpnext/accounts/doctype/pos_invoice_merge_log/pos_invoice_merge_log.py b/erpnext/accounts/doctype/pos_invoice_merge_log/pos_invoice_merge_log.py index 7cf512b1364..74c6845755e 100644 --- a/erpnext/accounts/doctype/pos_invoice_merge_log/pos_invoice_merge_log.py +++ b/erpnext/accounts/doctype/pos_invoice_merge_log/pos_invoice_merge_log.py @@ -583,6 +583,7 @@ def create_merge_logs(invoice_by_customer, closing_entry=None): merge_log.posting_time = ( get_time(closing_entry.get("posting_time")) if closing_entry else nowtime() ) + merge_log.company = closing_entry.get("company") if closing_entry else None merge_log.customer = customer merge_log.pos_closing_entry = closing_entry.get("name") if closing_entry else None merge_log.set("pos_invoices", _invoices) From 9548f341bf631ae72d6591324e0bdf7cbbc40fe3 Mon Sep 17 00:00:00 2001 From: Kavin <78342682+kavin0411@users.noreply.github.com> Date: Sat, 5 Jul 2025 21:59:53 +0530 Subject: [PATCH 4/4] test: test company fetching from POS Closing Entry --- .../test_pos_invoice_merge_log.py | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/erpnext/accounts/doctype/pos_invoice_merge_log/test_pos_invoice_merge_log.py b/erpnext/accounts/doctype/pos_invoice_merge_log/test_pos_invoice_merge_log.py index a7618377291..3c5c0c2abeb 100644 --- a/erpnext/accounts/doctype/pos_invoice_merge_log/test_pos_invoice_merge_log.py +++ b/erpnext/accounts/doctype/pos_invoice_merge_log/test_pos_invoice_merge_log.py @@ -491,3 +491,26 @@ class TestPOSInvoiceMergeLog(IntegrationTestCase): self.assertTrue(frappe.db.exists("Sales Invoice", pos_inv3.consolidated_invoice)) self.assertTrue(pos_inv2.consolidated_invoice == pos_inv3.consolidated_invoice) + + def test_company_in_pos_invoice_merge_log(self): + """ + Test if the company is fetched from POS Closing Entry + """ + test_user, pos_profile = init_user_and_profile() + opening_entry = create_opening_entry(pos_profile, test_user.name) + + pos_inv = create_pos_invoice(rate=300, do_not_submit=1) + pos_inv.append("payments", {"mode_of_payment": "Cash", "account": "Cash - _TC", "amount": 300}) + pos_inv.save() + pos_inv.submit() + + closing_entry = make_closing_entry_from_opening(opening_entry) + closing_entry.insert() + closing_entry.submit() + + self.assertTrue(frappe.db.exists("POS Invoice Merge Log", {"pos_closing_entry": closing_entry.name})) + + pos_merge_log_company = frappe.db.get_value( + "POS Invoice Merge Log", {"pos_closing_entry": closing_entry.name}, "company" + ) + self.assertEqual(pos_merge_log_company, closing_entry.company)