From eb3084b072654573ff4dd3ad97590f15878e48b0 Mon Sep 17 00:00:00 2001 From: Mohammad Hasnain Date: Thu, 29 Oct 2020 09:52:17 +0530 Subject: [PATCH] refactor(UAE VAT 201): break functions --- .../report/uae_vat_201/uae_vat_201.py | 13 +++++++ .../regional/united_arab_emirates/utils.py | 38 ++++++++++--------- 2 files changed, 34 insertions(+), 17 deletions(-) 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 758da4205a1..216762bc8da 100644 --- a/erpnext/regional/report/uae_vat_201/uae_vat_201.py +++ b/erpnext/regional/report/uae_vat_201/uae_vat_201.py @@ -113,6 +113,7 @@ def standard_rated_expenses_emiratewise(data, filters): "amount": frappe.format(amount, 'Currency'), "vat_amount": frappe.format(vat, 'Currency'), } + amounts_by_emirate = append_emiratewise_expenses(data, emirates, amounts_by_emirate) for d, emirate in enumerate(emirates, 97): if emirate in amounts_by_emirate: @@ -125,6 +126,18 @@ def standard_rated_expenses_emiratewise(data, filters): frappe.format(0, 'Currency'), frappe.format(0, 'Currency')) return emirates, amounts_by_emirate +def append_emiratewise_expenses(data, emirates, amounts_by_emirate): + """Append emiratewise standard rated expenses and vat.""" + for d, emirate in enumerate(emirates, 97): + if emirate in amounts_by_emirate: + amounts_by_emirate[emirate]["no"] = _('1{0}').format(chr(d)) + amounts_by_emirate[emirate]["legend"] = _('Standard rated supplies in {0}').format(emirate) + data.append(amounts_by_emirate[emirate]) + else: + append_data(data, _('1{0}').format(chr(d)), + _('Standard rated supplies in {0}').format(emirate), + frappe.format(0, 'Currency'), frappe.format(0, 'Currency')) + return amounts_by_emirate def append_vat_on_expenses(data, filters): """Appends Expenses and All Other Inputs.""" diff --git a/erpnext/regional/united_arab_emirates/utils.py b/erpnext/regional/united_arab_emirates/utils.py index 7edc2b6720a..7430db4fce0 100644 --- a/erpnext/regional/united_arab_emirates/utils.py +++ b/erpnext/regional/united_arab_emirates/utils.py @@ -123,25 +123,29 @@ def make_regional_gl_entries(gl_entries, doc): for tax in doc.get('taxes'): if tax.category not in ("Total", "Valuation and Total"): continue - - dr_or_cr = "credit" if tax.add_deduct_tax == "Add" else "debit" - if flt(tax.base_tax_amount_after_discount_amount) and tax.account_head in tax_accounts: - account_currency = get_account_currency(tax.account_head) - - gl_entries.append(doc.get_gl_dict( - { - "account": tax.account_head, - "cost_center": tax.cost_center, - "posting_date": doc.posting_date, - "against": doc.supplier, - dr_or_cr: tax.base_tax_amount_after_discount_amount, - dr_or_cr + "_in_account_currency": tax.base_tax_amount_after_discount_amount \ - if account_currency==doc.company_currency \ - else tax.tax_amount_after_discount_amount - }, account_currency, item=tax) - ) + gl_entries = make_gl_entry(tax, gl_entries, doc, tax_accounts) return gl_entries +def make_gl_entry(tax, gl_entries, doc, tax_accounts): + dr_or_cr = "credit" if tax.add_deduct_tax == "Add" else "debit" + if flt(tax.base_tax_amount_after_discount_amount) and tax.account_head in tax_accounts: + account_currency = get_account_currency(tax.account_head) + + gl_entries.append(doc.get_gl_dict( + { + "account": tax.account_head, + "cost_center": tax.cost_center, + "posting_date": doc.posting_date, + "against": doc.supplier, + dr_or_cr: tax.base_tax_amount_after_discount_amount, + dr_or_cr + "_in_account_currency": tax.base_tax_amount_after_discount_amount \ + if account_currency==doc.company_currency \ + else tax.tax_amount_after_discount_amount + }, account_currency, item=tax) + ) + return gl_entries + + def validate_returns(doc, method): """Standard Rated expenses should not be set when Reverse Charge Applicable is set.""" country = frappe.get_cached_value('Company', doc.company, 'country')