From 0ceae0bd66e7bbd1f8af8f4b20bc50450fbc2202 Mon Sep 17 00:00:00 2001 From: Mohammad Hasnain Date: Sun, 25 Oct 2020 13:06:42 +0530 Subject: [PATCH] feat(UAE VAT 201): emirate customizable --- .../report/uae_vat_201/test_uae_vat_201.py | 79 +++++-------------- .../regional/united_arab_emirates/setup.py | 10 +-- 2 files changed, 23 insertions(+), 66 deletions(-) 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 05bb701dc2..ceaa3b3dcb 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 @@ -34,13 +34,12 @@ class TestUaeVat201(TestCase): make_company("_Test Company UAE VAT", "_TCUV") set_vat_accounts() - make_customers() + make_customer() make_supplier() create_warehouse("_Test UAE VAT Supplier Warehouse", company="_Test Company UAE VAT") - make_item("_Test UAE VAT Item", properties = {"is_zero_rated": 0, "is_exempt": 0}) 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}) @@ -122,64 +121,16 @@ def set_vat_accounts(): "doctype": "UAE VAT Settings", }).insert() -def make_customers(): - if not frappe.db.exists("Customer", "_Test Dubai Customer"): +def make_customer(): + if not frappe.db.exists("Customer", "_Test UAE Customer"): customer = frappe.get_doc({ "doctype": "Customer", - "customer_name": "_Test Dubai Customer", + "customer_name": "_Test UAE Customer", "customer_type": "Company", }) customer.insert() else: - customer = frappe.get_doc("Customer", "_Test Dubai Customer") - - if not frappe.db.exists("Customer", "_Test Sharjah Customer"): - customer = frappe.get_doc({ - "doctype": "Customer", - "customer_name": "_Test Sharjah Customer", - "customer_type": "Company", - }) - customer.insert() - else: - customer = frappe.get_doc("Customer", "_Test Sharjah Customer") - - if not frappe.db.exists('Address', '_Test Dubai Address'): - address = frappe.get_doc({ - "address_line1": "_Test Address Line 1", - "address_title": "_Test Dubai Address", - "address_type": "Billing", - "city": "_Test City", - "state": "Test State", - "country": "United Arab Emirates", - "doctype": "Address", - "emirate": "Dubai" - }).insert() - - address.append("links", { - "link_doctype": "Customer", - "link_name": "_Test Dubai Customer" - }) - - address.save() - - if not frappe.db.exists('Address', '_Test Sharjah Address'): - address = frappe.get_doc({ - "address_line1": "_Test Address Line 1", - "address_title": "_Test Sharjah Address", - "address_type": "Billing", - "city": "_Test City", - "state": "Test State", - "country": "United Arab Emirates", - "doctype": "Address", - "emirate": "Sharjah" - }).insert() - - address.append("links", { - "link_doctype": "Customer", - "link_name": "_Test Sharjah Customer" - }) - - address.save() + customer = frappe.get_doc("Customer", "_Test UAE Customer") def make_supplier(): @@ -230,7 +181,7 @@ def make_item(item_code, properties=None): def make_sales_invoices(): si = create_sales_invoice(company="_Test Company UAE VAT", - customer = '_Test Dubai Customer', + customer = '_Test UAE Customer', currency = 'AED', warehouse = 'Finished Goods - _TCUV', debit_to = 'Debtors - _TCUV', @@ -248,10 +199,11 @@ def make_sales_invoices(): "description": "VAT 5% @ 5.0", "rate": 5.0 }) + si.emirate = 'Dubai' si.submit() si = create_sales_invoice(company="_Test Company UAE VAT", - customer = '_Test Sharjah Customer', + customer = '_Test UAE Customer', currency = 'AED', warehouse = 'Finished Goods - _TCUV', debit_to = 'Debtors - _TCUV', @@ -262,6 +214,7 @@ def make_sales_invoices(): item = "_Test UAE VAT Item", do_not_save=1 ) + si.emirate = 'Sharjah' si.append("taxes", { "charge_type": "On Net Total", "account_head": "VAT 5% - _TCUV", @@ -272,7 +225,7 @@ def make_sales_invoices(): si.submit() si = create_sales_invoice(company="_Test Company UAE VAT", - customer = '_Test Dubai Customer', + customer = '_Test UAE Customer', currency = 'AED', warehouse = 'Finished Goods - _TCUV', debit_to = 'Debtors - _TCUV', @@ -286,6 +239,8 @@ def make_sales_invoices(): si.tourist_tax_return = 2 + si.emirate = 'Dubai' + si.append("taxes", { "charge_type": "On Net Total", "account_head": "VAT 5% - _TCUV", @@ -296,7 +251,7 @@ def make_sales_invoices(): si.submit() si = create_sales_invoice(company="_Test Company UAE VAT", - customer = '_Test Sharjah Customer', + customer = '_Test UAE Customer', currency = 'AED', warehouse = 'Finished Goods - _TCUV', debit_to = 'Debtors - _TCUV', @@ -305,10 +260,13 @@ def make_sales_invoices(): cost_center = 'Main - _TCUV', sales_taxes_and_charges_template = "UAE VAT 5% - _TCUV", item = "_Test UAE VAT Zero Rated Item", + do_not_save=1 ) + si.emirate = 'Sharjah' + si.submit() si = create_sales_invoice(company="_Test Company UAE VAT", - customer = '_Test Sharjah Customer', + customer = '_Test UAE Customer', currency = 'AED', warehouse = 'Finished Goods - _TCUV', debit_to = 'Debtors - _TCUV', @@ -317,7 +275,10 @@ def make_sales_invoices(): cost_center = 'Main - _TCUV', sales_taxes_and_charges_template = "UAE VAT 5% - _TCUV", item = "_Test UAE VAT Exempt Item", + do_not_save=1 ) + si.emirate = 'Sharjah' + si.submit() def create_purchase_invoices(): diff --git a/erpnext/regional/united_arab_emirates/setup.py b/erpnext/regional/united_arab_emirates/setup.py index fac6e270db..7f890d6867 100644 --- a/erpnext/regional/united_arab_emirates/setup.py +++ b/erpnext/regional/united_arab_emirates/setup.py @@ -56,10 +56,10 @@ def make_custom_fields(): dict(fieldname='customer_name_in_arabic', label='Customer Name in Arabic', fieldtype='Read Only', insert_after='customer_name', fetch_from='customer.customer_name_in_arabic', print_hide=1), - dict(fieldname='emirate', label='Emirate', insert_after='customer_address', - fieldtype='Read Only', fetch_from='customer_address.emirate'), + dict(fieldname='emirate', label='Emirate', insert_after='permit_no', fieldtype='Select', + options='\nAbu Dhabi\nAjman\nDubai\nFujairah\nRas Al Khaimah\nSharjah\nUmm Al Quwain'), dict(fieldname='tourist_tax_return', label='Tax Refund provided to Tourists (AED)', - insert_after='permit_no', fieldtype='Currency', print_hide=1, default='0'), + insert_after='emirate', fieldtype='Currency', print_hide=1, default='0'), ] invoice_item_fields = [ @@ -101,10 +101,6 @@ def make_custom_fields(): dict(fieldname='supplier_name_in_arabic', label='Supplier Name in Arabic', fieldtype='Data', insert_after='supplier_name'), ], - 'Address': [ - dict(fieldname='emirate', label='Emirate', fieldtype='Select', insert_after='state', - options='Abu Dhabi\nAjman\nDubai\nFujairah\nRas Al Khaimah\nSharjah\nUmm Al Quwain') - ], 'Purchase Invoice': purchase_invoice_fields + invoice_fields, 'Purchase Order': purchase_invoice_fields + invoice_fields, 'Purchase Receipt': purchase_invoice_fields + invoice_fields,