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 [