feat(uae vat 201): do not take zero and nil rated items in standard rated expense emiratewise

This commit is contained in:
Mohammad Hasnain
2020-11-04 10:31:37 +05:30
parent 7a034595fe
commit f2c895ddb5
2 changed files with 18 additions and 9 deletions

View File

@@ -53,7 +53,7 @@ class TestUaeVat201(TestCase):
"raw_amount": amount, "raw_amount": amount,
"raw_vat_amount": vat, "raw_vat_amount": vat,
} }
self.assertEqual(amounts_by_emirate["Sharjah"]["raw_amount"],300) self.assertEqual(amounts_by_emirate["Sharjah"]["raw_amount"],100)
self.assertEqual(amounts_by_emirate["Sharjah"]["raw_vat_amount"],5) self.assertEqual(amounts_by_emirate["Sharjah"]["raw_vat_amount"],5)
self.assertEqual(amounts_by_emirate["Dubai"]["raw_amount"],200) self.assertEqual(amounts_by_emirate["Dubai"]["raw_amount"],200)
self.assertEqual(amounts_by_emirate["Dubai"]["raw_vat_amount"],10) self.assertEqual(amounts_by_emirate["Dubai"]["raw_vat_amount"],10)

View File

@@ -118,14 +118,23 @@ def append_data(data, no, legend, amount, vat_amount):
def get_total_emiratewise(filters): def get_total_emiratewise(filters):
"""Returns Emiratewise Amount and Taxes.""" """Returns Emiratewise Amount and Taxes."""
query_filters = get_filters(filters) conditions = get_conditions(filters)
query_filters['docstatus'] = ['=', 1] try:
return frappe.db.get_all('Sales Invoice', return frappe.db.sql("""
filters = query_filters, select
fields = ['vat_emirate as emirate','sum(total)', 'sum(total_taxes_and_charges)'], s.vat_emirate as emirate, sum(i.base_amount) as total, sum(s.total_taxes_and_charges)
group_by='vat_emirate', from
as_list=True `tabSales Invoice Item` i inner join `tabSales Invoice` s
) on
i.parent = s.name
where
s.docstatus = 1 and i.is_exempt != 1 and i.is_zero_rated != 1
{where_conditions}
group by
s.vat_emirate;
""".format(where_conditions=conditions), filters)
except (IndexError, TypeError):
return 0
def get_emirates(): def get_emirates():
"""Returns a List of emirates in the order that they are to be displayed.""" """Returns a List of emirates in the order that they are to be displayed."""