[ADD] GST module for Indian Localization: configure indian taxes and chart of accounts, summary and excel report for GSTR-1,GSTR-2
@ -45,7 +45,7 @@
|
||||
</record>
|
||||
|
||||
<record id="cess_5_plus_1591_sale" model="account.tax.template">
|
||||
<field name="name">CESS 5% + RS.1591/THOUSAND </field>
|
||||
<field name="name">CESS 5% + RS.1591/THOUSAND</field>
|
||||
<field name="description">CESS 5% + RS.1591/THOUSAND</field>
|
||||
<field name="type_tax_use">sale</field>
|
||||
<field name="amount_type">group</field>
|
||||
@ -56,14 +56,15 @@
|
||||
</record>
|
||||
|
||||
<record id="cess_21_4170_higer_sale" model="account.tax.template">
|
||||
<field name="name">CESS 21% or RS.4170/THOUSAND </field>
|
||||
<field name="name">CESS 21% or RS.4170/THOUSAND</field>
|
||||
<field name="description">CESS 21% or RS.4170/THOUSAND</field>
|
||||
<field name="type_tax_use">sale</field>
|
||||
<field name="amount_type">code</field>
|
||||
<field name="amount">0</field>
|
||||
<field name="python_compute">result=base_amount * 0.21
|
||||
tax=quantity * 4.17
|
||||
if tax > result:result=tax</field>
|
||||
tax=quantity * 4.17
|
||||
if tax > result:result=tax
|
||||
</field>
|
||||
<field name="tax_group_id" ref="cess_group"/>
|
||||
<field name="chart_template_id" ref="indian_chart_template_standard"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('cess_tag_tax'),])]"/>
|
||||
@ -72,7 +73,7 @@ if tax > result:result=tax</field>
|
||||
<!-- IGST -->
|
||||
|
||||
<record id="igst_sale_1" model="account.tax.template">
|
||||
<field name="name">IGST 1%</field>
|
||||
<field name="name">IGST Sale 1%</field>
|
||||
<field name="description">IGST 1%</field>
|
||||
<field name="type_tax_use">sale</field>
|
||||
<field name="amount_type">percent</field>
|
||||
@ -85,7 +86,7 @@ if tax > result:result=tax</field>
|
||||
</record>
|
||||
|
||||
<record id="igst_sale_2" model="account.tax.template">
|
||||
<field name="name">IGST 2%</field>
|
||||
<field name="name">IGST Sale 2%</field>
|
||||
<field name="description">IGST 2%</field>
|
||||
<field name="type_tax_use">sale</field>
|
||||
<field name="amount_type">percent</field>
|
||||
@ -98,7 +99,7 @@ if tax > result:result=tax</field>
|
||||
</record>
|
||||
|
||||
<record id="igst_sale_28" model="account.tax.template">
|
||||
<field name="name">IGST 28%</field>
|
||||
<field name="name">IGST Sale 28%</field>
|
||||
<field name="description">IGST 28%</field>
|
||||
<field name="type_tax_use">sale</field>
|
||||
<field name="amount_type">percent</field>
|
||||
@ -111,7 +112,7 @@ if tax > result:result=tax</field>
|
||||
</record>
|
||||
|
||||
<record id="igst_sale_18" model="account.tax.template">
|
||||
<field name="name">IGST 18%</field>
|
||||
<field name="name">IGST Sale 18%</field>
|
||||
<field name="description">IGST 18%</field>
|
||||
<field name="type_tax_use">sale</field>
|
||||
<field name="amount_type">percent</field>
|
||||
@ -124,7 +125,7 @@ if tax > result:result=tax</field>
|
||||
</record>
|
||||
|
||||
<record id="igst_sale_12" model="account.tax.template">
|
||||
<field name="name">IGST 12%</field>
|
||||
<field name="name">IGST Sale 12%</field>
|
||||
<field name="description">IGST 12%</field>
|
||||
<field name="type_tax_use">sale</field>
|
||||
<field name="amount_type">percent</field>
|
||||
@ -137,7 +138,7 @@ if tax > result:result=tax</field>
|
||||
</record>
|
||||
|
||||
<record id="igst_sale_5" model="account.tax.template">
|
||||
<field name="name">IGST 5%</field>
|
||||
<field name="name">IGST Sale 5%</field>
|
||||
<field name="description">IGST 5%</field>
|
||||
<field name="type_tax_use">sale</field>
|
||||
<field name="amount_type">percent</field>
|
||||
@ -178,7 +179,7 @@ if tax > result:result=tax</field>
|
||||
</record>
|
||||
|
||||
<record id="sgst_sale_1" model="account.tax.template">
|
||||
<field name="name">GST 1%</field>
|
||||
<field name="name">GST Sale 1%</field>
|
||||
<field name="description">GST 1%</field>
|
||||
<field name="type_tax_use">sale</field>
|
||||
<field name="amount_type">group</field>
|
||||
@ -214,7 +215,7 @@ if tax > result:result=tax</field>
|
||||
</record>
|
||||
|
||||
<record id="sgst_sale_2" model="account.tax.template">
|
||||
<field name="name">GST 2%</field>
|
||||
<field name="name">GST Sale 2%</field>
|
||||
<field name="description">GST 2%</field>
|
||||
<field name="type_tax_use">sale</field>
|
||||
<field name="amount_type">group</field>
|
||||
@ -250,7 +251,7 @@ if tax > result:result=tax</field>
|
||||
</record>
|
||||
|
||||
<record id="sgst_sale_28" model="account.tax.template">
|
||||
<field name="name">GST 28%</field>
|
||||
<field name="name">GST Sale 28%</field>
|
||||
<field name="description">GST 28%</field>
|
||||
<field name="type_tax_use">sale</field>
|
||||
<field name="amount_type">group</field>
|
||||
@ -259,7 +260,7 @@ if tax > result:result=tax</field>
|
||||
<field name="children_tax_ids" eval="[(6, 0, [ref('sgst_sale_14'),ref('cgst_sale_14'),])]"/>
|
||||
</record>
|
||||
|
||||
<record id="sgst_sale_9" model="account.tax.template">
|
||||
<record id="sgst_sale_9" model="account.tax.template">
|
||||
<field name="name">SGST Sale 9%</field>
|
||||
<field name="description">SGST 9%</field>
|
||||
<field name="type_tax_use">none</field>
|
||||
@ -286,7 +287,7 @@ if tax > result:result=tax</field>
|
||||
</record>
|
||||
|
||||
<record id="sgst_sale_18" model="account.tax.template">
|
||||
<field name="name">GST 18%</field>
|
||||
<field name="name">GST Sale 18%</field>
|
||||
<field name="description">GST 18%</field>
|
||||
<field name="type_tax_use">sale</field>
|
||||
<field name="amount_type">group</field>
|
||||
@ -322,7 +323,7 @@ if tax > result:result=tax</field>
|
||||
</record>
|
||||
|
||||
<record id="sgst_sale_12" model="account.tax.template">
|
||||
<field name="name">GST 12%</field>
|
||||
<field name="name">GST Sale 12%</field>
|
||||
<field name="description">GST 12%</field>
|
||||
<field name="type_tax_use">sale</field>
|
||||
<field name="amount_type">group</field>
|
||||
@ -331,7 +332,7 @@ if tax > result:result=tax</field>
|
||||
<field name="children_tax_ids" eval="[(6, 0, [ref('sgst_sale_6'),ref('cgst_sale_6'),])]"/>
|
||||
</record>
|
||||
|
||||
<record id="sgst_sale_2_5" model="account.tax.template">
|
||||
<record id="sgst_sale_2_5" model="account.tax.template">
|
||||
<field name="name">SGST Sale 2.5%</field>
|
||||
<field name="description">SGST 2.5%</field>
|
||||
<field name="type_tax_use">none</field>
|
||||
@ -358,7 +359,7 @@ if tax > result:result=tax</field>
|
||||
</record>
|
||||
|
||||
<record id="sgst_sale_5" model="account.tax.template">
|
||||
<field name="name">GST 5%</field>
|
||||
<field name="name">GST Sale 5%</field>
|
||||
<field name="description">GST 5%</field>
|
||||
<field name="type_tax_use">sale</field>
|
||||
<field name="amount_type">group</field>
|
||||
@ -394,7 +395,7 @@ if tax > result:result=tax</field>
|
||||
</record>
|
||||
|
||||
<record id="cess_5_plus_1591_purchase" model="account.tax.template">
|
||||
<field name="name">CESS 5% + RS.1591/THOUSAND </field>
|
||||
<field name="name">CESS 5% + RS.1591/THOUSAND</field>
|
||||
<field name="description">CESS 5% + RS.1591/THOUSAND</field>
|
||||
<field name="type_tax_use">purchase</field>
|
||||
<field name="amount_type">group</field>
|
||||
@ -404,14 +405,15 @@ if tax > result:result=tax</field>
|
||||
</record>
|
||||
|
||||
<record id="cess_21_4170_higer_purchase" model="account.tax.template">
|
||||
<field name="name">CESS 21% or RS.4170/THOUSAND </field>
|
||||
<field name="name">CESS 21% or RS.4170/THOUSAND</field>
|
||||
<field name="description">CESS 21% or RS.4170/THOUSAND</field>
|
||||
<field name="type_tax_use">purchase</field>
|
||||
<field name="amount_type">code</field>
|
||||
<field name="amount">0</field>
|
||||
<field name="python_compute">result=base_amount * 0.21
|
||||
tax=quantity * 4.17
|
||||
if tax > result:result=tax</field>
|
||||
tax=quantity * 4.17
|
||||
if tax > result:result=tax
|
||||
</field>
|
||||
<field name="tax_group_id" ref="cess_group"/>
|
||||
<field name="chart_template_id" ref="indian_chart_template_standard"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('cess_tag_tax'),])]"/>
|
||||
@ -420,7 +422,7 @@ if tax > result:result=tax</field>
|
||||
<!-- IGST -->
|
||||
|
||||
<record id="igst_purchase_1" model="account.tax.template">
|
||||
<field name="name">IGST 1%</field>
|
||||
<field name="name">IGST Purchase 1%</field>
|
||||
<field name="description">IGST 1%</field>
|
||||
<field name="type_tax_use">purchase</field>
|
||||
<field name="amount_type">percent</field>
|
||||
@ -433,7 +435,7 @@ if tax > result:result=tax</field>
|
||||
</record>
|
||||
|
||||
<record id="igst_purchase_2" model="account.tax.template">
|
||||
<field name="name">IGST 2%</field>
|
||||
<field name="name">IGST Purchase 2%</field>
|
||||
<field name="description">IGST 2%</field>
|
||||
<field name="type_tax_use">purchase</field>
|
||||
<field name="amount_type">percent</field>
|
||||
@ -446,7 +448,7 @@ if tax > result:result=tax</field>
|
||||
</record>
|
||||
|
||||
<record id="igst_purchase_28" model="account.tax.template">
|
||||
<field name="name">IGST 28%</field>
|
||||
<field name="name">IGST Purchase 28%</field>
|
||||
<field name="description">IGST 28%</field>
|
||||
<field name="type_tax_use">purchase</field>
|
||||
<field name="amount_type">percent</field>
|
||||
@ -459,7 +461,7 @@ if tax > result:result=tax</field>
|
||||
</record>
|
||||
|
||||
<record id="igst_purchase_18" model="account.tax.template">
|
||||
<field name="name">IGST 18%</field>
|
||||
<field name="name">IGST Purchase 18%</field>
|
||||
<field name="description">IGST 18%</field>
|
||||
<field name="type_tax_use">purchase</field>
|
||||
<field name="amount_type">percent</field>
|
||||
@ -472,7 +474,7 @@ if tax > result:result=tax</field>
|
||||
</record>
|
||||
|
||||
<record id="igst_purchase_12" model="account.tax.template">
|
||||
<field name="name">IGST 12%</field>
|
||||
<field name="name">IGST Purchase 12%</field>
|
||||
<field name="description">IGST 12%</field>
|
||||
<field name="type_tax_use">purchase</field>
|
||||
<field name="amount_type">percent</field>
|
||||
@ -485,7 +487,7 @@ if tax > result:result=tax</field>
|
||||
</record>
|
||||
|
||||
<record id="igst_purchase_5" model="account.tax.template">
|
||||
<field name="name">IGST 5%</field>
|
||||
<field name="name">IGST Purchase 5%</field>
|
||||
<field name="description">IGST 5%</field>
|
||||
<field name="type_tax_use">purchase</field>
|
||||
<field name="amount_type">percent</field>
|
||||
@ -526,7 +528,7 @@ if tax > result:result=tax</field>
|
||||
</record>
|
||||
|
||||
<record id="sgst_purchase_1" model="account.tax.template">
|
||||
<field name="name">GST 1%</field>
|
||||
<field name="name">GST Purchase 1%</field>
|
||||
<field name="description">GST 1%</field>
|
||||
<field name="type_tax_use">purchase</field>
|
||||
<field name="amount_type">group</field>
|
||||
@ -562,7 +564,7 @@ if tax > result:result=tax</field>
|
||||
</record>
|
||||
|
||||
<record id="sgst_purchase_2" model="account.tax.template">
|
||||
<field name="name">GST 2%</field>
|
||||
<field name="name">GST Purchase 2%</field>
|
||||
<field name="description">GST 2%</field>
|
||||
<field name="type_tax_use">purchase</field>
|
||||
<field name="amount_type">group</field>
|
||||
@ -598,7 +600,7 @@ if tax > result:result=tax</field>
|
||||
</record>
|
||||
|
||||
<record id="sgst_purchase_28" model="account.tax.template">
|
||||
<field name="name">GST 28%</field>
|
||||
<field name="name">GST Purchase 28%</field>
|
||||
<field name="description">GST 28%</field>
|
||||
<field name="type_tax_use">purchase</field>
|
||||
<field name="amount_type">group</field>
|
||||
@ -607,7 +609,7 @@ if tax > result:result=tax</field>
|
||||
<field name="children_tax_ids" eval="[(6, 0, [ref('sgst_purchase_14'),ref('cgst_purchase_14'),])]"/>
|
||||
</record>
|
||||
|
||||
<record id="sgst_purchase_9" model="account.tax.template">
|
||||
<record id="sgst_purchase_9" model="account.tax.template">
|
||||
<field name="name">SGST Purchase 9%</field>
|
||||
<field name="description">SGST 9%</field>
|
||||
<field name="type_tax_use">none</field>
|
||||
@ -634,7 +636,7 @@ if tax > result:result=tax</field>
|
||||
</record>
|
||||
|
||||
<record id="sgst_purchase_18" model="account.tax.template">
|
||||
<field name="name">GST 18%</field>
|
||||
<field name="name">GST Purchase 18%</field>
|
||||
<field name="description">GST 18%</field>
|
||||
<field name="type_tax_use">purchase</field>
|
||||
<field name="amount_type">group</field>
|
||||
@ -670,7 +672,7 @@ if tax > result:result=tax</field>
|
||||
</record>
|
||||
|
||||
<record id="sgst_purchase_12" model="account.tax.template">
|
||||
<field name="name">GST 12%</field>
|
||||
<field name="name">GST Purchase 12%</field>
|
||||
<field name="description">GST 12%</field>
|
||||
<field name="type_tax_use">purchase</field>
|
||||
<field name="amount_type">group</field>
|
||||
@ -706,7 +708,7 @@ if tax > result:result=tax</field>
|
||||
</record>
|
||||
|
||||
<record id="sgst_purchase_5" model="account.tax.template">
|
||||
<field name="name">GST 5%</field>
|
||||
<field name="name">GST Purchase 5%</field>
|
||||
<field name="description">GST 5%</field>
|
||||
<field name="type_tax_use">purchase</field>
|
||||
<field name="amount_type">group</field>
|
||||
@ -715,4 +717,33 @@ if tax > result:result=tax</field>
|
||||
<field name="children_tax_ids" eval="[(6, 0, [ref('sgst_purchase_2_5'),ref('cgst_purchase_2_5'),])]"/>
|
||||
</record>
|
||||
|
||||
<!-- Exempt -->
|
||||
<record id="exempt_sale_tax_1" model="account.tax.template">
|
||||
<field name="name">Exempt 0%</field>
|
||||
<field name="description">Exempt 0%</field>
|
||||
<field name="type_tax_use">sale</field>
|
||||
<field name="amount_type">percent</field>
|
||||
<field name="amount">0</field>
|
||||
<field name="sequence">19</field>
|
||||
<field name="account_id" ref="exempt_sale"/>
|
||||
<field name="refund_account_id" ref="exempt_sale"/>
|
||||
<field name="chart_template_id"
|
||||
ref="l10n_in.indian_chart_template_standard"/>
|
||||
<field name="tag_ids" eval="[(6, 0, [ref('st_tag_in_97')])]"/>
|
||||
</record>
|
||||
|
||||
<record id="exempt_purchase_tax_1" model="account.tax.template">
|
||||
<field name="name">Exempt 0%</field>
|
||||
<field name="description">Exempt 0%</field>
|
||||
<field name="type_tax_use">purchase</field>
|
||||
<field name="amount_type">percent</field>
|
||||
<field name="amount">0</field>
|
||||
<field name="sequence">60</field>
|
||||
<field name="account_id" ref="exempt_purchase"/>
|
||||
<field name="refund_account_id" ref="exempt_purchase"/>
|
||||
<field name="chart_template_id"
|
||||
ref="indian_chart_template_standard"/>
|
||||
<field name="tag_ids" eval="[(6, 0, [ref('st_tag_in_97')])]"/>
|
||||
</record>
|
||||
|
||||
</flectra>
|
||||
|
@ -33,21 +33,21 @@
|
||||
<field name="applicability">accounts</field>
|
||||
</record>
|
||||
|
||||
<record model="account.account.template" id="p10031">
|
||||
<record id="p10031" model="account.account.template">
|
||||
<field name="name">Inventories</field>
|
||||
<field name="code">10031</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="p10040">
|
||||
<record id="p10040" model="account.account.template">
|
||||
<field name="name">Debtors</field>
|
||||
<field name="code">10040</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_receivable"/>
|
||||
<field name="reconcile" eval="True"/>
|
||||
<field name="chart_template_id" ref="indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record model="account.account.template" id="p10051">
|
||||
<record id="p10051" model="account.account.template">
|
||||
<field name="name">SGST Receivable</field>
|
||||
<field name="code">10051</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
|
||||
@ -56,7 +56,7 @@
|
||||
<field name="tag_ids" eval="[(6,0,[ref('sgst_tag_account'),])]"/>
|
||||
</record>
|
||||
|
||||
<record model="account.account.template" id="p10052">
|
||||
<record id="p10052" model="account.account.template">
|
||||
<field name="name">CGST Receivable</field>
|
||||
<field name="code">10052</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
|
||||
@ -65,7 +65,7 @@
|
||||
<field name="tag_ids" eval="[(6,0,[ref('cgst_tag_account'),])]"/>
|
||||
</record>
|
||||
|
||||
<record model="account.account.template" id="p10053">
|
||||
<record id="p10053" model="account.account.template">
|
||||
<field name="name">IGST Receivable</field>
|
||||
<field name="code">10053</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
|
||||
@ -73,21 +73,21 @@
|
||||
<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">
|
||||
<record id="p10054" model="account.account.template">
|
||||
<field name="name">TDS Receivable</field>
|
||||
<field name="code">10058</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="p10061">
|
||||
<record id="p10061" model="account.account.template">
|
||||
<field name="name">Deposit Account</field>
|
||||
<field name="code">10061</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="p10071">
|
||||
<record id="p10071" model="account.account.template">
|
||||
<field name="name">Prepaid Insurance</field>
|
||||
<field name="code">10071</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
|
||||
@ -95,56 +95,56 @@
|
||||
<field name="chart_template_id" ref="indian_chart_template_standard"/>
|
||||
</record>
|
||||
<!-- Fixed Assets -->
|
||||
<record model="account.account.template" id="p1011">
|
||||
<record id="p1011" model="account.account.template">
|
||||
<field name="name">Buildings</field>
|
||||
<field name="code">1011</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_fixed_assets"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record model="account.account.template" id="p1012">
|
||||
<record id="p1012" model="account.account.template">
|
||||
<field name="name">Land</field>
|
||||
<field name="code">1012</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_fixed_assets"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record model="account.account.template" id="p1013">
|
||||
<record id="p1013" model="account.account.template">
|
||||
<field name="name">Equipments</field>
|
||||
<field name="code">1013</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_fixed_assets"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record model="account.account.template" id="p1014">
|
||||
<record id="p1014" model="account.account.template">
|
||||
<field name="name">Vehicle</field>
|
||||
<field name="code">1014</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_fixed_assets"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record model="account.account.template" id="p1015">
|
||||
<record id="p1015" model="account.account.template">
|
||||
<field name="name">Computer/Laptops (Assets)</field>
|
||||
<field name="code">1015</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_fixed_assets"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record model="account.account.template" id="p1016">
|
||||
<record id="p1016" model="account.account.template">
|
||||
<field name="name">Furniture</field>
|
||||
<field name="code">1016</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_fixed_assets"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record model="account.account.template" id="p1017">
|
||||
<record id="p1017" model="account.account.template">
|
||||
<field name="name">Air Conditionar</field>
|
||||
<field name="code">1017</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_fixed_assets"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record model="account.account.template" id="p1018">
|
||||
<record id="p1018" model="account.account.template">
|
||||
<field name="name">Misc Assets</field>
|
||||
<field name="code">1018</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_fixed_assets"/>
|
||||
@ -154,56 +154,56 @@
|
||||
|
||||
|
||||
<!-- Liabilities -->
|
||||
<record model="account.account.template" id="p1111">
|
||||
<record id="p1111" model="account.account.template">
|
||||
<field name="name">Capital Account</field>
|
||||
<field name="code">1111</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="p1112">
|
||||
<record id="p1112" model="account.account.template">
|
||||
<field name="name">Reserve And Surplus Account</field>
|
||||
<field name="code">1112</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="p11211">
|
||||
<record id="p11211" model="account.account.template">
|
||||
<field name="name">Creditors</field>
|
||||
<field name="code">11211</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_payable"/>
|
||||
<field name="reconcile" eval="True"/>
|
||||
<field name="chart_template_id" ref="indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record model="account.account.template" id="p11221">
|
||||
<record id="p11221" model="account.account.template">
|
||||
<field name="name">Bank OD Account</field>
|
||||
<field name="code">11221</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="p11222">
|
||||
<record id="p11222" model="account.account.template">
|
||||
<field name="name">Secured Loan Account</field>
|
||||
<field name="code">11222</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="p11223">
|
||||
<record id="p11223" model="account.account.template">
|
||||
<field name="name">Unsecured Loan Account</field>
|
||||
<field name="code">11223</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="p11231">
|
||||
<record id="p11231" model="account.account.template">
|
||||
<field name="name">TDS Payable</field>
|
||||
<field name="code">11231</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="p11232">
|
||||
<record id="p11232" model="account.account.template">
|
||||
<field name="name">SGST Payable</field>
|
||||
<field name="code">11232</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_current_liabilities"/>
|
||||
@ -212,7 +212,7 @@
|
||||
<field name="tag_ids" eval="[(6,0,[ref('sgst_tag_account'),])]"/>
|
||||
</record>
|
||||
|
||||
<record model="account.account.template" id="p11233">
|
||||
<record id="p11233" model="account.account.template">
|
||||
<field name="name">CGST Payable</field>
|
||||
<field name="code">11233</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_current_liabilities"/>
|
||||
@ -221,7 +221,7 @@
|
||||
<field name="tag_ids" eval="[(6,0,[ref('cgst_tag_account'),])]"/>
|
||||
</record>
|
||||
|
||||
<record model="account.account.template" id="p11234">
|
||||
<record id="p11234" model="account.account.template">
|
||||
<field name="name">IGST Payable</field>
|
||||
<field name="code">11234</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_current_liabilities"/>
|
||||
@ -229,21 +229,21 @@
|
||||
<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">
|
||||
<record id="p11241" model="account.account.template">
|
||||
<field name="name">Wages Payable</field>
|
||||
<field name="code">11241</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="p11242">
|
||||
<record id="p11242" model="account.account.template">
|
||||
<field name="name">Interest Payable</field>
|
||||
<field name="code">11242</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="p11243">
|
||||
<record id="p11243" model="account.account.template">
|
||||
<field name="name">Notes Payable</field>
|
||||
<field name="code">11243</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_current_liabilities"/>
|
||||
@ -252,63 +252,63 @@
|
||||
</record>
|
||||
|
||||
<!-- Income -->
|
||||
<record model="account.account.template" id="p20011">
|
||||
<record id="p20011" model="account.account.template">
|
||||
<field name="name">Local Sales</field>
|
||||
<field name="code">20011</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_revenue"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record model="account.account.template" id="p20012">
|
||||
<record id="p20012" model="account.account.template">
|
||||
<field name="name">Retail Sales</field>
|
||||
<field name="code">20012</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_revenue"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record model="account.account.template" id="p20013">
|
||||
<record id="p20013" model="account.account.template">
|
||||
<field name="name">Export Sales</field>
|
||||
<field name="code">20013</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_revenue"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record model="account.account.template" id="p20021">
|
||||
<record id="p20021" model="account.account.template">
|
||||
<field name="name">Local Services</field>
|
||||
<field name="code">20021</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_revenue"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record model="account.account.template" id="p20022">
|
||||
<record id="p20022" model="account.account.template">
|
||||
<field name="name">Export Services</field>
|
||||
<field name="code">20022</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_revenue"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record model="account.account.template" id="p2010">
|
||||
<record id="p2010" model="account.account.template">
|
||||
<field name="name">Interest Revenues</field>
|
||||
<field name="code">2010</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_revenue"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record model="account.account.template" id="p2011">
|
||||
<record id="p2011" model="account.account.template">
|
||||
<field name="name">Gain on Sale of Assets</field>
|
||||
<field name="code">2011</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_revenue"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record model="account.account.template" id="2012">
|
||||
<record id="2012" model="account.account.template">
|
||||
<field name="name">Write off Income</field>
|
||||
<field name="code">2012</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_revenue"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record model="account.account.template" id="p2013">
|
||||
<record id="p2013" model="account.account.template">
|
||||
<field name="name">Foreign Exchange Profit</field>
|
||||
<field name="code">2013</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_other_income"/>
|
||||
@ -317,182 +317,182 @@
|
||||
</record>
|
||||
|
||||
<!-- Expenses -->
|
||||
<record model="account.account.template" id="p2100">
|
||||
<record id="p2100" model="account.account.template">
|
||||
<field name="name">Electricity Expense</field>
|
||||
<field name="code">2100</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_expenses"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record model="account.account.template" id="p2101">
|
||||
<record id="p2101" model="account.account.template">
|
||||
<field name="name">Salary Expense</field>
|
||||
<field name="code">2101</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_expenses"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record model="account.account.template" id="p2102">
|
||||
<record id="p2102" model="account.account.template">
|
||||
<field name="name">Office Rent</field>
|
||||
<field name="code">2102</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_expenses"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record model="account.account.template" id="p2103">
|
||||
<record id="p2103" model="account.account.template">
|
||||
<field name="name">House Keeping Expense</field>
|
||||
<field name="code">2103</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_expenses"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record model="account.account.template" id="p2104">
|
||||
<record id="p2104" model="account.account.template">
|
||||
<field name="name">Postage And Courier Expense</field>
|
||||
<field name="code">2104</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_expenses"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record model="account.account.template" id="p2105">
|
||||
<record id="p2105" model="account.account.template">
|
||||
<field name="name">Internet Expense</field>
|
||||
<field name="code">2105</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_expenses"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record model="account.account.template" id="p2106">
|
||||
<record id="p2106" model="account.account.template">
|
||||
<field name="name">Telephone Expense</field>
|
||||
<field name="code">2106</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_expenses"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record model="account.account.template" id="p2107">
|
||||
<record id="p2107" model="account.account.template">
|
||||
<field name="name">Purchase Expense</field>
|
||||
<field name="code">2107</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_expenses"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record model="account.account.template" id="p2108">
|
||||
<record id="p2108" model="account.account.template">
|
||||
<field name="name">Computer/Laptop Accessories</field>
|
||||
<field name="code">2108</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_expenses"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record model="account.account.template" id="p2109">
|
||||
<record id="p2109" model="account.account.template">
|
||||
<field name="name">News Paper And Magazine</field>
|
||||
<field name="code">2109</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_expenses"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record model="account.account.template" id="p2110">
|
||||
<record id="p2110" model="account.account.template">
|
||||
<field name="name">Business Promotion</field>
|
||||
<field name="code">2110</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_expenses"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record model="account.account.template" id="p2111">
|
||||
<record id="p2111" model="account.account.template">
|
||||
<field name="name">Entertainment Expense</field>
|
||||
<field name="code">2111</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_expenses"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record model="account.account.template" id="p2112">
|
||||
<record id="p2112" model="account.account.template">
|
||||
<field name="name">Professional Services</field>
|
||||
<field name="code">2112</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_expenses"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record model="account.account.template" id="p2113">
|
||||
<record id="p2113" model="account.account.template">
|
||||
<field name="name">Bank Charges</field>
|
||||
<field name="code">2113</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_liquidity"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record model="account.account.template" id="p2114">
|
||||
<record id="p2114" model="account.account.template">
|
||||
<field name="name">Diwali Bonus/Gift</field>
|
||||
<field name="code">2114</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_expenses"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record model="account.account.template" id="p2115">
|
||||
<record id="p2115" model="account.account.template">
|
||||
<field name="name">Parts Purchase</field>
|
||||
<field name="code">2115</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_expenses"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record model="account.account.template" id="p2116">
|
||||
<record id="p2116" model="account.account.template">
|
||||
<field name="name">Repairing Expense</field>
|
||||
<field name="code">2116</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_expenses"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record model="account.account.template" id="p2117">
|
||||
<record id="p2117" model="account.account.template">
|
||||
<field name="name">Foreign Exchange Loss</field>
|
||||
<field name="code">2117</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_expenses"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record model="account.account.template" id="p21181">
|
||||
<record id="p21181" model="account.account.template">
|
||||
<field name="name">Sales Commission Expense</field>
|
||||
<field name="code">21181</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_expenses"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record model="account.account.template" id="p21182">
|
||||
<record id="p21182" model="account.account.template">
|
||||
<field name="name">Stationary Expense</field>
|
||||
<field name="code">21182</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_expenses"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record model="account.account.template" id="p21183">
|
||||
<record id="p21183" model="account.account.template">
|
||||
<field name="name">Travelling Expense</field>
|
||||
<field name="code">21183</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_expenses"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record model="account.account.template" id="p2121">
|
||||
<record id="p2121" model="account.account.template">
|
||||
<field name="name">Opening Stock</field>
|
||||
<field name="code">2121</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_expenses"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record model="account.account.template" id="p2122">
|
||||
<record id="p2122" model="account.account.template">
|
||||
<field name="name">Purchase Stock</field>
|
||||
<field name="code">2122</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_expenses"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record model="account.account.template" id="p2123">
|
||||
<record id="p2123" model="account.account.template">
|
||||
<field name="name">Closing Stock</field>
|
||||
<field name="code">2123</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_expenses"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record model="account.account.template" id="p2131">
|
||||
<record id="p2131" model="account.account.template">
|
||||
<field name="name">Loss on Sale of Assets</field>
|
||||
<field name="code">2131</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_expenses"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record model="account.account.template" id="p2132">
|
||||
<record id="p2132" model="account.account.template">
|
||||
<field name="name">Write Off Expense</field>
|
||||
<field name="code">2132</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_expenses"/>
|
||||
@ -500,14 +500,258 @@
|
||||
<field name="chart_template_id" ref="indian_chart_template_standard"/>
|
||||
</record>
|
||||
|
||||
<!-- Account Chart Template -->
|
||||
<record id="indian_chart_template_standard" model="account.chart.template">
|
||||
<field name="property_account_receivable_id" ref="p10040"/>
|
||||
<field name="property_account_payable_id" ref="p11211"/>
|
||||
<field name="property_account_expense_categ_id" ref="p2107"/>
|
||||
<field name="property_account_income_categ_id" ref="p20011"/>
|
||||
<field name="income_currency_exchange_account_id" ref="p2013"/>
|
||||
<field name="expense_currency_exchange_account_id" ref="p2117"/>
|
||||
</record>
|
||||
<record id="p10050" model="account.account.template">
|
||||
<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="l10n_in.indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record id="p10054" model="account.account.template">
|
||||
<field name="name">VAT Receivable</field>
|
||||
<field name="code">10054</field>
|
||||
<field name="user_type_id"
|
||||
ref="account.data_account_type_current_assets"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="l10n_in.indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record id="p100521" model="account.account.template">
|
||||
<field name="name">Excise Duty Receivable</field>
|
||||
<field name="code">100521</field>
|
||||
<field name="user_type_id"
|
||||
ref="account.data_account_type_current_assets"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="l10n_in.indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record id="p100522" model="account.account.template">
|
||||
<field name="name">Education Cess Receivable On Excise Duty</field>
|
||||
<field name="code">100522</field>
|
||||
<field name="user_type_id"
|
||||
ref="account.data_account_type_current_assets"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="l10n_in.indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record id="p100523" model="account.account.template">
|
||||
<field name="name">Higher Education Cess Receivable On Excise
|
||||
Duty
|
||||
</field>
|
||||
<field name="code">100523</field>
|
||||
<field name="user_type_id"
|
||||
ref="account.data_account_type_current_assets"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="l10n_in.indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record id="p100531" model="account.account.template">
|
||||
<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="l10n_in.indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record id="p100532" model="account.account.template">
|
||||
<field name="name">Education Cess Receivable On Service Tax</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="l10n_in.indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record id="p100533" model="account.account.template">
|
||||
<field name="name">Higher Education Cess Receivable On Service
|
||||
Tax
|
||||
</field>
|
||||
<field name="code">100533</field>
|
||||
<field name="user_type_id"
|
||||
ref="account.data_account_type_current_assets"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="l10n_in.indian_chart_template_standard"/>
|
||||
</record>
|
||||
|
||||
<!-- Liabilities -->
|
||||
<record id="p1111" model="account.account.template">
|
||||
<field name="name">Capital Account</field>
|
||||
<field name="code">1111</field>
|
||||
<field name="user_type_id"
|
||||
ref="account.data_account_type_current_liabilities"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="l10n_in.indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record id="p1112" model="account.account.template">
|
||||
<field name="name">Reserve And Surplus Account</field>
|
||||
<field name="code">1112</field>
|
||||
<field name="user_type_id"
|
||||
ref="account.data_account_type_current_liabilities"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="l10n_in.indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record id="p11211" model="account.account.template">
|
||||
<field name="name">Creditors</field>
|
||||
<field name="code">11211</field>
|
||||
<field name="user_type_id"
|
||||
ref="account.data_account_type_payable"/>
|
||||
<field name="reconcile" eval="True"/>
|
||||
<field name="chart_template_id" ref="l10n_in.indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record id="p11221" model="account.account.template">
|
||||
<field name="name">Bank OD Account</field>
|
||||
<field name="code">11221</field>
|
||||
<field name="user_type_id"
|
||||
ref="account.data_account_type_current_liabilities"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="l10n_in.indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record id="p11222" model="account.account.template">
|
||||
<field name="name">Secured Loan Account</field>
|
||||
<field name="code">11222</field>
|
||||
<field name="user_type_id"
|
||||
ref="account.data_account_type_current_liabilities"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="l10n_in.indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record id="p11223" model="account.account.template">
|
||||
<field name="name">Unsecured Loan Account</field>
|
||||
<field name="code">11223</field>
|
||||
<field name="user_type_id"
|
||||
ref="account.data_account_type_current_liabilities"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="l10n_in.indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record id="p11231" model="account.account.template">
|
||||
<field name="name">TDS Payable</field>
|
||||
<field name="code">11231</field>
|
||||
<field name="user_type_id"
|
||||
ref="account.data_account_type_current_liabilities"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="l10n_in.indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record id="p11232" model="account.account.template">
|
||||
<field name="name">VAT 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="l10n_in.indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record id="p112331" model="account.account.template">
|
||||
<field name="name">Excise Duty Payable</field>
|
||||
<field name="code">112331</field>
|
||||
<field name="user_type_id"
|
||||
ref="account.data_account_type_current_liabilities"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="l10n_in.indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record id="p112332" model="account.account.template">
|
||||
<field name="name">Education Cess Payable On Excise Duty</field>
|
||||
<field name="code">112332</field>
|
||||
<field name="user_type_id"
|
||||
ref="account.data_account_type_current_liabilities"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="l10n_in.indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record id="p112333" model="account.account.template">
|
||||
<field name="name">Higher Education Cess Payable On Excise Duty
|
||||
</field>
|
||||
<field name="code">112333</field>
|
||||
<field name="user_type_id"
|
||||
ref="account.data_account_type_current_liabilities"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="l10n_in.indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record id="p112341" model="account.account.template">
|
||||
<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="l10n_in.indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record id="p112342" model="account.account.template">
|
||||
<field name="name">Education Cess Payable On Service Tax</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="l10n_in.indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record id="p112343" model="account.account.template">
|
||||
<field name="name">Higher Education Cess Payable On Service Tax
|
||||
</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="l10n_in.indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record id="p11235" model="account.account.template">
|
||||
<field name="name">Sales Tax Payable</field>
|
||||
<field name="code">11235</field>
|
||||
<field name="user_type_id"
|
||||
ref="account.data_account_type_current_liabilities"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="l10n_in.indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record id="p11241" model="account.account.template">
|
||||
<field name="name">Wages Payable</field>
|
||||
<field name="code">11241</field>
|
||||
<field name="user_type_id"
|
||||
ref="account.data_account_type_current_liabilities"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="l10n_in.indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record id="p11242" model="account.account.template">
|
||||
<field name="name">Interest Payable</field>
|
||||
<field name="code">11242</field>
|
||||
<field name="user_type_id"
|
||||
ref="account.data_account_type_current_liabilities"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="l10n_in.indian_chart_template_standard"/>
|
||||
</record>
|
||||
<record id="p11243" model="account.account.template">
|
||||
<field name="name">Notes Payable</field>
|
||||
<field name="code">11243</field>
|
||||
<field name="user_type_id"
|
||||
ref="account.data_account_type_current_liabilities"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id" ref="l10n_in.indian_chart_template_standard"/>
|
||||
</record>
|
||||
|
||||
<record id="st_tag_in_97" model="account.account.tag">
|
||||
<field name="name">Exempt</field>
|
||||
<field name="applicability">accounts</field>
|
||||
</record>
|
||||
|
||||
<record id="exempt_sale" model="account.account.template">
|
||||
<field name="name">Exempt-Sales Account</field>
|
||||
<field name="code">112540</field>
|
||||
<field name="user_type_id"
|
||||
ref="account.data_account_type_current_liabilities"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id"
|
||||
ref="l10n_in.indian_chart_template_standard"/>
|
||||
<field name="tag_ids" eval="[(6, 0, [ref('st_tag_in_97')])]"/>
|
||||
</record>
|
||||
|
||||
<record id="exempt_purchase" model="account.account.template">
|
||||
<field name="name">Exempt-Purchase Account</field>
|
||||
<field name="code">100840</field>
|
||||
<field name="user_type_id"
|
||||
ref="account.data_account_type_current_assets"/>
|
||||
<field name="reconcile" eval="False"/>
|
||||
<field name="chart_template_id"
|
||||
ref="l10n_in.indian_chart_template_standard"/>
|
||||
<field name="tag_ids" eval="[(6, 0, [ref('st_tag_in_97')])]"/>
|
||||
</record>
|
||||
|
||||
<!-- Account Chart Template -->
|
||||
<record id="indian_chart_template_standard" model="account.chart.template">
|
||||
<field name="property_account_receivable_id" ref="p10040"/>
|
||||
<field name="property_account_payable_id" ref="p11211"/>
|
||||
<field name="property_account_expense_categ_id" ref="p2107"/>
|
||||
<field name="property_account_income_categ_id" ref="p20011"/>
|
||||
<field name="income_currency_exchange_account_id" ref="p2013"/>
|
||||
<field name="expense_currency_exchange_account_id" ref="p2117"/>
|
||||
</record>
|
||||
|
||||
</flectra>
|
||||
|
6
addons/l10n_in_gst/__init__.py
Normal file
@ -0,0 +1,6 @@
|
||||
# Part of Flectra See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from . import models
|
||||
from . import wizard
|
||||
from . import report
|
||||
from . import controllers
|
44
addons/l10n_in_gst/__manifest__.py
Normal file
@ -0,0 +1,44 @@
|
||||
# Part of Flectra See LICENSE file for full copyright and licensing details.
|
||||
|
||||
{
|
||||
'name': 'GST Reporting For Indian Localization',
|
||||
'version': '1.0',
|
||||
'author': 'FlectraHQ',
|
||||
'website': 'https://flectrahq.com',
|
||||
'category': 'Accounting',
|
||||
'summary': 'Goods and Services Tax (India)',
|
||||
'description': '''
|
||||
GST module for Flectra enables Indian Organization to use Flectra
|
||||
Accounting in accordance to GST taxation structure. Providing
|
||||
necessary reporting data for GSTR-1 & GSTR-2 filling, Tax Credit etc.
|
||||
''',
|
||||
'depends': ['account_invoicing', 'l10n_in'],
|
||||
'data': [
|
||||
'security/ir.model.access.csv',
|
||||
'data/product_uom_data.xml',
|
||||
'data/note_issue_reason_data.xml',
|
||||
'wizard/account_invoice_refund_view.xml',
|
||||
'views/product_uom_view.xml',
|
||||
'views/res_partner_view.xml',
|
||||
'views/res_company_view.xml',
|
||||
'views/account_invoice_view.xml',
|
||||
'views/res_config_settings_views.xml',
|
||||
'views/gst_report_view.xml',
|
||||
'views/assets.xml',
|
||||
'views/note_issue_reason_view.xml',
|
||||
'views/menuitems_view.xml',
|
||||
],
|
||||
'qweb': [
|
||||
'static/src/xml/*.xml'
|
||||
],
|
||||
'demo': [
|
||||
'demo/res_company_demo.xml',
|
||||
'demo/res_partner_demo.xml',
|
||||
'demo/product_demo.xml',
|
||||
'demo/account_account_demo.xml',
|
||||
'demo/account_invoice_demo.xml',
|
||||
],
|
||||
'installable': True,
|
||||
'auto_install': False,
|
||||
'application': True,
|
||||
}
|
3
addons/l10n_in_gst/controllers/__init__.py
Normal file
@ -0,0 +1,3 @@
|
||||
# Part of Flectra See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from . import main
|
58
addons/l10n_in_gst/controllers/main.py
Normal file
@ -0,0 +1,58 @@
|
||||
# Part of Flectra See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from datetime import datetime
|
||||
|
||||
import pytz
|
||||
from flectra import http, _
|
||||
from flectra.http import request
|
||||
from flectra.tools import DEFAULT_SERVER_DATETIME_FORMAT
|
||||
|
||||
|
||||
class ExportExcel(http.Controller):
|
||||
@http.route('/l10n_in_gst/export_excel', type='http', auth='user')
|
||||
def get_report(self, **kwargs):
|
||||
uid = request.session.uid
|
||||
gst_report_obj = request.env['gst.report'].sudo(uid)
|
||||
data = {
|
||||
'from_date': kwargs['from_date'],
|
||||
'to_date': kwargs['to_date'],
|
||||
'company_id': int(kwargs['company_id']),
|
||||
'year': kwargs['year'],
|
||||
'month': kwargs['month'],
|
||||
'summary_type': kwargs['summary_type'],
|
||||
}
|
||||
|
||||
utc_tz = pytz.timezone('UTC')
|
||||
tz = pytz.timezone(
|
||||
request.env.user.tz) if request.env.user.tz else pytz.utc
|
||||
|
||||
def utc_to_local_zone(naive_datetime):
|
||||
utc_dt = utc_tz.localize(naive_datetime,
|
||||
is_dst=False)
|
||||
return utc_dt.astimezone(tz)
|
||||
|
||||
create_date = datetime.strptime(
|
||||
datetime.today().strftime(DEFAULT_SERVER_DATETIME_FORMAT),
|
||||
DEFAULT_SERVER_DATETIME_FORMAT)
|
||||
company_id = request.env['res.company'].browse(int(data['company_id']))
|
||||
gst_file_name = ''
|
||||
if data['summary_type'] == 'gstr1':
|
||||
gst_file_name = _('GSTR-1')
|
||||
elif data['summary_type'] == 'gstr2':
|
||||
gst_file_name = _('GSTR-2')
|
||||
filename = gst_file_name + _('_%s_%s-%s_%s.xlsx') % (
|
||||
company_id.vat, datetime.today().strftime("%B"),
|
||||
data['year'],
|
||||
utc_to_local_zone(create_date).strftime(
|
||||
"%d/%m/%Y %H:%M:%S"))
|
||||
|
||||
response = request.make_response(
|
||||
None,
|
||||
headers=[
|
||||
('Content-Type', 'application/vnd.ms-excel'),
|
||||
('Content-Disposition',
|
||||
'attachment; filename=' + filename + ';')
|
||||
]
|
||||
)
|
||||
gst_report_obj.print_report(data, 1, response)
|
||||
return response
|
44
addons/l10n_in_gst/data/note_issue_reason_data.xml
Normal file
@ -0,0 +1,44 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<flectra>
|
||||
<data noupdate="1">
|
||||
|
||||
<!-- Note Issuing Reasons Data -->
|
||||
|
||||
<record id="note_issue_reason1" model="note.issue.reason">
|
||||
<field name="code">01</field>
|
||||
<field name="name">Sales Return</field>
|
||||
</record>
|
||||
|
||||
<record id="note_issue_reason2" model="note.issue.reason">
|
||||
<field name="code">02</field>
|
||||
<field name="name">Post Sale Discount</field>
|
||||
</record>
|
||||
|
||||
<record id="note_issue_reason3" model="note.issue.reason">
|
||||
<field name="code">03</field>
|
||||
<field name="name">Deficiency in services</field>
|
||||
</record>
|
||||
|
||||
<record id="note_issue_reason4" model="note.issue.reason">
|
||||
<field name="code">04</field>
|
||||
<field name="name">Correction in Invoice</field>
|
||||
</record>
|
||||
|
||||
<record id="note_issue_reason5" model="note.issue.reason">
|
||||
<field name="code">05</field>
|
||||
<field name="name">Change in POS</field>
|
||||
</record>
|
||||
|
||||
<record id="note_issue_reason6" model="note.issue.reason">
|
||||
<field name="code">06</field>
|
||||
<field name="name">Finalization of Provisional assessment</field>
|
||||
</record>
|
||||
|
||||
<record id="note_issue_reason7" model="note.issue.reason">
|
||||
<field name="code">07</field>
|
||||
<field name="name">Others</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</flectra>
|
425
addons/l10n_in_gst/data/product_uom_data.xml
Normal file
@ -0,0 +1,425 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<flectra>
|
||||
<data noupdate="1">
|
||||
|
||||
<!-- Product Unit of Measure Data -->
|
||||
|
||||
<record id="product.product_uom_cm" model="product.uom">
|
||||
<field name="name">CENTIMETER</field>
|
||||
<field name="code">CMS</field>
|
||||
</record>
|
||||
|
||||
<record id="product.product_uom_dozen" model="product.uom">
|
||||
<field name="name">DOZEN</field>
|
||||
<field name="code">DOZ</field>
|
||||
</record>
|
||||
|
||||
<record id="product.product_uom_foot" model="product.uom">
|
||||
<field name="code">FTS</field>
|
||||
<field name="name">FEET</field>
|
||||
</record>
|
||||
|
||||
<record id="product.product_uom_gram" model="product.uom">
|
||||
<field name="code">GMS</field>
|
||||
<field name="name">GRAMS</field>
|
||||
</record>
|
||||
|
||||
<record id="product.product_uom_inch" model="product.uom">
|
||||
<field name="code">INC</field>
|
||||
<field name="name">INCHES</field>
|
||||
</record>
|
||||
|
||||
<record id="product.product_uom_kgm" model="product.uom">
|
||||
<field name="code">KGS</field>
|
||||
<field name="name">Kilograms</field>
|
||||
</record>
|
||||
|
||||
<record id="product_uom_kiloltr" model="product.uom">
|
||||
<field name="category_id" ref="product.product_uom_categ_vol"/>
|
||||
<field name="name">KILOLITER</field>
|
||||
<field name="factor" eval="1"/>
|
||||
<field name="rounding" eval="0.001"/>
|
||||
<field name="code">KLR</field>
|
||||
</record>
|
||||
|
||||
<record id="product.product_uom_km" model="product.uom">
|
||||
<field name="code">KME</field>
|
||||
<field name="name">KILOMETERS</field>
|
||||
</record>
|
||||
|
||||
<record id="product.product_uom_litre" model="product.uom">
|
||||
<field name="code">LTR</field>
|
||||
<field name="name">LITERS</field>
|
||||
</record>
|
||||
|
||||
<record id="product.product_uom_meter" model="product.uom">
|
||||
<field name="code">MTR</field>
|
||||
<field name="name">METER</field>
|
||||
</record>
|
||||
|
||||
<record id="product.product_uom_qt" model="product.uom">
|
||||
<field name="code">QTL</field>
|
||||
<field name="name">QUINTAL</field>
|
||||
</record>
|
||||
|
||||
<record id="product.product_uom_gal" model="product.uom">
|
||||
<field name="code">UGS</field>
|
||||
<field name="name">US GALLONS</field>
|
||||
</record>
|
||||
|
||||
<record id="product.product_uom_unit" model="product.uom">
|
||||
<field name="code">UNT</field>
|
||||
<field name="name">UNITS</field>
|
||||
</record>
|
||||
|
||||
<record id="product.product_uom_lb" model="product.uom">
|
||||
<field name="code">LBS</field>
|
||||
<field name="name">POUNDS</field>
|
||||
</record>
|
||||
|
||||
<record id="product_uom_bag" model="product.uom">
|
||||
<field name="category_id" ref="product.product_uom_categ_unit"/>
|
||||
<field name="name">BAG</field>
|
||||
<field name="factor" eval="1"/>
|
||||
<field name="rounding" eval="0.01"/>
|
||||
<field name="code">BAG</field>
|
||||
</record>
|
||||
|
||||
<record id="product_uom_BAGS" model="product.uom">
|
||||
<field name="category_id" ref="product.product_uom_categ_unit"/>
|
||||
<field name="name">BAGS</field>
|
||||
<field name="factor" eval="1"/>
|
||||
<field name="rounding" eval="0.01"/>
|
||||
<field name="code">BGS</field>
|
||||
</record>
|
||||
|
||||
<record id="product_uom_buckles" model="product.uom">
|
||||
<field name="category_id" ref="product.product_uom_categ_unit"/>
|
||||
<field name="name">BUCKLES</field>
|
||||
<field name="factor" eval="1"/>
|
||||
<field name="rounding" eval="0.01"/>
|
||||
<field name="code">BKL</field>
|
||||
</record>
|
||||
|
||||
<record id="product_uom_bou" model="product.uom">
|
||||
<field name="category_id" ref="product.product_uom_categ_unit"/>
|
||||
<field name="name">BOU</field>
|
||||
<field name="factor" eval="1"/>
|
||||
<field name="rounding" eval="0.01"/>
|
||||
<field name="code">BOU</field>
|
||||
</record>
|
||||
|
||||
<record id="product_uom_box" model="product.uom">
|
||||
<field name="category_id" ref="product.product_uom_categ_unit"/>
|
||||
<field name="name">BOX</field>
|
||||
<field name="factor" eval="1"/>
|
||||
<field name="rounding" eval="0.01"/>
|
||||
<field name="code">BOX</field>
|
||||
</record>
|
||||
|
||||
<record id="product_uom_bun" model="product.uom">
|
||||
<field name="category_id" ref="product.product_uom_categ_unit"/>
|
||||
<field name="name">BUNCHES</field>
|
||||
<field name="factor" eval="1"/>
|
||||
<field name="rounding" eval="0.01"/>
|
||||
<field name="code">BUN</field>
|
||||
</record>
|
||||
|
||||
<record id="product_uom_btl" model="product.uom">
|
||||
<field name="category_id" ref="product.product_uom_categ_unit"/>
|
||||
<field name="name">BOTTLES</field>
|
||||
<field name="factor" eval="1"/>
|
||||
<field name="rounding" eval="0.01"/>
|
||||
<field name="code">BTL</field>
|
||||
</record>
|
||||
|
||||
<record id="product_uom_cbm" model="product.uom">
|
||||
<field name="category_id" ref="product.uom_categ_length"/>
|
||||
<field name="name">CUBIC METER</field>
|
||||
<field name="factor" eval="1"/>
|
||||
<field name="rounding" eval="0.01"/>
|
||||
<field name="code">CBM</field>
|
||||
</record>
|
||||
|
||||
<record id="product_uom_cqm" model="product.uom">
|
||||
<field name="category_id" ref="product.uom_categ_length"/>
|
||||
<field name="name">CUBIC METERS</field>
|
||||
<field name="factor" eval="1"/>
|
||||
<field name="rounding" eval="0.01"/>
|
||||
<field name="code">CQM</field>
|
||||
</record>
|
||||
|
||||
<record id="product_uom_ccm" model="product.uom">
|
||||
<field name="category_id" ref="product.uom_categ_length"/>
|
||||
<field name="name">CUBIC CENTIMETER</field>
|
||||
<field name="factor" eval="1"/>
|
||||
<field name="rounding" eval="0.01"/>
|
||||
<field name="code">CCM</field>
|
||||
</record>
|
||||
|
||||
<record id="product_uom_cin" model="product.uom">
|
||||
<field name="category_id" ref="product.uom_categ_length"/>
|
||||
<field name="name">CUBIC INCHES</field>
|
||||
<field name="factor" eval="1"/>
|
||||
<field name="rounding" eval="0.01"/>
|
||||
<field name="code">CIN</field>
|
||||
</record>
|
||||
|
||||
<record id="product_uom_ctn" model="product.uom">
|
||||
<field name="category_id" ref="product.product_uom_categ_unit"/>
|
||||
<field name="name">CARTON</field>
|
||||
<field name="factor" eval="1"/>
|
||||
<field name="rounding" eval="0.01"/>
|
||||
<field name="code">CTN</field>
|
||||
</record>
|
||||
|
||||
<record id="product_uom_drm" model="product.uom">
|
||||
<field name="category_id" ref="product.uom_categ_length"/>
|
||||
<field name="name">DRUM</field>
|
||||
<field name="factor" eval="1"/>
|
||||
<field name="rounding" eval="0.01"/>
|
||||
<field name="code">DRM</field>
|
||||
</record>
|
||||
|
||||
<record id="product_uom_ggr" model="product.uom">
|
||||
<field name="category_id" ref="product.product_uom_categ_vol"/>
|
||||
<field name="name">GREAT GROSS</field>
|
||||
<field name="factor" eval="1"/>
|
||||
<field name="rounding" eval="0.01"/>
|
||||
<field name="code">GGR</field>
|
||||
</record>
|
||||
|
||||
<record id="product_uom_grs" model="product.uom">
|
||||
<field name="category_id" ref="product.product_uom_categ_vol"/>
|
||||
<field name="name">GROSS</field>
|
||||
<field name="factor" eval="1"/>
|
||||
<field name="rounding" eval="0.01"/>
|
||||
<field name="code">GRS</field>
|
||||
</record>
|
||||
|
||||
<record id="product_uom_gyd" model="product.uom">
|
||||
<field name="category_id" ref="product.uom_categ_length"/>
|
||||
<field name="name">GROSS YARDS</field>
|
||||
<field name="factor" eval="1"/>
|
||||
<field name="rounding" eval="0.01"/>
|
||||
<field name="code">GYD</field>
|
||||
</record>
|
||||
|
||||
<record id="product_uom_hks" model="product.uom">
|
||||
<field name="category_id" ref="product.uom_categ_length"/>
|
||||
<field name="name">HANKS</field>
|
||||
<field name="factor" eval="1"/>
|
||||
<field name="rounding" eval="0.01"/>
|
||||
<field name="code">HKS</field>
|
||||
</record>
|
||||
|
||||
<record id="product_uom_lot" model="product.uom">
|
||||
<field name="category_id" ref="product.product_uom_categ_kgm"/>
|
||||
<field name="name">LOTS</field>
|
||||
<field name="factor" eval="1"/>
|
||||
<field name="rounding" eval="0.01"/>
|
||||
<field name="code">LOT</field>
|
||||
</record>
|
||||
|
||||
<record id="product_uom_mgs" model="product.uom">
|
||||
<field name="category_id" ref="product.product_uom_categ_kgm"/>
|
||||
<field name="name">MILLI GRAMS</field>
|
||||
<field name="factor" eval="1"/>
|
||||
<field name="rounding" eval="0.01"/>
|
||||
<field name="code">MGS</field>
|
||||
</record>
|
||||
|
||||
<record id="product_uom_mts" model="product.uom">
|
||||
<field name="category_id" ref="product.product_uom_categ_kgm"/>
|
||||
<field name="name">METRIC TON</field>
|
||||
<field name="factor" eval="1"/>
|
||||
<field name="rounding" eval="0.01"/>
|
||||
<field name="code">MTS</field>
|
||||
</record>
|
||||
|
||||
<record id="product_uom_nos" model="product.uom">
|
||||
<field name="category_id" ref="product.product_uom_categ_unit"/>
|
||||
<field name="name">Numbers</field>
|
||||
<field name="factor" eval="1"/>
|
||||
<field name="rounding" eval="0.01"/>
|
||||
<field name="code">NOS</field>
|
||||
</record>
|
||||
|
||||
<record id="product_uom_odd" model="product.uom">
|
||||
<field name="category_id" ref="product.product_uom_categ_unit"/>
|
||||
<field name="name">ODDS</field>
|
||||
<field name="factor" eval="1"/>
|
||||
<field name="rounding" eval="0.01"/>
|
||||
<field name="code">ODD</field>
|
||||
</record>
|
||||
|
||||
<record id="product_uom_pac" model="product.uom">
|
||||
<field name="category_id" ref="product.product_uom_categ_unit"/>
|
||||
<field name="name">PACKS</field>
|
||||
<field name="factor" eval="1"/>
|
||||
<field name="rounding" eval="0.01"/>
|
||||
<field name="code">PAC</field>
|
||||
</record>
|
||||
|
||||
<record id="product_uom_pcs" model="product.uom">
|
||||
<field name="category_id" ref="product.product_uom_categ_unit"/>
|
||||
<field name="name">Pieces</field>
|
||||
<field name="factor" eval="1"/>
|
||||
<field name="rounding" eval="0.01"/>
|
||||
<field name="code">PCS</field>
|
||||
</record>
|
||||
|
||||
<record id="product_uom_prs" model="product.uom">
|
||||
<field name="category_id" ref="product.product_uom_categ_unit"/>
|
||||
<field name="name">PAIRS</field>
|
||||
<field name="factor" eval="1"/>
|
||||
<field name="rounding" eval="0.01"/>
|
||||
<field name="code">PRS</field>
|
||||
</record>
|
||||
|
||||
<record id="product_uom_rol" model="product.uom">
|
||||
<field name="category_id" ref="product.product_uom_categ_unit"/>
|
||||
<field name="name">ROLLS</field>
|
||||
<field name="factor" eval="1"/>
|
||||
<field name="rounding" eval="0.01"/>
|
||||
<field name="code">ROL</field>
|
||||
</record>
|
||||
|
||||
<record id="product_uom_sdm" model="product.uom">
|
||||
<field name="category_id" ref="product.product_uom_categ_vol"/>
|
||||
<field name="name">DECAMETER SQUARE</field>
|
||||
<field name="factor" eval="1"/>
|
||||
<field name="rounding" eval="0.01"/>
|
||||
<field name="code">SDM</field>
|
||||
</record>
|
||||
|
||||
<record id="product_uom_set" model="product.uom">
|
||||
<field name="category_id" ref="product.product_uom_categ_unit"/>
|
||||
<field name="name">SETS</field>
|
||||
<field name="factor" eval="1"/>
|
||||
<field name="rounding" eval="0.01"/>
|
||||
<field name="code">SET</field>
|
||||
</record>
|
||||
|
||||
<record id="product_uom_sht" model="product.uom">
|
||||
<field name="category_id" ref="product.product_uom_categ_unit"/>
|
||||
<field name="name">SHEETS</field>
|
||||
<field name="factor" eval="1"/>
|
||||
<field name="rounding" eval="0.01"/>
|
||||
<field name="code">SHT</field>
|
||||
</record>
|
||||
|
||||
<record id="product_uom_sqi" model="product.uom">
|
||||
<field name="category_id" ref="product.uom_categ_length"/>
|
||||
<field name="name">SQUARE INCHES</field>
|
||||
<field name="factor" eval="1"/>
|
||||
<field name="rounding" eval="0.01"/>
|
||||
<field name="code">SQI</field>
|
||||
</record>
|
||||
|
||||
<record id="product_uom_sqf" model="product.uom">
|
||||
<field name="category_id" ref="product.uom_categ_length"/>
|
||||
<field name="name">SQUARE FEET</field>
|
||||
<field name="factor" eval="1"/>
|
||||
<field name="rounding" eval="0.01"/>
|
||||
<field name="code">SQF</field>
|
||||
</record>
|
||||
|
||||
<record id="product_uom_sqm" model="product.uom">
|
||||
<field name="category_id" ref="product.uom_categ_length"/>
|
||||
<field name="name">SQUARE METER</field>
|
||||
<field name="factor" eval="1"/>
|
||||
<field name="rounding" eval="0.01"/>
|
||||
<field name="code">SQM</field>
|
||||
</record>
|
||||
|
||||
<record id="product_uom_sqy" model="product.uom">
|
||||
<field name="category_id" ref="product.uom_categ_length"/>
|
||||
<field name="name">SQUARE YARDS</field>
|
||||
<field name="factor" eval="1"/>
|
||||
<field name="rounding" eval="0.01"/>
|
||||
<field name="code">SQY</field>
|
||||
</record>
|
||||
|
||||
<record id="product_uom_tbs" model="product.uom">
|
||||
<field name="category_id" ref="product.product_uom_categ_kgm"/>
|
||||
<field name="name">TABLETS</field>
|
||||
<field name="factor" eval="1"/>
|
||||
<field name="rounding" eval="0.01"/>
|
||||
<field name="code">TBS</field>
|
||||
</record>
|
||||
|
||||
<record id="product_uom_thd" model="product.uom">
|
||||
<field name="category_id" ref="product.product_uom_categ_kgm"/>
|
||||
<field name="name">THOUSANDS</field>
|
||||
<field name="factor" eval="1"/>
|
||||
<field name="rounding" eval="0.01"/>
|
||||
<field name="code">THD</field>
|
||||
</record>
|
||||
|
||||
<record id="product_uom_tol" model="product.uom">
|
||||
<field name="category_id" ref="product.product_uom_categ_kgm"/>
|
||||
<field name="name">TOLA</field>
|
||||
<field name="factor" eval="1"/>
|
||||
<field name="rounding" eval="0.01"/>
|
||||
<field name="code">TOL</field>
|
||||
</record>
|
||||
|
||||
<record id="product_uom_ton" model="product.uom">
|
||||
<field name="category_id" ref="product.product_uom_categ_kgm"/>
|
||||
<field name="name">GREAT BRITAIN TON</field>
|
||||
<field name="factor" eval="1"/>
|
||||
<field name="rounding" eval="0.01"/>
|
||||
<field name="code">TON</field>
|
||||
</record>
|
||||
|
||||
<record id="product_uom_tub" model="product.uom">
|
||||
<field name="category_id" ref="product.product_uom_categ_kgm"/>
|
||||
<field name="name">TUBES</field>
|
||||
<field name="factor" eval="1"/>
|
||||
<field name="rounding" eval="0.01"/>
|
||||
<field name="code">TUB</field>
|
||||
</record>
|
||||
|
||||
<record id="product_uom_vls" model="product.uom">
|
||||
<field name="category_id" ref="product.product_uom_categ_vol"/>
|
||||
<field name="name">Vials</field>
|
||||
<field name="factor" eval="1"/>
|
||||
<field name="rounding" eval="0.01"/>
|
||||
<field name="code">VLS</field>
|
||||
</record>
|
||||
|
||||
<record id="product_uom_yds" model="product.uom">
|
||||
<field name="category_id" ref="product.uom_categ_length"/>
|
||||
<field name="name">YARDS</field>
|
||||
<field name="factor" eval="1"/>
|
||||
<field name="rounding" eval="0.01"/>
|
||||
<field name="code">YDS</field>
|
||||
</record>
|
||||
|
||||
<record id="product.product_uom_day" model="product.uom">
|
||||
<field name="code">DAY</field>
|
||||
</record>
|
||||
|
||||
<record id="product.product_uom_floz" model="product.uom">
|
||||
<field name="code">FLOZ</field>
|
||||
</record>
|
||||
|
||||
<record id="product.product_uom_hour" model="product.uom">
|
||||
<field name="code">HOUR</field>
|
||||
</record>
|
||||
|
||||
<record id="product.product_uom_mile" model="product.uom">
|
||||
<field name="code">MILE</field>
|
||||
</record>
|
||||
|
||||
<record id="product.product_uom_oz" model="product.uom">
|
||||
<field name="code">OZ</field>
|
||||
</record>
|
||||
|
||||
<record id="product.product_uom_ton" model="product.uom">
|
||||
<field name="code">TON</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</flectra>
|
19
addons/l10n_in_gst/demo/account_account_demo.xml
Normal file
@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<flectra>
|
||||
<data noupdate="1">
|
||||
|
||||
<!-- Account.account -->
|
||||
<record id="demo_p20011" model="account.account">
|
||||
<field name="code">200111</field>
|
||||
<field name="name">Demo Local Sales</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_revenue"/>
|
||||
</record>
|
||||
|
||||
<record id="demo_p2107" model="account.account">
|
||||
<field name="name">Purchase Expense</field>
|
||||
<field name="code">21071</field>
|
||||
<field name="user_type_id" ref="account.data_account_type_expenses"/>
|
||||
</record>
|
||||
</data>
|
||||
</flectra>
|
677
addons/l10n_in_gst/demo/account_invoice_demo.xml
Normal file
@ -0,0 +1,677 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<flectra>
|
||||
<data noupdate="1">
|
||||
|
||||
<!-- B2B SGST/CGST Invoices -->
|
||||
<record id="demo_invoice_gst1" model="account.invoice">
|
||||
<field name="date_due"
|
||||
eval="DateTime.today().strftime('%Y-%m-28')"/>
|
||||
<field name="currency_id" ref="base.INR"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="reference_type">none</field>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
<field name="state">draft</field>
|
||||
<field name="type">out_invoice</field>
|
||||
<field name="date_invoice"
|
||||
eval="DateTime.today().strftime('%Y-%m-01')"/>
|
||||
<field name="partner_id"
|
||||
ref="l10n_in_gst.res_partner_gst_registered"/>
|
||||
</record>
|
||||
|
||||
<record id="demo_invoice_gst1_line1" model="account.invoice.line">
|
||||
<field name="invoice_id" ref="demo_invoice_gst1"/>
|
||||
<field name="name">Little server</field>
|
||||
<field name="product_id" ref="product.consu_delivery_02"/>
|
||||
<field name="account_id" ref="demo_p20011"/>
|
||||
<field name="price_unit">40000.0</field>
|
||||
<field name="quantity">2.0</field>
|
||||
</record>
|
||||
|
||||
<function model="account.invoice.line" name="_onchange_product_id"
|
||||
eval="[ref('demo_invoice_gst1_line1')]"/>
|
||||
|
||||
<record id="demo_invoice_gst1_line2" model="account.invoice.line">
|
||||
<field name="invoice_id" ref="demo_invoice_gst1"/>
|
||||
<field name="name">Basic Computer</field>
|
||||
<field name="product_id" ref="product.consu_delivery_03"/>
|
||||
<field name="account_id" ref="demo_p20011"/>
|
||||
<field name="price_unit">23500.0</field>
|
||||
<field name="quantity">3.0</field>
|
||||
|
||||
</record>
|
||||
|
||||
<function model="account.invoice.line" name="_onchange_product_id"
|
||||
eval="[ref('demo_invoice_gst1_line2')]"/>
|
||||
|
||||
<function model="account.invoice" name="_onchange_invoice_line_ids"
|
||||
eval="[ref('demo_invoice_gst1')]"/>
|
||||
|
||||
<function model="account.invoice" name="action_invoice_open"
|
||||
eval="[ref('demo_invoice_gst1')]"/>
|
||||
|
||||
<record id="demo_invoice_gst2" model="account.invoice">
|
||||
<field name="date_due"
|
||||
eval="(DateTime.today() - relativedelta(months=1)).strftime('%Y-%m-12')"/>
|
||||
<field name="currency_id" ref="base.INR"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="reference_type">none</field>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
<field name="state">draft</field>
|
||||
<field name="type">out_invoice</field>
|
||||
<field name="date_invoice" eval="(DateTime.today() - relativedelta(months=1)).strftime('%Y-%m-07')"/>
|
||||
<field name="partner_id"
|
||||
ref="l10n_in_gst.res_partner_gst_registered"/>
|
||||
</record>
|
||||
|
||||
<record id="demo_invoice_gst2_line1" model="account.invoice.line">
|
||||
<field name="invoice_id" ref="demo_invoice_gst2"/>
|
||||
<field name="name">Server</field>
|
||||
<field name="product_id" ref="product.consu_delivery_01"/>
|
||||
<field name="account_id" ref="demo_p20011"/>
|
||||
<field name="price_unit">65000.0</field>
|
||||
<field name="quantity">4.0</field>
|
||||
</record>
|
||||
|
||||
<function model="account.invoice.line" name="_onchange_product_id"
|
||||
eval="[ref('demo_invoice_gst2_line1')]"/>
|
||||
|
||||
<record id="demo_invoice_gst2_line2" model="account.invoice.line">
|
||||
<field name="invoice_id" ref="demo_invoice_gst2"/>
|
||||
<field name="name">Basic Computer</field>
|
||||
<field name="product_id" ref="product.consu_delivery_03"/>
|
||||
<field name="account_id" ref="demo_p20011"/>
|
||||
<field name="price_unit">23500.0</field>
|
||||
<field name="quantity">1.0</field>
|
||||
</record>
|
||||
|
||||
<function model="account.invoice.line" name="_onchange_product_id"
|
||||
eval="[ref('demo_invoice_gst2_line2')]"/>
|
||||
|
||||
<record id="demo_invoice_gst2_line3" model="account.invoice.line">
|
||||
<field name="invoice_id" ref="demo_invoice_gst2"/>
|
||||
<field name="name">Laptop E5023</field>
|
||||
<field name="product_id" ref="product.product_product_25"/>
|
||||
<field name="account_id" ref="demo_p20011"/>
|
||||
<field name="price_unit">2870.0</field>
|
||||
<field name="quantity">3.0</field>
|
||||
|
||||
</record>
|
||||
|
||||
<function model="account.invoice.line" name="_onchange_product_id"
|
||||
eval="[ref('demo_invoice_gst2_line3')]"/>
|
||||
|
||||
<function model="account.invoice" name="_onchange_invoice_line_ids"
|
||||
eval="[ref('demo_invoice_gst2')]"/>
|
||||
|
||||
<function model="account.invoice" name="action_invoice_open"
|
||||
eval="[ref('demo_invoice_gst2')]"/>
|
||||
|
||||
<!-- B2CS Invoices -->
|
||||
<record id="demo_invoice_gst3" model="account.invoice">
|
||||
<field name="date_due"
|
||||
eval="DateTime.today().strftime('%Y-%m-1')"/>
|
||||
<field name="currency_id" ref="base.INR"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="reference_type">none</field>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
<field name="state">draft</field>
|
||||
<field name="type">out_invoice</field>
|
||||
<field name="date_invoice"
|
||||
eval="DateTime.today().strftime('%Y-%m-03')"/>
|
||||
<field name="partner_id"
|
||||
ref="l10n_in_gst.res_partner_gst_unregistered"/>
|
||||
</record>
|
||||
|
||||
<record id="demo_invoice_gst3_line1" model="account.invoice.line">
|
||||
<field name="invoice_id" ref="demo_invoice_gst3"/>
|
||||
<field name="name">Little server</field>
|
||||
<field name="product_id" ref="product.consu_delivery_02"/>
|
||||
<field name="account_id" ref="demo_p20011"/>
|
||||
<field name="price_unit">40000.0</field>
|
||||
<field name="quantity">1.0</field>
|
||||
</record>
|
||||
|
||||
<function model="account.invoice.line" name="_onchange_product_id"
|
||||
eval="[ref('demo_invoice_gst3_line1')]"/>
|
||||
|
||||
<record id="demo_invoice_gst3_line2" model="account.invoice.line">
|
||||
<field name="invoice_id" ref="demo_invoice_gst3"/>
|
||||
<field name="name">Basic Computer</field>
|
||||
<field name="product_id" ref="product.consu_delivery_03"/>
|
||||
<field name="account_id" ref="demo_p20011"/>
|
||||
<field name="price_unit">23500.0</field>
|
||||
<field name="quantity">4.0</field>
|
||||
</record>
|
||||
|
||||
<function model="account.invoice.line" name="_onchange_product_id"
|
||||
eval="[ref('demo_invoice_gst3_line2')]"/>
|
||||
|
||||
<record id="demo_invoice_gst3_line3" model="account.invoice.line">
|
||||
<field name="invoice_id" ref="demo_invoice_gst3"/>
|
||||
<field name="name">Server</field>
|
||||
<field name="product_id" ref="product.consu_delivery_01"/>
|
||||
<field name="account_id" ref="demo_p20011"/>
|
||||
<field name="price_unit">65000.0</field>
|
||||
<field name="quantity">2.0</field>
|
||||
</record>
|
||||
|
||||
<function model="account.invoice.line" name="_onchange_product_id"
|
||||
eval="[ref('demo_invoice_gst3_line3')]"/>
|
||||
|
||||
<function model="account.invoice" name="_onchange_invoice_line_ids"
|
||||
eval="[ref('demo_invoice_gst3')]"/>
|
||||
|
||||
<function model="account.invoice" name="action_invoice_open"
|
||||
eval="[ref('demo_invoice_gst3')]"/>
|
||||
|
||||
<!-- B2B IGST Invoices -->
|
||||
<record id="demo_invoice_gst4" model="account.invoice">
|
||||
<field name="date_due"
|
||||
eval="DateTime.today().strftime('%Y-%m-5')"/>
|
||||
<field name="currency_id" ref="base.INR"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="reference_type">none</field>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
<field name="state">draft</field>
|
||||
<field name="type">out_invoice</field>
|
||||
<field name="date_invoice"
|
||||
eval="DateTime.today().strftime('%Y-%m-10')"/>
|
||||
<field name="partner_id"
|
||||
ref="l10n_in_gst.res_partner_igst_registered"/>
|
||||
</record>
|
||||
|
||||
<record id="demo_invoice_gst4_line1" model="account.invoice.line">
|
||||
<field name="invoice_id" ref="demo_invoice_gst4"/>
|
||||
<field name="name">Little server</field>
|
||||
<field name="product_id" ref="product.consu_delivery_02"/>
|
||||
<field name="account_id" ref="demo_p20011"/>
|
||||
<field name="price_unit">40000.0</field>
|
||||
<field name="quantity">2.0</field>
|
||||
</record>
|
||||
|
||||
<function model="account.invoice.line" name="_onchange_product_id"
|
||||
eval="[ref('demo_invoice_gst4_line1')]"/>
|
||||
|
||||
<record id="demo_invoice_gst4_line2" model="account.invoice.line">
|
||||
<field name="invoice_id" ref="demo_invoice_gst4"/>
|
||||
<field name="name">Server</field>
|
||||
<field name="product_id" ref="product.consu_delivery_01"/>
|
||||
<field name="account_id" ref="demo_p20011"/>
|
||||
<field name="price_unit">65000.0</field>
|
||||
<field name="quantity">5.0</field>
|
||||
</record>
|
||||
|
||||
<function model="account.invoice.line" name="_onchange_product_id"
|
||||
eval="[ref('demo_invoice_gst4_line2')]"/>
|
||||
|
||||
<function model="account.invoice" name="_onchange_invoice_line_ids"
|
||||
eval="[ref('demo_invoice_gst4')]"/>
|
||||
|
||||
<function model="account.invoice" name="action_invoice_open"
|
||||
eval="[ref('demo_invoice_gst4')]"/>
|
||||
|
||||
<!-- B2CL IGST Invoices -->
|
||||
<record id="demo_invoice_gst5" model="account.invoice">
|
||||
<field name="date_due"
|
||||
eval="(DateTime.today() - relativedelta(months=1)).strftime('%Y-%m-25')"/>
|
||||
<field name="currency_id" ref="base.INR"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="reference_type">none</field>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
<field name="state">draft</field>
|
||||
<field name="type">out_invoice</field>
|
||||
<field name="date_invoice"
|
||||
eval="(DateTime.today() - relativedelta(months=1)).strftime('%Y-%m-12')"/>
|
||||
<field name="partner_id"
|
||||
ref="l10n_in_gst.res_partner_igst_unregistered"/>
|
||||
</record>
|
||||
|
||||
<record id="demo_invoice_gst5_line1" model="account.invoice.line">
|
||||
<field name="invoice_id" ref="demo_invoice_gst5"/>
|
||||
<field name="name">Laptop E5023</field>
|
||||
<field name="product_id" ref="product.product_product_25"/>
|
||||
<field name="account_id" ref="demo_p20011"/>
|
||||
<field name="price_unit">2870.0</field>
|
||||
<field name="quantity">8.0</field>
|
||||
</record>
|
||||
|
||||
<function model="account.invoice.line" name="_onchange_product_id"
|
||||
eval="[ref('demo_invoice_gst5_line1')]"/>
|
||||
|
||||
<record id="demo_invoice_gst5_line2" model="account.invoice.line">
|
||||
<field name="invoice_id" ref="demo_invoice_gst5"/>
|
||||
<field name="name">Server</field>
|
||||
<field name="product_id" ref="product.consu_delivery_01"/>
|
||||
<field name="account_id" ref="demo_p20011"/>
|
||||
<field name="price_unit">65000.0</field>
|
||||
<field name="quantity">4.0</field>
|
||||
</record>
|
||||
|
||||
<function model="account.invoice.line" name="_onchange_product_id"
|
||||
eval="[ref('demo_invoice_gst5_line2')]"/>
|
||||
|
||||
<function model="account.invoice" name="_onchange_invoice_line_ids"
|
||||
eval="[ref('demo_invoice_gst5')]"/>
|
||||
|
||||
<function model="account.invoice" name="action_invoice_open"
|
||||
eval="[ref('demo_invoice_gst5')]"/>
|
||||
|
||||
<!-- CDNUR Invoices -->
|
||||
<record id="demo_invoice_gst_refund1" model="account.invoice.refund">
|
||||
<field name="description">04-Correction in Invoice</field>
|
||||
<field name="filter_refund">refund</field>
|
||||
<field name="date_invoice"
|
||||
eval="(DateTime.today() - relativedelta(months=1)).strftime('%Y-%m-16')"/>
|
||||
</record>
|
||||
|
||||
<function
|
||||
model="account.invoice.refund" name="invoice_refund"
|
||||
eval="[ref('demo_invoice_gst_refund1')], {'active_ids': [ref('demo_invoice_gst5')]}"
|
||||
/>
|
||||
|
||||
<function model="account.invoice" name="action_invoice_open">
|
||||
<function model="account.invoice"
|
||||
name="search"
|
||||
eval="[[('refund_invoice_id', '=', ref('demo_invoice_gst5'))]]"/>
|
||||
</function>
|
||||
|
||||
<!-- CDNR Invoices -->
|
||||
<record id="demo_invoice_gst_refund2" model="account.invoice.refund">
|
||||
<field name="description">03-Deficiency in services</field>
|
||||
<field name="filter_refund">refund</field>
|
||||
<field name="date_invoice"
|
||||
eval="(DateTime.today() - relativedelta(months=1)).strftime('%Y-%m-26')"/>
|
||||
</record>
|
||||
|
||||
<function
|
||||
model="account.invoice.refund" name="invoice_refund"
|
||||
eval="[ref('demo_invoice_gst_refund2')], {'active_ids': [ref('demo_invoice_gst2')]}"/>
|
||||
|
||||
<function model="account.invoice" name="action_invoice_open">
|
||||
<function model="account.invoice"
|
||||
name="search"
|
||||
eval="[[('refund_invoice_id', '=', ref('demo_invoice_gst2'))]]"/>
|
||||
</function>
|
||||
|
||||
<!-- B2CL Invoice for test cases -->
|
||||
<record id="demo_invoice_gst8" model="account.invoice">
|
||||
<field name="date_due"
|
||||
eval="DateTime.today().strftime('%Y-%m-15')"/>
|
||||
<field name="currency_id" ref="base.INR"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="reference_type">none</field>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
<field name="state">draft</field>
|
||||
<field name="type">out_invoice</field>
|
||||
<field name="date_invoice"
|
||||
eval="DateTime.today().strftime('%Y-%m-13')"/>
|
||||
<field name="partner_id"
|
||||
ref="l10n_in_gst.res_partner_igst_unregistered"/>
|
||||
</record>
|
||||
|
||||
<record id="demo_invoice_gst8_line1" model="account.invoice.line">
|
||||
<field name="invoice_id" ref="demo_invoice_gst8"/>
|
||||
<field name="name">Laptop E5023</field>
|
||||
<field name="product_id" ref="product.product_product_25"/>
|
||||
<field name="account_id" ref="demo_p20011"/>
|
||||
<field name="price_unit">2870.0</field>
|
||||
<field name="quantity">8.0</field>
|
||||
</record>
|
||||
|
||||
<record id="demo_invoice_gst8_line2" model="account.invoice.line">
|
||||
<field name="invoice_id" ref="demo_invoice_gst8"/>
|
||||
<field name="name">Server</field>
|
||||
<field name="product_id" ref="product.consu_delivery_01"/>
|
||||
<field name="account_id" ref="demo_p20011"/>
|
||||
<field name="price_unit">65000.0</field>
|
||||
<field name="quantity">6.0</field>
|
||||
</record>
|
||||
|
||||
<!-- B2B Invoice for test cases -->
|
||||
<record id="demo_invoice_gst9" model="account.invoice">
|
||||
<field name="date_due" eval="(DateTime.today() - relativedelta(months=1)).strftime('%Y-%m-12')"/>
|
||||
<field name="currency_id" ref="base.INR"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="reference_type">none</field>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
<field name="state">draft</field>
|
||||
<field name="type">out_invoice</field>
|
||||
<field name="date_invoice"
|
||||
eval="(DateTime.today() - relativedelta(months=1)).strftime('%Y-%m-07')"/>
|
||||
<field name="partner_id"
|
||||
ref="l10n_in_gst.res_partner_gst_registered"/>
|
||||
</record>
|
||||
|
||||
<record id="demo_invoice_gst9_line1" model="account.invoice.line">
|
||||
<field name="invoice_id" ref="demo_invoice_gst9"/>
|
||||
<field name="name">Server</field>
|
||||
<field name="product_id" ref="product.consu_delivery_01"/>
|
||||
<field name="account_id" ref="demo_p20011"/>
|
||||
<field name="price_unit">65000.0</field>
|
||||
<field name="quantity">1.0</field>
|
||||
</record>
|
||||
|
||||
<record id="demo_invoice_gst9_line2" model="account.invoice.line">
|
||||
<field name="invoice_id" ref="demo_invoice_gst9"/>
|
||||
<field name="name">Basic Computer</field>
|
||||
<field name="product_id" ref="product.consu_delivery_03"/>
|
||||
<field name="account_id" ref="demo_p20011"/>
|
||||
<field name="price_unit">23500.0</field>
|
||||
<field name="quantity">2.0</field>
|
||||
</record>
|
||||
|
||||
<record id="demo_invoice_gst9_line3" model="account.invoice.line">
|
||||
<field name="invoice_id" ref="demo_invoice_gst9"/>
|
||||
<field name="name">Laptop E5023</field>
|
||||
<field name="product_id" ref="product.product_product_25"/>
|
||||
<field name="account_id" ref="demo_p20011"/>
|
||||
<field name="price_unit">2870.0</field>
|
||||
<field name="quantity">5.0</field>
|
||||
</record>
|
||||
|
||||
<!-- B2CS Invoice for test cases -->
|
||||
<record id="demo_invoice_gst10" model="account.invoice">
|
||||
<field name="date_due"
|
||||
eval="DateTime.today().strftime('%Y-%m-21')"/>
|
||||
<field name="currency_id" ref="base.INR"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="reference_type">none</field>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
<field name="state">draft</field>
|
||||
<field name="type">out_invoice</field>
|
||||
<field name="date_invoice"
|
||||
eval="DateTime.today().strftime('%Y-%m-11')"/>
|
||||
<field name="partner_id"
|
||||
ref="l10n_in_gst.res_partner_gst_unregistered"/>
|
||||
</record>
|
||||
|
||||
<record id="demo_invoice_gst10_line1" model="account.invoice.line">
|
||||
<field name="invoice_id" ref="demo_invoice_gst10"/>
|
||||
<field name="name">Little server</field>
|
||||
<field name="product_id" ref="product.consu_delivery_02"/>
|
||||
<field name="account_id" ref="demo_p20011"/>
|
||||
<field name="price_unit">40000.0</field>
|
||||
<field name="quantity">2.0</field>
|
||||
</record>
|
||||
|
||||
<record id="demo_invoice_gst10_line2" model="account.invoice.line">
|
||||
<field name="invoice_id" ref="demo_invoice_gst10"/>
|
||||
<field name="name">Basic Computer</field>
|
||||
<field name="product_id" ref="product.consu_delivery_03"/>
|
||||
<field name="account_id" ref="demo_p20011"/>
|
||||
<field name="price_unit">23500.0</field>
|
||||
<field name="quantity">3.0</field>
|
||||
</record>
|
||||
|
||||
<record id="demo_invoice_gst10_line3" model="account.invoice.line">
|
||||
<field name="invoice_id" ref="demo_invoice_gst10"/>
|
||||
<field name="name">Server</field>
|
||||
<field name="product_id" ref="product.consu_delivery_01"/>
|
||||
<field name="account_id" ref="demo_p20011"/>
|
||||
<field name="price_unit">65000.0</field>
|
||||
<field name="quantity">2.0</field>
|
||||
</record>
|
||||
|
||||
<!-- Composite company Invoice for test cases -->
|
||||
<record id="demo_invoice_gst11" model="account.invoice">
|
||||
<field name="date_due"
|
||||
eval="(DateTime.today() - relativedelta(months=1)).strftime('%Y-%m-12')"/>
|
||||
<field name="currency_id" ref="base.INR"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="reference_type">none</field>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
<field name="state">draft</field>
|
||||
<field name="type">out_invoice</field>
|
||||
<field name="date_invoice"
|
||||
eval="(DateTime.today() - relativedelta(months=1)).strftime('%Y-%m-13')"/>
|
||||
<field name="partner_id"
|
||||
ref="l10n_in_gst.res_partner_gst_registered"/>
|
||||
</record>
|
||||
|
||||
<record id="demo_invoice_gst11_line1" model="account.invoice.line">
|
||||
<field name="invoice_id" ref="demo_invoice_gst11"/>
|
||||
<field name="name">Laptop E5023</field>
|
||||
<field name="product_id" ref="product.product_product_25"/>
|
||||
<field name="account_id" ref="demo_p20011"/>
|
||||
<field name="price_unit">2870.0</field>
|
||||
<field name="quantity">2.0</field>
|
||||
</record>
|
||||
|
||||
<record id="demo_invoice_gst11_line2" model="account.invoice.line">
|
||||
<field name="invoice_id" ref="demo_invoice_gst11"/>
|
||||
<field name="name">Server</field>
|
||||
<field name="product_id" ref="product.consu_delivery_01"/>
|
||||
<field name="account_id" ref="demo_p20011"/>
|
||||
<field name="price_unit">65000.0</field>
|
||||
<field name="quantity">3.0</field>
|
||||
</record>
|
||||
|
||||
<!-- B2CL IGST Invoices -->
|
||||
<record id="demo_invoice_gst12" model="account.invoice">
|
||||
<field name="date_due"
|
||||
eval="DateTime.today().strftime('%Y-%m-17')"/>
|
||||
<field name="currency_id" ref="base.INR"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="reference_type">none</field>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
<field name="state">draft</field>
|
||||
<field name="type">out_invoice</field>
|
||||
<field name="date_invoice"
|
||||
eval="DateTime.today().strftime('%Y-%m-12')"/>
|
||||
<field name="partner_id"
|
||||
ref="l10n_in_gst.res_partner_igst_unregistered"/>
|
||||
</record>
|
||||
|
||||
<record id="demo_invoice_gst12_line1" model="account.invoice.line">
|
||||
<field name="invoice_id" ref="demo_invoice_gst12"/>
|
||||
<field name="name">Laptop E5023</field>
|
||||
<field name="product_id" ref="product.product_product_25"/>
|
||||
<field name="account_id" ref="demo_p20011"/>
|
||||
<field name="price_unit">2870.0</field>
|
||||
<field name="quantity">8.0</field>
|
||||
</record>
|
||||
|
||||
<function model="account.invoice.line" name="_onchange_product_id"
|
||||
eval="[ref('demo_invoice_gst12_line1')]"/>
|
||||
|
||||
<record id="demo_invoice_gst12_line2" model="account.invoice.line">
|
||||
<field name="invoice_id" ref="demo_invoice_gst5"/>
|
||||
<field name="name">Server</field>
|
||||
<field name="product_id" ref="product.consu_delivery_01"/>
|
||||
<field name="account_id" ref="demo_p20011"/>
|
||||
<field name="price_unit">65000.0</field>
|
||||
<field name="quantity">4.0</field>
|
||||
</record>
|
||||
|
||||
<function model="account.invoice.line" name="_onchange_product_id"
|
||||
eval="[ref('demo_invoice_gst12_line2')]"/>
|
||||
|
||||
<function model="account.invoice" name="_onchange_invoice_line_ids"
|
||||
eval="[ref('demo_invoice_gst12')]"/>
|
||||
|
||||
<function model="account.invoice" name="action_invoice_open"
|
||||
eval="[ref('demo_invoice_gst12')]"/>
|
||||
|
||||
<!-- CDNUR Invoices -->
|
||||
<record id="demo_invoice_gst_refund3" model="account.invoice.refund">
|
||||
<field name="description">04-Correction in Invoice</field>
|
||||
<field name="filter_refund">refund</field>
|
||||
<field name="date_invoice"
|
||||
eval="DateTime.today().strftime('%Y-%m-16')"/>
|
||||
</record>
|
||||
|
||||
<function
|
||||
model="account.invoice.refund" name="invoice_refund"
|
||||
eval="[ref('demo_invoice_gst_refund3')], {'active_ids': [ref('demo_invoice_gst3')]}"
|
||||
/>
|
||||
|
||||
<function model="account.invoice" name="action_invoice_open">
|
||||
<function model="account.invoice"
|
||||
name="search"
|
||||
eval="[[('refund_invoice_id', '=', ref('demo_invoice_gst3'))]]"/>
|
||||
</function>
|
||||
|
||||
<!-- CDNR Invoices -->
|
||||
<record id="demo_invoice_gst_refund4" model="account.invoice.refund">
|
||||
<field name="description">03-Deficiency in services</field>
|
||||
<field name="filter_refund">refund</field>
|
||||
<field name="date_invoice"
|
||||
eval="DateTime.today().strftime('%Y-%m-26')"/>
|
||||
</record>
|
||||
|
||||
<function
|
||||
model="account.invoice.refund" name="invoice_refund"
|
||||
eval="[ref('demo_invoice_gst_refund4')], {'active_ids': [ref('demo_invoice_gst1')]}"/>
|
||||
|
||||
<function model="account.invoice" name="action_invoice_open">
|
||||
<function model="account.invoice"
|
||||
name="search"
|
||||
eval="[[('refund_invoice_id', '=', ref('demo_invoice_gst1'))]]"/>
|
||||
</function>
|
||||
|
||||
|
||||
<!--B2B Suppllier Invoices -->
|
||||
<record id="demo_invoice_gst13" model="account.invoice">
|
||||
<field name="date_due"
|
||||
eval="DateTime.today().strftime('%Y-%m-5')"/>
|
||||
<field name="currency_id" ref="base.INR"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="reference_type">none</field>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
<field name="state">draft</field>
|
||||
<field name="type">in_invoice</field>
|
||||
<field name="date_invoice"
|
||||
eval="DateTime.today().strftime('%Y-%m-04')"/>
|
||||
<field name="partner_id"
|
||||
ref="l10n_in_gst.res_partner_gst_registered_supplier"/>
|
||||
</record>
|
||||
|
||||
<record id="demo_invoice_gst13_line1" model="account.invoice.line">
|
||||
<field name="invoice_id" ref="demo_invoice_gst13"/>
|
||||
<field name="name">Little server</field>
|
||||
<field name="product_id" ref="product.consu_delivery_02"/>
|
||||
<field name="account_id" ref="demo_p2107"/>
|
||||
<field name="price_unit">40000.0</field>
|
||||
<field name="quantity">2.0</field>
|
||||
</record>
|
||||
|
||||
<function model="account.invoice.line" name="_onchange_product_id"
|
||||
eval="[ref('demo_invoice_gst13_line1')]"/>
|
||||
|
||||
<record id="demo_invoice_gst13_line2" model="account.invoice.line">
|
||||
<field name="invoice_id" ref="demo_invoice_gst13"/>
|
||||
<field name="name">Basic Computer</field>
|
||||
<field name="product_id" ref="product.consu_delivery_03"/>
|
||||
<field name="account_id" ref="demo_p2107"/>
|
||||
<field name="price_unit">23500.0</field>
|
||||
<field name="quantity">3.0</field>
|
||||
|
||||
</record>
|
||||
|
||||
<function model="account.invoice.line" name="_onchange_product_id"
|
||||
eval="[ref('demo_invoice_gst13_line2')]"/>
|
||||
|
||||
<function model="account.invoice" name="_onchange_invoice_line_ids"
|
||||
eval="[ref('demo_invoice_gst13')]"/>
|
||||
|
||||
<function model="account.invoice" name="action_invoice_open"
|
||||
eval="[ref('demo_invoice_gst13')]"/>
|
||||
|
||||
<!-- B2BUR Supplier Invoices -->
|
||||
<record id="demo_invoice_gst14" model="account.invoice">
|
||||
<field name="date_due"
|
||||
eval="DateTime.today().strftime('%Y-%m-5')"/>
|
||||
<field name="currency_id" ref="base.INR"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="reference_type">none</field>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
<field name="state">draft</field>
|
||||
<field name="type">in_invoice</field>
|
||||
<field name="date_invoice"
|
||||
eval="DateTime.today().strftime('%Y-%m-03')"/>
|
||||
<field name="partner_id"
|
||||
ref="l10n_in_gst.res_partner_gst_unregistered_supplier"/>
|
||||
</record>
|
||||
|
||||
<record id="demo_invoice_gst14_line1" model="account.invoice.line">
|
||||
<field name="invoice_id" ref="demo_invoice_gst14"/>
|
||||
<field name="name">Little server</field>
|
||||
<field name="product_id" ref="product.consu_delivery_02"/>
|
||||
<field name="account_id" ref="demo_p2107"/>
|
||||
<field name="price_unit">40000.0</field>
|
||||
<field name="quantity">1.0</field>
|
||||
</record>
|
||||
|
||||
<function model="account.invoice.line" name="_onchange_product_id"
|
||||
eval="[ref('demo_invoice_gst14_line1')]"/>
|
||||
|
||||
<record id="demo_invoice_gst14_line2" model="account.invoice.line">
|
||||
<field name="invoice_id" ref="demo_invoice_gst14"/>
|
||||
<field name="name">Basic Computer</field>
|
||||
<field name="product_id" ref="product.consu_delivery_03"/>
|
||||
<field name="account_id" ref="demo_p2107"/>
|
||||
<field name="price_unit">23500.0</field>
|
||||
<field name="quantity">4.0</field>
|
||||
</record>
|
||||
|
||||
<function model="account.invoice.line" name="_onchange_product_id"
|
||||
eval="[ref('demo_invoice_gst14_line2')]"/>
|
||||
|
||||
<record id="demo_invoice_gst14_line3" model="account.invoice.line">
|
||||
<field name="invoice_id" ref="demo_invoice_gst14"/>
|
||||
<field name="name">Server</field>
|
||||
<field name="product_id" ref="product.consu_delivery_01"/>
|
||||
<field name="account_id" ref="demo_p2107"/>
|
||||
<field name="price_unit">65000.0</field>
|
||||
<field name="quantity">2.0</field>
|
||||
</record>
|
||||
|
||||
<function model="account.invoice.line" name="_onchange_product_id"
|
||||
eval="[ref('demo_invoice_gst14_line3')]"/>
|
||||
|
||||
<function model="account.invoice" name="_onchange_invoice_line_ids"
|
||||
eval="[ref('demo_invoice_gst14')]"/>
|
||||
|
||||
<function model="account.invoice" name="action_invoice_open"
|
||||
eval="[ref('demo_invoice_gst14')]"/>
|
||||
|
||||
<!-- CDNR Supplier Invoices -->
|
||||
<record id="demo_invoice_gst_refund5" model="account.invoice.refund">
|
||||
<field name="description">04-Correction in Invoice</field>
|
||||
<field name="filter_refund">refund</field>
|
||||
<field name="date_invoice"
|
||||
eval="DateTime.today().strftime('%Y-%m-16')"/>
|
||||
</record>
|
||||
|
||||
<function
|
||||
model="account.invoice.refund" name="invoice_refund"
|
||||
eval="[ref('demo_invoice_gst_refund5')], {'active_ids': [ref('demo_invoice_gst13')]}"
|
||||
/>
|
||||
|
||||
<function model="account.invoice" name="action_invoice_open">
|
||||
<function model="account.invoice"
|
||||
name="search"
|
||||
eval="[[('refund_invoice_id', '=', ref('demo_invoice_gst13'))]]"/>
|
||||
</function>
|
||||
|
||||
<!-- CDNUR Supplier Invoices -->
|
||||
<record id="demo_invoice_gst_refund6" model="account.invoice.refund">
|
||||
<field name="description">03-Deficiency in services</field>
|
||||
<field name="filter_refund">refund</field>
|
||||
<field name="date_invoice"
|
||||
eval="DateTime.today().strftime('%Y-%m-26')"/>
|
||||
</record>
|
||||
|
||||
<function
|
||||
model="account.invoice.refund" name="invoice_refund"
|
||||
eval="[ref('demo_invoice_gst_refund6')], {'active_ids': [ref('demo_invoice_gst14')]}"/>
|
||||
|
||||
<function model="account.invoice" name="action_invoice_open">
|
||||
<function model="account.invoice"
|
||||
name="search"
|
||||
eval="[[('refund_invoice_id', '=', ref('demo_invoice_gst14'))]]"/>
|
||||
</function>
|
||||
|
||||
</data>
|
||||
</flectra>
|
33
addons/l10n_in_gst/demo/product_demo.xml
Normal file
@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<flectra>
|
||||
<data noupdate="1">
|
||||
|
||||
<!-- Inherit product demo data and add customer and supplier taxes -->
|
||||
|
||||
<record id="product.consu_delivery_02" model="product.product">
|
||||
<field name="l10n_in_hsn_code">8492</field>
|
||||
<field name="taxes_id" eval="[(6, 0, [ref('l10n_in.sgst_sale_12')])]"/>
|
||||
<field name="supplier_taxes_id" eval="[(6, 0, [ref('l10n_in.sgst_purchase_12')])]"/>
|
||||
</record>
|
||||
|
||||
<record id="product.consu_delivery_03" model="product.product">
|
||||
<field name="l10n_in_hsn_code">84713011</field>
|
||||
<field name="taxes_id" eval="[(6, 0, [ref('l10n_in.sgst_sale_18')])]"/>
|
||||
<field name="supplier_taxes_id" eval="[(6, 0, [ref('l10n_in.sgst_purchase_18')])]"/>
|
||||
</record>
|
||||
|
||||
<record id="product.consu_delivery_01" model="product.product">
|
||||
<field name="l10n_in_hsn_code">847132</field>
|
||||
<field name="taxes_id" eval="[(6, 0, [ref('l10n_in.sgst_sale_5')])]"/>
|
||||
<field name="supplier_taxes_id" eval="[(6, 0, [ref('l10n_in.sgst_purchase_5')])]" />
|
||||
</record>
|
||||
|
||||
<record id="product.product_product_25" model="product.product">
|
||||
<field name="l10n_in_hsn_code">84713011</field>
|
||||
<field name="taxes_id" eval="[(6, 0, [ref('l10n_in.sgst_sale_5')])]"/>
|
||||
<field name="supplier_taxes_id" eval="[(6, 0, [ref('l10n_in.sgst_purchase_5')])]"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</flectra>
|
14
addons/l10n_in_gst/demo/res_company_demo.xml
Normal file
@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<flectra>
|
||||
<data noupdate="0">
|
||||
|
||||
<!-- Company B2C limit lines' demo data -->
|
||||
<record id="demo_company_b2c_limit1" model="res.company.b2c.limit">
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
<field name="date_from" eval="(DateTime.today() - relativedelta(years=1)).strftime('%Y-01-01')"/>
|
||||
<field name="date_to" eval="time.strftime('%Y')+'-12-31'"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</flectra>
|
126
addons/l10n_in_gst/demo/res_partner_demo.xml
Normal file
@ -0,0 +1,126 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<flectra>
|
||||
<data noupdate="1">
|
||||
|
||||
<!-- Inherit partner demo data and update GST related details -->
|
||||
<record id="base.main_partner" model="res.partner">
|
||||
<field name="gst_type">regular</field>
|
||||
<field name="vat">24ABCDE1234F2Z5</field>
|
||||
<field name="country_id" ref="base.in"/>
|
||||
<field name="state_id" ref="base.state_in_gj"/>
|
||||
</record>
|
||||
|
||||
<!-- Demo SGST/CGST Registered Customer -->
|
||||
<record id="res_partner_gst_registered" model="res.partner">
|
||||
<field name="name">Demo SGST/CGST Registered Customer</field>
|
||||
<field eval="[(6, 0, [ref('base.res_partner_category_15')])]"
|
||||
name="category_id"/>
|
||||
<field name="is_company">1</field>
|
||||
<field name="city">Ahmedabad</field>
|
||||
<field name="zip">380009</field>
|
||||
<field name="state_id" ref="base.state_in_gj"/>
|
||||
<field name="country_id" ref="base.in"/>
|
||||
<field name="street">22 Globe Street</field>
|
||||
<field name="vat">24ANMPD7592B1Z2</field>
|
||||
<field name="gst_type">regular</field>
|
||||
<field name="email">sgst_cgst@yourcompany.example.com</field>
|
||||
<field name="phone">+91 99111 2223</field>
|
||||
<field name="website">http://www.sgstcgst.com</field>
|
||||
</record>
|
||||
|
||||
<!-- Demo SGST/CGST Unregistered Customer -->
|
||||
<record id="res_partner_gst_unregistered" model="res.partner">
|
||||
<field name="name">Demo SGST/CGST Unregistered Customer</field>
|
||||
<field eval="[(6, 0, [ref('base.res_partner_category_15')])]"
|
||||
name="category_id"/>
|
||||
<field name="is_company">1</field>
|
||||
<field name="city">Vadodara</field>
|
||||
<field name="zip">391510</field>
|
||||
<field name="state_id" ref="base.state_in_gj"/>
|
||||
<field name="country_id" ref="base.in"/>
|
||||
<field name="street">Ajwa</field>
|
||||
<field name="gst_type">unregistered</field>
|
||||
<field name="email">sgst_cgst_ur@yourcompany.example.com</field>
|
||||
<field name="phone">+91 75123 75123</field>
|
||||
<field name="website">http://www.sgstcgstur.com</field>
|
||||
</record>
|
||||
|
||||
<!-- Demo IGST Registered Customer -->
|
||||
<record id="res_partner_igst_registered" model="res.partner">
|
||||
<field name="name">Demo IGST Registered Customer</field>
|
||||
<field eval="[(6, 0, [ref('base.res_partner_category_14')])]"
|
||||
name="category_id"/>
|
||||
<field name="is_company">1</field>
|
||||
<field name="city">Delhi</field>
|
||||
<field name="zip">110018</field>
|
||||
<field name="state_id" ref="base.state_in_dl"/>
|
||||
<field name="country_id" ref="base.in"/>
|
||||
<field name="street">15 Ashok Nagar</field>
|
||||
<field name="vat">07GEOPS0823B2ZH</field>
|
||||
<field name="gst_type">regular</field>
|
||||
<field name="email">igst@yourcompany.example.com</field>
|
||||
<field name="phone">+91 99222 5553</field>
|
||||
<field name="website">http://www.igst.com</field>
|
||||
<field name="property_account_position_id"
|
||||
ref="l10n_in.fiscal_position_in_inter_state"/>
|
||||
</record>
|
||||
|
||||
<!-- Demo IGST Unregistered Customer -->
|
||||
<record id="res_partner_igst_unregistered" model="res.partner">
|
||||
<field name="name">Demo IGST Unregistered Customer</field>
|
||||
<field eval="[(6, 0, [ref('base.res_partner_category_16')])]"
|
||||
name="category_id"/>
|
||||
<field name="is_company">1</field>
|
||||
<field name="city">Darrang</field>
|
||||
<field name="zip">784527</field>
|
||||
<field name="state_id" ref="base.state_in_as"/>
|
||||
<field name="country_id" ref="base.in"/>
|
||||
<field name="street">16 Natrani Avenue</field>
|
||||
<field name="gst_type">unregistered</field>
|
||||
<field name="email">igstur@yourcompany.example.com</field>
|
||||
<field name="phone">+91 95951 95951</field>
|
||||
<field name="website">http://www.igstur.com</field>
|
||||
<field name="property_account_position_id"
|
||||
ref="l10n_in.fiscal_position_in_inter_state"/>
|
||||
</record>
|
||||
|
||||
<!-- Demo 2B Registered Supplier -->
|
||||
<record id="res_partner_gst_registered_supplier" model="res.partner">
|
||||
<field name="name">Demo B2B Registered Supplier</field>
|
||||
<field eval="[(6, 0, [ref('base.res_partner_category_15')])]"
|
||||
name="category_id"/>
|
||||
<field name="is_company">1</field>
|
||||
<field name="supplier">1</field>
|
||||
<field name="city">Ahmedabad</field>
|
||||
<field name="zip">380009</field>
|
||||
<field name="state_id" ref="base.state_in_gj"/>
|
||||
<field name="country_id" ref="base.in"/>
|
||||
<field name="street">22 Globe Street</field>
|
||||
<field name="vat">24ANMPDFGH55678</field>
|
||||
<field name="gst_type">regular</field>
|
||||
<field name="email">b2b_supplier@yourcompany.example.com</field>
|
||||
<field name="phone">+91 99111 5454</field>
|
||||
<field name="website">http://www.b2bsupplier.com</field>
|
||||
</record>
|
||||
|
||||
<!-- Demo B2BUR Unregistered Supplier -->
|
||||
<record id="res_partner_gst_unregistered_supplier" model="res.partner">
|
||||
<field name="name">Demo B2BUR Unregistered Supplier</field>
|
||||
<field eval="[(6, 0, [ref('base.res_partner_category_15')])]"
|
||||
name="category_id"/>
|
||||
<field name="is_company">1</field>
|
||||
<field name="supplier">1</field>
|
||||
<field name="city">Vadodara</field>
|
||||
<field name="zip">391510</field>
|
||||
<field name="state_id" ref="base.state_in_gj"/>
|
||||
<field name="country_id" ref="base.in"/>
|
||||
<field name="street">gotri</field>
|
||||
<field name="gst_type">unregistered</field>
|
||||
<field name="email">b2b_ur_supplier@yourcompany.example.com</field>
|
||||
<field name="phone">+91 75123 77777</field>
|
||||
<field name="website">http://www.b2bur.com</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</flectra>
|
1121
addons/l10n_in_gst/i18n/l10n_in_gst.pot
Normal file
8
addons/l10n_in_gst/models/__init__.py
Normal file
@ -0,0 +1,8 @@
|
||||
# Part of Flectra See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from . import res_config_settings
|
||||
from . import account_invoice
|
||||
from . import note_issue_reason
|
||||
from . import product_uom
|
||||
from . import res_company
|
||||
from . import res_partner
|
123
addons/l10n_in_gst/models/account_invoice.py
Normal file
@ -0,0 +1,123 @@
|
||||
# Part of Flectra See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from flectra import api, fields, models, _
|
||||
from flectra.exceptions import ValidationError
|
||||
|
||||
|
||||
class AccountInvoice(models.Model):
|
||||
_inherit = 'account.invoice'
|
||||
|
||||
gst_invoice = fields.Selection(
|
||||
[('b2b', 'B2B'), ('b2cl', 'B2CL'), ('b2cs', 'B2CS'),
|
||||
('b2bur', 'B2BUR')], string='GST Invoice',
|
||||
help='B2B Supplies: Taxable supplies made to other registered '
|
||||
'taxpayers.\n\nB2C Large [For outward supplies]: Taxable '
|
||||
'outward '
|
||||
'supplies to consumers where\na)The place of supply is '
|
||||
'outside the state where the supplier is registered and '
|
||||
'b)The '
|
||||
'total invoice value is more than the limit defined in '
|
||||
'company B2C lines.\ne.g., If in B2C line, B2CL limit is '
|
||||
'set to Rs 2,50,000 and invoice is of amount Rs 3,00,000 then'
|
||||
'invoice '
|
||||
'will be considered as of type B2CL.\n\nB2C Small '
|
||||
'[For outward supplies]: Supplies made to consumers and '
|
||||
'unregistered persons of the following nature\n'
|
||||
'a) Intra-State: any value b) Inter-State: Total invoice '
|
||||
'value is'
|
||||
' less than the limit defined in company B2C lines.\n'
|
||||
'e.g., If in B2C line, B2CS limit is set to Rs 2,50,000 '
|
||||
'(for period 01-01-2017 to 31-12-2017) for inter state '
|
||||
'supply '
|
||||
'and invoice value is Rs 2,00,000 then invoice will be '
|
||||
'considered as of type B2CS.\n\nB2BUR [For inward supplies]: '
|
||||
'Inward supplies received from an unregistered supplier \n\n',
|
||||
copy=False)
|
||||
e_commerce_partner_id = fields.Many2one('res.partner',
|
||||
string='E-Commerce Partner')
|
||||
vat = fields.Char(string='GSTIN',
|
||||
help='Goods and Services Taxpayer Identification '
|
||||
'Number', size=15, copy=False)
|
||||
gst_type = fields.Selection(
|
||||
[('regular', 'Regular'), ('unregistered', 'Unregistered'),
|
||||
('composite', 'Composite'), ('volunteer', 'Volunteer')],
|
||||
string='GST Type', copy=False)
|
||||
partner_location = fields.Selection(
|
||||
[('inter_state', 'Inter State'), ('intra_state', 'intra State'),
|
||||
('inter_country', 'Inter Country')],
|
||||
related='partner_id.partner_location', string="Partner Location")
|
||||
|
||||
@api.onchange('partner_id', 'company_id')
|
||||
def _onchange_partner_id(self):
|
||||
super(AccountInvoice, self)._onchange_partner_id()
|
||||
if self.partner_id and not self.partner_id.partner_location:
|
||||
self.partner_id.partner_location = \
|
||||
self.partner_id._get_partner_location_details(self.company_id)
|
||||
|
||||
@api.onchange('fiscal_position_id')
|
||||
def _onchange_fiscal_position_id(self):
|
||||
""" Onchange of Fiscal Position update tax values in invoice lines. """
|
||||
for line in self.invoice_line_ids:
|
||||
line._onchange_product_id()
|
||||
|
||||
@api.multi
|
||||
def action_move_create(self):
|
||||
""" Do not apply taxes if company has been registered under
|
||||
composition scheme. """
|
||||
for invoice in self:
|
||||
if invoice.type in ('out_invoice',
|
||||
'out_refund') and \
|
||||
invoice.company_id.gst_type == 'composite':
|
||||
for line in invoice.invoice_line_ids:
|
||||
line.invoice_line_tax_ids = [(6, 0, [])]
|
||||
line.invoice_id._onchange_invoice_line_ids()
|
||||
return super(AccountInvoice, self).action_move_create()
|
||||
|
||||
@api.multi
|
||||
def invoice_validate(self):
|
||||
""" Apply GST invoice type at the time of invoice validation. """
|
||||
for invoice in self:
|
||||
partner_location = self.partner_id.partner_location
|
||||
if invoice.partner_id.vat:
|
||||
invoice.write({
|
||||
'vat': invoice.partner_id.vat,
|
||||
'gst_type': invoice.partner_id.gst_type,
|
||||
'gst_invoice': 'b2b'
|
||||
})
|
||||
elif invoice.type == 'out_invoice' and partner_location:
|
||||
b2c_limit = self.env['res.company.b2c.limit'].search(
|
||||
[('date_from', '<=', invoice.date_invoice),
|
||||
('date_to', '>=', invoice.date_invoice),
|
||||
('company_id', '=', invoice.company_id.id)])
|
||||
if not b2c_limit:
|
||||
raise ValidationError(_('Please define B2C limit line in '
|
||||
'company for current period!'))
|
||||
if partner_location == 'inter_state' and \
|
||||
invoice.amount_total > b2c_limit.b2cl_limit:
|
||||
invoice.write({'gst_invoice': 'b2cl'})
|
||||
if partner_location == 'intra_state' or partner_location == \
|
||||
'inter_state' and invoice.amount_total < \
|
||||
b2c_limit.b2cs_limit:
|
||||
invoice.write({'gst_invoice': 'b2cs'})
|
||||
elif invoice.type == 'in_invoice' and partner_location and \
|
||||
partner_location != 'inter_country':
|
||||
invoice.write({'gst_invoice': 'b2bur'})
|
||||
|
||||
return super(AccountInvoice, self).invoice_validate()
|
||||
|
||||
@api.model
|
||||
def _prepare_refund(self, invoice, date_invoice=None, date=None,
|
||||
description=None, journal_id=None):
|
||||
""" Refund invoice creation, update value of GST Invoice from
|
||||
base invoice. """
|
||||
result = super(AccountInvoice, self)._prepare_refund(
|
||||
invoice, date_invoice=date_invoice, date=date,
|
||||
description=description, journal_id=journal_id)
|
||||
if result.get('refund_invoice_id'):
|
||||
invoice = self.env['account.invoice'].browse(
|
||||
result.get('refund_invoice_id'))
|
||||
result.update({
|
||||
'gst_invoice': invoice.gst_invoice, 'vat': invoice.vat,
|
||||
'gst_type': invoice.gst_type,
|
||||
})
|
||||
return result
|
23
addons/l10n_in_gst/models/note_issue_reason.py
Normal file
@ -0,0 +1,23 @@
|
||||
# Part of Flectra See LICENSE file for full copyright and licensing details.
|
||||
|
||||
""" Introduce following new models for GST related customization:
|
||||
* Note Issue Reasons
|
||||
"""
|
||||
|
||||
from flectra import api, fields, models
|
||||
|
||||
|
||||
class NoteIssueReason(models.Model):
|
||||
_name = 'note.issue.reason'
|
||||
|
||||
name = fields.Char(string='Name', required=True)
|
||||
code = fields.Char(string='Code', required=True)
|
||||
|
||||
@api.multi
|
||||
def name_get(self):
|
||||
""" It will display field data in proper format as specified in this
|
||||
method """
|
||||
result = []
|
||||
for record in self:
|
||||
result.append((record.id, '%s-%s' % (record.code, record.name)))
|
||||
return result
|
9
addons/l10n_in_gst/models/product_uom.py
Normal file
@ -0,0 +1,9 @@
|
||||
# Part of Flectra See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from flectra import fields, models
|
||||
|
||||
|
||||
class ProductUomCode(models.Model):
|
||||
_inherit = 'product.uom'
|
||||
|
||||
code = fields.Char(string='Code')
|
106
addons/l10n_in_gst/models/res_company.py
Normal file
@ -0,0 +1,106 @@
|
||||
# Part of Flectra See LICENSE file for full copyright and licensing details.
|
||||
|
||||
import time
|
||||
|
||||
from flectra import api, fields, models, _
|
||||
from flectra.exceptions import ValidationError
|
||||
|
||||
|
||||
class Company(models.Model):
|
||||
_inherit = 'res.company'
|
||||
|
||||
vat = fields.Char(string='GSTIN', related='partner_id.vat')
|
||||
gst_type = fields.Selection([('regular', 'Regular'),
|
||||
('unregistered', 'Unregistered'),
|
||||
('composite', 'Composite'),
|
||||
('volunteer', 'Volunteer')],
|
||||
string='GST Type',
|
||||
related='partner_id.gst_type')
|
||||
gst_introduce_date = fields.Date(string='GST Introduce Date',
|
||||
default=time.strftime('2017-07-01'))
|
||||
company_b2c_limit_line = fields.One2many('res.company.b2c.limit',
|
||||
'company_id', string='B2C Limit')
|
||||
|
||||
def onchange_state(self, gst_type, vat, state):
|
||||
result = {'vat': '', 'country_id': False}
|
||||
if gst_type == 'unregistered' and vat:
|
||||
result['vat'] = False
|
||||
if gst_type != 'unregistered':
|
||||
result['vat'] = state.l10n_in_tin
|
||||
result['country_id'] = state.country_id and \
|
||||
state.country_id.id or False
|
||||
return result
|
||||
|
||||
@api.multi
|
||||
@api.constrains('vat', 'state_id')
|
||||
def _check_gstin_format(self):
|
||||
""" Validations for GSTIN number format and length """
|
||||
for res in self:
|
||||
if res.state_id and res.vat and res.state_id.l10n_in_tin != \
|
||||
res.vat[:2]:
|
||||
raise ValidationError(_('Invalid State Code!'))
|
||||
if res.vat and len(res.vat) != 15 and res.gst_type != \
|
||||
'unregistered':
|
||||
raise ValidationError(_('GSTIN length must be of 15 '
|
||||
'characters!'))
|
||||
|
||||
@api.onchange('state_id', 'country_id')
|
||||
def _onchange_state_id(self):
|
||||
""" Set state code as a initial characters of GSTIN """
|
||||
result = self.onchange_state(self.gst_type, self.vat, self.state_id)
|
||||
self.vat = result['vat']
|
||||
self.country_id = result['country_id']
|
||||
|
||||
@api.onchange('gst_type')
|
||||
def onchange_gst_type(self):
|
||||
""" If gst type is unregistered then GSTIN Number should be blank"""
|
||||
if self.gst_type == 'unregistered':
|
||||
self.vat = False
|
||||
|
||||
@api.model
|
||||
def create(self, vals):
|
||||
result = super(Company, self).create(vals)
|
||||
result.partner_id.gst_company_partner = True
|
||||
if vals.get('state_id', False):
|
||||
result.partner_id.state_id = vals['state_id']
|
||||
if vals.get('country_id', False):
|
||||
result.partner_id.country_id = vals['country_id']
|
||||
return result
|
||||
|
||||
|
||||
class CompanyB2CLimit(models.Model):
|
||||
_name = 'res.company.b2c.limit'
|
||||
|
||||
date_from = fields.Date(string='From')
|
||||
date_to = fields.Date(string='To')
|
||||
b2cl_limit = fields.Float(string='B2CL Limit', default=250000.0,
|
||||
help='Inter state minimum limit for B2CL type '
|
||||
'transactions.')
|
||||
b2cs_limit = fields.Float(string='B2CS Limit', default=250000.0,
|
||||
help='Inter state maximum limit for B2CS type '
|
||||
'transactions.')
|
||||
company_id = fields.Many2one('res.company', string='Company')
|
||||
|
||||
@api.constrains('date_to', 'date_from', 'company_id')
|
||||
def _check_sheet_date(self):
|
||||
for line in self:
|
||||
self.env.cr.execute('''
|
||||
SELECT id
|
||||
FROM res_company_b2c_limit
|
||||
WHERE (date_from <= %s and %s <= date_to)
|
||||
AND company_id=%s
|
||||
AND id <> %s''',
|
||||
(line.date_to, line.date_from,
|
||||
line.company_id.id, line.id))
|
||||
if any(self.env.cr.fetchall()):
|
||||
raise ValidationError(_(
|
||||
'You cannot have 2 limit lines of same period that '
|
||||
'overlap for %s!') % (line.company_id and
|
||||
line.company_id.name))
|
||||
|
||||
@api.constrains('date_from', 'date_to')
|
||||
def _check_dates(self):
|
||||
if any(self.filtered(lambda line: line.date_from and line.
|
||||
date_to and line.date_from > line.date_to)):
|
||||
raise ValidationError(_(
|
||||
'From date must be lower than to date.'))
|
72
addons/l10n_in_gst/models/res_config_settings.py
Normal file
@ -0,0 +1,72 @@
|
||||
# Part of Flectra See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from flectra import api, fields, models
|
||||
|
||||
|
||||
class ResConfigSettings(models.TransientModel):
|
||||
_inherit = 'res.config.settings'
|
||||
|
||||
country_id = fields.Many2one('res.country', string='Country',
|
||||
compute='_get_gst_details',
|
||||
inverse='_set_gst_details')
|
||||
state_id = fields.Many2one('res.country.state', string='State',
|
||||
domain="[('country_id', '=', country_id)]",
|
||||
compute='_get_gst_details',
|
||||
inverse='_set_gst_details')
|
||||
gstin_number = fields.Char(string='GSTIN', size=15,
|
||||
compute='_get_gst_details',
|
||||
inverse='_set_gst_details')
|
||||
gst_type = fields.Selection([('regular', 'Regular'),
|
||||
('unregistered', 'Unregistered'),
|
||||
('composite', 'Composite'),
|
||||
('volunteer', 'Volunteer')],
|
||||
string='GST Type',
|
||||
compute='_get_gst_details',
|
||||
inverse='_set_gst_details')
|
||||
gst_applied = fields.Boolean(string='GST Applied')
|
||||
|
||||
@api.multi
|
||||
@api.depends('company_id', 'gst_applied')
|
||||
def _get_gst_details(self):
|
||||
""" Get GST configuration details from company """
|
||||
self.ensure_one()
|
||||
self.country_id = self.company_id.country_id.id
|
||||
self.state_id = self.company_id.state_id.id
|
||||
self.gstin_number = self.company_id.vat
|
||||
self.gst_type = self.company_id.gst_type
|
||||
|
||||
@api.multi
|
||||
def _set_gst_details(self):
|
||||
""" Set GST configuration details in a company """
|
||||
self.ensure_one()
|
||||
if self.gst_type:
|
||||
partner = self.company_id.partner_id
|
||||
partner.write({
|
||||
'country_id': self.country_id.id,
|
||||
'state_id': self.state_id.id,
|
||||
'vat': self.gstin_number,
|
||||
'gst_company_partner': True,
|
||||
})
|
||||
self.company_id.gst_type = self.gst_type
|
||||
|
||||
@api.onchange('company_id')
|
||||
def onchange_company_id(self):
|
||||
self.gst_applied = False
|
||||
if self.company_id and self.company_id.gst_type:
|
||||
self.gst_applied = True
|
||||
|
||||
@api.onchange('gstin_number', 'country_id')
|
||||
def get_state(self):
|
||||
""" Get state value automatically from GSTIN and country """
|
||||
if self.gstin_number and self.country_id:
|
||||
state_code = self.gstin_number[:2]
|
||||
state_id = self.env['res.country.state'].search([
|
||||
('l10n_in_tin', '=', state_code),
|
||||
('country_id', '=', self.country_id.id)])
|
||||
self.state_id = state_id
|
||||
|
||||
@api.onchange('gst_type')
|
||||
def onchange_gst_type(self):
|
||||
""" If gst type is unregistered then GSTIN Number should be blank"""
|
||||
if self.gst_type == 'unregistered':
|
||||
self.gstin_number = False
|
72
addons/l10n_in_gst/models/res_partner.py
Normal file
@ -0,0 +1,72 @@
|
||||
# Part of Flectra See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from flectra import api, fields, models
|
||||
from flectra.exceptions import ValidationError
|
||||
|
||||
|
||||
class Partner(models.Model):
|
||||
""" Inherit Partner """
|
||||
_inherit = 'res.partner'
|
||||
|
||||
gst_company_partner = fields.Boolean(string='Is company partner?')
|
||||
gst_type = fields.Selection([('regular', 'Regular'),
|
||||
('unregistered', 'Unregistered'),
|
||||
('composite', 'Composite'),
|
||||
('volunteer', 'Volunteer')],
|
||||
string='GST Type')
|
||||
e_commerce = fields.Boolean(string='E-Commerce')
|
||||
partner_location = fields.Selection([('inter_state', 'Inter State'),
|
||||
('intra_state', 'intra State'),
|
||||
('inter_country', 'Inter Country')
|
||||
], "Partner Location")
|
||||
|
||||
@api.multi
|
||||
@api.constrains('vat', 'state_id')
|
||||
def _check_gstin_format(self):
|
||||
for res in self:
|
||||
if res.state_id and res.vat and res.state_id.l10n_in_tin != \
|
||||
res.vat[:2]:
|
||||
raise ValidationError(_('Invalid State Code!'))
|
||||
if res.vat and len(res.vat) != 15 and res.gst_type != \
|
||||
'unregistered':
|
||||
raise ValidationError(_('GSTIN length must be of 15 '
|
||||
'characters!'))
|
||||
|
||||
def _get_partner_location_details(self, company):
|
||||
partner_location = False
|
||||
if self.country_id and company.country_id:
|
||||
partner_location = 'inter_country'
|
||||
if self.country_id.id == company.country_id.id:
|
||||
partner_location = 'inter_state'
|
||||
if self.state_id and company.state_id and self.state_id.id == \
|
||||
company.state_id.id:
|
||||
partner_location = 'intra_state'
|
||||
return partner_location
|
||||
|
||||
@api.onchange('state_id', 'property_account_position_id', 'country_id')
|
||||
def _onchange_state_id(self):
|
||||
""" Set state code as a initial characters of GSTIN """
|
||||
result = self.company_id.onchange_state(self.gst_type, self.vat,
|
||||
self.state_id)
|
||||
self.vat = result['vat']
|
||||
self.country_id = result['country_id']
|
||||
self.partner_location = self._get_partner_location_details(
|
||||
self.company_id)
|
||||
if self.state_id == self.env.user.company_id.state_id and \
|
||||
self.property_account_position_id:
|
||||
self.property_account_position_id = False
|
||||
return {
|
||||
'warning': {
|
||||
'title': 'Warning',
|
||||
'message': 'Fiscal Position not needed for '
|
||||
'same state Customers!'
|
||||
}
|
||||
}
|
||||
|
||||
@api.onchange('gst_type')
|
||||
def onchange_gst_type(self):
|
||||
"""
|
||||
If gst type is unregistered then GSTIN Number should be blank
|
||||
"""
|
||||
if self.gst_type == 'unregistered':
|
||||
self.vat = False
|
3
addons/l10n_in_gst/report/__init__.py
Normal file
@ -0,0 +1,3 @@
|
||||
# Part of Flectra See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from . import gst_report
|
1423
addons/l10n_in_gst/report/gst_report.py
Normal file
5
addons/l10n_in_gst/security/ir.model.access.csv
Normal file
@ -0,0 +1,5 @@
|
||||
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
||||
access_note_issue_reason_all,access_note_issue_reason_all,model_note_issue_reason,account.group_account_manager,1,1,1,1
|
||||
access_note_issue_reason,access_note_issue_reason,model_note_issue_reason,,1,0,0,0
|
||||
access_res_company_b2c_limit_all,access_res_company_b2c_limit_all,model_res_company_b2c_limit,base.group_system,1,1,1,1
|
||||
access_res_company_b2c_limit,access_res_company_b2c_limit,model_res_company_b2c_limit,,1,0,0,0
|
|
BIN
addons/l10n_in_gst/static/description/company_gst_config.png
Normal file
After Width: | Height: | Size: 80 KiB |
BIN
addons/l10n_in_gst/static/description/excel_sheet.png
Normal file
After Width: | Height: | Size: 56 KiB |
BIN
addons/l10n_in_gst/static/description/gstr1_summary_view1.png
Normal file
After Width: | Height: | Size: 71 KiB |
BIN
addons/l10n_in_gst/static/description/gstr1_summary_view2.png
Normal file
After Width: | Height: | Size: 117 KiB |
BIN
addons/l10n_in_gst/static/description/icon.png
Normal file
After Width: | Height: | Size: 7.4 KiB |
92
addons/l10n_in_gst/static/description/index.html
Normal file
@ -0,0 +1,92 @@
|
||||
<section class="oe_container">
|
||||
<div class="oe_row oe_spaced">
|
||||
<h1 class="oe_slogan"
|
||||
style="color: #875A7B;text-decoration: underline;text-align: center;">
|
||||
Goods and Services Tax Management for India</h1>
|
||||
</div>
|
||||
<p class="oe_mt8 text-justify">GST module for Flectra enables Indian Organization to use Flectra Accounting in
|
||||
accordance to GST taxation structure. Providing necessary reporting data for
|
||||
GSTR-1 filing, Tax Credit etc.</p>
|
||||
</section>
|
||||
|
||||
<section class="oe_container oe_dark">
|
||||
<div class="oe_row oe_spaced">
|
||||
<h3 class="oe_slogan">Accounting settings for GST</h3>
|
||||
<div class="oe_span6">
|
||||
<img class="oe_picture oe_screenshot"
|
||||
src="company_gst_config.png">
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="oe_container oe_dark">
|
||||
<div class="oe_row oe_spaced">
|
||||
<h3 class="oe_slogan">Partner configurations for GST</h3>
|
||||
<div class="oe_span6">
|
||||
<img class="oe_picture oe_screenshot"
|
||||
src="partner_form.png">
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="oe_container oe_dark">
|
||||
<div class="oe_row oe_spaced">
|
||||
<h3 class="oe_slogan">Successfully manage
|
||||
your invoices according to their classification in GST</h3>
|
||||
<div class="oe_span6">
|
||||
<img class="oe_picture oe_screenshot"
|
||||
src="invoice_list_groupby.png">
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="oe_container oe_dark">
|
||||
<div class="oe_row oe_spaced">
|
||||
<h3 class="oe_slogan">Invoice form with improvements related to
|
||||
GST details</h3>
|
||||
<div class="oe_span6">
|
||||
<img class="oe_picture oe_screenshot" src="invoice_form.png">
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="oe_container oe_dark">
|
||||
<div class="oe_row oe_spaced">
|
||||
<h3 class="oe_slogan">GSTR-1 Monthly Summary</h3>
|
||||
<div class="oe_span6">
|
||||
<p class="oe_mt8 text-justify">
|
||||
View month, year and company wise GSTR-1 return summary.
|
||||
</p>
|
||||
</div>
|
||||
<div class="oe_span6">
|
||||
<img class="oe_picture oe_screenshot"
|
||||
src="gstr1_summary_view1.png">
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="oe_container oe_dark">
|
||||
<div class="oe_row oe_spaced">
|
||||
<h3 class="oe_slogan">GSTR-1 Summary Details</h3>
|
||||
<div class="oe_span6">
|
||||
<img class="oe_picture oe_screenshot"
|
||||
src="gstr1_summary_view2.png">
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="oe_container oe_dark">
|
||||
<div class="oe_row oe_spaced">
|
||||
<h3 class="oe_slogan">GSTR-1 Excel Export</h3>
|
||||
<div class="oe_span6">
|
||||
<p class="oe_mt8 text-justify">
|
||||
GSTR-1 excel sheet export feature, this auto generated file
|
||||
can be imported at GST Offline Utility software without any
|
||||
modifications.
|
||||
</p>
|
||||
</div>
|
||||
<div class="oe_span6">
|
||||
<img class="oe_picture oe_screenshot" src="excel_sheet.png">
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
BIN
addons/l10n_in_gst/static/description/invoice_form.png
Normal file
After Width: | Height: | Size: 142 KiB |
BIN
addons/l10n_in_gst/static/description/invoice_list_groupby.png
Normal file
After Width: | Height: | Size: 106 KiB |
BIN
addons/l10n_in_gst/static/description/partner_form.png
Normal file
After Width: | Height: | Size: 138 KiB |
389
addons/l10n_in_gst/static/src/js/gst_report.js
Normal file
@ -0,0 +1,389 @@
|
||||
flectra.define('l10n_in_gst.gstr1', function (require) {
|
||||
"use strict";
|
||||
|
||||
var core = require('web.core');
|
||||
var Widget = require('web.Widget');
|
||||
// var Model = require('web.Model');
|
||||
var rpc = require('web.rpc');
|
||||
var session = require('web.session');
|
||||
var ControlPanelMixin = require('web.ControlPanelMixin');
|
||||
var crash_manager = require('web.crash_manager');
|
||||
var framework = require('web.framework');
|
||||
|
||||
var QWeb = core.qweb;
|
||||
|
||||
var GSTRport = Widget.extend(ControlPanelMixin, {
|
||||
template: 'GSTReportDashboard',
|
||||
events: {
|
||||
"click [data-action]": "open_summary_data",
|
||||
"click [action]": "trigger_action",
|
||||
"click .show_subline": "show_subline"
|
||||
},
|
||||
init: function (parent, action) {
|
||||
this.actionManager = parent;
|
||||
this.model = action.context.model; // get default model from context
|
||||
this.summary_type = action.context.summary_type
|
||||
this.pager_context = {
|
||||
rec_limit: 10,
|
||||
rec_start: 1,
|
||||
rec_end: 10,
|
||||
rec_length: null,
|
||||
rec_range: null,
|
||||
total_page: null,
|
||||
};
|
||||
|
||||
this.months = {
|
||||
1: "January", 2: "February", 3: "March", 4: "April", 5: "May", 6: "June",
|
||||
7: "July", 8: "August", 9: "September", 10: "October", 11: "November", 12: "December"
|
||||
};
|
||||
this.gst_report_context = {
|
||||
'from_date': null,
|
||||
'to_date': null,
|
||||
'company_id': session.company_id,
|
||||
'year': null,
|
||||
'month': null,
|
||||
'template': 'ViewSummary',
|
||||
'data_action_method': 'get_gstr_summary',
|
||||
'summary_type': this.summary_type
|
||||
};
|
||||
this.update_date();
|
||||
return this._super.apply(this, arguments);
|
||||
},
|
||||
|
||||
start: function () {
|
||||
var self = this;
|
||||
var temp = self._rpc({
|
||||
model: this.model,
|
||||
method: this.gst_report_context.data_action_method,
|
||||
args: [[], this.gst_report_context, 1],
|
||||
}).then(function (data) {
|
||||
return data;
|
||||
});
|
||||
return $.when(temp, this._super.apply(this, arguments)).then(function (data) {
|
||||
self.$el.html(QWeb.render(self.gst_report_context.template, {data: data['summary']}));
|
||||
self.$button_html = $(QWeb.render('GSTButton', {}));
|
||||
self.$pager_html = $(QWeb.render('GSTPager', {}));
|
||||
self.$search_view_html = $(QWeb.render('GSTFilter', {
|
||||
companies: data['companies'],
|
||||
months: self.months,
|
||||
curr_com_id: session.company_id,
|
||||
curr_month: new Date().getMonth() + 1,
|
||||
curr_year: new Date().getFullYear()
|
||||
}));
|
||||
self.update_cp();
|
||||
self.render_control_panel();
|
||||
});
|
||||
},
|
||||
// Update from_date and to_date when change made in month filter
|
||||
update_date: function () {
|
||||
var dt;
|
||||
if (this.gst_report_context.from_date) {
|
||||
dt = new Date(this.gst_report_context.year + " " + this.gst_report_context.month + " 01");
|
||||
} else {
|
||||
dt = new Date();
|
||||
}
|
||||
var month = dt.getMonth() + 1,
|
||||
year = dt.getFullYear();
|
||||
new Date(year, month, 0).getDate();
|
||||
|
||||
this.gst_report_context.year = year;
|
||||
this.gst_report_context.month = month;
|
||||
this.gst_report_context.from_date = year + '-' + month + '-01';
|
||||
this.gst_report_context.to_date = year + '-' + month + '-' + new Date(year, month, 0).getDate();
|
||||
},
|
||||
// Update control panel Mixin when go back in GST report
|
||||
do_show: function () {
|
||||
this._super.apply(this, arguments);
|
||||
this.update_cp();
|
||||
},
|
||||
// override method for change control panel mixin
|
||||
update_cp: function () {
|
||||
var status = {
|
||||
breadcrumbs: this.actionManager.get_breadcrumbs(),
|
||||
cp_content: {
|
||||
$buttons: this.$button_html,
|
||||
$searchview_buttons: this.$search_view_html,
|
||||
$pager: this.$pager_html,
|
||||
$searchview: this.$searchview
|
||||
}
|
||||
};
|
||||
return this.update_control_panel(status, {clear: true});
|
||||
},
|
||||
// update el according user select report type
|
||||
update_report_data: function () {
|
||||
var self = this;
|
||||
if (this.gst_report_context.template == 'ViewSummary') {
|
||||
self._rpc({
|
||||
model: this.model,
|
||||
method: this.gst_report_context.data_action_method,
|
||||
args: [[], this.gst_report_context],
|
||||
}).then(function (data) {
|
||||
self.$el.html(QWeb.render(self.gst_report_context.template, {data: data}));
|
||||
});
|
||||
} else {
|
||||
self._rpc({
|
||||
model: this.model,
|
||||
method: this.gst_report_context.data_action_method,
|
||||
args: [[], this.gst_report_context, this.pager_context.rec_start, this.pager_context.rec_end],
|
||||
}).then(function (data) {
|
||||
self.$el.html(QWeb.render(self.gst_report_context.template, {data: data['data'], 'summary_type':
|
||||
self.gst_report_context.summary_type
|
||||
}));
|
||||
$("#pager").removeClass('hidden');
|
||||
self.pager_context.rec_length = data['length'];
|
||||
if (self.pager_context.rec_limit > self.pager_context.rec_length) {
|
||||
self.pager_context.rec_limit = self.pager_context.rec_length;
|
||||
}
|
||||
if (data['length'] > 0) {
|
||||
self.pager_context.total_page = Math.ceil(data['length'] / self.pager_context.rec_limit);
|
||||
self.pager_context.rec_end = Math.min(self.pager_context.rec_end, self.pager_context.rec_length);
|
||||
self.pager_context.offset = (self.pager_context.total_page * self.pager_context.rec_limit) - self.pager_context.rec_length;
|
||||
if (self.pager_context.rec_start === self.pager_context.rec_end && self.pager_context.rec_limit === 1) {
|
||||
self.pager_context.rec_range = self.pager_context.rec_start.toString();
|
||||
} else if (self.pager_context.rec_start === self.pager_context.rec_end && self.pager_context.rec_limit > 1) {
|
||||
self.pager_context.rec_range = self.pager_context.rec_start.toString() + '-' + self.pager_context.rec_end.toString();
|
||||
} else {
|
||||
self.pager_context.rec_range = self.pager_context.rec_start.toString() + '-' + self.pager_context.rec_end.toString();
|
||||
}
|
||||
$("#pager .o_pager_value").html(self.pager_context.rec_range);
|
||||
$("#pager .o_pager_limit").html(self.pager_context.rec_length);
|
||||
if (self.pager_context.total_page > 1) {
|
||||
self.$pager_html.find(".o_pager_next").prop('disabled', false);
|
||||
self.$pager_html.find(".o_pager_previous").prop('disabled', false);
|
||||
} else {
|
||||
self.$pager_html.find(".o_pager_next").prop('disabled', true);
|
||||
self.$pager_html.find(".o_pager_previous").prop('disabled', true);
|
||||
}
|
||||
} else {
|
||||
$("#pager").addClass('hidden');
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
// function of control panel mixin
|
||||
render_control_panel: function () {
|
||||
var self = this;
|
||||
// view summary function
|
||||
this.$button_html.find('#view_summary_back').click(function (e) {
|
||||
var view_summary_back_btn = $(this);
|
||||
self._rpc({
|
||||
model: 'gst.report',
|
||||
method: 'get_gstr_summary',
|
||||
args: [[], self.gst_report_context],
|
||||
}).then(function (data) {
|
||||
self.$el.html(QWeb.render('ViewSummary', {data: data}));
|
||||
self.gst_report_context.template = 'ViewSummary';
|
||||
self.gst_report_context.data_action_method = 'get_gstr_summary';
|
||||
view_summary_back_btn.addClass('hidden');
|
||||
$("#pager").addClass('hidden');
|
||||
$("#export_excel").removeClass('hidden');
|
||||
});
|
||||
});
|
||||
// month filter
|
||||
this.$search_view_html.find('#filter_month li a').click(function (e) {
|
||||
if (self.gst_report_context.month != $(this).attr('data-value')) {
|
||||
$('#filter_month li').removeClass('active');
|
||||
$('#filter_month li a span i').removeClass('fa fa-check pull-right');
|
||||
$(this).find('i').addClass('fa fa-check pull-right');
|
||||
$(this).parent().addClass('active');
|
||||
$(this).parent().parent().prev().html($(this).attr('data-string') + ' <span class="caret"></span>');
|
||||
|
||||
self.gst_report_context.month = $(this).attr('data-value');
|
||||
self.update_date();
|
||||
self._clear_context();
|
||||
self.update_report_data();
|
||||
}
|
||||
});
|
||||
// res_company filter
|
||||
this.$search_view_html.find('#res_company li a').click(function (e) {
|
||||
if (self.gst_report_context.company_id != parseInt($(this).attr('data-id'))) {
|
||||
$('#res_company li').removeClass('active');
|
||||
$('#res_company li a span i').removeClass('fa fa-check pull-right');
|
||||
$(this).find('i').addClass('fa fa-check pull-right');
|
||||
$(this).parent().addClass('active');
|
||||
$(this).parent().parent().prev().html($(this).attr('data-string') + ' <span class="caret"></span>');
|
||||
|
||||
self.gst_report_context.company_id = parseInt($(this).attr('data-id'));
|
||||
self.update_date();
|
||||
self._clear_context();
|
||||
self.update_report_data();
|
||||
}
|
||||
});
|
||||
// year filter
|
||||
this.$search_view_html.find('#filter_year').change(function (e) {
|
||||
if (self.gst_report_context.year != $(this).val()) {
|
||||
self.gst_report_context.year = $(this).val();
|
||||
self.update_date();
|
||||
self._clear_context();
|
||||
self.update_report_data();
|
||||
}
|
||||
});
|
||||
// export excel report
|
||||
this.$button_html.find('#export_excel').click(function (e) {
|
||||
var c = crash_manager;
|
||||
session.get_file({
|
||||
url: '/l10n_in_gst/export_excel',
|
||||
data: self.gst_report_context,
|
||||
complete: framework.unblockUI,
|
||||
error: c.rpc_error.bind(c)
|
||||
});
|
||||
});
|
||||
|
||||
this.$pager_html.find('.o_pager_value').click(function (e) {
|
||||
var inner_self = this;
|
||||
var o_pager_value = $(this).html();
|
||||
var $input = $('<input>', {type: 'text', value: o_pager_value});
|
||||
|
||||
$(this).html($input);
|
||||
$input.focus();
|
||||
|
||||
// Event handlers
|
||||
$input.click(function (ev) {
|
||||
ev.stopPropagation(); // ignore clicks on the input
|
||||
});
|
||||
$input.blur(function (ev) {
|
||||
//$(inner_self).html($(this).val());
|
||||
self._save($(ev.target), $(inner_self)); // save the state when leaving the input
|
||||
});
|
||||
$input.on('keydown', function (ev) {
|
||||
ev.stopPropagation();
|
||||
if (ev.which === $.ui.keyCode.ENTER) {
|
||||
self._save($(ev.target), $(inner_self)); // save on enter
|
||||
} else if (ev.which === $.ui.keyCode.ESCAPE) {
|
||||
$(inner_self).html(o_pager_value); // leave on escape
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
this.$pager_html.find('[accesskey]').click(function (e) {
|
||||
var access_key = $(this).attr('accesskey');
|
||||
if (access_key == "n") {
|
||||
self.pager_context.rec_start = self.pager_context.rec_end + 1;
|
||||
self.pager_context.rec_end = Math.min((self.pager_context.rec_end + self.pager_context.rec_limit), self.pager_context.rec_length);
|
||||
if (self.pager_context.rec_end < self.pager_context.rec_start) {
|
||||
self.pager_context.rec_start = 1;
|
||||
self.pager_context.rec_end = self.pager_context.rec_limit;
|
||||
}
|
||||
} else if (access_key == "p") {
|
||||
self.pager_context.rec_start -= self.pager_context.rec_limit;
|
||||
self.pager_context.rec_end = Math.max((self.pager_context.rec_start + self.pager_context.rec_limit - 1), 1);
|
||||
if ((self.pager_context.rec_end == self.pager_context.rec_length) && (self.pager_context.rec_length < (self.pager_context.total_page * self.pager_context.rec_limit))) {
|
||||
self.pager_context.rec_start = ((self.pager_context.total_page - 2) * self.pager_context.rec_limit) + 1;
|
||||
self.pager_context.rec_end = self.pager_context.rec_start + self.pager_context.rec_limit;
|
||||
} else if (self.pager_context.rec_start <= 0) {
|
||||
self.pager_context.rec_start = ((self.pager_context.total_page - 1) * self.pager_context.rec_limit) + 1;
|
||||
self.pager_context.rec_end = self.pager_context.rec_length;
|
||||
}
|
||||
}
|
||||
if (self.pager_context.rec_start === self.pager_context.rec_end) {
|
||||
self.pager_context.rec_range = self.pager_context.rec_start.toString();
|
||||
} else {
|
||||
self.pager_context.rec_range = self.pager_context.rec_start.toString() + '-' + self.pager_context.rec_end.toString();
|
||||
}
|
||||
self.update_report_data();
|
||||
});
|
||||
},
|
||||
// render more details about report
|
||||
open_summary_data: function (e) {
|
||||
var data_action = $(e.target).attr('data-action');
|
||||
this._clear_context();
|
||||
this.gst_report_context.template = data_action.split('_data_')[1].toUpperCase() + 'ViewSummary';
|
||||
this.gst_report_context.data_action_method = data_action;
|
||||
$("#view_summary_back").removeClass('hidden');
|
||||
$("#export_excel").addClass('hidden');
|
||||
this.update_report_data();
|
||||
|
||||
},
|
||||
// open invoice form
|
||||
trigger_action: function (e) {
|
||||
var self = this;
|
||||
var action = $(e.target).attr('action');
|
||||
var data_id = $(e.target).attr('data-id');
|
||||
var data_object = $(e.target).attr('data-object');
|
||||
if (action) {
|
||||
return self._rpc({
|
||||
model: this.model,
|
||||
method: action,
|
||||
args: ['', {
|
||||
id: data_id,
|
||||
object: data_object
|
||||
}],
|
||||
}).then(function (result) {
|
||||
return self.do_action(result);
|
||||
});
|
||||
}
|
||||
},
|
||||
// display sub line
|
||||
show_subline: function (e) {
|
||||
var tr = $(e.target).parent().parent().next('tr.data_subline');
|
||||
if (tr.attr('class').indexOf('hidden') === -1) {
|
||||
tr.addClass('hidden');
|
||||
} else {
|
||||
tr.removeClass('hidden');
|
||||
}
|
||||
},
|
||||
// clear page context
|
||||
_clear_context: function () {
|
||||
this.pager_context = {
|
||||
rec_limit: 10,
|
||||
rec_start: 1,
|
||||
rec_end: 10,
|
||||
rec_length: null,
|
||||
rec_range: null,
|
||||
total_page: null,
|
||||
offset: null
|
||||
};
|
||||
},
|
||||
// re-render after made change in pagination filter
|
||||
_save: function ($input, $o_pager_value) {
|
||||
var value = $input.val().split("-");
|
||||
var start = parseInt(value[0]);
|
||||
var end = parseInt(value[1]);
|
||||
var pager_context = _.clone(this.pager_context);
|
||||
if (!isNaN(start)) {
|
||||
if ((start <= this.pager_context.rec_length) && (start > 0)) {
|
||||
if (value.length === 1) {
|
||||
this.pager_context.rec_end = this.pager_context.rec_start = start;
|
||||
this.pager_context.rec_limit = 1;
|
||||
} else {
|
||||
this.pager_context.rec_start = start;
|
||||
}
|
||||
} else {
|
||||
$o_pager_value.html(this.pager_context.rec_range);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!isNaN(end)) {
|
||||
if ((end <= this.pager_context.rec_length) && (end > 0) && (end >= this.pager_context.rec_start)) {
|
||||
this.pager_context.rec_end = end;
|
||||
this.pager_context.rec_limit = (this.pager_context.rec_end - this.pager_context.rec_start) + 1;
|
||||
} else {
|
||||
$o_pager_value.html(this.pager_context.rec_range);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (this.pager_context.rec_start > this.pager_context.rec_end) {
|
||||
this.pager_context = pager_context;
|
||||
} else {
|
||||
if (this.pager_context.rec_start === this.pager_context.rec_end) {
|
||||
this.pager_context.rec_range = this.pager_context.rec_start.toString();
|
||||
} else {
|
||||
this.pager_context.rec_range = this.pager_context.rec_start.toString() + '-' + this.pager_context.rec_end.toString();
|
||||
}
|
||||
this.update_report_data();
|
||||
}
|
||||
} else {
|
||||
$o_pager_value.html(this.pager_context.rec_range);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
core.action_registry.add('l10n_in_gst.gstr1', GSTRport);
|
||||
|
||||
return {
|
||||
GSTRport: GSTRport
|
||||
};
|
||||
|
||||
});
|
36
addons/l10n_in_gst/static/src/less/gst_report.less
Normal file
@ -0,0 +1,36 @@
|
||||
.table-border-gst {
|
||||
border-spacing: 2px;
|
||||
border-collapse: inherit;
|
||||
}
|
||||
.table-header-color-gst {
|
||||
background-color: #027ec7;
|
||||
color: white;
|
||||
}
|
||||
.sub-table-header-color-gst {
|
||||
background-color: #989896;
|
||||
color: white;
|
||||
}
|
||||
.td-border {
|
||||
.table {
|
||||
>tbody {
|
||||
>tr {
|
||||
>td {
|
||||
border: 1px solid #ddd !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.container-fluid {
|
||||
.container-blank {
|
||||
background-color: #fff;
|
||||
}
|
||||
}
|
||||
.data_action_flectra_color {
|
||||
>a {
|
||||
color: #006eaf !important;
|
||||
&:hover {
|
||||
color: #009efb !important;
|
||||
}
|
||||
}
|
||||
}
|
974
addons/l10n_in_gst/static/src/xml/gst_report.xml
Normal file
@ -0,0 +1,974 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<templates xml:space="preserve">
|
||||
<t t-name="GSTReportDashboard">
|
||||
<div class="container-fluid"/>
|
||||
</t>
|
||||
|
||||
<t t-name="GSTButton">
|
||||
<div class="btn-group o_dropdown">
|
||||
<button class="btn btn-primary" id="export_excel" type="button">Export XLS</button>
|
||||
</div>
|
||||
<div class="btn-group o_dropdown">
|
||||
<button class="btn btn-primary hidden form-control" type="button" id="view_summary_back">View Summary</button>
|
||||
</div>
|
||||
</t>
|
||||
|
||||
<t t-name="GSTPager">
|
||||
<div id="pager" class="hidden">
|
||||
<span class="o_pager_value">1-8</span> / <span class="o_pager_limit">8</span>
|
||||
<span class="btn-group btn-group-sm">
|
||||
<button class="fa fa-chevron-left btn btn-icon o_pager_previous" type="button" accesskey="p" ></button>
|
||||
<button class="fa fa-chevron-right btn btn-icon o_pager_next" type="button" accesskey="n" ></button>
|
||||
</span>
|
||||
</div>
|
||||
</t>
|
||||
|
||||
<t t-name="GSTFilter">
|
||||
<div>
|
||||
<div class="btn-group o_dropdown">
|
||||
<button class="btn btn-default dropdown-toggle" type="button" data-toggle="dropdown"><t t-esc="companies[curr_com_id]"/>
|
||||
<span class="caret"></span></button>
|
||||
<ul class="dropdown-menu" id="res_company">
|
||||
<t t-foreach="companies" t-as="com">
|
||||
<li t-att-class="curr_com_id == com ? 'active' : None"><a href="javascript:void(0);" t-att-data-id="com" t-att-data-string="companies[com]"><span><i t-att-class="curr_com_id == com ? 'fa fa-check pull-right' : None"/><t t-esc="companies[com]"/></span></a></li>
|
||||
</t>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="btn-group o_dropdown">
|
||||
<button class="btn btn-default dropdown-toggle" type="button" data-toggle="dropdown"><t t-esc="months[curr_month]"/>
|
||||
<span class="caret"></span></button>
|
||||
<ul class="dropdown-menu" id="filter_month">
|
||||
<t t-foreach="months" t-as="i">
|
||||
<li t-att-class="curr_month == i ? 'active' : None"><a href="javascript:void(0);" t-att-data-value="i" t-att-data-string="months[i]"><span><i t-att-class="curr_month == i ? 'fa fa-check pull-right' : None"/><t t-esc="months[i]"/></span></a></li>
|
||||
</t>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="btn-group o_dropdown">
|
||||
<input type="number" t-att-value="curr_year" min="0" step="1" class="form-control" id="filter_year"/>
|
||||
</div>
|
||||
<!--<div class="btn-group o_dropdown">-->
|
||||
<!---->
|
||||
<!--</div>-->
|
||||
</div>
|
||||
</t>
|
||||
|
||||
<t t-name="ViewSummary">
|
||||
<div class="row container-blank">
|
||||
<div class="col-md-12 text-center mt16 mb16">
|
||||
<h1>Summary</h1>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row table-responsive td-border container-blank" id="view_summary">
|
||||
<table class="table table-striped table-bordered mb32">
|
||||
<thead>
|
||||
<tr class="table-header-color-gst">
|
||||
<th class="text-center"><span>Section Name</span></th>
|
||||
<th class="text-center"><span>No. of Invoices</span></th>
|
||||
<th class="text-center"><span>Total Central Tax Amount (₹)</span></th>
|
||||
<th class="text-center"><span>Total State/UT Tax Amount (₹)</span></th>
|
||||
<th class="text-center"><span>Total Integrated Tax Amount (₹)</span></th>
|
||||
<th class="text-center"><span>Total CESS (₹)</span></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<t t-foreach="data" t-as="l">
|
||||
<tr>
|
||||
<td class="text-center data_action_flectra_color">
|
||||
<a href="javascript:void(0);" t-att-data-action="l.action"
|
||||
><t t-esc="l.name"/></a>
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<t t-esc="l.no_of_invoices"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="l.cgst_amount" t-esc="l.cgst_amount.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="l.sgst_amount" t-esc="l.sgst_amount.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="l.igst_amount" t-esc="l.igst_amount.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="l.cess_amt_total" t-esc="l.cess_amt_total.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
</tr>
|
||||
</t>
|
||||
<t t-if="data.length == 0">
|
||||
<tr>
|
||||
<td class="text-black-50 text-center" colspan="6">
|
||||
<span>No Record Found</span>
|
||||
</td>
|
||||
</tr>
|
||||
</t>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</t>
|
||||
|
||||
<t t-name="B2BViewSummary">
|
||||
<div class="row container-blank">
|
||||
<div class="col-md-12 text-center mt16 mb16">
|
||||
<t t-if="summary_type == 'gstr1'">
|
||||
<h1>B2B Invoices - 4A, 4B, 4C, 6B, 6C</h1>
|
||||
</t>
|
||||
<t t-if="summary_type == 'gstr2'">
|
||||
<h1>Supplies From Registered Suppliers B2B - 3,4A</h1>
|
||||
</t>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row table-responsive td-border container-blank" id="b2bview_summary">
|
||||
<table class="table table-striped table-bordered mb32">
|
||||
<thead>
|
||||
<tr class="table-header-color-gst">
|
||||
<th class="text-center"><span>Receiver GSTIN/UIN</span></th>
|
||||
<th class="text-center"><span>Invoices No.</span></th>
|
||||
<th class="text-center"><span>Invoices Date</span></th>
|
||||
<th class="text-center"><span>Place of Supply</span></th>
|
||||
<th class="text-center"><span>Rate</span></th>
|
||||
<th class="text-center"><span>Invoice Type</span></th>
|
||||
<th class="text-center"><span>Reverse Charges</span></th>
|
||||
<th class="text-center"><span>E-Commerce GSTIN</span></th>
|
||||
<th class="text-center"><span>Taxable Value</span></th>
|
||||
<th class="text-center"><span>IGST</span></th>
|
||||
<th class="text-center"><span>CGST</span></th>
|
||||
<th class="text-center"><span>SGST</span></th>
|
||||
<th class="text-center"><span>CESS</span></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<t t-foreach="data" t-as="line">
|
||||
<tr>
|
||||
<td class="text-left">
|
||||
<t t-esc="line.gstin_partner"/>
|
||||
</td>
|
||||
<td class="text-left data_action_flectra_color">
|
||||
<a href="javascript:void(0);" action="open_document" t-att-data-id="line.id" data-object="account.invoice"><t t-esc="line.inv_no"/></a>
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<t t-esc="line.date"/>
|
||||
</td>
|
||||
<td class="text-left">
|
||||
<t t-esc="line.place_supply"/>
|
||||
</td>
|
||||
<td class="text-center data_action_flectra_color">
|
||||
<a href="javascript:void(0);" class="show_subline"><t t-esc="line.rate"/> %</a>
|
||||
</td>
|
||||
<td class="text-left">
|
||||
<t t-esc="line.inv_type"/>
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<t t-esc="line.reverse_charge"/>
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<t t-esc="line.ecommerce_gstin"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="line.taxable_value" t-esc="line.taxable_value.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="line.igst" t-esc="line.igst.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="line.cgst" t-esc="line.cgst.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="line.sgst" t-esc="line.sgst.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="line.cess_amount" t-esc="line.cess_amount.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
</tr>
|
||||
<t t-if="line.lines.length">
|
||||
<tr class="data_subline hidden">
|
||||
<td colspan="2"/>
|
||||
<td colspan="11">
|
||||
<table class="table table-striped table-bordered table-border-gst mb0">
|
||||
<thead>
|
||||
<tr class="sub-table-header-color-gst">
|
||||
<th class="text-left"><span>Product Name</span></th>
|
||||
<th class="text-center"><span>Quantity</span></th>
|
||||
<th class="text-center"><span>Price</span></th>
|
||||
<th class="text-center"><span>IGST</span></th>
|
||||
<th class="text-center"><span>CGST</span></th>
|
||||
<th class="text-center"><span>SGST</span></th>
|
||||
<th class="text-center"><span>CESS</span></th>
|
||||
<th class="text-center"><span>Amount</span></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<t t-foreach="line.lines" t-as="sub_line">
|
||||
<tr>
|
||||
<td class="text-left">
|
||||
<t t-esc="sub_line.product_name"/>
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<t t-esc="sub_line.quantity"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="sub_line.price_unit" t-esc="sub_line.price_unit.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="sub_line.igst_amount" t-esc="sub_line.igst_amount.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="sub_line.cgst_amount" t-esc="sub_line.cgst_amount.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="sub_line.sgst_amount" t-esc="sub_line.sgst_amount.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="sub_line.cess" t-esc="sub_line.cess.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="sub_line.amount" t-esc="sub_line.amount.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
</tr>
|
||||
</t>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</t>
|
||||
</t>
|
||||
<t t-if="data.length == 0">
|
||||
<tr>
|
||||
<td class="text-black-50 text-center" colspan="13">
|
||||
<span>No Record Found</span>
|
||||
</td>
|
||||
</tr>
|
||||
</t>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</t>
|
||||
|
||||
<t t-name="B2CLViewSummary">
|
||||
<div class="row container-blank">
|
||||
<div class="col-md-12 text-center mt16 mb16">
|
||||
<h1>B2C(Large) Invoices - 5A, 5B</h1>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row table-responsive td-border container-blank">
|
||||
<table class="table table-striped table-bordered mb32">
|
||||
<thead>
|
||||
<tr class="table-header-color-gst">
|
||||
<th class="text-center"><span>Invoices No.</span></th>
|
||||
<th class="text-center"><span>Invoices Date</span></th>
|
||||
<th class="text-center"><span>Place of Supply</span></th>
|
||||
<th class="text-center"><span>Rate</span></th>
|
||||
<th class="text-center"><span>E-Commerce
|
||||
GSTIN</span></th>
|
||||
<th class="text-center"><span>Taxable Value</span></th>
|
||||
<th class="text-center"><span>IGST</span></th>
|
||||
<th class="text-center"><span>CGST</span></th>
|
||||
<th class="text-center"><span>SGST</span></th>
|
||||
<th class="text-center"><span>CESS</span></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<t t-foreach="data" t-as="line">
|
||||
<tr>
|
||||
<td class="text-left data_action_flectra_color">
|
||||
<a href="javascript:void(0);" action="open_document" t-att-data-id="line.id" data-object="account.invoice"><t t-esc="line.inv_no"/></a>
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<t t-esc="line.date"/>
|
||||
</td>
|
||||
<td class="text-left">
|
||||
<t t-esc="line.place_supply"/>
|
||||
</td>
|
||||
<td class="text-center data_action_flectra_color">
|
||||
<a href="javascript:void(0);" class="show_subline"><t t-esc="line.rate"/> %</a>
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<t t-esc="line.ecommerce_gstin"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="line.taxable_value" t-esc="line.taxable_value.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="line.igst" t-esc="line.igst.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="line.cgst" t-esc="line.cgst.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="line.sgst" t-esc="line.sgst.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="line.cess_amount" t-esc="line.cess_amount.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
</tr>
|
||||
<t t-if="line.lines.length">
|
||||
<tr class="data_subline hidden">
|
||||
<td colspan="2"/>
|
||||
<td colspan="11">
|
||||
<table class="table table-striped table-bordered table-border-gst mb0">
|
||||
<thead>
|
||||
<tr class="sub-table-header-color-gst">
|
||||
<th class="text-left"><span>Product Name</span></th>
|
||||
<th class="text-center"><span>Quantity</span></th>
|
||||
<th class="text-center"><span>Price</span></th>
|
||||
<th class="text-center"><span>IGST</span></th>
|
||||
<th class="text-center"><span>CGST</span></th>
|
||||
<th class="text-center"><span>SGST</span></th>
|
||||
<th class="text-center"><span>CESS</span></th>
|
||||
<th class="text-center"><span>Amount</span></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<t t-foreach="line.lines" t-as="sub_line">
|
||||
<tr>
|
||||
<td class="text-left">
|
||||
<t t-esc="sub_line.product_name"/>
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<t t-esc="sub_line.quantity"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="sub_line.price_unit" t-esc="sub_line.price_unit.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="sub_line.igst_amount" t-esc="sub_line.igst_amount.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="sub_line.cgst_amount" t-esc="sub_line.cgst_amount.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="sub_line.sgst_amount" t-esc="sub_line.sgst_amount.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="sub_line.cess" t-esc="sub_line.cess.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="sub_line.amount" t-esc="sub_line.amount.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
</tr>
|
||||
</t>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</t>
|
||||
<t t-if="data.length == 0">
|
||||
<tr>
|
||||
<td class="text-black-50 text-center" colspan="10">
|
||||
<span>No Record Found</span>
|
||||
</td>
|
||||
</tr>
|
||||
</t>
|
||||
</t>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</t>
|
||||
|
||||
<t t-name="B2CSViewSummary">
|
||||
<div class="row container-blank">
|
||||
<div class="col-md-12 text-center mt16 mb16">
|
||||
<h1>B2C(Small) Details - 7</h1>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row table-responsive td-border container-blank">
|
||||
<table class="table table-striped table-bordered mb32">
|
||||
<thead>
|
||||
<tr class="table-header-color-gst">
|
||||
<th class="text-center"><span>Invoices No.</span></th>
|
||||
<th class="text-center"><span>Place of Supply</span></th>
|
||||
<th class="text-center"><span>Rate</span></th>
|
||||
<th class="text-center"><span>Type</span></th>
|
||||
<th class="text-center"><span>E-Commerce
|
||||
GSTIN</span></th>
|
||||
<th class="text-center"><span>Taxable Value</span></th>
|
||||
<th class="text-center"><span>IGST</span></th>
|
||||
<th class="text-center"><span>CGST</span></th>
|
||||
<th class="text-center"><span>SGST</span></th>
|
||||
<th class="text-center"><span>CESS</span></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<t t-foreach="data" t-as="line">
|
||||
<tr>
|
||||
<td class="text-left data_action_flectra_color">
|
||||
<a href="javascript:void(0);" action="open_document" t-att-data-id="line.id" data-object="account.invoice"><t t-esc="line.inv_no"/></a>
|
||||
</td>
|
||||
<td class="text-left">
|
||||
<t t-esc="line.place_supply"/>
|
||||
</td>
|
||||
<td class="text-center data_action_flectra_color">
|
||||
<a href="javascript:void(0);" class="show_subline"><t t-esc="line.rate"/> %</a>
|
||||
</td>
|
||||
<td class="text-left">
|
||||
<t t-esc="line.type"/>
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<t t-esc="line.ecommerce_gstin"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="line.taxable_value" t-esc="line.taxable_value.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="line.igst" t-esc="line.igst.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="line.cgst" t-esc="line.cgst.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="line.sgst" t-esc="line.sgst.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="line.cess_amount" t-esc="line.cess_amount.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
</tr>
|
||||
<t t-if="line.lines.length">
|
||||
<tr class="data_subline hidden">
|
||||
<td colspan="2"/>
|
||||
<td colspan="8">
|
||||
<table class="table table-striped table-bordered table-border-gst mb0">
|
||||
<thead>
|
||||
<tr class="sub-table-header-color-gst">
|
||||
<th class="text-left"><span>Product Name</span></th>
|
||||
<th class="text-center"><span>Quantity</span></th>
|
||||
<th class="text-center"><span>Price</span></th>
|
||||
<th class="text-center"><span>IGST</span></th>
|
||||
<th class="text-center"><span>CGST</span></th>
|
||||
<th class="text-center"><span>SGST</span></th>
|
||||
<th class="text-center"><span>CESS</span></th>
|
||||
<th class="text-center"><span>Amount</span></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<t t-foreach="line.lines" t-as="sub_line">
|
||||
<tr class="table-border-gst">
|
||||
<td class="text-left">
|
||||
<t t-esc="sub_line.product_name"/>
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<t t-esc="sub_line.quantity"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="sub_line.price_unit" t-esc="sub_line.price_unit.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="sub_line.igst_amount" t-esc="sub_line.igst_amount.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="sub_line.cgst_amount" t-esc="sub_line.cgst_amount.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="sub_line.sgst_amount" t-esc="sub_line.sgst_amount.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="sub_line.cess" t-esc="sub_line.cess.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="sub_line.amount" t-esc="sub_line.amount.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
</tr>
|
||||
</t>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</t>
|
||||
</t>
|
||||
<t t-if="data.length == 0">
|
||||
<tr>
|
||||
<td class="text-black-50 text-center" colspan="11">
|
||||
<span>No Record Found</span>
|
||||
</td>
|
||||
</tr>
|
||||
</t>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</t>
|
||||
|
||||
<t t-name="CDNRViewSummary">
|
||||
<div class="row container-blank">
|
||||
<div class="col-md-12 text-center mt16 mb16">
|
||||
<t t-if="summary_type == 'gstr1'">
|
||||
<h1>Credit/Debit Notes(Registered) - 9B </h1>
|
||||
</t>
|
||||
<t t-if="summary_type == 'gstr2'">
|
||||
<h1>Debit/Credit Notes (Registered) - 6C </h1>
|
||||
</t>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row table-responsive td-border container-blank">
|
||||
<table class="table table-striped table-bordered mb32">
|
||||
<thead>
|
||||
<tr class="table-header-color-gst">
|
||||
<th class="text-center"><span>GSTIN/UIN of Recipient</span></th>
|
||||
<th class="text-center"><span>Invoice/Advance Receipt Number</span></th>
|
||||
<th class="text-center"><span>Invoice/Advance Receipt date</span></th>
|
||||
<th class="text-center"><span>Note/Refund Voucher Number</span></th>
|
||||
<th class="text-center"><span>Note/Refund Voucher date</span></th>
|
||||
<th class="text-center"><span>Document Type</span></th>
|
||||
<th class="text-center"><span>Reason For Issuing document</span></th>
|
||||
<th class="text-center"><span>Place Of Supply</span></th>
|
||||
<th class="text-center"><span>Rate</span></th>
|
||||
<th class="text-center"><span>Taxable Value</span></th>
|
||||
<th class="text-center"><span>IGST</span></th>
|
||||
<th class="text-center"><span>CGST</span></th>
|
||||
<th class="text-center"><span>SGST</span></th>
|
||||
<th class="text-center"><span>CESS</span></th>
|
||||
<th class="text-center"><span>Pre GST</span></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<t t-foreach="data" t-as="line">
|
||||
<tr>
|
||||
<td class="text-left">
|
||||
<t t-esc="line.gstin_partner"/>
|
||||
</td>
|
||||
<td class="text-left data_action_flectra_color">
|
||||
<a href="javascript:void(0);" action="open_document" t-att-data-id="line.refund_invoice_id" data-object="account.invoice"><t t-esc="line.refund_inv_no"/></a>
|
||||
</td>
|
||||
<td class="text-left">
|
||||
<t t-esc="line.refund_date_invoice"/>
|
||||
</td>
|
||||
<td class="text-left data_action_flectra_color">
|
||||
<a href="javascript:void(0);" action="open_document" t-att-data-id="line.id" data-object="account.invoice"><t t-esc="line.inv_no"/></a>
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<t t-esc="line.inv_date"/>
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<t t-esc="line.document_type"/>
|
||||
</td>
|
||||
<td class="text-left">
|
||||
<t t-esc="line.reason"/>
|
||||
</td>
|
||||
<td class="text-left">
|
||||
<t t-esc="line.place_supply"/>
|
||||
</td>
|
||||
<td class="text-center data_action_flectra_color">
|
||||
<a href="javascript:void(0);" class="show_subline"><t t-esc="line.rate"/> %</a>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="line.taxable_value" t-esc="line.taxable_value.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="line.igst" t-esc="line.igst.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="line.cgst" t-esc="line.cgst.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="line.sgst" t-esc="line.sgst.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="line.cess_amount" t-esc="line.cess_amount.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-center" style="white-space: nowrap;">
|
||||
<t t-esc="line.pre_gst"/>
|
||||
</td>
|
||||
</tr>
|
||||
<t t-if="line.lines.length">
|
||||
<tr class="data_subline hidden">
|
||||
<td colspan="2"/>
|
||||
<td colspan="11">
|
||||
<table class="table table-striped table-bordered table-border-gst mb0">
|
||||
<thead>
|
||||
<tr class="sub-table-header-color-gst">
|
||||
<th class="text-left"><span>Product Name</span></th>
|
||||
<th class="text-center"><span>Quantity</span></th>
|
||||
<th class="text-center"><span>Price</span></th>
|
||||
<th class="text-center"><span>IGST</span></th>
|
||||
<th class="text-center"><span>CGST</span></th>
|
||||
<th class="text-center"><span>SGST</span></th>
|
||||
<th class="text-center"><span>CESS</span></th>
|
||||
<th class="text-center"><span>Amount</span></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<t t-foreach="line.lines" t-as="sub_line">
|
||||
<tr class="table-border-gst">
|
||||
<td class="text-left">
|
||||
<t t-esc="sub_line.product_name"/>
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<t t-esc="sub_line.quantity"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="sub_line.price_unit" t-esc="sub_line.price_unit.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="sub_line.igst_amount" t-esc="sub_line.igst_amount.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="sub_line.cgst_amount" t-esc="sub_line.cgst_amount.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="sub_line.sgst_amount" t-esc="sub_line.sgst_amount.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="sub_line.cess" t-esc="sub_line.cess.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="sub_line.amount" t-esc="sub_line.amount.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
</tr>
|
||||
</t>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</t>
|
||||
</t>
|
||||
<t t-if="data.length == 0">
|
||||
<tr>
|
||||
<td class="text-black-50 text-center" colspan="15">
|
||||
<span>No Record Found</span>
|
||||
</td>
|
||||
</tr>
|
||||
</t>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</t>
|
||||
|
||||
<t t-name="CDNURViewSummary">
|
||||
<div class="row container-blank">
|
||||
<div class="col-md-12 text-center mt16 mb16">
|
||||
<t t-if="summary_type == 'gstr1'">
|
||||
<h1>Credit/Debit Notes(Unregistered) - 9B</h1>
|
||||
</t>
|
||||
<t t-if="summary_type == 'gstr2'">
|
||||
<h1>Credit/Debit Notes(Unregistered) - 6C</h1>
|
||||
</t>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row table-responsive td-border container-blank">
|
||||
<table class="table table-striped table-bordered mb32">
|
||||
<thead>
|
||||
<tr class="table-header-color-gst">
|
||||
<th class="text-center"><span>UR Type</span></th>
|
||||
<th class="text-center"><span>Invoice/Advance Receipt Number</span></th>
|
||||
<th class="text-center"><span>Invoice/Advance Receipt date</span></th>
|
||||
<th class="text-center"><span>Note/Refund Voucher Number</span></th>
|
||||
<th class="text-center"><span>Note/Refund Voucher date</span></th>
|
||||
<th class="text-center"><span>Document Type</span></th>
|
||||
<th class="text-center"><span>Reason For Issuing document</span></th>
|
||||
<th class="text-center"><span>Place Of Supply</span></th>
|
||||
<th class="text-center"><span>Rate</span></th>
|
||||
<th class="text-center"><span>Taxable Value</span></th>
|
||||
<th class="text-center"><span>IGST</span></th>
|
||||
<th class="text-center"><span>CGST</span></th>
|
||||
<th class="text-center"><span>SGST</span></th>
|
||||
<th class="text-center"><span>CESS</span></th>
|
||||
<th class="text-center"><span>Pre GST</span></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<t t-foreach="data" t-as="line">
|
||||
<tr>
|
||||
<td class="text-left">
|
||||
<t t-esc="line.gst_invoice_type"/>
|
||||
</td>
|
||||
<td class="text-left data_action_flectra_color">
|
||||
<a href="javascript:void(0);" action="open_document" t-att-data-id="line.refund_invoice_id" data-object="account.invoice"><t t-esc="line.refund_inv_no"/></a>
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<t t-esc="line.refund_date_invoice"/>
|
||||
</td>
|
||||
<td class="text-left data_action_flectra_color">
|
||||
<a href="javascript:void(0);" action="open_document" t-att-data-id="line.id" data-object="account.invoice"><t t-esc="line.inv_no"/></a>
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<t t-esc="line.inv_date"/>
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<t t-esc="line.document_type"/>
|
||||
</td>
|
||||
<td class="text-left">
|
||||
<t t-esc="line.reason"/>
|
||||
</td>
|
||||
<td class="text-left">
|
||||
<t t-esc="line.place_supply"/>
|
||||
</td>
|
||||
<td class="text-center data_action_flectra_color">
|
||||
<a href="javascript:void(0);" class="show_subline"><t t-esc="line.rate"/> %</a>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="line.taxable_value" t-esc="line.taxable_value.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="line.igst" t-esc="line.igst.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="line.cgst" t-esc="line.cgst.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="line.sgst" t-esc="line.sgst.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="line.cess_amount" t-esc="line.cess_amount.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<t t-esc="line.pre_gst"/>
|
||||
</td>
|
||||
</tr>
|
||||
<t t-if="line.lines.length">
|
||||
<tr class="data_subline hidden">
|
||||
<td colspan="2"/>
|
||||
<td colspan="11">
|
||||
<table class="table table-striped table-bordered table-border-gst mb0">
|
||||
<thead>
|
||||
<tr class="sub-table-header-color-gst">
|
||||
<th class="text-left"><span>Product Name</span></th>
|
||||
<th class="text-center"><span>Quantity</span></th>
|
||||
<th class="text-center"><span>Price</span></th>
|
||||
<th class="text-center"><span>IGST</span></th>
|
||||
<th class="text-center"><span>CGST</span></th>
|
||||
<th class="text-center"><span>SGST</span></th>
|
||||
<th class="text-center"><span>CESS</span></th>
|
||||
<th class="text-center"><span>Amount</span></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<t t-foreach="line.lines" t-as="sub_line">
|
||||
<tr>
|
||||
<td class="text-left">
|
||||
<t t-esc="sub_line.product_name"/>
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<t t-esc="sub_line.quantity"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="sub_line.price_unit" t-esc="sub_line.price_unit.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="sub_line.igst_amount" t-esc="sub_line.igst_amount.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="sub_line.cgst_amount" t-esc="sub_line.cgst_amount.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="sub_line.sgst_amount" t-esc="sub_line.sgst_amount.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="sub_line.cess" t-esc="sub_line.cess.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="sub_line.amount" t-esc="sub_line.amount.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
</tr>
|
||||
</t>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</t>
|
||||
</t>
|
||||
<t t-if="data.length == 0">
|
||||
<tr>
|
||||
<td class="text-black-50 text-center" colspan="15">
|
||||
<span>No Record Found</span>
|
||||
</td>
|
||||
</tr>
|
||||
</t>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</t>
|
||||
|
||||
<t t-name="HSNViewSummary">
|
||||
<div class="row container-blank">
|
||||
<div class="col-md-12 text-center mt16 mb16">
|
||||
<t t-if="summary_type == 'gstr1'">
|
||||
<h1>HSN-Wise Summary of outward Supplies - 12</h1>
|
||||
</t>
|
||||
<t t-if="summary_type == 'gstr2'">
|
||||
<h1>HSN-Wise Summary of outward Supplies - 13</h1>
|
||||
</t>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row table-responsive td-border container-blank">
|
||||
<table class="table table-striped table-bordered mb32">
|
||||
<thead>
|
||||
<tr class="table-header-color-gst">
|
||||
<th class="text-center"><span>HSN</span></th>
|
||||
<th class="text-center"><span>Description</span></th>
|
||||
<th class="text-center"><span>UQC</span></th>
|
||||
<th class="text-center"><span>Total Quantity</span></th>
|
||||
<th class="text-center"><span>Total Value</span></th>
|
||||
<th class="text-center"><span>Taxable Value</span></th>
|
||||
<th class="text-center"><span>IGST</span></th>
|
||||
<th class="text-center"><span>CGST</span></th>
|
||||
<th class="text-center"><span>SGST</span></th>
|
||||
<th class="text-center"><span>CESS</span></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<t t-foreach="data" t-as="line">
|
||||
<tr>
|
||||
<td class="text-center">
|
||||
<t t-esc="line.hsn"/>
|
||||
</td>
|
||||
<td class="text-left">
|
||||
<t t-esc="line.product_name"/>
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<t t-esc="line.uqc"/>
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<t t-esc="line.total_qty"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="line.value" t-esc="line.value.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="line.taxable_value" t-esc="line.taxable_value.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="line.igst_amt" t-esc="line.igst_amt.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="line.cgst_amt" t-esc="line.cgst_amt.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="line.sgst_amt" t-esc="line.sgst_amt.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="line.cess_amount" t-esc="line.cess_amount.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
</tr>
|
||||
</t>
|
||||
<t t-if="data.length == 0">
|
||||
<tr>
|
||||
<td class="text-black-50 text-center" colspan="10">
|
||||
<span>No Record Found</span>
|
||||
</td>
|
||||
</tr>
|
||||
</t>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</t>
|
||||
|
||||
<t t-name="B2BURViewSummary">
|
||||
<div class="row container-blank">
|
||||
<div class="col-md-12 text-center mt16 mb16">
|
||||
<h1>Supplies From Unregistered Suppliers B2BUR - 4C</h1>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row table-responsive td-border container-blank">
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr class="table-header-color-gst">
|
||||
<th class="text-center"><span>Invoices No.</span></th>
|
||||
<th class="text-center"><span>Invoices Date</span></th>
|
||||
<th class="text-center"><span>Place of Supply</span></th>
|
||||
<th class="text-center"><span>Rate</span></th>
|
||||
<th class="text-center"><span>E-Commerce GSTIN</span></th>
|
||||
<th class="text-center"><span>Taxable Value</span></th>
|
||||
<th class="text-center"><span>IGST</span></th>
|
||||
<th class="text-center"><span>CGST</span></th>
|
||||
<th class="text-center"><span>SGST</span></th>
|
||||
<th class="text-center"><span>CESS</span></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<t t-foreach="data" t-as="line">
|
||||
<tr>
|
||||
<td class="text-left data_action_flectra_color">
|
||||
<a href="javascript:void(0);" action="open_document" t-att-data-id="line.id" data-object="account.invoice"><t t-esc="line.inv_no"/></a>
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<t t-esc="line.date"/>
|
||||
</td>
|
||||
<td class="text-left">
|
||||
<t t-esc="line.place_supply"/>
|
||||
</td>
|
||||
<td class="text-center data_action_flectra_color">
|
||||
<a href="javascript:void(0);" class="show_subline"><t t-esc="line.rate"/> %</a>
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<t t-esc="line.ecommerce_gstin"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="line.taxable_value" t-esc="line.taxable_value.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="line.igst" t-esc="line.igst.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="line.cgst" t-esc="line.cgst.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="line.sgst" t-esc="line.sgst.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="line.cess_amount" t-esc="line.cess_amount.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
</tr>
|
||||
<t t-if="line.lines.length">
|
||||
<tr class="data_subline hidden">
|
||||
<td colspan="2"/>
|
||||
<td colspan="11">
|
||||
<table class="table table-striped table-bordered table-border-gst mb0">
|
||||
<thead>
|
||||
<tr class="sub-table-header-color-gst">
|
||||
<th class="text-left"><span>Product Name</span></th>
|
||||
<th class="text-center"><span>Quantity</span></th>
|
||||
<th class="text-center"><span>Price</span></th>
|
||||
<th class="text-center"><span>IGST</span></th>
|
||||
<th class="text-center"><span>CGST</span></th>
|
||||
<th class="text-center"><span>SGST</span></th>
|
||||
<th class="text-center"><span>CESS</span></th>
|
||||
<th class="text-center"><span>Amount</span></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<t t-foreach="line.lines" t-as="sub_line">
|
||||
<tr>
|
||||
<td class="text-left">
|
||||
<t t-esc="sub_line.product_name"/>
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<t t-esc="sub_line.quantity"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="sub_line.price_unit" t-esc="sub_line.price_unit.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="sub_line.igst_amount" t-esc="sub_line.igst_amount.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="sub_line.cgst_amount" t-esc="sub_line.cgst_amount.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="sub_line.sgst_amount" t-esc="sub_line.sgst_amount.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="sub_line.cess" t-esc="sub_line.cess.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
<td class="text-right" style="white-space: nowrap;">
|
||||
<t t-if="sub_line.amount" t-esc="sub_line.amount.toFixed(2) + ' ₹'"/>
|
||||
</td>
|
||||
</tr>
|
||||
</t>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</t>
|
||||
<t t-if="data.length == 0">
|
||||
<tr>
|
||||
<td class="text-black-50 text-center" colspan="10">
|
||||
<span>No Record Found</span>
|
||||
</td>
|
||||
</tr>
|
||||
</t>
|
||||
</t>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</t>
|
||||
|
||||
|
||||
</templates>
|
7
addons/l10n_in_gst/tests/__init__.py
Normal file
@ -0,0 +1,7 @@
|
||||
# Part of Flectra See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from . import test_gst_common
|
||||
from . import test_account_invoice
|
||||
from . import test_res_partner
|
||||
from . import test_res_company
|
||||
from . import test_gst_summary_reports
|
237
addons/l10n_in_gst/tests/test_account_invoice.py
Normal file
@ -0,0 +1,237 @@
|
||||
# Part of Flectra See LICENSE file for full copyright and licensing details.
|
||||
|
||||
import logging
|
||||
from .test_gst_common import TestGSTCommon
|
||||
|
||||
|
||||
class TestCreateInvoice(TestGSTCommon):
|
||||
def setUp(self):
|
||||
super(TestCreateInvoice, self).setUp()
|
||||
|
||||
def details_of_invoice(self, invoice_id):
|
||||
logging.info('\n\n')
|
||||
logging.info('|=== Test case for %s type invoice ===|' %
|
||||
invoice_id.gst_invoice)
|
||||
logging.info('Invoice No. : %s' % invoice_id.number)
|
||||
logging.info('Invoice Type : %s' % invoice_id.gst_invoice)
|
||||
logging.info('Customer Name : %s' % invoice_id.partner_id.name)
|
||||
logging.info('Invoice date : %s' % invoice_id.date_invoice)
|
||||
logging.info('GST Type : %s' % invoice_id.gst_type)
|
||||
logging.info('GST Number : %s' % (invoice_id.vat or 'N/A'))
|
||||
logging.info('Journal : %s' % invoice_id.journal_id.name)
|
||||
logging.info('Account : %s' % invoice_id.account_id.name)
|
||||
logging.info('Source Doc. : %s' % (invoice_id.origin or '-'))
|
||||
logging.info('Invoice lines :')
|
||||
for line in invoice_id.invoice_line_ids:
|
||||
logging.info('\t\t Product name : %s' % line.product_id.name)
|
||||
logging.info('\t\t Quantity : %d' % line.quantity)
|
||||
logging.info('\t\t Price unit : %d' % line.price_unit)
|
||||
logging.info('\t\t Total : %d' % line.price_subtotal)
|
||||
logging.info('\t\t Taxes : %s' %
|
||||
(line.invoice_line_tax_ids.name or 'N/A'))
|
||||
|
||||
def test_invoice_b2b(self):
|
||||
# Add tax for product
|
||||
for line in self.account_invoice_b2b.invoice_line_ids:
|
||||
line.write({
|
||||
'invoice_line_tax_ids': [(4, self.tax_gst_5.id)]
|
||||
})
|
||||
|
||||
# Test for state initially
|
||||
self.assertEquals(self.account_invoice_b2b.state, 'draft')
|
||||
|
||||
# Test for invoice type before validation
|
||||
assert not self.account_invoice_b2b.gst_invoice, \
|
||||
'Invoice type should be null'
|
||||
|
||||
# Test state of invoice after validation
|
||||
self.account_invoice_b2b.action_invoice_open()
|
||||
self.assertEquals(self.account_invoice_b2b.state, 'open')
|
||||
|
||||
# Test for move attachment
|
||||
assert self.account_invoice_b2b.move_id, \
|
||||
'Move is not created for open invoice'
|
||||
|
||||
# Test for GST Invoice type
|
||||
if self.account_invoice_b2b.partner_id.vat:
|
||||
self.assertTrue(self.account_invoice_b2b.gst_invoice == 'b2b',
|
||||
'Invoice must be a type B2B')
|
||||
|
||||
# Test GST number of a partner
|
||||
if self.account_invoice_b2b.partner_id.gst_type != 'unregistered':
|
||||
assert self.account_invoice_b2b.vat,\
|
||||
'Registered partner must have GST Number'
|
||||
|
||||
self.details_of_invoice(self.account_invoice_b2b)
|
||||
|
||||
# Create refund invoice
|
||||
self.account_invoice_refund_b2b = self.account_invoice_b2b.refund()
|
||||
|
||||
# Test case for invoice type
|
||||
assert self.account_invoice_refund_b2b.gst_invoice, \
|
||||
'Invoice type should be null'
|
||||
|
||||
# Test for state initially
|
||||
self.assertEquals(self.account_invoice_refund_b2b.state, 'draft')
|
||||
|
||||
# Test the state after invoice validation
|
||||
self.account_invoice_refund_b2b.action_invoice_open()
|
||||
self.assertEquals(self.account_invoice_refund_b2b.state, 'open')
|
||||
|
||||
# Test whether refund invoice is created
|
||||
assert self.account_invoice_refund_b2b.refund_invoice_id, \
|
||||
'Refund invoice is not created'
|
||||
|
||||
# Test for refund invoice created for B2B type invoice
|
||||
self.assertEquals(self.account_invoice_refund_b2b.refund_invoice_id.id,
|
||||
self.account_invoice_b2b.id,
|
||||
'Refund invoice for B2B type is not created')
|
||||
|
||||
# Test refunded amount total
|
||||
self.assertEquals(
|
||||
-self.account_invoice_refund_b2b.amount_untaxed_signed,
|
||||
self.account_invoice_b2b.amount_untaxed_signed,
|
||||
'Amount total is wrong in refund')
|
||||
|
||||
self.details_of_invoice(self.account_invoice_refund_b2b)
|
||||
self.env.ref('l10n_in_gst.l10n_in_gst_report_action')
|
||||
|
||||
def test_invoice_b2cs(self):
|
||||
# Add tax for product
|
||||
for line in self.account_invoice_b2cs.invoice_line_ids:
|
||||
line.write({
|
||||
'invoice_line_tax_ids': [(4, self.tax_gst_18.id)]
|
||||
})
|
||||
|
||||
# Test for invoice type before validation
|
||||
assert not self.account_invoice_b2cs.gst_invoice, \
|
||||
'Invoice type should be null'
|
||||
|
||||
# Test the state of invoice before validation
|
||||
self.assertEquals(self.account_invoice_b2cs.state, 'draft')
|
||||
|
||||
# Test state of invoice after validation
|
||||
self.account_invoice_b2cs.action_invoice_open()
|
||||
self.assertEquals(self.account_invoice_b2cs.state, 'open')
|
||||
|
||||
# Test for move attachment
|
||||
assert self.account_invoice_b2cs.move_id, \
|
||||
'Move is not created for open invoice'
|
||||
partner_location = \
|
||||
self.account_invoice_b2cs.partner_id.partner_location
|
||||
|
||||
# Test for GST Invoice type
|
||||
if self.account_invoice_b2cs.partner_id and not self.\
|
||||
account_invoice_b2cs.vat and partner_location == \
|
||||
'intra_state' or partner_location == 'inter_state' and \
|
||||
self.account_invoice_b2cs.amount_total < \
|
||||
self.b2c_limit_b2cs.b2cs_limit:
|
||||
self.assertTrue(self.account_invoice_b2cs.gst_invoice == 'b2cs',
|
||||
'Invoice must be a type B2CS')
|
||||
|
||||
# Test GST number of a partner
|
||||
if self.account_invoice_b2cs.partner_id.gst_type != 'unregistered':
|
||||
self.assertTrue(self.account_invoice_b2cs.vat, False,
|
||||
'Registered partner must have GST Number')
|
||||
|
||||
self.details_of_invoice(self.account_invoice_b2cs)
|
||||
|
||||
def test_invoice_b2cl(self):
|
||||
# Add tax for product
|
||||
for line in self.account_invoice_b2cl.invoice_line_ids:
|
||||
line.write({
|
||||
'invoice_line_tax_ids': [(4, self.tax_igst_5.id)]
|
||||
})
|
||||
# Test for invoice type before validation
|
||||
assert not self.account_invoice_b2cl.gst_invoice, \
|
||||
'Invoice type should be null'
|
||||
|
||||
# Test the state of invoice before validation
|
||||
self.assertEquals(self.account_invoice_b2cl.state, 'draft')
|
||||
|
||||
# Test state of invoice after validation
|
||||
self.account_invoice_b2cl.action_invoice_open()
|
||||
self.assertEquals(self.account_invoice_b2cl.state, 'open')
|
||||
|
||||
# Test for move attachment
|
||||
assert self.account_invoice_b2cl.move_id, \
|
||||
'Move is not created for open invoice'
|
||||
partner_location = \
|
||||
self.account_invoice_b2cl.partner_id.partner_location
|
||||
# Test for GST Invoice type
|
||||
if self.account_invoice_b2cl.partner_id and not \
|
||||
self.account_invoice_b2cl.vat and \
|
||||
partner_location == 'inter_state' and \
|
||||
self.account_invoice_b2cl.amount_total > \
|
||||
self.b2c_limit_b2cl.b2cl_limit:
|
||||
self.assertTrue(self.account_invoice_b2cl.gst_invoice == 'b2cl',
|
||||
'Invoice must be a type B2CL')
|
||||
|
||||
# Test GST number of a partner
|
||||
if self.account_invoice_b2cl.partner_id.gst_type != 'unregistered':
|
||||
self.assertTrue(self.account_invoice_b2cl.vat, False,
|
||||
'Registered partner must have GST Number')
|
||||
|
||||
self.details_of_invoice(self.account_invoice_b2cl)
|
||||
|
||||
# Create refund invoice
|
||||
self.account_invoice_refund_b2cl = self.account_invoice_b2cl.refund()
|
||||
|
||||
# Test for invoice type
|
||||
assert self.account_invoice_refund_b2cl.gst_invoice, \
|
||||
'Invoice type should be null'
|
||||
|
||||
# Test for state initially
|
||||
self.assertEquals(self.account_invoice_refund_b2cl.state, 'draft')
|
||||
|
||||
# Test the state after invoice validation
|
||||
self.account_invoice_refund_b2cl.action_invoice_open()
|
||||
self.assertEquals(self.account_invoice_refund_b2cl.state, 'open')
|
||||
|
||||
# Test whether refund invoice is created
|
||||
assert self.account_invoice_refund_b2cl.refund_invoice_id, \
|
||||
'Refund invoice is not created'
|
||||
|
||||
# Test for refund invoice created for B2CL type invoice
|
||||
self.assertEquals(self.account_invoice_refund_b2cl.
|
||||
refund_invoice_id.id, self.account_invoice_b2cl.id,
|
||||
'Refund invoice for B2CL type is not created')
|
||||
|
||||
# Test refunded amount total
|
||||
self.assertEquals(
|
||||
-self.account_invoice_refund_b2cl.amount_untaxed_signed,
|
||||
self.account_invoice_b2cl.amount_untaxed_signed,
|
||||
'Amount total is wrong in refund')
|
||||
|
||||
self.details_of_invoice(self.account_invoice_refund_b2cl)
|
||||
|
||||
def test_invoice_composite(self):
|
||||
company_id = self.account_invoice_composite.company_id
|
||||
company_id.write({'gst_type': 'composite'})
|
||||
|
||||
# Add tax for product
|
||||
for line in self.account_invoice_b2cl.invoice_line_ids:
|
||||
line.write({
|
||||
'invoice_line_tax_ids': [(4, self.tax_gst_18.id)]
|
||||
})
|
||||
|
||||
# Test for state initially
|
||||
self.assertEquals(self.account_invoice_composite.state, 'draft')
|
||||
|
||||
# Test for invoice type before validation
|
||||
assert not self.account_invoice_composite.gst_invoice, \
|
||||
'Invoice type should be null'
|
||||
|
||||
# Test state of invoice after validation
|
||||
self.account_invoice_composite.action_invoice_open()
|
||||
self.assertEquals(self.account_invoice_composite.state, 'open')
|
||||
|
||||
# If company is composite then tax computation is not there
|
||||
if company_id.gst_type == 'composite':
|
||||
self.assertEquals(len(
|
||||
self.account_invoice_composite.tax_line_ids.ids), 0,
|
||||
'Taxes should not be calculated if company is composite')
|
||||
|
||||
self.details_of_invoice(self.account_invoice_composite)
|
||||
|
||||
company_id.write({'gst_type': 'regular'})
|
56
addons/l10n_in_gst/tests/test_gst_common.py
Normal file
@ -0,0 +1,56 @@
|
||||
# Part of Flectra See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from flectra.tests.common import TransactionCase
|
||||
|
||||
|
||||
class TestGSTCommon(TransactionCase):
|
||||
def setUp(self):
|
||||
super(TestGSTCommon, self).setUp()
|
||||
|
||||
self.account_invoice_b2b = self.env.ref(
|
||||
'l10n_in_gst.demo_invoice_gst9')
|
||||
|
||||
self.account_invoice_b2cs = self.env.ref(
|
||||
'l10n_in_gst.demo_invoice_gst10')
|
||||
self.b2c_limit_b2cs = self.env['res.company.b2c.limit'].search([
|
||||
('date_from', '<=', self.account_invoice_b2cs.date_invoice),
|
||||
('date_to', '>=', self.account_invoice_b2cs.date_invoice),
|
||||
('company_id', '=', self.account_invoice_b2cs.company_id.id)])
|
||||
|
||||
self.account_invoice_b2cl = self.env.ref(
|
||||
'l10n_in_gst.demo_invoice_gst8')
|
||||
self.b2c_limit_b2cl = self.env['res.company.b2c.limit'].search([
|
||||
('date_from', '<=', self.account_invoice_b2cl.date_invoice),
|
||||
('date_to', '>=', self.account_invoice_b2cl.date_invoice),
|
||||
('company_id', '=', self.account_invoice_b2cl.company_id.id)])
|
||||
|
||||
self.account_invoice_composite = self.env.ref(
|
||||
'l10n_in_gst.demo_invoice_gst11')
|
||||
|
||||
self.res_partner_registered = self.env.ref(
|
||||
'l10n_in_gst.res_partner_gst_registered')
|
||||
self.res_partner_unregistered = self.env.ref(
|
||||
'l10n_in_gst.res_partner_gst_unregistered')
|
||||
|
||||
self.demo_company = self.env.ref('base.main_company')
|
||||
|
||||
self.tax_gst_5 = self.env['account.tax'].create({
|
||||
'name': 'Test-GST 5%',
|
||||
'type_tax_use': 'sale',
|
||||
'amount': 5
|
||||
})
|
||||
self.tax_gst_18 = self.env['account.tax'].create({
|
||||
'name': 'Test-GST 18%',
|
||||
'type_tax_use': 'sale',
|
||||
'amount': 18
|
||||
})
|
||||
self.tax_igst_5 = self.env['account.tax'].create({
|
||||
'name': 'Test-IGST 5%',
|
||||
'type_tax_use': 'sale',
|
||||
'amount': 5
|
||||
})
|
||||
self.tax_igst_28 = self.env['account.tax'].create({
|
||||
'name': 'Test-IGST 28%',
|
||||
'type_tax_use': 'sale',
|
||||
'amount': 28
|
||||
})
|
35
addons/l10n_in_gst/tests/test_gst_summary_reports.py
Normal file
@ -0,0 +1,35 @@
|
||||
from datetime import datetime
|
||||
from dateutil.relativedelta import relativedelta
|
||||
from .test_gst_common import TestGSTCommon
|
||||
|
||||
|
||||
class TestGSTSummaryReports(TestGSTCommon):
|
||||
def test_00_gstr_summary_reports(self):
|
||||
# call open_document
|
||||
gst_report_obj = self.env['gst.report'].sudo(self.env.uid)
|
||||
options = {'object': 'account.invoice', 'id': self.account_invoice_b2b}
|
||||
gst_report_obj.open_document(options)
|
||||
|
||||
data = {
|
||||
'from_date': (datetime.today() - relativedelta(months=1))
|
||||
.strftime('%Y-%m-01'),
|
||||
'to_date': (datetime.today() - relativedelta(months=1))
|
||||
.strftime('%Y-%m-28'),
|
||||
'company_id': self.env.user.company_id.id,
|
||||
'year': datetime.today().year,
|
||||
'month': datetime.today().month,
|
||||
'template': 'ViewSummary',
|
||||
'data_action_method': 'get_gstr_summary'
|
||||
}
|
||||
|
||||
# call summary for GSTR1
|
||||
data.update({'summary_type': 'gstr1'})
|
||||
gst_report_obj.get_gstr_summary(data)
|
||||
# print excel report for gstr 1 report
|
||||
gst_report_obj.write_data_into_sheets({'form': data})
|
||||
|
||||
# call summary for GSTR2
|
||||
data.update({'summary_type': 'gstr2'})
|
||||
gst_report_obj.get_gstr_summary(data)
|
||||
# print excel report for gstr 2 report
|
||||
gst_report_obj.write_data_into_sheets({'form': data})
|
27
addons/l10n_in_gst/tests/test_res_company.py
Normal file
@ -0,0 +1,27 @@
|
||||
# Part of Flectra See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from .test_gst_common import TestGSTCommon
|
||||
|
||||
|
||||
class TestResCompany(TestGSTCommon):
|
||||
def test_res_company(self):
|
||||
# Test case for regisetered company
|
||||
if self.demo_company.gst_type == 'regular':
|
||||
assert self.demo_company.vat,\
|
||||
'Registered company must have GSTIN'
|
||||
|
||||
self.assertEquals(self.demo_company.state_id.l10n_in_tin,
|
||||
self.demo_company.vat[:2],
|
||||
'GST Number is not valid')
|
||||
|
||||
self.assertEquals(len(self.demo_company.vat), 15,
|
||||
'GSTIN length must be of 15 characters!')
|
||||
|
||||
# Test case for unregisetered company
|
||||
if self.demo_company.gst_type == 'unregistered':
|
||||
assert not self.res_partner_unregistered.vat, \
|
||||
'Unregistered partner does not have GSTIN'
|
||||
|
||||
# Test case for B2C Limit lines
|
||||
self.assertTrue(len(self.demo_company.company_b2c_limit_line.ids) != 0,
|
||||
'Company must have B2C Limit')
|
60
addons/l10n_in_gst/tests/test_res_partner.py
Normal file
@ -0,0 +1,60 @@
|
||||
# Part of Flectra See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from flectra.osv.orm import except_orm
|
||||
from .test_gst_common import TestGSTCommon
|
||||
|
||||
|
||||
class TestResPartner(TestGSTCommon):
|
||||
|
||||
def test_partner_gstin(self):
|
||||
# test cases for check constrains on create of partners
|
||||
with self.assertRaises(except_orm):
|
||||
self.env['res.partner'].create({
|
||||
'name': 'Demo IGST Unregistered Customer',
|
||||
'category_id': self.env.ref('base.res_partner_category_16'),
|
||||
'is_company': 1,
|
||||
'city': 'Darrang',
|
||||
'zip': '784527',
|
||||
'state_id': self.env.ref("base.state_in_as").id,
|
||||
'country_id': self.env.ref("base.in").id,
|
||||
'street': '16 Natrani Avenue',
|
||||
'gst_type': 'regular',
|
||||
'vat': '18weqqeqe',
|
||||
'email': 'igstur@yourcompany.example.com',
|
||||
'phone': '+91 95951 95951'
|
||||
})
|
||||
|
||||
with self.assertRaises(except_orm):
|
||||
self.env['res.partner'].create({
|
||||
'name': 'Demo IGST Unregistered Customer',
|
||||
'category_id': self.env.ref('base.res_partner_category_16'),
|
||||
'is_company': 1, 'city': 'Darrang', 'zip': '784527',
|
||||
'state_id': self.env.ref("base.state_in_as").id,
|
||||
'country_id': self.env.ref("base.in").id,
|
||||
'street': '16 Natrani Avenue', 'gst_type': 'regular',
|
||||
'vat': '24weqqeqe45trfg',
|
||||
'email': 'igstur@yourcompany.example.com',
|
||||
'phone': '+91 95951 95951'
|
||||
})
|
||||
|
||||
# Test case for regisetered partner
|
||||
if self.res_partner_registered.gst_type == 'regular':
|
||||
assert self.res_partner_registered.vat,\
|
||||
'Registered partner must have GSTIN'
|
||||
|
||||
self.assertEquals(self.res_partner_registered.state_id.l10n_in_tin,
|
||||
self.res_partner_registered.vat[:2],
|
||||
'GST Number is not valid')
|
||||
|
||||
self.assertEquals(len(self.res_partner_registered.vat), 15,
|
||||
'GSTIN length must be of 15 characters!')
|
||||
|
||||
if self.res_partner_registered.state_id.id == \
|
||||
self.res_partner_registered.company_id.state_id.id:
|
||||
assert not self.res_partner_registered.\
|
||||
property_account_position_id, 'Fiscal position must not be set'
|
||||
|
||||
# Test case for unregisetered partner
|
||||
if self.res_partner_unregistered.gst_type == 'unregistered':
|
||||
assert not self.res_partner_unregistered.vat, \
|
||||
'Unregistered partner does not have GSTIN'
|
106
addons/l10n_in_gst/views/account_invoice_view.xml
Normal file
@ -0,0 +1,106 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<flectra>
|
||||
|
||||
<!-- Inherit Customer Invoice Form View -->
|
||||
<record id="invoice_form_inherit_l10n_in_gst" model="ir.ui.view">
|
||||
<field name="name">account.invoice.form.inherit.gst.cust</field>
|
||||
<field name="model">account.invoice</field>
|
||||
<field name="inherit_id" ref="account.invoice_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='number']" position="after">
|
||||
<field name="gst_invoice" readonly="1"
|
||||
class="oe_right"
|
||||
attrs="{'invisible': [('state', 'not in', ('open', 'paid'))]}"
|
||||
style="color: #7c7bad"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='fiscal_position_id']" position="replace"/>
|
||||
<xpath expr="//field[@name='date_invoice']" position="after">
|
||||
<field name="partner_location" invisible="1"/>
|
||||
<field name="fiscal_position_id"
|
||||
options="{'no_create': True}"
|
||||
attrs="{'required': [('partner_location', '=', 'inter_country')]}"/>
|
||||
<field name="gst_type" readonly="1"
|
||||
attrs="{'invisible': [('state', 'not in', ('open', 'paid'))]}"/>
|
||||
<field name="vat" readonly="1"
|
||||
attrs="{'invisible': [('state', 'not in', ('open', 'paid'))]}"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='partner_id']" position="after">
|
||||
<field name="e_commerce_partner_id"
|
||||
attrs="{'readonly': [('state', 'not in', 'draft')]}"
|
||||
domain="[('e_commerce', '=', True)]"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='tax_line_ids']" position="replace"/>
|
||||
<xpath expr="//group[@name='left_panel']" position="inside">
|
||||
<field name="tax_line_ids" attrs="{'invisible': [('tax_line_ids', '=', [])]}" nolabel="1" colspan="4">
|
||||
<tree editable="bottom" string="Taxes"
|
||||
create="0">
|
||||
<field name="name"/>
|
||||
<field name="tax_id" invisible="1"/>
|
||||
<field name="account_analytic_id"
|
||||
invisible="1"/>
|
||||
<field name="sequence" invisible="1"/>
|
||||
<field name="manual" invisible="1"/>
|
||||
<field name="account_id"
|
||||
groups="account.group_account_user"/>
|
||||
<field name="amount"/>
|
||||
<field name="currency_id" invisible="1"/>
|
||||
</tree>
|
||||
</field>
|
||||
</xpath>
|
||||
<xpath expr="//page[@name='other_info']/group/group/field[@name='name']"
|
||||
position="attributes">
|
||||
<attribute name="attrs">{'readonly': [('type', '=', 'out_refund')]}</attribute>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Inherit Supplier Invoice Form View -->
|
||||
<record id="invoice_supplier_form_inherit_l10n_in_gst" model="ir.ui.view">
|
||||
<field name="name">account.invoice.form.inherit.gst</field>
|
||||
<field name="model">account.invoice</field>
|
||||
<field name="inherit_id" ref="account.invoice_supplier_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='number']" position="after">
|
||||
<field name="gst_invoice" readonly="1"
|
||||
class="oe_inline oe_right"
|
||||
attrs="{'invisible': [('state', 'not in', ('open', 'paid'))]}"
|
||||
style="color: #7c7bad"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='fiscal_position_id']" position="replace"/>
|
||||
<xpath expr="//field[@name='date_invoice']" position="after">
|
||||
<field name="partner_location" invisible="1"/>
|
||||
<field name="fiscal_position_id"
|
||||
options="{'no_create': True}"
|
||||
attrs="{'required': [('partner_location', '=', 'inter_country')]}"/>
|
||||
<field name="gst_type" readonly="1"
|
||||
attrs="{'invisible': [('state', 'not in', ('open', 'paid'))]}"/>
|
||||
<field name="vat" readonly="1"
|
||||
attrs="{'invisible': [('state', 'not in', ('open', 'paid'))]}"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='partner_id']" position="after">
|
||||
<field name="e_commerce_partner_id"
|
||||
attrs="{'readonly': [('state', '!=', 'draft')]}"
|
||||
domain="[('e_commerce', '=', True)]"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='tax_line_ids']" position="attributes">
|
||||
<attribute name="attrs">{'invisible': [('tax_line_ids', '=', [])]}</attribute>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Inherit Invoice Search View -->
|
||||
<record id="view_account_invoice_search_inherit_l10n_in_gst" model="ir.ui.view">
|
||||
<field name="name">account.invoice.search.inherit.gst</field>
|
||||
<field name="model">account.invoice</field>
|
||||
<field name="inherit_id" ref="account.view_account_invoice_filter"/>
|
||||
<field name="arch" type="xml">
|
||||
<group expand="0" position="inside">
|
||||
<filter string="GST Invoice"
|
||||
context="{'group_by':'gst_invoice'}"/>
|
||||
<filter string="E-Commerce"
|
||||
context="{'group_by':'e_commerce_partner_id'}"/>
|
||||
</group>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</flectra>
|
13
addons/l10n_in_gst/views/assets.xml
Normal file
@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<flectra>
|
||||
|
||||
<!-- GST Summary Report -->
|
||||
<template id="assets_backend" name="Account GST Assets"
|
||||
inherit_id="web.assets_backend">
|
||||
<xpath expr="." position="inside">
|
||||
<link rel="stylesheet" href="/l10n_in_gst/static/src/less/gst_report.less"/>
|
||||
<script type="text/javascript" src="/l10n_in_gst/static/src/js/gst_report.js"/>
|
||||
</xpath>
|
||||
</template>
|
||||
|
||||
</flectra>
|
14
addons/l10n_in_gst/views/gst_report_view.xml
Normal file
@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<flectra>
|
||||
|
||||
<record id="l10n_in_gst_report_action" model="ir.actions.client">
|
||||
<field name="name">GSTR1</field>
|
||||
<field name="tag">l10n_in_gst.gstr1</field>
|
||||
<field name="context" eval="{'model': 'gst.report', 'summary_type': 'gstr1'}"/>
|
||||
</record>
|
||||
<record id="l10n_in_gstr2_report_action" model="ir.actions.client">
|
||||
<field name="name">GSTR2</field>
|
||||
<field name="tag">l10n_in_gst.gstr1</field>
|
||||
<field name="context" eval="{'model': 'gst.report', 'summary_type': 'gstr2'}"/>
|
||||
</record>
|
||||
</flectra>
|
29
addons/l10n_in_gst/views/menuitems_view.xml
Normal file
@ -0,0 +1,29 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<flectra>
|
||||
|
||||
<!-- Note Issue Reasons -->
|
||||
<menuitem id="menu_note_issue_reason"
|
||||
parent="account.account_account_menu"
|
||||
sequence="50"
|
||||
action="act_open_note_issue_reason_view"
|
||||
groups="account.group_account_manager"/>
|
||||
|
||||
<!-- GST Reports Menu -->
|
||||
<menuitem id="menu_gst_reports" name="GST Reports"
|
||||
parent="account.menu_finance_reports"
|
||||
groups="account.group_account_manager"/>
|
||||
|
||||
<!-- GSTR1 Summary Menu -->
|
||||
<menuitem name="GSTR-1 Summary"
|
||||
id="l10n_in_gst_report_menu"
|
||||
action="l10n_in_gst_report_action"
|
||||
parent="menu_gst_reports"
|
||||
sequence="10"/>
|
||||
<menuitem name="GSTR-2 Summary"
|
||||
id="l10n_in_gst2_report_menu"
|
||||
action="l10n_in_gstr2_report_action"
|
||||
parent="menu_gst_reports"
|
||||
sequence="20"/>
|
||||
|
||||
</flectra>
|
76
addons/l10n_in_gst/views/note_issue_reason_view.xml
Normal file
@ -0,0 +1,76 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<flectra>
|
||||
|
||||
<!-- Note Issue Reasons List View -->
|
||||
<record id="view_note_issue_reason_tree" model="ir.ui.view">
|
||||
<field name="name">note.issue.reason.tree</field>
|
||||
<field name="model">note.issue.reason</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="priority" eval="8"/>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Note Issue Reasons">
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Note Issue Reasons Form View -->
|
||||
<record id="view_note_issue_reason_form" model="ir.ui.view">
|
||||
<field name="name">note.issue.reason.form</field>
|
||||
<field name="model">note.issue.reason</field>
|
||||
<field name="type">form</field>
|
||||
<field name="priority" eval="8"/>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Note Issue Reasons">
|
||||
<sheet>
|
||||
<group>
|
||||
<field name="code" required="1"/>
|
||||
<field name="name" required="1"/>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Note Issue Reasons Search View -->
|
||||
<record id="view_note_issue_reason_search" model="ir.ui.view">
|
||||
<field name="name">note.issue.reason.search</field>
|
||||
<field name="model">note.issue.reason</field>
|
||||
<field name="type">search</field>
|
||||
<field name="priority" eval="8"/>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Note Issue Reasons">
|
||||
<field name="name"/>
|
||||
<field name="code"/>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="act_open_note_issue_reason_view" model="ir.actions.act_window">
|
||||
<field name="name">Note Issue Reasons</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">note.issue.reason</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="search_view_id" ref="view_note_issue_reason_search"/>
|
||||
<field name="domain">[]</field>
|
||||
<field name="context">{}</field>
|
||||
</record>
|
||||
|
||||
<record id="act_open_note_issue_reason_view_form" model="ir.actions.act_window.view">
|
||||
<field name="act_window_id" ref="act_open_note_issue_reason_view"/>
|
||||
<field name="sequence" eval="20"/>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="view_id" ref="view_note_issue_reason_form"/>
|
||||
</record>
|
||||
|
||||
<record id="act_open_note_issue_reason_view_tree" model="ir.actions.act_window.view">
|
||||
<field name="act_window_id" ref="act_open_note_issue_reason_view"/>
|
||||
<field name="sequence" eval="10"/>
|
||||
<field name="view_mode">tree</field>
|
||||
<field name="view_id" ref="view_note_issue_reason_tree"/>
|
||||
</record>
|
||||
|
||||
</flectra>
|
28
addons/l10n_in_gst/views/product_uom_view.xml
Normal file
@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<flectra>
|
||||
|
||||
<!-- Inherit Product UOM Form View -->
|
||||
<record id="product_uom_form_view_inherit_l10n_in_gst" model="ir.ui.view">
|
||||
<field name="name">product.uom.form.inherit.gst</field>
|
||||
<field name="model">product.uom</field>
|
||||
<field name="inherit_id" ref="product.product_uom_form_view"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='rounding']" position="after">
|
||||
<field name="code" required="1"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Inherit Product UOM List View -->
|
||||
<record id="product_uom_tree_view_inherit_l10n_in_gst" model="ir.ui.view">
|
||||
<field name="name">product.uom.tree.inherit.gst</field>
|
||||
<field name="model">product.uom</field>
|
||||
<field name="inherit_id" ref="product.product_uom_tree_view"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='name']" position="before">
|
||||
<field name="code"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</flectra>
|
64
addons/l10n_in_gst/views/res_company_view.xml
Normal file
@ -0,0 +1,64 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<flectra>
|
||||
|
||||
<!-- Inherit Company Form View -->
|
||||
<record id="view_company_form_inherit_l10n_in_gst" model="ir.ui.view">
|
||||
<field name="name">res.company.form.inherit.gst</field>
|
||||
<field name="model">res.company</field>
|
||||
<field name="inherit_id" ref="base.view_company_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='vat']" position="after">
|
||||
<field name="gst_type"/>
|
||||
<field name="gst_introduce_date" required="1"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='vat']" position="attributes">
|
||||
<attribute name="attrs">{'required': [('gst_type', '!=', 'unregistered')], 'invisible': [('gst_type', '=', 'unregistered')]}</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//page" position="inside">
|
||||
<separator string="B2C Limit"/>
|
||||
<field name="company_b2c_limit_line"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- B2C Limit List View -->
|
||||
<record id="view_res_company_b2c_limit_tree" model="ir.ui.view">
|
||||
<field name="name">res.company.b2c.limit.tree</field>
|
||||
<field name="model">res.company.b2c.limit</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="priority" eval="8"/>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Company B2C Limit" editable="top">
|
||||
<field name="date_from" required="1"/>
|
||||
<field name="date_to" required="1"/>
|
||||
<field name="b2cl_limit"/>
|
||||
<field name="b2cs_limit"/>
|
||||
<field name="company_id" invisible="1"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- B2C Limit Form View -->
|
||||
<record id="view_res_company_b2c_limit_form" model="ir.ui.view">
|
||||
<field name="name">res.company.b2c.limit.form</field>
|
||||
<field name="model">res.company.b2c.limit</field>
|
||||
<field name="type">form</field>
|
||||
<field name="priority" eval="8"/>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Company B2C Limit">
|
||||
<group>
|
||||
<group>
|
||||
<field name="date_from"/>
|
||||
<field name="date_to"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="b2cl_limit"/>
|
||||
<field name="b2cs_limit"/>
|
||||
<field name="company_id" invisible="1"/>
|
||||
</group>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</flectra>
|
62
addons/l10n_in_gst/views/res_config_settings_views.xml
Normal file
@ -0,0 +1,62 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<flectra>
|
||||
|
||||
<!-- Inherit Account Settings Configuration for GST -->
|
||||
<record id="res_config_settings_view_form_inherit_l10n_in_gst" model="ir.ui.view">
|
||||
<field name="name">account.res.config.extended.gst</field>
|
||||
<field name="model">res.config.settings</field>
|
||||
<field name="inherit_id" ref="account.res_config_settings_view_form"/>
|
||||
<field name="priority">2</field>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//div[@id='analytic']" position="after">
|
||||
<h2>GST</h2>
|
||||
<div class="row mt16 o_settings_container">
|
||||
<div class="col-xs-12 col-md-6 o_setting_box">
|
||||
<div class="o_setting_left_pane"/>
|
||||
<div class="o_setting_right_pane">
|
||||
<div class="content-group">
|
||||
<div class="row mt16">
|
||||
<label for="gst_type"
|
||||
class="col-md-3 o_light_label"/>
|
||||
<field name="gst_type"
|
||||
attrs="{'readonly': [('gst_applied','=',True)]}"/>
|
||||
</div>
|
||||
<div class="row mt16"
|
||||
attrs="{'invisible': [('gst_type', 'in', [False,'unregistered'])]}">
|
||||
<label for="gstin_number"
|
||||
class="col-md-3 o_light_label"/>
|
||||
<field name="gstin_number"
|
||||
attrs="{'invisible': [('gst_type', 'in', [False,'unregistered'])], 'required': [('gst_type', '!=', 'unregistered')], 'readonly': [('gst_applied','=',True)]}"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-md-6 o_setting_box">
|
||||
<div class="o_setting_left_pane"/>
|
||||
<div class="o_setting_right_pane">
|
||||
<div class="content-group">
|
||||
<div class="row mt16"
|
||||
attrs="{'invisible': [('gst_type', '=', False)]}">
|
||||
<label for="country_id"
|
||||
class="col-md-3 o_light_label"/>
|
||||
<field name="country_id"
|
||||
options="{'no_create_edit': True, 'no_open': True}"
|
||||
attrs="{'invisible': [('gst_type','=', False)], 'required': [('gst_type', '!=', False)], 'readonly': [('gst_applied','=',True)]}"/>
|
||||
</div>
|
||||
<div class="row mt16" attrs="{'invisible': [('gst_type', '=', False)]}">
|
||||
<label for="state_id"
|
||||
class="col-md-3 o_light_label"/>
|
||||
<field name="state_id"
|
||||
options="{'no_create_edit': True, 'no_open': True}"
|
||||
attrs="{'invisible': [('gst_type','=', False)], 'required': [('gst_type', '!=', False)], 'readonly': [('gst_applied','=',True)]}"/>
|
||||
<field name="gst_applied" invisible="1"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</flectra>
|
49
addons/l10n_in_gst/views/res_partner_view.xml
Executable file
@ -0,0 +1,49 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<flectra>
|
||||
|
||||
<!-- Inherit Partner Form View -->
|
||||
<record id="view_partner_form_inherit_l10n_in_gst" model="ir.ui.view">
|
||||
<field name="name">res.partner.form.inherit.gst</field>
|
||||
<field name="model">res.partner</field>
|
||||
<field name="inherit_id" ref="base.view_partner_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='company_type']" position="after">
|
||||
<div>
|
||||
<field name="e_commerce"/>
|
||||
<label for="e_commerce"/>
|
||||
</div>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='vat']" position="before">
|
||||
<field name="gst_company_partner" invisible="1"/>
|
||||
<field name="gst_type"
|
||||
attrs="{'required': [('gst_company_partner', '!=', True)]}"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='vat']" position="attributes">
|
||||
<attribute name="attrs">{'required': ['|', ('gst_type', '!=', 'unregistered'), ('e_commerce', '!=', False)], 'invisible': [('gst_type', '=', 'unregistered')]}</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='category_id']" position="after">
|
||||
<field name="partner_location" invisible="1"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='lang']" position="after">
|
||||
<field name="partner_location" invisible="1"/>
|
||||
<field name="property_account_position_id"
|
||||
options="{'no_create': True, 'no_open': True}"
|
||||
attrs="{'required': [('partner_location', '=', 'inter_country')]}"/>
|
||||
</xpath>
|
||||
|
||||
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Inherit Account Partner Form View -->
|
||||
<record id="view_partner_property_form_inherit_l10n_in_gst" model="ir.ui.view">
|
||||
<field name="name">res.partner.form.inherit.property.gst</field>
|
||||
<field name="model">res.partner</field>
|
||||
<field name="inherit_id" ref="account.view_partner_property_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//group[@name='fiscal_information']"
|
||||
position="replace"/>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</flectra>
|
4
addons/l10n_in_gst/wizard/__init__.py
Normal file
@ -0,0 +1,4 @@
|
||||
# Part of Flectra See LICENSE file for full copyright and licensing details.
|
||||
|
||||
|
||||
from . import account_invoice_refund
|
17
addons/l10n_in_gst/wizard/account_invoice_refund.py
Normal file
@ -0,0 +1,17 @@
|
||||
# Part of Flectra See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from flectra import api, fields, models
|
||||
|
||||
|
||||
class AccountInvoiceRefund(models.TransientModel):
|
||||
_inherit = 'account.invoice.refund'
|
||||
|
||||
note_issue_reason_id = fields.Many2one('note.issue.reason',
|
||||
string='Reason for Issuing Note')
|
||||
|
||||
@api.onchange('note_issue_reason_id')
|
||||
def onchange_note_issue_reason(self):
|
||||
""" Add value of Issuing Note into Reason """
|
||||
if self.note_issue_reason_id:
|
||||
self.description = ('%s-%s') % (self.note_issue_reason_id.code,
|
||||
self.note_issue_reason_id.name)
|
22
addons/l10n_in_gst/wizard/account_invoice_refund_view.xml
Normal file
@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<flectra>
|
||||
|
||||
<!-- Inherit Invoice Refund Form View -->
|
||||
<record id="view_account_invoice_refund_inherit_l10n_in_gst" model="ir.ui.view">
|
||||
<field name="name">account.invoice.refund.form.inherit.gst</field>
|
||||
<field name="model">account.invoice.refund</field>
|
||||
<field name="inherit_id"
|
||||
ref="account.view_account_invoice_refund"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='description']"
|
||||
position="attributes">
|
||||
<attribute name="invisible">1</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='description']" position="before">
|
||||
<field name="note_issue_reason_id" widget="selection"
|
||||
required="1"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</flectra>
|