Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion beverage_distributor/__manifest__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
'name': 'Beverage Distributor',
'version': '2.0',
'version': '2.1',
'category': 'Supply Chain',
'depends': [
'base_automation',
Expand Down
7 changes: 7 additions & 0 deletions beverage_distributor/data/account_tax.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,47 +11,54 @@
<field name="name">DEP 0.1</field>
<field name="type_tax_use">sale</field>
<field name="tax_group_id" ref="deposit_tax_group"/>
<field name="x_is_deposit" eval="True"/>
</record>
<record id="account_tax_21_sale" model="account.tax">
<field name="amount">2.1</field>
<field name="amount_type">fixed</field>
<field name="name">DEP 2.1</field>
<field name="type_tax_use">sale</field>
<field name="tax_group_id" ref="deposit_tax_group"/>
<field name="x_is_deposit" eval="True"/>
</record>
<record id="account_tax_24_sale" model="account.tax">
<field name="amount">2.4</field>
<field name="amount_type">fixed</field>
<field name="name">DEP 2.4</field>
<field name="type_tax_use">sale</field>
<field name="tax_group_id" ref="deposit_tax_group"/>
<field name="x_is_deposit" eval="True"/>
</record>
<record id="account_tax_45_sale" model="account.tax">
<field name="amount">4.5</field>
<field name="amount_type">fixed</field>
<field name="name">DEP 4.5</field>
<field name="type_tax_use">sale</field>
<field name="tax_group_id" ref="deposit_tax_group"/>
<field name="x_is_deposit" eval="True"/>
</record>
<record id="account_tax_01_purchase" model="account.tax">
<field name="amount">0.1</field>
<field name="amount_type">fixed</field>
<field name="name">DEP 0.1</field>
<field name="type_tax_use">purchase</field>
<field name="tax_group_id" ref="deposit_tax_group"/>
<field name="x_is_deposit" eval="True"/>
</record>
<record id="account_tax_24_purchase" model="account.tax">
<field name="amount">2.4</field>
<field name="amount_type">fixed</field>
<field name="name">DEP 2.4</field>
<field name="type_tax_use">purchase</field>
<field name="tax_group_id" ref="deposit_tax_group"/>
<field name="x_is_deposit" eval="True"/>
</record>
<record id="account_tax_45_purchase" model="account.tax">
<field name="amount">4.5</field>
<field name="amount_type">fixed</field>
<field name="name">DEP 4.5</field>
<field name="type_tax_use">purchase</field>
<field name="tax_group_id" ref="deposit_tax_group"/>
<field name="x_is_deposit" eval="True"/>
</record>
</odoo>
7 changes: 6 additions & 1 deletion excise_management/__manifest__.py
Original file line number Diff line number Diff line change
@@ -1,18 +1,20 @@
{
'name': 'Excise Management',
'version': '2.1',
'version': '2.2',
'category': 'Inventory/Inventory',
'author': 'Odoo S.A.',
'depends': [
'account_tax_python',
'base_automation',
'sale_management',
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

could you bump the minor version of all modules?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

all please

'stock',
'web_studio',
],
'data': [
'data/ir_model.xml',
'data/ir_model_fields.xml',
'data/ir_ui_view.xml',
'data/qweb_view.xml',
'data/ir_actions_act_window.xml',
'data/account_tax_group.xml',
'data/ir_actions_server.xml',
Expand All @@ -25,6 +27,9 @@
'data/x_excise_category.xml',
'data/res_config_setting.xml',
],
'cloc_exclude': [
'data/qweb_view.xml',
],
'license': 'OPL-1',
'images': ['images/main.png'],
}
7 changes: 7 additions & 0 deletions excise_management/data/base_automation.xml
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,11 @@
<field name="name">Add/Remove Excise Taxes on Fiscal Position</field>
<field name="trigger_field_ids" eval="[(6, 0, [ref('fiscal_position_is_fiscal_deposit')])]"/>
</record>
<record id="base_automation_8" model="base.automation">
<field name="name">Sequence the taxes</field>
<field name="model_id" ref="account.model_account_tax"/>
<field name="action_server_ids" eval="[(6, 0, [ref('resequence_the_order_of_taxes')])]"/>
<field name="trigger">on_create_or_write</field>
<field name="trigger_field_ids" eval="[(6, 0, [ref('account.field_account_tax__tax_group_id')])]"/>
</record>
</odoo>
8 changes: 8 additions & 0 deletions excise_management/data/ir_actions_server.xml
Original file line number Diff line number Diff line change
Expand Up @@ -40,4 +40,12 @@ for fp in records:
<field name="state">code</field>
<field name="name">Add/Remove excise tax on Fiscal Position</field>
</record>
<record id="resequence_the_order_of_taxes" model="ir.actions.server">
<field name="code"><![CDATA[all_taxes = env['account.tax'].sudo().search([], order="x_is_deposit asc, x_is_excise desc, sequence asc")
for idx, tax in enumerate(all_taxes, start=1):
tax['sequence'] = idx]]></field>
<field name="model_id" ref="account.model_account_tax"/>
<field name="state">code</field>
<field name="name">Sequence the taxes</field>
</record>
</odoo>
122 changes: 122 additions & 0 deletions excise_management/data/ir_model_fields.xml
Original file line number Diff line number Diff line change
Expand Up @@ -257,4 +257,126 @@ for template in self:
<field name="relation">uom.uom</field>
<field name="readonly" eval="True"/>
</record>
<record id="account_tax_deposit_field" model="ir.model.fields">
<field name="name">x_is_deposit</field>
<field name="field_description">Is Deposit</field>
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is already a similar field on account.tax.group. But it is hidden. Maybe we should just display this one instead, and use when needed.

<field name="model_id" ref="account.model_account_tax"/>
<field name="ttype">boolean</field>
</record>
<record id="sale_order_line_excise_free_unit_price_field" model="ir.model.fields">
<field name="name">x_excise_free_unit_price</field>
<field name="field_description">Excise Free Unit Price</field>
<field name="model_id" ref="sale.model_sale_order_line"/>
<field name="ttype">monetary</field>
<field name="depends">price_unit, product_id</field>
<field name="compute"><![CDATA[for record in self:
record['x_excise_free_unit_price'] = record.price_unit - record.product_id.x_excise_amount]]></field>
<field name="readonly" eval="True"/>
<field name="store" eval="False"/>
<field name="currency_field">currency_id</field>
</record>
<record id="sale_order_line_total_excises_field" model="ir.model.fields">
<field name="name">x_total_excises</field>
<field name="field_description">Excises</field>
<field name="model_id" ref="sale.model_sale_order_line"/>
<field name="ttype">monetary</field>
<field name="depends">product_id, product_uom_qty, order_id.fiscal_position_id</field>
<field name="compute"><![CDATA[for record in self:
record['x_total_excises'] = record.product_id.x_excise_amount * record.product_uom_qty if not record.order_id.fiscal_position_id.x_is_fiscal_deposit else False]]></field>
<field name="readonly" eval="True"/>
<field name="currency_field">currency_id</field>
</record>
<record id="sale_order_line_total_deposits_field" model="ir.model.fields">
<field name="name">x_total_deposits</field>
<field name="field_description">Deposits</field>
<field name="ttype">monetary</field>
<field name="model_id" ref="sale.model_sale_order_line"/>
<field name="depends">product_uom_qty, tax_ids</field>
<field name="compute"><![CDATA[for record in self:
deposit = sum(tax.amount for tax in record.tax_ids if tax.x_is_deposit)
record['x_total_deposits'] = deposit * record.product_uom_qty]]></field>
<field name="readonly" eval="True"/>
<field name="store" eval="False"/>
<field name="currency_field">currency_id</field>
</record>
<record id="sale_order_has_deposit_line_field" model="ir.model.fields">
<field name="name">x_has_deposit_line</field>
<field name="field_description">Has Deposit Line</field>
<field name="model_id" ref="sale.model_sale_order"/>
<field name="ttype">boolean</field>
<field name="depends">order_line.x_total_deposits</field>
<field name="compute"><![CDATA[
for record in self:
record['x_has_deposit_line'] = any(line.x_total_deposits for line in record.order_line)]]></field>
<field name="store" eval="False"/>
</record>

<record id="sale_order_has_excise_line_field" model="ir.model.fields">
<field name="name">x_has_excise_line</field>
<field name="field_description">Has Excise Line</field>
<field name="model_id" ref="sale.model_sale_order"/>
<field name="ttype">boolean</field>
<field name="depends">order_line.x_total_excises</field>
<field name="compute"><![CDATA[
for record in self:
record['x_has_excise_line'] = any(line.x_total_excises for line in record.order_line)]]></field>
<field name="store" eval="False"/>
</record>
<record id="account_move_line_excise_free_unit_price_field" model="ir.model.fields">
<field name="name">x_excise_free_unit_price_account_move</field>
<field name="field_description">Excise Free Unit Price</field>
<field name="ttype">monetary</field>
<field name="model_id" ref="account.model_account_move_line"/>
<field name="depends">price_unit, tax_ids</field>
<field name="compute"><![CDATA[for record in self:
record['x_excise_free_unit_price_account_move'] = record.price_unit - record.product_id.x_excise_amount]]></field>
<field name="readonly" eval="True"/>
<field name="currency_field">company_currency_id</field>
</record>
<record id="account_move_line_total_excise_field" model="ir.model.fields">
<field name="name">x_total_excises_account_move</field>
<field name="field_description">Excises</field>
<field name="model_id" ref="account.model_account_move_line"/>
<field name="ttype">monetary</field>
<field name="depends">product_id, quantity</field>
<field name="compute"><![CDATA[for record in self:
record['x_total_excises_account_move'] = record.product_id.x_excise_amount * record.quantity if not record.sale_line_ids.order_id.fiscal_position_id.x_is_fiscal_deposit else False]]></field>
<field name="readonly" eval="True"/>
<field name="currency_field">company_currency_id</field>
</record>
<record id="account_move_line_total_deposits_field" model="ir.model.fields">
<field name="name">x_total_deposits_account_move</field>
<field name="field_description">Deposits</field>
<field name="model_id" ref="account.model_account_move_line"/>
<field name="ttype">monetary</field>
<field name="depends">price_unit, tax_ids.x_is_deposit, quantity</field>
<field name="compute"><![CDATA[for record in self:
deposit = sum(tax.amount for tax in record.tax_ids if tax.x_is_deposit)
record['x_total_deposits_account_move'] = deposit * record.quantity]]></field>
<field name="readonly" eval="True"/>
<field name="currency_field">company_currency_id</field>
</record>
<record id="account_move_has_deposit_line_field" model="ir.model.fields">
<field name="name">x_has_deposit_line</field>
<field name="field_description">Has Deposit Line</field>
<field name="model_id" ref="account.model_account_move"/>
<field name="ttype">boolean</field>
<field name="depends">line_ids.x_total_deposits_account_move</field>
<field name="compute"><![CDATA[
for record in self:
record['x_has_deposit_line'] = any(line.x_total_deposits_account_move for line in record.line_ids)]]></field>
<field name="store" eval="False"/>
</record>

<record id="account_move_has_excise_line_field" model="ir.model.fields">
<field name="name">x_has_excise_line</field>
<field name="field_description">Has Excise Line</field>
<field name="model_id" ref="account.model_account_move"/>
<field name="ttype">boolean</field>
<field name="depends">line_ids.x_total_excises_account_move</field>
<field name="compute"><![CDATA[
for record in self:
record['x_has_excise_line'] = any(line.x_total_excises_account_move for line in record.line_ids)]]></field>
<field name="store" eval="False"/>
</record>
</odoo>
48 changes: 48 additions & 0 deletions excise_management/data/ir_ui_view.xml
Original file line number Diff line number Diff line change
Expand Up @@ -124,4 +124,52 @@
</list>
</field>
</record>
<record id="account_tax_form_customization_view" model="ir.ui.view">
<field name="name">account.tax.form.inherit.excise_management</field>
<field name="inherit_id" ref="account.view_tax_form"/>
<field name="mode">extension</field>
<field name="model">account.tax</field>
<field name="priority">160</field>
<field name="type">form</field>
<field name="active" eval="True"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='include_base_amount']" position="after">
<field name="x_is_deposit"/>
</xpath>
</field>
</record>
<record id="sale_order_form_view_customizations" model="ir.ui.view">
<field name="name">sale.order.form.inherit.excise_management</field>
<field name="inherit_id" ref="sale.view_order_form"/>
<field name="mode">extension</field>
<field name="model">sale.order</field>
<field name="priority">160</field>
<field name="type">form</field>
<field name="active" eval="True"/>
<field name="arch" type="xml">
<xpath expr="//page[@name='order_lines']//list//field[@name='tax_ids']" position="after">
<field optional="show" name="x_excise_free_unit_price" invisible="not x_excise_free_unit_price" column_invisible="not parent.x_has_excise_line"/>
<field optional="show" name="x_total_excises" invisible="not x_total_excises" column_invisible="not parent.x_has_excise_line"/>
<field optional="show" name="x_total_deposits" invisible="not x_total_deposits" column_invisible="not parent.x_has_deposit_line"/>
<field name="currency_id" column_invisible="1"/>
</xpath>
</field>
</record>
<record id="account_move_form_customizations" model="ir.ui.view">
<field name="name">account.move.form.inherit.excise_management</field>
<field name="inherit_id" ref="account.view_move_form"/>
<field name="active" eval="True"/>
<field name="mode">extension</field>
<field name="model">account.move</field>
<field name="priority">300</field>
<field name="type">form</field>
<field name="arch" type="xml">
<xpath expr="//list[@name='journal_items']//field[@name='price_unit']" position="after">
<field optional="show" name="x_excise_free_unit_price_account_move" invisible="not x_excise_free_unit_price_account_move" column_invisible="not parent.x_has_excise_line"/>
<field optional="show" name="x_total_excises_account_move" invisible="not x_total_excises_account_move" column_invisible="not parent.x_has_excise_line"/>
<field optional="show" name="x_total_deposits_account_move" invisible="not x_total_deposits_account_move" column_invisible="not parent.x_has_deposit_line"/>
<field name="company_currency_id" column_invisible="1"/>
</xpath>
</field>
</record>
</odoo>
73 changes: 73 additions & 0 deletions excise_management/data/qweb_view.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
<?xml version='1.0' encoding='UTF-8'?>
<odoo>
<template id="report_saleorder_custom_inherit" inherit_id="sale.report_saleorder_document">
<xpath expr="//t[@t-set='display_taxes']" position="after">
<t t-set="display_excise_free_unit_price" t-value="any(l.x_excise_free_unit_price for l in lines_to_report)"/>
<t t-set="display_total_excises" t-value="any(l.x_total_excises for l in lines_to_report)"/>
<t t-set="display_total_deposits" t-value="any(l.x_total_deposits for l in lines_to_report)"/>
</xpath>

<xpath expr="//th[@name='th_taxes']" position="after">
<th name="th_excise_free_unit_price" t-if="display_excise_free_unit_price" class="text-end">
<span>Excise Free Unit Price</span>
</th>
<th name="th_total_excises" t-if="display_total_excises" class="text-end">
<span>Total Excises</span>
</th>
<th name="th_total_deposits" t-if="display_total_deposits" class="text-end">
<span>Total Deposits</span>
</th>
</xpath>

<xpath expr="//tr[@name='tr_product']/td[@name='td_product_taxes']" position="after">
<td name="td_excise_free_unit_price" t-if="display_excise_free_unit_price" class="text-end">
<span t-field="line.x_excise_free_unit_price" t-options="{'widget': 'float', 'precision': 2}" t-if="line.x_excise_free_unit_price"/>
</td>
<td name="td_display_total_excises" t-if="display_total_excises" class="text-end">
<span t-field="line.x_total_excises" t-options="{'widget': 'float', 'precision': 2}" t-if="line.x_total_excises"/>
</td>
<td name="td_display_total_deposits" t-if="display_total_deposits" class="text-end">
<span t-field="line.x_total_deposits" t-options="{'widget': 'float', 'precision': 2}" t-if="line.x_total_deposits"/>
</td>
</xpath>
</template>

<template id="report_invoice_document_inherit_custom" inherit_id="account.report_invoice_document">
<xpath expr="//t[@t-set='display_taxes']" position="after">
<t t-set="display_excise_free_unit_price" t-value="any(l.x_excise_free_unit_price_account_move for l in o.invoice_line_ids)"/>
<t t-set="display_total_excises" t-value="any(l.x_total_excises_account_move for l in o.invoice_line_ids)"/>
<t t-set="display_total_deposits" t-value="any(l.x_total_deposits_account_move for l in o.invoice_line_ids)"/>
</xpath>

<xpath expr="//th[@name='th_taxes']" position="after">
<th name="th_excise_free_unit_price" t-if="display_excise_free_unit_price"
t-attf-class="text-end {{ 'd-none d-md-table-cell' if report_type == 'html' else '' }}">
<span>Excise Free Unit Price</span>
</th>
<th name="th_total_excises" t-if="display_total_excises"
t-attf-class="text-end {{ 'd-none d-md-table-cell' if report_type == 'html' else '' }}">
<span>Total Excises</span>
</th>
<th name="th_total_deposits" t-if="display_total_deposits"
t-attf-class="text-end {{ 'd-none d-md-table-cell' if report_type == 'html' else '' }}">
<span>Total Deposits</span>
</th>
</xpath>

<xpath expr="//td[@name='td_taxes']" position="after">
<td name="td_excise_free_unit_price" t-if="display_excise_free_unit_price"
t-attf-class="text-end {{ 'd-none d-md-table-cell' if report_type == 'html' else '' }}">
<span t-out="line.x_excise_free_unit_price_account_move"
id="line_x_excise_free_unit_price_account_move" t-options="{'widget': 'float', 'precision': 2}" t-if="line.x_excise_free_unit_price_account_move"/>
</td>
<td name="td_display_total_excises" t-if="display_total_excises"
t-attf-class="text-end {{ 'd-none d-md-table-cell' if report_type == 'html' else '' }}">
<span t-out="line.x_total_excises_account_move" id="line_x_total_excises_account_move" t-options="{'widget': 'float', 'precision': 2}" t-if="line.x_total_excises_account_move"/>
</td>
<td name="td_display_total_deposits" t-if="display_total_deposits"
t-attf-class="text-end {{ 'd-none d-md-table-cell' if report_type == 'html' else '' }}">
<span t-out="line.x_total_deposits_account_move" id="line_x_total_deposits_account_move" t-options="{'widget': 'float', 'precision': 2}" t-if="line.x_total_deposits_account_move"/>
</td>
</xpath>
</template>
</odoo>
2 changes: 1 addition & 1 deletion micro_brewery/__manifest__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
'name': 'Microbrewery',
'version': '2.0',
'version': '2.1',
'category': 'Supply Chain',
'depends': [
'account',
Expand Down
Loading