[IMP] l10n_in: GST introduced as new legal requirements.

aka 'Indian localization out of the box'.

Details:
     GST introduced, module refactored.
     Update GST chart of account, tags and SGST, CGST & IGST taxes.
     Replace vat label with GSTIN in reports & views.
     Added HSN Code field and display it on invoice form view & report.
     Added pin number field in res_country_state.
     Show the total amount in words based on Indian numbering system on form view of customer/supplier invoice/refund.
     Arrange address format of India country.
     l10n_in_schedule6: Introduce new GST taxes, chart of accounts & account tags.
     l10n_in_sale, l10n_in_purchase, l10n_in_stock: added modules to add hsn code and replace vat with gstin in sale, purchase & stock reports

Was task: 33241. Was PR #18952
This commit is contained in:
Foram Katharotiya
2017-09-18 22:17:43 +02:00
committed by qdp-odoo
parent 194c38f09d
commit 2b3c8e6ca9
32 changed files with 2116 additions and 1622 deletions
+2
View File
@@ -1,2 +1,4 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from . import models
+8 -1
View File
@@ -18,12 +18,19 @@ Sheet, now only Vertical format has been permitted Which is Supported By Odoo.
""",
'category': 'Localization',
'depends': [
'account',
'account_tax_python',
],
'data': [
'data/account_data.xml',
'data/l10n_in_chart_data.xml',
'data/account_tax_template_data.xml',
'data/account_fiscal_position_data.xml',
'data/res_country_state_data.xml',
'data/account_chart_template_data.yml',
'views/product_template_view.xml',
'views/report_invoice.xml',
'views/res_company_view.xml',
'views/res_country_state_view.xml',
'views/res_partner_views.xml',
],
}
+8 -17
View File
@@ -3,26 +3,17 @@
<data noupdate="1">
<!-- Account Tax Group -->
<record id="tax_group_1" model="account.tax.group">
<field name="name">VAT 1%</field>
<record id="sgst_group" model="account.tax.group">
<field name="name">SGST</field>
</record>
<record id="tax_group_25" model="account.tax.group">
<field name="name">VAT 2.5%</field>
<record id="cgst_group" model="account.tax.group">
<field name="name">CGST</field>
</record>
<record id="tax_group_4" model="account.tax.group">
<field name="name">VAT 4%</field>
<record id="igst_group" model="account.tax.group">
<field name="name">IGST</field>
</record>
<record id="tax_group_12" model="account.tax.group">
<field name="name">VAT 12%</field>
</record>
<record id="tax_group_125" model="account.tax.group">
<field name="name">VAT 12.5%</field>
</record>
<record id="tax_group_14" model="account.tax.group">
<field name="name">VAT 14%</field>
</record>
<record id="tax_group_15" model="account.tax.group">
<field name="name">VAT 15%</field>
<record id="cess_group" model="account.tax.group">
<field name="name">Cess</field>
</record>
</data>
@@ -0,0 +1,140 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- Fiscal Position Templates -->
<record model="account.fiscal.position.template" id="fiscal_position_in_inter_state">
<field name="chart_template_id" ref="indian_chart_template_standard"/>
<field name="name">Inter State</field>
</record>
<record model="account.fiscal.position.template" id="fiscal_position_in_export">
<field name="chart_template_id" ref="indian_chart_template_standard"/>
<field name="name">Export</field>
</record>
<!-- Fiscal Position Tax Templates -->
<record id="account_fiscal_position_tax_in_sale_1_inter" model="account.fiscal.position.tax.template">
<field name="position_id" ref="fiscal_position_in_inter_state"/>
<field name="tax_src_id" ref="sgst_sale_1"/>
<field name="tax_dest_id" ref="igst_sale_1"/>
</record>
<record id="account_fiscal_position_tax_in_sale_2_inter" model="account.fiscal.position.tax.template">
<field name="position_id" ref="fiscal_position_in_inter_state"/>
<field name="tax_src_id" ref="sgst_sale_2"/>
<field name="tax_dest_id" ref="igst_sale_2"/>
</record>
<record id="account_fiscal_position_tax_in_sale_5_inter" model="account.fiscal.position.tax.template">
<field name="position_id" ref="fiscal_position_in_inter_state"/>
<field name="tax_src_id" ref="sgst_sale_5"/>
<field name="tax_dest_id" ref="igst_sale_5"/>
</record>
<record id="account_fiscal_position_tax_in_sale_12_inter" model="account.fiscal.position.tax.template">
<field name="position_id" ref="fiscal_position_in_inter_state"/>
<field name="tax_src_id" ref="sgst_sale_12"/>
<field name="tax_dest_id" ref="igst_sale_12"/>
</record>
<record id="account_fiscal_position_tax_in_sale_18_inter" model="account.fiscal.position.tax.template">
<field name="position_id" ref="fiscal_position_in_inter_state"/>
<field name="tax_src_id" ref="sgst_sale_18"/>
<field name="tax_dest_id" ref="igst_sale_18"/>
</record>
<record id="account_fiscal_position_tax_in_sale_28_inter" model="account.fiscal.position.tax.template">
<field name="position_id" ref="fiscal_position_in_inter_state"/>
<field name="tax_src_id" ref="sgst_sale_28"/>
<field name="tax_dest_id" ref="igst_sale_28"/>
</record>
<record id="account_fiscal_position_tax_in_purchase_1_inter" model="account.fiscal.position.tax.template">
<field name="position_id" ref="fiscal_position_in_inter_state"/>
<field name="tax_src_id" ref="sgst_purchase_1"/>
<field name="tax_dest_id" ref="igst_purchase_1"/>
</record>
<record id="account_fiscal_position_tax_in_purchase_2_inter" model="account.fiscal.position.tax.template">
<field name="position_id" ref="fiscal_position_in_inter_state"/>
<field name="tax_src_id" ref="sgst_purchase_2"/>
<field name="tax_dest_id" ref="igst_purchase_2"/>
</record>
<record id="account_fiscal_position_tax_in_purchase_5_inter" model="account.fiscal.position.tax.template">
<field name="position_id" ref="fiscal_position_in_inter_state"/>
<field name="tax_src_id" ref="sgst_purchase_5"/>
<field name="tax_dest_id" ref="igst_purchase_5"/>
</record>
<record id="account_fiscal_position_tax_in_purchase_12_inter" model="account.fiscal.position.tax.template">
<field name="position_id" ref="fiscal_position_in_inter_state"/>
<field name="tax_src_id" ref="sgst_purchase_12"/>
<field name="tax_dest_id" ref="igst_purchase_12"/>
</record>
<record id="account_fiscal_position_tax_in_purchase_18_inter" model="account.fiscal.position.tax.template">
<field name="position_id" ref="fiscal_position_in_inter_state"/>
<field name="tax_src_id" ref="sgst_purchase_18"/>
<field name="tax_dest_id" ref="igst_purchase_18"/>
</record>
<record id="account_fiscal_position_tax_in_purchase_28_inter" model="account.fiscal.position.tax.template">
<field name="position_id" ref="fiscal_position_in_inter_state"/>
<field name="tax_src_id" ref="sgst_purchase_28"/>
<field name="tax_dest_id" ref="igst_purchase_28"/>
</record>
<record id="account_fiscal_position_tax_in_sale_1_exp" model="account.fiscal.position.tax.template">
<field name="position_id" ref="fiscal_position_in_export"/>
<field name="tax_src_id" ref="sgst_sale_1"/>
<field name="tax_dest_id" ref="igst_sale_1"/>
</record>
<record id="account_fiscal_position_tax_in_sale_2_exp" model="account.fiscal.position.tax.template">
<field name="position_id" ref="fiscal_position_in_export"/>
<field name="tax_src_id" ref="sgst_sale_2"/>
<field name="tax_dest_id" ref="igst_sale_2"/>
</record>
<record id="account_fiscal_position_tax_in_sale_5_exp" model="account.fiscal.position.tax.template">
<field name="position_id" ref="fiscal_position_in_export"/>
<field name="tax_src_id" ref="sgst_sale_5"/>
<field name="tax_dest_id" ref="igst_sale_5"/>
</record>
<record id="account_fiscal_position_tax_in_sale_12_exp" model="account.fiscal.position.tax.template">
<field name="position_id" ref="fiscal_position_in_export"/>
<field name="tax_src_id" ref="sgst_sale_12"/>
<field name="tax_dest_id" ref="igst_sale_12"/>
</record>
<record id="account_fiscal_position_tax_in_sale_18_exp" model="account.fiscal.position.tax.template">
<field name="position_id" ref="fiscal_position_in_export"/>
<field name="tax_src_id" ref="sgst_sale_18"/>
<field name="tax_dest_id" ref="igst_sale_18"/>
</record>
<record id="account_fiscal_position_tax_in_sale_28_exp" model="account.fiscal.position.tax.template">
<field name="position_id" ref="fiscal_position_in_export"/>
<field name="tax_src_id" ref="sgst_sale_28"/>
<field name="tax_dest_id" ref="igst_sale_28"/>
</record>
<record id="account_fiscal_position_tax_in_purchase_1_exp" model="account.fiscal.position.tax.template">
<field name="position_id" ref="fiscal_position_in_export"/>
<field name="tax_src_id" ref="sgst_purchase_1"/>
<field name="tax_dest_id" ref="igst_purchase_1"/>
</record>
<record id="account_fiscal_position_tax_in_purchase_2_exp" model="account.fiscal.position.tax.template">
<field name="position_id" ref="fiscal_position_in_export"/>
<field name="tax_src_id" ref="sgst_purchase_2"/>
<field name="tax_dest_id" ref="igst_purchase_2"/>
</record>
<record id="account_fiscal_position_tax_in_purchase_5_exp" model="account.fiscal.position.tax.template">
<field name="position_id" ref="fiscal_position_in_export"/>
<field name="tax_src_id" ref="sgst_purchase_5"/>
<field name="tax_dest_id" ref="igst_purchase_5"/>
</record>
<record id="account_fiscal_position_tax_in_purchase_12_exp" model="account.fiscal.position.tax.template">
<field name="position_id" ref="fiscal_position_in_export"/>
<field name="tax_src_id" ref="sgst_purchase_12"/>
<field name="tax_dest_id" ref="igst_purchase_12"/>
</record>
<record id="account_fiscal_position_tax_in_purchase_18_exp" model="account.fiscal.position.tax.template">
<field name="position_id" ref="fiscal_position_in_export"/>
<field name="tax_src_id" ref="sgst_purchase_18"/>
<field name="tax_dest_id" ref="igst_purchase_18"/>
</record>
<record id="account_fiscal_position_tax_in_purchase_28_exp" model="account.fiscal.position.tax.template">
<field name="position_id" ref="fiscal_position_in_export"/>
<field name="tax_src_id" ref="sgst_purchase_28"/>
<field name="tax_dest_id" ref="igst_purchase_28"/>
</record>
</odoo>
File diff suppressed because it is too large Load Diff
+38 -56
View File
@@ -20,6 +20,19 @@
<field name="chart_template_id" ref="indian_chart_template_standard"/>
</record>
<record id="sgst_tag_account" model="account.account.tag">
<field name="name">SGST</field>
<field name="applicability">accounts</field>
</record>
<record id="cgst_tag_account" model="account.account.tag">
<field name="name">CGST</field>
<field name="applicability">accounts</field>
</record>
<record id="igst_tag_account" model="account.account.tag">
<field name="name">IGST</field>
<field name="applicability">accounts</field>
</record>
<record model="account.account.template" id="p10031">
<field name="name">Inventories</field>
<field name="code">10031</field>
@@ -34,47 +47,31 @@
<field name="reconcile" eval="True"/>
<field name="chart_template_id" ref="indian_chart_template_standard"/>
</record>
<record model="account.account.template" id="p10050">
<field name="name">Sales Tax Receivable</field>
<field name="code">10050</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="reconcile" eval="False"/>
<field name="chart_template_id" ref="indian_chart_template_standard"/>
</record>
<record model="account.account.template" id="p10051">
<field name="name">VAT Receivable</field>
<field name="name">SGST Receivable</field>
<field name="code">10051</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="reconcile" eval="False"/>
<field name="chart_template_id" ref="indian_chart_template_standard"/>
<field name="tag_ids" eval="[(6,0,[ref('sgst_tag_account'),])]"/>
</record>
<record model="account.account.template" id="p100521">
<field name="name">Excise Duty Receivable</field>
<field name="code">100521</field>
<record model="account.account.template" id="p10052">
<field name="name">CGST Receivable</field>
<field name="code">10052</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="reconcile" eval="False"/>
<field name="chart_template_id" ref="indian_chart_template_standard"/>
<field name="tag_ids" eval="[(6,0,[ref('cgst_tag_account'),])]"/>
</record>
<record model="account.account.template" id="p100531">
<field name="name">Service Tax Receivable</field>
<field name="code">100531</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="reconcile" eval="False"/>
<field name="chart_template_id" ref="indian_chart_template_standard"/>
</record>
<record model="account.account.template" id="p100532">
<field name="name">Swachh Bharat Cess Receivable On Service</field>
<field name="code">100532</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="reconcile" eval="False"/>
<field name="chart_template_id" ref="indian_chart_template_standard"/>
</record>
<record model="account.account.template" id="p100533">
<field name="name">Krishi Kalyan Cess Receivable On Service</field>
<field name="code">100533</field>
<record model="account.account.template" id="p10053">
<field name="name">IGST Receivable</field>
<field name="code">10053</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="reconcile" eval="False"/>
<field name="chart_template_id" ref="indian_chart_template_standard"/>
<field name="tag_ids" eval="[(6,0,[ref('igst_tag_account'),])]"/>
</record>
<record model="account.account.template" id="p10054">
<field name="name">TDS Receivable</field>
@@ -207,46 +204,30 @@
<field name="chart_template_id" ref="indian_chart_template_standard"/>
</record>
<record model="account.account.template" id="p11232">
<field name="name">VAT Payable</field>
<field name="name">SGST Payable</field>
<field name="code">11232</field>
<field name="user_type_id" ref="account.data_account_type_current_liabilities"/>
<field name="reconcile" eval="False"/>
<field name="chart_template_id" ref="indian_chart_template_standard"/>
<field name="tag_ids" eval="[(6,0,[ref('sgst_tag_account'),])]"/>
</record>
<record model="account.account.template" id="p112331">
<field name="name">Excise Duty Payable</field>
<field name="code">112331</field>
<record model="account.account.template" id="p11233">
<field name="name">CGST Payable</field>
<field name="code">11233</field>
<field name="user_type_id" ref="account.data_account_type_current_liabilities"/>
<field name="reconcile" eval="False"/>
<field name="chart_template_id" ref="indian_chart_template_standard"/>
<field name="tag_ids" eval="[(6,0,[ref('cgst_tag_account'),])]"/>
</record>
<record model="account.account.template" id="p112341">
<field name="name">Service Tax Payable</field>
<field name="code">112341</field>
<field name="user_type_id" ref="account.data_account_type_current_liabilities"/>
<field name="reconcile" eval="False"/>
<field name="chart_template_id" ref="indian_chart_template_standard"/>
</record>
<record model="account.account.template" id="p112342">
<field name="name">Swachh Bharat Cess Payable On Service</field>
<field name="code">112342</field>
<field name="user_type_id" ref="account.data_account_type_current_liabilities"/>
<field name="reconcile" eval="False"/>
<field name="chart_template_id" ref="indian_chart_template_standard"/>
</record>
<record model="account.account.template" id="p112343">
<field name="name">Krishi Kalyan Cess Payable On Service</field>
<field name="code">112343</field>
<field name="user_type_id" ref="account.data_account_type_current_liabilities"/>
<field name="reconcile" eval="False"/>
<field name="chart_template_id" ref="indian_chart_template_standard"/>
</record>
<record model="account.account.template" id="p11235">
<field name="name">Sales Tax Payable</field>
<field name="code">11235</field>
<record model="account.account.template" id="p11234">
<field name="name">IGST Payable</field>
<field name="code">11234</field>
<field name="user_type_id" ref="account.data_account_type_current_liabilities"/>
<field name="reconcile" eval="False"/>
<field name="chart_template_id" ref="indian_chart_template_standard"/>
<field name="tag_ids" eval="[(6,0,[ref('igst_tag_account'),])]"/>
</record>
<record model="account.account.template" id="p11241">
<field name="name">Wages Payable</field>
@@ -528,4 +509,5 @@
<field name="income_currency_exchange_account_id" ref="p2013"/>
<field name="expense_currency_exchange_account_id" ref="p2117"/>
</record>
</odoo>
@@ -0,0 +1,113 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="base.state_in_an" model="res.country.state">
<field name="l10n_in_tin">35</field>
</record>
<record id="base.state_in_ap" model="res.country.state">
<field name="l10n_in_tin">28</field>
</record>
<record id="base.state_in_ar" model="res.country.state">
<field name="l10n_in_tin">12</field>
</record>
<record id="base.state_in_as" model="res.country.state">
<field name="l10n_in_tin">18</field>
</record>
<record id="base.state_in_br" model="res.country.state">
<field name="l10n_in_tin">10</field>
</record>
<record id="base.state_in_ch" model="res.country.state">
<field name="l10n_in_tin">04</field>
</record>
<record id="base.state_in_cg" model="res.country.state">
<field name="l10n_in_tin">22</field>
</record>
<record id="base.state_in_dn" model="res.country.state">
<field name="l10n_in_tin">26</field>
</record>
<record id="base.state_in_dd" model="res.country.state">
<field name="l10n_in_tin">25</field>
</record>
<record id="base.state_in_dl" model="res.country.state">
<field name="l10n_in_tin">07</field>
</record>
<record id="base.state_in_ga" model="res.country.state">
<field name="l10n_in_tin">30</field>
</record>
<record id="base.state_in_gj" model="res.country.state">
<field name="l10n_in_tin">24</field>
</record>
<record id="base.state_in_hr" model="res.country.state">
<field name="l10n_in_tin">06</field>
</record>
<record id="base.state_in_hp" model="res.country.state">
<field name="l10n_in_tin">02</field>
</record>
<record id="base.state_in_jk" model="res.country.state">
<field name="l10n_in_tin">01</field>
</record>
<record id="base.state_in_jh" model="res.country.state">
<field name="l10n_in_tin">20</field>
</record>
<record id="base.state_in_ka" model="res.country.state">
<field name="l10n_in_tin">29</field>
</record>
<record id="base.state_in_kl" model="res.country.state">
<field name="l10n_in_tin">32</field>
</record>
<record id="base.state_in_ld" model="res.country.state">
<field name="l10n_in_tin">31</field>
</record>
<record id="base.state_in_mp" model="res.country.state">
<field name="l10n_in_tin">23</field>
</record>
<record id="base.state_in_mh" model="res.country.state">
<field name="l10n_in_tin">27</field>
</record>
<record id="base.state_in_mn" model="res.country.state">
<field name="l10n_in_tin">14</field>
</record>
<record id="base.state_in_ml" model="res.country.state">
<field name="l10n_in_tin">17</field>
</record>
<record id="base.state_in_mz" model="res.country.state">
<field name="l10n_in_tin">15</field>
</record>
<record id="base.state_in_nl" model="res.country.state">
<field name="l10n_in_tin">13</field>
</record>
<record id="base.state_in_or" model="res.country.state">
<field name="l10n_in_tin">21</field>
</record>
<record id="base.state_in_py" model="res.country.state">
<field name="l10n_in_tin">34</field>
</record>
<record id="base.state_in_pb" model="res.country.state">
<field name="l10n_in_tin">03</field>
</record>
<record id="base.state_in_rj" model="res.country.state">
<field name="l10n_in_tin">08</field>
</record>
<record id="base.state_in_sk" model="res.country.state">
<field name="l10n_in_tin">11</field>
</record>
<record id="base.state_in_tn" model="res.country.state">
<field name="l10n_in_tin">33</field>
</record>
<record id="base.state_in_ts" model="res.country.state">
<field name="l10n_in_tin">36</field>
</record>
<record id="base.state_in_tr" model="res.country.state">
<field name="l10n_in_tin">16</field>
</record>
<record id="base.state_in_up" model="res.country.state">
<field name="l10n_in_tin">09</field>
</record>
<record id="base.state_in_uk" model="res.country.state">
<field name="l10n_in_tin">05</field>
</record>
<record id="base.state_in_wb" model="res.country.state">
<field name="l10n_in_tin">19</field>
</record>
</odoo>
+7
View File
@@ -0,0 +1,7 @@
# -*- coding:utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from . import account_invoice
from . import chart_template
from . import product_template
from . import res_country_state
+43
View File
@@ -0,0 +1,43 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import api, fields, models, _
class AccountInvoice(models.Model):
_inherit = "account.invoice"
@api.depends('amount_total')
def _compute_amount_total_words(self):
for invoice in self:
invoice.amount_total_words = invoice.currency_id.amount_to_text(invoice.amount_total)
amount_total_words = fields.Char("Total (In Words)", compute="_compute_amount_total_words")
def _get_printed_report_name(self):
self.ensure_one()
if self.company_id.country_id.code != 'IN':
return super(AccountInvoice, self)._get_printed_report_name()
return self.type == 'out_invoice' and self.state == 'draft' and _('Draft %s') % (self.journal_id.name) or \
self.type == 'out_invoice' and self.state in ('open','paid') and '%s - %s' % (self.journal_id.name, self.number) or \
self.type == 'out_refund' and self.state == 'draft' and _('Credit Note') or \
self.type == 'out_refund' and _('Credit Note - %s') % (self.number) or \
self.type == 'in_invoice' and self.state == 'draft' and _('Vendor Bill') or \
self.type == 'in_invoice' and self.state in ('open','paid') and _('Vendor Bill - %s') % (self.number) or \
self.type == 'in_refund' and self.state == 'draft' and _('Vendor Credit Note') or \
self.type == 'in_refund' and _('Vendor Credit Note - %s') % (self.number)
@api.multi
def _invoice_line_tax_values(self):
self.ensure_one()
tax_datas = {}
TAX = self.env['account.tax']
for line in self.mapped('invoice_line_ids'):
price_unit = line.price_unit * (1 - (line.discount or 0.0) / 100.0)
tax_lines = line.invoice_line_tax_ids.compute_all(price_unit, line.invoice_id.currency_id, line.quantity, line.product_id, line.invoice_id.partner_id)['taxes']
for tax_line in tax_lines:
tax_line['tag_ids'] = TAX.browse(tax_line['id']).tag_ids.ids
tax_datas[line.id] = tax_lines
return tax_datas
+23
View File
@@ -0,0 +1,23 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import api, models, _
class AccountChartTemplate(models.Model):
_inherit = 'account.chart.template'
@api.multi
def _prepare_all_journals(self, acc_template_ref, company, journals_dict=None):
res = super(AccountChartTemplate, self)._prepare_all_journals(
acc_template_ref, company, journals_dict=journals_dict)
if not self == self.env.ref('l10n_in.indian_chart_template_standard'):
return res
for journal in res:
if journal['code'] == 'INV':
journal['name'] = _('Tax Invoices')
res += [{'type': 'sale', 'name': _('Retail Invoices'), 'code': 'RETINV', 'company_id': company.id, 'show_on_dashboard': True,},
{'type': 'sale', 'name': _('Export Invoices'), 'code': 'EXPINV', 'company_id': company.id, 'show_on_dashboard': True,},]
return res
+10
View File
@@ -0,0 +1,10 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import models, fields
class ProductTemplate(models.Model):
_inherit = 'product.template'
l10n_in_hsn_code = fields.Char(string="HSN/SAC Code", help="Harmonized System Nomenclature/Services Accounting Code")
@@ -0,0 +1,10 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import fields, models
class CountryState(models.Model):
_inherit = 'res.country.state'
l10n_in_tin = fields.Char('TIN Number', size=2, help="TIN number-first two digits")
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record model="ir.ui.view" id="l10n_in.product_template_hs_code">
<field name="name">l10n_in.product.template.form.hs_code</field>
<field name="model">product.template</field>
<field name="inherit_id" ref="product.product_template_form_view"/>
<field name="arch" type="xml">
<field name="categ_id" position="after">
<field name="l10n_in_hsn_code"/>
</field>
</field>
</record>
</odoo>
+130
View File
@@ -0,0 +1,130 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="l10n_in_report_invoice_document_inherit" inherit_id="account.report_invoice_document">
<xpath expr="//table[@name='invoice_line_table']" position="before">
<t t-if="o.company_id.country_id.code == 'IN'">
<!-- Tag wise Tax Calculation -->
<t t-set="tag_cgst_id" t-value="env.ref('l10n_in.cgst_tag_tax').id"/>
<t t-set="tag_sgst_id" t-value="env.ref('l10n_in.sgst_tag_tax').id"/>
<t t-set="tag_igst_id" t-value="env.ref('l10n_in.igst_tag_tax').id"/>
<t t-set="tag_cess_id" t-value="env.ref('l10n_in.cess_tag_tax').id"/>
<t t-set="tax_map" t-value="o.tax_line_ids.mapped('tax_id.tag_ids.id')"/>
<t t-set="is_igst" t-value="tag_igst_id in tax_map"/>
<t t-set="is_cgst" t-value="tag_cgst_id in tax_map"/>
<t t-set="is_cess" t-value="tag_cess_id in tax_map"/>
<t t-set="tax_datas" t-value="o._invoice_line_tax_values()"/>
</t>
</xpath>
<xpath expr="//p[@t-if='o.comment']" position="before">
<t t-if="o.company_id.country_id.code == 'IN'">
<p id="total_in_words" class="mb16">
<strong>Total (In Words): </strong>
<span t-field="o.amount_total_words"/>
</p>
</t>
</xpath>
<xpath expr="//table[@name='invoice_line_table']" position="replace">
<table class="table table-condensed" name="invoice_line_table">
<thead>
<tr>
<th>Description</th>
<th class="hidden">Source Document</th>
<th class="text-right">Quantity</th>
<th class="text-right">Unit Price</th>
<th t-if="display_discount" class="text-right">Disc.(%)</th>
<t t-if="len(o.tax_line_ids) > 0">
<th class="text-right">Taxes</th>
</t>
<th class="text-right">Amount</th>
<t t-if="o.company_id.country_id.code == 'IN'">
<th class="text-right" t-if="is_cgst">CGST</th>
<th class="text-right" t-if="is_cgst">SGST</th>
<th class="text-right" t-if="is_igst">IGST</th>
<th class="text-right" t-if="is_cess">CESS</th>
</t>
</tr>
</thead>
<tbody class="invoice_tbody">
<tr t-foreach="o.invoice_line_ids" t-as="l">
<td><span t-field="l.name"/><t t-if="l.product_id.l10n_in_hsn_code"><h6><strong class="ml16">HSN/SAC Code:</strong> <span t-field="l.product_id.l10n_in_hsn_code"/></h6></t></td>
<td class="hidden"><span t-field="l.origin"/></td>
<td class="text-right">
<span t-field="l.quantity"/>
<span t-field="l.uom_id" groups="product.group_uom"/>
</td>
<td class="text-right">
<span t-field="l.price_unit"/>
</td>
<td t-if="display_discount" class="text-right">
<span t-field="l.discount"/>
</td>
<t t-if="len(o.tax_line_ids) > 0">
<td class="text-right">
<span t-esc="', '.join(map(lambda x: (x.description or x.name), l.invoice_line_tax_ids))"/>
</td>
</t>
<td class="text-right" id="subtotal">
<span t-field="l.price_subtotal"
t-options='{"widget": "monetary", "display_currency": o.currency_id}'/>
</td>
<t t-if="o.company_id.country_id.code == 'IN'">
<td class="text-right" t-if="is_cgst">
<t t-foreach="tax_datas[l.id]" t-as="tax_data">
<t t-if="tag_cgst_id in tax_data['tag_ids']">
<t t-esc="tax_data['amount']"/>
</t>
</t>
</td>
<td class="text-right" t-if="is_cgst">
<t t-foreach="tax_datas[l.id]" t-as="tax_data">
<t t-if="tag_sgst_id in tax_data['tag_ids']">
<t t-esc="tax_data['amount']"/>
</t>
</t>
</td>
<td class="text-right" t-if="is_igst">
<t t-foreach="tax_datas[l.id]" t-as="tax_data">
<t t-if="tag_igst_id in tax_data['tag_ids']">
<t t-esc="tax_data['amount']"/>
</t>
</t>
</td>
<t t-set="total_cess" t-value="0.0"/>
<td class="text-right" t-if="is_cess">
<t t-foreach="tax_datas[l.id]" t-as="tax_data">
<t t-if="tag_cess_id in tax_data['tag_ids']">
<t t-set="total_cess" t-value="total_cess + tax_data['amount']"/>
</t>
</t>
<t t-esc="total_cess"/>
</td>
</t>
</tr>
<tr t-foreach="range(max(5-len(o.invoice_line_ids),0))" t-as="l">
<td>&amp;nbsp;</td>
<td class="hidden"></td>
<td></td>
<td></td>
<td t-if="display_discount" groups="sale.group_discount_per_so_line"></td>
<td t-att-colspan="o.company_id.country_id.code == 'IN' and 5 or 1"></td>
</tr>
</tbody>
</table>
</xpath>
<xpath expr="//h2" position="replace">
<h2>
<span t-if="o.type == 'out_invoice' and (o.state == 'open' or o.state == 'paid')" t-field="o.journal_id.name"/>
<span t-if="o.type == 'out_invoice' and o.state == 'draft'">Draft <span t-field="o.journal_id.name"/></span>
<span t-if="o.type == 'out_invoice' and o.state == 'cancel'">Cancelled <span t-field="o.journal_id.name"/></span>
<span t-if="o.type == 'out_refund'">Credit Note</span>
<span t-if="o.type == 'in_refund'">Vendor Credit Note</span>
<span t-if="o.type == 'in_invoice'">Vendor Bill</span>
<span t-field="o.number"/>
</h2>
</xpath>
</template>
</odoo>
+16
View File
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="l10n_in_view_company_form" model="ir.ui.view">
<field name="name">l10n.in.view.company.form</field>
<field name="model">res.company</field>
<field name="priority" eval="100"/>
<field name="inherit_id" ref="base.view_company_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='vat']" position="attributes">
<attribute name="string">GSTIN</attribute>
</xpath>
</field>
</record>
</odoo>
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="l10n_in_view_country_state_form_inherit" model="ir.ui.view">
<field name="name">l10n.in.res.country.state.form.inhert</field>
<field name="model">res.country.state</field>
<field name="inherit_id" ref="base.view_country_state_form"/>
<field name="arch" type="xml">
<field name="code" position="after">
<field name="l10n_in_tin"/>
</field>
</field>
</record>
</odoo>
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="l10n_in_view_partner_form" model="ir.ui.view">
<field name="name">l10n.in.res.partner.vat.inherit</field>
<field name="model">res.partner</field>
<field name="priority" eval="100"/>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='vat']" position="attributes">
<attribute name="string">GSTIN</attribute>
</xpath>
</field>
</record>
</odoo>
+2
View File
@@ -0,0 +1,2 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
+19
View File
@@ -0,0 +1,19 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
{
'name': 'Indian - Purchase Report(GST)',
'version': '1.0',
'description': """GST Purchase Report""",
'category': 'Localization',
'depends': [
'l10n_in',
'purchase',
],
'data': [
'views/report_purchase_order.xml',
],
'installable': True,
'application': False,
'auto_install': True,
}
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="gst_report_purchaseorder_document_inherit" inherit_id="purchase.report_purchaseorder_document">
<xpath expr="//tr[@t-foreach='o.order_line']/td[1]" position="replace">
<td><span t-field="line.name"/><t t-if="line.product_id.l10n_in_hsn_code and o.company_id.country_id.code == 'IN'"><h6><strong class="ml16">HSN/SAC Code:</strong> <span t-field="line.product_id.l10n_in_hsn_code"/></h6></t></td>
</xpath>
</template>
<template id="gst_report_purchasequotation_document_inherit" inherit_id="purchase.report_purchasequotation_document">
<xpath expr="//tr[@t-foreach='o.order_line']/td[1]" position="replace">
<td><span t-field="order_line.name"/><t t-if="order_line.product_id.l10n_in_hsn_code and o.company_id.country_id.code == 'IN'"><h6><strong class="ml16">HSN/SAC Code:</strong> <span t-field="order_line.product_id.l10n_in_hsn_code"/></h6></t></td>
</xpath>
</template>
</odoo>
+2
View File
@@ -0,0 +1,2 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
+20
View File
@@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
{
'name': 'Indian - Sale Report(GST)',
'version': '1.0',
'description': """GST Sale Report""",
'category': 'Localization',
'depends': [
'l10n_in',
'sale',
],
'data': [
'views/report_sale_order.xml',
'views/report_invoice_view.xml',
],
'installable': True,
'application': False,
'auto_install': True,
}
@@ -0,0 +1,114 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="gst_report_invoice_layouted_inherit" inherit_id="sale.report_invoice_layouted">
<xpath expr="//t[@name='lines_layouted']" position="replace">
<t groups="sale.group_sale_layout" t-foreach="o.order_lines_layouted()" t-as="page" name="lines_layouted">
<table class="table table-condensed">
<thead>
<th>Description</th>
<th class="text-right">Quantity</th>
<th class="text-right">Unit Price</th>
<th t-if="display_discount" class="text-right" groups="sale.group_discount_per_so_line">Disc.(%)</th>
<th class="text-right" t-if="len(o.tax_line_ids) > 0">Tax</th>
<th class="text-right">Price</th>
<t t-if="o.company_id.country_id.code == 'IN'">
<th class="text-right" t-if="is_cgst">CGST</th>
<th class="text-right" t-if="is_cgst">SGST</th>
<th class="text-right" t-if="is_igst">IGST</th>
<th class="text-right" t-if="is_cess">CESS</th>
</t>
</thead>
<tbody class="invoice_tbody">
<t t-foreach="page" t-as="layout_category">
<t t-if="layout_category_size > 1 or page_size > 1" groups="sale.group_sale_layout">
<tr class="active">
<td colspan="7" style="font-weight: bold; border-bottom: 1px solid black;">&amp;bull;
<t t-esc="layout_category['name']"/>
</td>
</tr>
</t>
<!-- Lines associated -->
<t t-foreach="layout_category['lines']" t-as="l">
<tr>
<td><span t-field="l.name"/>
<t t-if="l.product_id.l10n_in_hsn_code"><h6><strong class="ml16">HSN/SAC Code:</strong> <span t-field="l.product_id.l10n_in_hsn_code"/></h6></t></td>
<td class="text-right">
<span t-field="l.quantity"/>
<span t-field="l.uom_id" groups="product.group_uom"/>
</td>
<td class="text-right">
<span t-field="l.price_unit"/>
</td>
<td t-if="display_discount" class="text-right" groups="sale.group_discount_per_so_line">
<span t-field="l.discount"/>
</td>
<td class="text-right">
<span t-esc="', '.join(map(lambda x: x.description or x.name, l.invoice_line_tax_ids))"/>
</td>
<td class="text-right" groups="sale.group_show_price_subtotal">
<span t-field="l.price_subtotal"
t-options='{"widget": "monetary", "display_currency": o.currency_id}'/>
</td>
<td class="text-right" groups="sale.group_show_price_total">
<span t-field="l.price_total"
t-options='{"widget": "monetary", "display_currency": o.currency_id}'/>
</td>
<t t-if="o.company_id.country_id.code == 'IN'">
<td class="text-right" t-if="is_cgst">
<t t-foreach="tax_datas[l.id]" t-as="tax_data">
<t t-if="tag_cgst_id in tax_data['tag_ids']">
<t t-esc="tax_data['amount']"/>
</t>
</t>
</td>
<td class="text-right" t-if="is_cgst">
<t t-foreach="tax_datas[l.id]" t-as="tax_data">
<t t-if="tag_sgst_id in tax_data['tag_ids']">
<t t-esc="tax_data['amount']"/>
</t>
</t>
</td>
<td class="text-right" t-if="is_igst">
<t t-foreach="tax_datas[l.id]" t-as="tax_data">
<t t-if="tag_igst_id in tax_data['tag_ids']">
<t t-esc="tax_data['amount']"/>
</t>
</t>
</td>
<t t-set="total_cess" t-value="0.0"/>
<td class="text-right" t-if="is_cess">
<t t-foreach="tax_datas[l.id]" t-as="tax_data">
<t t-if="tag_cess_id in tax_data['tag_ids']">
<t t-set="total_cess" t-value="total_cess + tax_data['amount']"/>
</t>
</t>
<t t-esc="total_cess"/>
</td>
</t>
</tr>
</t>
<t t-if="(layout_category_size > 1 or page_size > 1) and layout_category['subtotal']" groups="sale.group_sale_layout">
<tr class="text-right">
<td t-att-colspan="o.company_id.country_id.code == 'IN' and 9 or 6">
<strong>Subtotal: </strong>
<t t-set="subtotal" t-value="sum(line.price_subtotal for line in layout_category['lines'])"/>
<span t-esc="subtotal" t-options="{'widget': 'monetary', 'display_currency': o.currency_id}"/>
</td>
</tr>
</t>
</t>
</tbody>
</table>
<t t-if="page_index &lt; page_size - 1" groups="sale.group_sale_layout">
<p style="page-break-before:always;"> </p>
</t>
</t>
</xpath>
</template>
</odoo>
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="gst_report_saleorder_document_inherit" inherit_id="sale.report_saleorder_document">
<xpath expr="//span[@t-field='l.name']" position="after">
<t t-if="l.product_id.l10n_in_hsn_code"><h6><strong class="ml16">HSN/SAC Code:</strong> <span t-field="l.product_id.l10n_in_hsn_code"/></h6></t>
</xpath>
</template>
</odoo>
+1 -1
View File
@@ -18,7 +18,7 @@ Sheet, now only Vertical format has been permitted Which is Supported By OpenERP
""",
'category': 'Localization',
'depends': [
'account',
'account_tax_python',
],
'demo': [],
'data': [
+8 -32
View File
@@ -3,41 +3,17 @@
<data noupdate="1">
<!-- Account Tax Group -->
<record id="tax_group_024" model="account.tax.group">
<field name="name">VAT 0.24%</field>
<record id="schedule6_sgst_group" model="account.tax.group">
<field name="name">SGST</field>
</record>
<record id="tax_group_01224" model="account.tax.group">
<field name="name">VAT 0.1224%</field>
<record id="schedule6_cgst_group" model="account.tax.group">
<field name="name">CGST</field>
</record>
<record id="tax_group_1" model="account.tax.group">
<field name="name">VAT 1%</field>
<record id="schedule6_igst_group" model="account.tax.group">
<field name="name">IGST</field>
</record>
<record id="tax_group_2" model="account.tax.group">
<field name="name">VAT 2%</field>
</record>
<record id="tax_group_25" model="account.tax.group">
<field name="name">VAT 2.5%</field>
</record>
<record id="tax_group_4" model="account.tax.group">
<field name="name">VAT 4%</field>
</record>
<record id="tax_group_8" model="account.tax.group">
<field name="name">VAT 8%</field>
</record>
<record id="tax_group_10" model="account.tax.group">
<field name="name">VAT 10%</field>
</record>
<record id="tax_group_12" model="account.tax.group">
<field name="name">VAT 12%</field>
</record>
<record id="tax_group_125" model="account.tax.group">
<field name="name">VAT 12.5%</field>
</record>
<record id="tax_group_1236" model="account.tax.group">
<field name="name">VAT 12.36%</field>
</record>
<record id="tax_group_15" model="account.tax.group">
<field name="name">VAT 15%</field>
<record id="schedule6_cess_group" model="account.tax.group">
<field name="name">Cess</field>
</record>
</data>
@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<odoo>
<!-- India - Standard Accounting Chart -->
<record id="standard_transfer_account_id" model="account.account.template">
<field name="code">1206</field>
@@ -190,44 +189,23 @@
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
</record>
<!-- Other current liabilities -->
<record model="account.account.template" id="c1142111">
<field name="name">Excise Duty Payable</field>
<field name="code">1142111</field>
<record model="account.account.template" id="c114210">
<field name="name">(schedule6)SGST Payable</field>
<field name="code">114210</field>
<field name="user_type_id" ref="account.data_account_type_current_liabilities"/>
<field name="reconcile" eval="False"/>
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
</record>
<record model="account.account.template" id="c1142112">
<field name="name">Education Cess Payable On Excise Duty</field>
<field name="code">1142112</field>
<record model="account.account.template" id="c114211">
<field name="name">(schedule6)CGST Payable</field>
<field name="code">114211</field>
<field name="user_type_id" ref="account.data_account_type_current_liabilities"/>
<field name="reconcile" eval="False"/>
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
</record>
<record model="account.account.template" id="c1142113">
<field name="name">Higher Education Cess Payable On Excise Duty</field>
<field name="code">1142113</field>
<field name="user_type_id" ref="account.data_account_type_current_liabilities"/>
<field name="reconcile" eval="False"/>
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
</record>
<record model="account.account.template" id="c1142121">
<field name="name">Service Tax Payable</field>
<field name="code">1142121</field>
<field name="user_type_id" ref="account.data_account_type_current_liabilities"/>
<field name="reconcile" eval="False"/>
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
</record>
<record model="account.account.template" id="c1142122">
<field name="name">Education Cess Payable On Service Tax</field>
<field name="code">1142122</field>
<field name="user_type_id" ref="account.data_account_type_current_liabilities"/>
<field name="reconcile" eval="False"/>
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
</record>
<record model="account.account.template" id="c1142123">
<field name="name">Higher Education Cess Payable On Service Tax</field>
<field name="code">1142123</field>
<record model="account.account.template" id="c114212">
<field name="name">(schedule6)IGST Payable</field>
<field name="code">114212</field>
<field name="user_type_id" ref="account.data_account_type_current_liabilities"/>
<field name="reconcile" eval="False"/>
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
@@ -239,20 +217,6 @@
<field name="reconcile" eval="False"/>
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
</record>
<record model="account.account.template" id="c114214">
<field name="name">Central Sales Tax Payable</field>
<field name="code">114214</field>
<field name="user_type_id" ref="account.data_account_type_current_liabilities"/>
<field name="reconcile" eval="False"/>
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
</record>
<record model="account.account.template" id="c114215">
<field name="name">VAT Payable</field>
<field name="code">114215</field>
<field name="user_type_id" ref="account.data_account_type_current_liabilities"/>
<field name="reconcile" eval="False"/>
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
</record>
<record model="account.account.template" id="c11422">
<field name="name">Out Standing Cheques for Clearance</field>
<field name="code">11422</field>
@@ -810,58 +774,23 @@
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
</record>
<!-- Other current assets -->
<record model="account.account.template" id="c121610">
<field name="name">Sales Tax Receivable</field>
<field name="code">121610</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="reconcile" eval="False"/>
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
</record>
<record model="account.account.template" id="c121611">
<field name="name">VAT Receivable</field>
<field name="name">(schedule6)SGST Receivable</field>
<field name="code">121611</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="reconcile" eval="False"/>
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
</record>
<record model="account.account.template" id="c1216121">
<field name="name">Excise Duty Receivable</field>
<field name="code">1216121</field>
<record model="account.account.template" id="c121612">
<field name="name">(schedule6)CGST Receivable</field>
<field name="code">121612</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="reconcile" eval="False"/>
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
</record>
<record model="account.account.template" id="c1216122">
<field name="name">Education Cess Receivable On Excise Duty</field>
<field name="code">1216122</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="reconcile" eval="False"/>
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
</record>
<record model="account.account.template" id="c1216123">
<field name="name">Higher Education Cess Receivable On Excise Duty</field>
<field name="code">1216123</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="reconcile" eval="False"/>
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
</record>
<record model="account.account.template" id="c1216131">
<field name="name">Service Tax Receivable</field>
<field name="code">1216131</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="reconcile" eval="False"/>
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
</record>
<record model="account.account.template" id="c1216132">
<field name="name">Education Cess Receivable On Service Tax</field>
<field name="code">1216132</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="reconcile" eval="False"/>
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
</record>
<record model="account.account.template" id="c1216133">
<field name="name">Higher Education Cess Receivable On Service Tax</field>
<field name="code">1216133</field>
<record model="account.account.template" id="c121613">
<field name="name">(schedule6)IGST Receivable</field>
<field name="code">121613</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="reconcile" eval="False"/>
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
@@ -1429,5 +1358,4 @@
<field name="expense_currency_exchange_account_id" ref="c2170"/>
</record>
</data>
</openerp>
</odoo>
File diff suppressed because it is too large Load Diff
+2
View File
@@ -0,0 +1,2 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
+19
View File
@@ -0,0 +1,19 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
{
'name': 'Indian - Stock Report(GST)',
'version': '1.0',
'description': """GST Stock Report""",
'category': 'Localization',
'depends': [
'l10n_in',
'stock',
],
'data': [
'views/report_stockpicking_operations.xml',
],
'installable': True,
'application': False,
'auto_install': True,
}
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="gst_report_picking_inherit" inherit_id="stock.report_picking">
<xpath expr="//span[@t-field='pack_operation.product_id.description_picking']" position="after">
<t t-if="pack_operation.product_id and pack_operation.product_id.l10n_in_hsn_code and o.company_id.country_id.code == 'IN'"><h6><strong class="ml16">HSN/SAC Code:</strong> <span t-field="pack_operation.product_id.l10n_in_hsn_code"/></h6></t>
</xpath>
</template>
</odoo>
+2 -1
View File
@@ -747,9 +747,10 @@
<field name="name">India</field>
<field name="code">in</field>
<field file="base/static/img/country_flags/in.png" name="image" type="base64" />
<field eval="'%(street)s\n%(street2)s\n%(city)s %(zip)s\n%(state_name)s\n%(country_name)s'" name="address_format" />
<field eval="'%(street)s\n%(street2)s\n%(city)s %(zip)s\n%(state_name)s %(state_code)s\n%(country_name)s'" name="address_format" />
<field name="currency_id" ref="INR" />
<field eval="91" name="phone_code" />
<field name="vat_label">GSTIN</field>
</record>
<record id="io" model="res.country">
<field name="name">British Indian Ocean Territory</field>