diff --git a/india_compliance/gst_india/overrides/test_purchase_invoice.py b/india_compliance/gst_india/overrides/test_purchase_invoice.py index 58ff3cd21..04b465cdc 100644 --- a/india_compliance/gst_india/overrides/test_purchase_invoice.py +++ b/india_compliance/gst_india/overrides/test_purchase_invoice.py @@ -79,8 +79,9 @@ def test_validate_invoice_length(self): setattr(pinv, "__newname", "INV/2022/00001/asdfsadg") # NOQA pinv.meta.autoname = "prompt" - self.assertRaisesRegex( - frappe.exceptions.ValidationError, + pinv.save() + + self.assertEqual( + frappe.parse_json(frappe.message_log[-1]).get("message"), "Transaction Name must be 16 characters or fewer to meet GST requirements", - pinv.save, ) diff --git a/india_compliance/gst_india/overrides/test_sales_invoice.py b/india_compliance/gst_india/overrides/test_sales_invoice.py index 010f6df56..3301c9332 100644 --- a/india_compliance/gst_india/overrides/test_sales_invoice.py +++ b/india_compliance/gst_india/overrides/test_sales_invoice.py @@ -17,7 +17,9 @@ def test_validate_invoice_number(self): "PI2021 - 001", ] for name in invalid_names: - doc = frappe._dict(name=name, posting_date=posting_date) + doc = frappe._dict( + name=name, posting_date=posting_date, doctype="Sales Invoice" + ) self.assertRaises(frappe.ValidationError, validate_invoice_number, doc) valid_names = [ diff --git a/india_compliance/gst_india/utils/__init__.py b/india_compliance/gst_india/utils/__init__.py index 37974602a..aa2105c76 100644 --- a/india_compliance/gst_india/utils/__init__.py +++ b/india_compliance/gst_india/utils/__init__.py @@ -931,23 +931,26 @@ def validate_invoice_number(doc, throw=True): if not throw: return is_valid_length and is_valid_format + if is_valid_length and is_valid_format: + return + + title = _("Invalid GST Transaction Name") + if not is_valid_length: - frappe.throw( - _( - "Transaction Name must be 16 characters or fewer to meet GST requirements" - ), - title=_("Invalid GST Transaction Name"), + message = _( + "Transaction Name must be 16 characters or fewer to meet GST requirements" ) - - if not is_valid_format: - frappe.throw( - _( - "Transaction Name should start with an alphanumeric character and can" - " only contain alphanumeric characters, dash (-) and slash (/) to meet GST requirements" - ), - title=_("Invalid GST Transaction Name"), + else: + message = _( + "Transaction Name should start with an alphanumeric character and can" + " only contain alphanumeric characters, dash (-) and slash (/) to meet GST requirements" ) + if doc.doctype == "Sales Invoice": + frappe.throw(message, title=title) + + frappe.msgprint(message, title=title) + def handle_server_errors(settings, doc, document_type, error): if not doc.doctype == "Sales Invoice":