From 646acb6b467fcaa20c1f2c80c33d4aaf84e723f8 Mon Sep 17 00:00:00 2001 From: marination Date: Wed, 13 Oct 2021 16:33:19 +0530 Subject: [PATCH 1/2] fix: Improve error message for Serial No mismatch between SI and DN --- .../doctype/sales_invoice/sales_invoice.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py index d909814921..9b702f58e4 100644 --- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py +++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py @@ -1284,12 +1284,20 @@ class SalesInvoice(SellingController): serial_nos = item.serial_no or "" si_serial_nos = set(get_serial_nos(serial_nos)) + serial_no_diff = si_serial_nos - dn_serial_nos - if si_serial_nos - dn_serial_nos: - frappe.throw(_("Serial Numbers in row {0} does not match with Delivery Note").format(item.idx)) + if serial_no_diff: + dn_link = frappe.utils.get_link_to_form("Delivery Note", item.delivery_note) + serial_no_msg = ", ".join(frappe.bold(d) for d in serial_no_diff) + + msg = _("Row #{0}: The following Serial Nos are not present in \ + Delivery Note {1}: ").format(item.idx, dn_link) + msg += serial_no_msg + + frappe.throw(msg=msg, title=_("Serial Nos Mismatch")) if item.serial_no and cint(item.qty) != len(si_serial_nos): - frappe.throw(_("Row {0}: {1} Serial numbers required for Item {2}. You have provided {3}.").format( + frappe.throw(_("Row #{0}: {1} Serial numbers required for Item {2}. You have provided {3}.").format( item.idx, item.qty, item.item_code, len(si_serial_nos))) def update_project(self): From 60f35ad8a2d5f7af0a2f5b52a2beb6f559f12dc0 Mon Sep 17 00:00:00 2001 From: marination Date: Wed, 13 Oct 2021 16:50:10 +0530 Subject: [PATCH 2/2] fix: Remove trailing space and line break in translatable string --- erpnext/accounts/doctype/sales_invoice/sales_invoice.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py index 9b702f58e4..dafae3128a 100644 --- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py +++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py @@ -1290,9 +1290,9 @@ class SalesInvoice(SellingController): dn_link = frappe.utils.get_link_to_form("Delivery Note", item.delivery_note) serial_no_msg = ", ".join(frappe.bold(d) for d in serial_no_diff) - msg = _("Row #{0}: The following Serial Nos are not present in \ - Delivery Note {1}: ").format(item.idx, dn_link) - msg += serial_no_msg + msg = _("Row #{0}: The following Serial Nos are not present in Delivery Note {1}:").format( + item.idx, dn_link) + msg += " " + serial_no_msg frappe.throw(msg=msg, title=_("Serial Nos Mismatch"))