feat(Regional): KSA VAT Report
This commit is contained in:
parent
b0d970001a
commit
cb0c2d1477
@ -533,6 +533,17 @@
|
||||
"only_for": "United Arab Emirates",
|
||||
"type": "Link"
|
||||
},
|
||||
{
|
||||
"dependencies": "GL Entry",
|
||||
"hidden": 0,
|
||||
"is_query_report": 1,
|
||||
"label": "KSA VAT Report",
|
||||
"link_to": "KSA VAT",
|
||||
"link_type": "Report",
|
||||
"onboard": 0,
|
||||
"only_for": "Saudi Arabia",
|
||||
"type": "Link"
|
||||
},
|
||||
{
|
||||
"hidden": 0,
|
||||
"is_query_report": 0,
|
||||
@ -1153,6 +1164,16 @@
|
||||
"onboard": 0,
|
||||
"type": "Link"
|
||||
},
|
||||
{
|
||||
"hidden": 0,
|
||||
"is_query_report": 0,
|
||||
"label": "KSA VAT Setting",
|
||||
"link_to": "KSA VAT Setting",
|
||||
"link_type": "DocType",
|
||||
"onboard": 0,
|
||||
"only_for": "Saudi Arabia",
|
||||
"type": "Link"
|
||||
},
|
||||
{
|
||||
"hidden": 0,
|
||||
"is_query_report": 0,
|
||||
|
@ -0,0 +1,49 @@
|
||||
{
|
||||
"actions": [],
|
||||
"creation": "2021-07-13 09:17:09.862163",
|
||||
"doctype": "DocType",
|
||||
"editable_grid": 1,
|
||||
"engine": "InnoDB",
|
||||
"field_order": [
|
||||
"title",
|
||||
"item_tax_template",
|
||||
"account"
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"fieldname": "account",
|
||||
"fieldtype": "Link",
|
||||
"in_list_view": 1,
|
||||
"label": "Account",
|
||||
"options": "Account",
|
||||
"reqd": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "title",
|
||||
"fieldtype": "Data",
|
||||
"in_list_view": 1,
|
||||
"label": "Title",
|
||||
"reqd": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "item_tax_template",
|
||||
"fieldtype": "Link",
|
||||
"in_list_view": 1,
|
||||
"label": "Item Tax Template",
|
||||
"options": "Item Tax Template",
|
||||
"reqd": 1
|
||||
}
|
||||
],
|
||||
"index_web_pages_for_search": 1,
|
||||
"istable": 1,
|
||||
"links": [],
|
||||
"modified": "2021-08-04 06:42:38.205597",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Regional",
|
||||
"name": "KSA VAT Purchase Account",
|
||||
"owner": "Administrator",
|
||||
"permissions": [],
|
||||
"sort_field": "modified",
|
||||
"sort_order": "DESC",
|
||||
"track_changes": 1
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
# Copyright (c) 2021, Havenir Solutions and contributors
|
||||
# For license information, please see license.txt
|
||||
|
||||
# import frappe
|
||||
from frappe.model.document import Document
|
||||
|
||||
class KSAVATPurchaseAccount(Document):
|
||||
pass
|
@ -0,0 +1,8 @@
|
||||
// Copyright (c) 2021, Havenir Solutions and contributors
|
||||
// For license information, please see license.txt
|
||||
|
||||
frappe.ui.form.on('KSA VAT Sales Account', {
|
||||
// refresh: function(frm) {
|
||||
|
||||
// }
|
||||
});
|
@ -0,0 +1,49 @@
|
||||
{
|
||||
"actions": [],
|
||||
"creation": "2021-07-13 08:46:33.820968",
|
||||
"doctype": "DocType",
|
||||
"editable_grid": 1,
|
||||
"engine": "InnoDB",
|
||||
"field_order": [
|
||||
"title",
|
||||
"item_tax_template",
|
||||
"account"
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"fieldname": "account",
|
||||
"fieldtype": "Link",
|
||||
"in_list_view": 1,
|
||||
"label": "Account",
|
||||
"options": "Account",
|
||||
"reqd": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "title",
|
||||
"fieldtype": "Data",
|
||||
"in_list_view": 1,
|
||||
"label": "Title",
|
||||
"reqd": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "item_tax_template",
|
||||
"fieldtype": "Link",
|
||||
"in_list_view": 1,
|
||||
"label": "Item Tax Template",
|
||||
"options": "Item Tax Template",
|
||||
"reqd": 1
|
||||
}
|
||||
],
|
||||
"index_web_pages_for_search": 1,
|
||||
"istable": 1,
|
||||
"links": [],
|
||||
"modified": "2021-08-04 06:42:00.081407",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Regional",
|
||||
"name": "KSA VAT Sales Account",
|
||||
"owner": "Administrator",
|
||||
"permissions": [],
|
||||
"sort_field": "modified",
|
||||
"sort_order": "DESC",
|
||||
"track_changes": 1
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
# Copyright (c) 2021, Havenir Solutions and contributors
|
||||
# For license information, please see license.txt
|
||||
|
||||
# import frappe
|
||||
from frappe.model.document import Document
|
||||
|
||||
class KSAVATSalesAccount(Document):
|
||||
pass
|
@ -0,0 +1,8 @@
|
||||
# Copyright (c) 2021, Havenir Solutions and Contributors
|
||||
# See license.txt
|
||||
|
||||
# import frappe
|
||||
import unittest
|
||||
|
||||
class TestKSAVATSalesAccount(unittest.TestCase):
|
||||
pass
|
@ -0,0 +1,8 @@
|
||||
// Copyright (c) 2021, Havenir Solutions and contributors
|
||||
// For license information, please see license.txt
|
||||
|
||||
frappe.ui.form.on('KSA VAT Setting', {
|
||||
onload: function(frm) {
|
||||
frappe.breadcrumbs.add('Accounts', 'KSA VAT Setting');
|
||||
}
|
||||
});
|
@ -0,0 +1,49 @@
|
||||
{
|
||||
"actions": [],
|
||||
"autoname": "field:company",
|
||||
"creation": "2021-07-13 08:49:01.100356",
|
||||
"doctype": "DocType",
|
||||
"editable_grid": 1,
|
||||
"engine": "InnoDB",
|
||||
"field_order": [
|
||||
"company",
|
||||
"ksa_vat_sales_accounts",
|
||||
"ksa_vat_purchase_accounts"
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"fieldname": "company",
|
||||
"fieldtype": "Link",
|
||||
"in_list_view": 1,
|
||||
"label": "Company",
|
||||
"options": "Company",
|
||||
"reqd": 1,
|
||||
"unique": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "ksa_vat_sales_accounts",
|
||||
"fieldtype": "Table",
|
||||
"label": "KSA VAT Sales Accounts",
|
||||
"options": "KSA VAT Sales Account",
|
||||
"reqd": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "ksa_vat_purchase_accounts",
|
||||
"fieldtype": "Table",
|
||||
"label": "KSA VAT Purchase Accounts",
|
||||
"options": "KSA VAT Purchase Account",
|
||||
"reqd": 1
|
||||
}
|
||||
],
|
||||
"links": [],
|
||||
"modified": "2021-08-26 04:29:06.499378",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Regional",
|
||||
"name": "KSA VAT Setting",
|
||||
"owner": "Administrator",
|
||||
"permissions": [],
|
||||
"sort_field": "modified",
|
||||
"sort_order": "DESC",
|
||||
"title_field": "company",
|
||||
"track_changes": 1
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
# Copyright (c) 2021, Havenir Solutions and contributors
|
||||
# For license information, please see license.txt
|
||||
|
||||
# import frappe
|
||||
from frappe.model.document import Document
|
||||
|
||||
class KSAVATSetting(Document):
|
||||
pass
|
@ -0,0 +1,5 @@
|
||||
frappe.listview_settings['KSA VAT Setting'] = {
|
||||
onload(list) {
|
||||
frappe.breadcrumbs.add('Accounts');
|
||||
}
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
# Copyright (c) 2021, Havenir Solutions and Contributors
|
||||
# See license.txt
|
||||
|
||||
# import frappe
|
||||
import unittest
|
||||
|
||||
class TestKSAVATSetting(unittest.TestCase):
|
||||
pass
|
0
erpnext/regional/report/ksa_vat/__init__.py
Normal file
0
erpnext/regional/report/ksa_vat/__init__.py
Normal file
60
erpnext/regional/report/ksa_vat/ksa_vat.js
Normal file
60
erpnext/regional/report/ksa_vat/ksa_vat.js
Normal file
@ -0,0 +1,60 @@
|
||||
// Copyright (c) 2016, Havenir Solutions and contributors
|
||||
// For license information, please see license.txt
|
||||
/* eslint-disable */
|
||||
|
||||
frappe.query_reports["KSA VAT"] = {
|
||||
onload() {
|
||||
frappe.breadcrumbs.add('Accounts');
|
||||
},
|
||||
"filters": [
|
||||
{
|
||||
"fieldname": "company",
|
||||
"label": __("Company"),
|
||||
"fieldtype": "Link",
|
||||
"options": "Company",
|
||||
"reqd": 1,
|
||||
"default": frappe.defaults.get_user_default("Company")
|
||||
},
|
||||
{
|
||||
"fieldname": "from_date",
|
||||
"label": __("From Date"),
|
||||
"fieldtype": "Date",
|
||||
"reqd": 1,
|
||||
"default": frappe.datetime.add_months(frappe.datetime.get_today(), -1),
|
||||
},
|
||||
{
|
||||
"fieldname": "to_date",
|
||||
"label": __("To Date"),
|
||||
"fieldtype": "Date",
|
||||
"reqd": 1,
|
||||
"default": frappe.datetime.get_today()
|
||||
}
|
||||
],
|
||||
"formatter": function(value, row, column, data, default_formatter) {
|
||||
if (data
|
||||
&& (data.title=='VAT on Sales' || data.title=='VAT on Purchases')
|
||||
&& data.title==value) {
|
||||
value = $(`<span>${value}</span>`);
|
||||
var $value = $(value).css("font-weight", "bold");
|
||||
value = $value.wrap("<p></p>").parent().html();
|
||||
return value
|
||||
}else if (data.title=='Grand Total'){
|
||||
if (data.title==value) {
|
||||
value = $(`<span>${value}</span>`);
|
||||
var $value = $(value).css("font-weight", "bold");
|
||||
value = $value.wrap("<p></p>").parent().html();
|
||||
return value
|
||||
}else{
|
||||
value = default_formatter(value, row, column, data);
|
||||
value = $(`<span>${value}</span>`);
|
||||
var $value = $(value).css("font-weight", "bold");
|
||||
value = $value.wrap("<p></p>").parent().html();
|
||||
console.log($value)
|
||||
return value
|
||||
}
|
||||
}else{
|
||||
value = default_formatter(value, row, column, data);
|
||||
return value;
|
||||
}
|
||||
},
|
||||
};
|
32
erpnext/regional/report/ksa_vat/ksa_vat.json
Normal file
32
erpnext/regional/report/ksa_vat/ksa_vat.json
Normal file
@ -0,0 +1,32 @@
|
||||
{
|
||||
"add_total_row": 0,
|
||||
"columns": [],
|
||||
"creation": "2021-07-13 08:54:38.000949",
|
||||
"disable_prepared_report": 1,
|
||||
"disabled": 1,
|
||||
"docstatus": 0,
|
||||
"doctype": "Report",
|
||||
"filters": [],
|
||||
"idx": 0,
|
||||
"is_standard": "Yes",
|
||||
"modified": "2021-08-26 04:14:37.202594",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Regional",
|
||||
"name": "KSA VAT",
|
||||
"owner": "Administrator",
|
||||
"prepared_report": 1,
|
||||
"ref_doctype": "GL Entry",
|
||||
"report_name": "KSA VAT",
|
||||
"report_type": "Script Report",
|
||||
"roles": [
|
||||
{
|
||||
"role": "System Manager"
|
||||
},
|
||||
{
|
||||
"role": "Accounts Manager"
|
||||
},
|
||||
{
|
||||
"role": "Accounts User"
|
||||
}
|
||||
]
|
||||
}
|
177
erpnext/regional/report/ksa_vat/ksa_vat.py
Normal file
177
erpnext/regional/report/ksa_vat/ksa_vat.py
Normal file
@ -0,0 +1,177 @@
|
||||
# Copyright (c) 2013, Havenir Solutions and contributors
|
||||
# For license information, please see license.txt
|
||||
|
||||
from __future__ import unicode_literals
|
||||
import frappe
|
||||
from frappe import _
|
||||
from frappe.utils import get_url_to_list
|
||||
from erpnext.controllers.taxes_and_totals import get_itemised_tax_breakup_data, get_rounded_tax_amount
|
||||
import json
|
||||
|
||||
def execute(filters=None):
|
||||
columns = columns = get_columns()
|
||||
data = get_data(filters)
|
||||
return columns, data
|
||||
|
||||
def get_columns():
|
||||
return [
|
||||
{
|
||||
"fieldname": "title",
|
||||
"label": _("Title"),
|
||||
"fieldtype": "Data",
|
||||
"width": 300
|
||||
},
|
||||
{
|
||||
"fieldname": "amount",
|
||||
"label": _("Amount (SAR)"),
|
||||
"fieldtype": "Currency",
|
||||
"width": 150,
|
||||
},
|
||||
{
|
||||
"fieldname": "adjustment_amount",
|
||||
"label": _("Adjustment (SAR)"),
|
||||
"fieldtype": "Currency",
|
||||
"width": 150,
|
||||
},
|
||||
{
|
||||
"fieldname": "vat_amount",
|
||||
"label": _("VAT Amount (SAR)"),
|
||||
"fieldtype": "Currency",
|
||||
"width": 150,
|
||||
}
|
||||
]
|
||||
|
||||
def get_data(filters):
|
||||
data = []
|
||||
|
||||
# Validate if vat settings exist
|
||||
company = filters.get('company')
|
||||
if frappe.db.exists('KSA VAT Setting', company) is None:
|
||||
url = get_url_to_list('KSA VAT Setting')
|
||||
frappe.msgprint(f'Create <a href="{url}">KSA VAT Setting</a> for this company')
|
||||
return data
|
||||
|
||||
ksa_vat_setting = frappe.get_doc('KSA VAT Setting', company)
|
||||
|
||||
# Sales Heading
|
||||
append_data(data, 'VAT on Sales', '', '', '')
|
||||
|
||||
grand_total_taxable_amount = 0
|
||||
grand_total_taxable_adjustment_amount = 0
|
||||
grand_total_tax = 0
|
||||
|
||||
for vat_setting in ksa_vat_setting.ksa_vat_sales_accounts:
|
||||
total_taxable_amount, total_taxable_adjustment_amount, \
|
||||
total_tax = get_tax_data_for_each_vat_setting(vat_setting, filters, 'Sales Invoice')
|
||||
|
||||
# Adding results to data
|
||||
append_data(data, vat_setting.title, total_taxable_amount,
|
||||
total_taxable_adjustment_amount, total_tax)
|
||||
|
||||
grand_total_taxable_amount += total_taxable_amount
|
||||
grand_total_taxable_adjustment_amount += total_taxable_adjustment_amount
|
||||
grand_total_tax += total_tax
|
||||
|
||||
# Sales Grand Total
|
||||
append_data(data, 'Grand Total', grand_total_taxable_amount,
|
||||
grand_total_taxable_adjustment_amount, grand_total_tax )
|
||||
|
||||
# Blank Line
|
||||
append_data(data, '', '', '', '')
|
||||
|
||||
# Purchase Heading
|
||||
append_data(data, 'VAT on Purchases', '', '', '')
|
||||
|
||||
grand_total_taxable_amount = 0
|
||||
grand_total_taxable_adjustment_amount = 0
|
||||
grand_total_tax = 0
|
||||
|
||||
for vat_setting in ksa_vat_setting.ksa_vat_purchase_accounts:
|
||||
total_taxable_amount, total_taxable_adjustment_amount, \
|
||||
total_tax = get_tax_data_for_each_vat_setting(vat_setting, filters, 'Purchase Invoice')
|
||||
|
||||
# Adding results to data
|
||||
append_data(data, vat_setting.title, total_taxable_amount,
|
||||
total_taxable_adjustment_amount, total_tax)
|
||||
|
||||
grand_total_taxable_amount += total_taxable_amount
|
||||
grand_total_taxable_adjustment_amount += total_taxable_adjustment_amount
|
||||
grand_total_tax += total_tax
|
||||
|
||||
# Purchase Grand Total
|
||||
append_data(data, 'Grand Total', grand_total_taxable_amount,
|
||||
grand_total_taxable_adjustment_amount, grand_total_tax )
|
||||
|
||||
return data
|
||||
|
||||
def get_tax_data_for_each_vat_setting(vat_setting, filters, doctype):
|
||||
'''
|
||||
(KSA, {filters}, 'Sales Invoice') => 500, 153, 10 \n
|
||||
calculates and returns \n
|
||||
total_taxable_amount, total_taxable_adjustment_amount, total_tax'''
|
||||
from_date = filters.get('from_date')
|
||||
to_date = filters.get('to_date')
|
||||
|
||||
# Initiate variables
|
||||
total_taxable_amount = 0
|
||||
total_taxable_adjustment_amount = 0
|
||||
total_tax = 0
|
||||
# Fetch All Invoices
|
||||
invoices = frappe.get_list(doctype,
|
||||
filters ={
|
||||
'docstatus': 1,
|
||||
'posting_date': ['between', [from_date, to_date]]
|
||||
},
|
||||
fields =['name', 'is_return'])
|
||||
|
||||
for invoice in invoices:
|
||||
invoice_items = frappe.get_list(f'{doctype} Item',
|
||||
filters ={
|
||||
'docstatus': 1,
|
||||
'parent': invoice.name,
|
||||
'item_tax_template': vat_setting.item_tax_template
|
||||
},
|
||||
fields =['item_code', 'net_amount'])
|
||||
|
||||
|
||||
for item in invoice_items:
|
||||
# Summing up total taxable amount
|
||||
if invoice.is_return == 0:
|
||||
total_taxable_amount += item.net_amount
|
||||
|
||||
if invoice.is_return == 1:
|
||||
total_taxable_adjustment_amount += item.net_amount
|
||||
|
||||
# Summing up total tax
|
||||
total_tax += get_tax_amount(item.item_code, vat_setting.account, doctype, invoice.name)
|
||||
|
||||
return total_taxable_amount, total_taxable_adjustment_amount, total_tax
|
||||
|
||||
|
||||
|
||||
def append_data(data, title, amount, adjustment_amount, vat_amount):
|
||||
"""Returns data with appended value."""
|
||||
data.append({"title":title, "amount": amount, "adjustment_amount": adjustment_amount, "vat_amount": vat_amount})
|
||||
|
||||
def get_tax_amount(item_code, account_head, doctype, parent):
|
||||
if doctype == 'Sales Invoice':
|
||||
tax_doctype = 'Sales Taxes and Charges'
|
||||
|
||||
elif doctype == 'Purchase Invoice':
|
||||
tax_doctype = 'Purchase Taxes and Charges'
|
||||
|
||||
item_wise_tax_detail = frappe.get_value(tax_doctype, {
|
||||
'docstatus': 1,
|
||||
'parent': parent,
|
||||
'account_head': account_head
|
||||
}, 'item_wise_tax_detail')
|
||||
|
||||
tax_amount = 0
|
||||
if item_wise_tax_detail and len(item_wise_tax_detail) > 0:
|
||||
item_wise_tax_detail = json.loads(item_wise_tax_detail)
|
||||
for key, value in item_wise_tax_detail.items():
|
||||
if key == item_code:
|
||||
tax_amount = value[1]
|
||||
break
|
||||
|
||||
return tax_amount
|
@ -3,9 +3,26 @@
|
||||
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import frappe
|
||||
from frappe.permissions import add_permission, update_permission_property
|
||||
from erpnext.regional.united_arab_emirates.setup import make_custom_fields, add_print_formats
|
||||
from erpnext.regional.saudi_arabia.wizard.operations.setup_ksa_vat_setting import create_ksa_vat_setting
|
||||
|
||||
|
||||
def setup(company=None, patch=True):
|
||||
make_custom_fields()
|
||||
add_print_formats()
|
||||
add_permissions()
|
||||
create_ksa_vat_setting(company)
|
||||
|
||||
|
||||
def add_permissions():
|
||||
"""Add Permissions for KSA VAT Setting."""
|
||||
add_permission('KSA VAT Setting', 'All', 0)
|
||||
for role in ('Accounts Manager', 'Accounts User', 'System Manager'):
|
||||
add_permission('KSA VAT Setting', role, 0)
|
||||
update_permission_property('KSA VAT Setting', role, 0, 'write', 1)
|
||||
update_permission_property('KSA VAT Setting', role, 0, 'create', 1)
|
||||
|
||||
"""Enable KSA VAT Report"""
|
||||
frappe.db.set_value('Report', 'KSA VAT', 'disabled', 0)
|
||||
|
0
erpnext/regional/saudi_arabia/wizard/__init__.py
Normal file
0
erpnext/regional/saudi_arabia/wizard/__init__.py
Normal file
@ -0,0 +1,47 @@
|
||||
[
|
||||
{
|
||||
"type": "Sales Account",
|
||||
"accounts": [
|
||||
{
|
||||
"title": "Standard rated Sales",
|
||||
"item_tax_template": "KSA VAT 5%",
|
||||
"account": "VAT 5%"
|
||||
},
|
||||
{
|
||||
"title": "Zero rated domestic sales",
|
||||
"item_tax_template": "KSA VAT Zero",
|
||||
"account": "VAT Zero"
|
||||
},
|
||||
{
|
||||
"title": "Exempted sales",
|
||||
"item_tax_template": "KSA VAT Exempted",
|
||||
"account": "VAT Zero"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "Purchase Account",
|
||||
"accounts": [
|
||||
{
|
||||
"title": "Standard rated domestic purchases",
|
||||
"item_tax_template": "KSA VAT 5%",
|
||||
"account": "VAT 5%"
|
||||
},
|
||||
{
|
||||
"title": "Imports subject to VAT paid at customs",
|
||||
"item_tax_template": "KSA Excise 50%",
|
||||
"account": "Excise 50%"
|
||||
},
|
||||
{
|
||||
"title": "Zero rated purchases",
|
||||
"item_tax_template": "KSA VAT Zero",
|
||||
"account": "VAT Zero"
|
||||
},
|
||||
{
|
||||
"title": "Exempted purchases",
|
||||
"item_tax_template": "KSA VAT Exempted",
|
||||
"account": "VAT Zero"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
@ -0,0 +1,45 @@
|
||||
import frappe
|
||||
import os
|
||||
import json
|
||||
from erpnext.setup.setup_wizard.operations.taxes_setup import setup_taxes_and_charges
|
||||
|
||||
def create_ksa_vat_setting(company):
|
||||
"""
|
||||
On creation of first company. Creates KSA VAT Setting"""
|
||||
|
||||
company = frappe.get_doc('Company', company)
|
||||
setup_taxes_and_charges(company.name, company.country)
|
||||
|
||||
file_path = os.path.join(os.path.dirname(__file__), '..', 'data', 'ksa_vat_settings.json')
|
||||
with open(file_path, 'r') as json_file:
|
||||
account_data = json.load(json_file)
|
||||
|
||||
|
||||
# Creating KSA VAT Setting
|
||||
ksa_vat_setting = frappe.get_doc({
|
||||
'doctype': 'KSA VAT Setting',
|
||||
'company': company.name
|
||||
})
|
||||
|
||||
for data in account_data:
|
||||
if data['type'] == 'Sales Account':
|
||||
for row in data['accounts']:
|
||||
item_tax_template = row['item_tax_template']
|
||||
account = row['account']
|
||||
ksa_vat_setting.append('ksa_vat_sales_accounts', {
|
||||
'title': row['title'],
|
||||
'item_tax_template': f'{item_tax_template} - {company.abbr}',
|
||||
'account': f'{account} - {company.abbr}'
|
||||
})
|
||||
|
||||
elif data['type'] == 'Purchase Account':
|
||||
for row in data['accounts']:
|
||||
item_tax_template = row['item_tax_template']
|
||||
account = row['account']
|
||||
ksa_vat_setting.append('ksa_vat_purchase_accounts', {
|
||||
'title': row['title'],
|
||||
'item_tax_template': f'{item_tax_template} - {company.abbr}',
|
||||
'account': f'{account} - {company.abbr}'
|
||||
})
|
||||
|
||||
ksa_vat_setting.save()
|
Loading…
x
Reference in New Issue
Block a user