From 4015c2b9a4095f23726e588dd1610be5ee0cc3b9 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 19 May 2026 11:29:17 +0000 Subject: [PATCH] fix: validate company region in uae vat 201 (backport #54899) (#55055) Co-authored-by: Ravibharathi <131471282+ravibharathi656@users.noreply.github.com> fix: validate company region in uae vat 201 (#54899) --- .../regional/report/uae_vat_201/test_uae_vat_201.py | 8 ++++++++ erpnext/regional/report/uae_vat_201/uae_vat_201.js | 7 +++++++ erpnext/regional/report/uae_vat_201/uae_vat_201.py | 12 ++++++++++++ 3 files changed, 27 insertions(+) diff --git a/erpnext/regional/report/uae_vat_201/test_uae_vat_201.py b/erpnext/regional/report/uae_vat_201/test_uae_vat_201.py index fd4c69e8f8a..9b892491868 100644 --- a/erpnext/regional/report/uae_vat_201/test_uae_vat_201.py +++ b/erpnext/regional/report/uae_vat_201/test_uae_vat_201.py @@ -6,6 +6,7 @@ import erpnext from erpnext.accounts.doctype.purchase_invoice.test_purchase_invoice import make_purchase_invoice from erpnext.accounts.doctype.sales_invoice.test_sales_invoice import create_sales_invoice from erpnext.regional.report.uae_vat_201.uae_vat_201 import ( + execute, get_exempt_total, get_standard_rated_expenses_tax, get_standard_rated_expenses_total, @@ -32,6 +33,13 @@ class TestUaeVat201(ERPNextTestSuite): make_item("_Test UAE VAT Zero Rated Item", properties={"is_zero_rated": 1, "is_exempt": 0}) make_item("_Test UAE VAT Exempt Item", properties={"is_zero_rated": 0, "is_exempt": 1}) + def test_validate_company_region(self): + self.assertRaises( + frappe.exceptions.ValidationError, + execute, + {"company": "_Test Company"}, + ) + def test_uae_vat_201_report(self): make_sales_invoices() create_purchase_invoices() diff --git a/erpnext/regional/report/uae_vat_201/uae_vat_201.js b/erpnext/regional/report/uae_vat_201/uae_vat_201.js index 49060fdf66a..e62d3395f20 100644 --- a/erpnext/regional/report/uae_vat_201/uae_vat_201.js +++ b/erpnext/regional/report/uae_vat_201/uae_vat_201.js @@ -10,6 +10,13 @@ frappe.query_reports["UAE VAT 201"] = { options: "Company", reqd: 1, default: frappe.defaults.get_user_default("Company"), + get_query: function () { + return { + filters: { + country: "United Arab Emirates", + }, + }; + }, }, { fieldname: "from_date", diff --git a/erpnext/regional/report/uae_vat_201/uae_vat_201.py b/erpnext/regional/report/uae_vat_201/uae_vat_201.py index fa4b2dc6693..4942bc4801f 100644 --- a/erpnext/regional/report/uae_vat_201/uae_vat_201.py +++ b/erpnext/regional/report/uae_vat_201/uae_vat_201.py @@ -5,13 +5,25 @@ import frappe from frappe import _ +from erpnext import get_region + def execute(filters=None): + validate_company_region(filters) columns = get_columns() data, emirates, amounts_by_emirate = get_data(filters) return columns, data +def validate_company_region(filters): + if filters.get("company") and get_region(filters.get("company")) != "United Arab Emirates": + frappe.throw( + _( + "The company {0} is not in United Arab Emirates. UAE VAT 201 report is only available for companies in United Arab Emirates." + ).format(frappe.bold(filters.get("company"))) + ) + + def get_columns(): """Creates a list of dictionaries that are used to generate column headers of the data table.""" return [