[IMP] - Add recurrence fields to product template and sale order line

This commit is contained in:
sbejaoui
2018-10-31 18:10:08 +01:00
committed by Ilyas
parent 9dbab0b659
commit db601695f9
10 changed files with 232 additions and 35 deletions

View File

@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2017 LasLabs Inc.
Copyright 2018 ACSONE SA/NV.
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
-->
<odoo>
<record id="product_template_form_contract_view" model="ir.ui.view">
<field name="name">account.invoice.select.contract</field>
<field name="model">product.template</field>
<field name="inherit_id" ref="product.product_template_form_view"/>
<field name="arch" type="xml">
<xpath expr="//div[@name='options']" position="inside">
<div>
<field name="is_contract"/>
<label for="is_contract"/>
</div>
</xpath>
<xpath expr="//group[@name='group_standard_price']"
position="inside">
<field name="contract_template_id"
attrs="{'invisible': [('is_contract', '=', False)],
'required':[('is_contract', '=', True)]}"/>
<field name="recurring_invoicing_type"
attrs="{'invisible': [('is_contract', '=', False)],
'required':[('is_contract', '=', True)]}"/>
<label for="recurring_interval" attrs="{'invisible': [('is_contract', '=', False)],
'required':[('is_contract', '=', True)]}"/>
<div attrs="{'invisible': [('is_contract', '=', False)],
'required':[('is_contract', '=', True)]}">
<field name="recurring_interval"
class="oe_inline" nolabel="1"/>
<field name="recurring_rule_type"
class="oe_inline" nolabel="1"/>
</div>
</xpath>
</field>
</record>
</odoo>

View File

@@ -1,29 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2017 LasLabs Inc.
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
-->
<odoo>
<record id="product_template_form_contract_view" model="ir.ui.view">
<field name="name">account.invoice.select.contract</field>
<field name="model">product.template</field>
<field name="inherit_id" ref="product.product_template_form_view"/>
<field name="arch" type="xml">
<xpath expr="//div[@name='options']" position="inside">
<div>
<field name="is_contract" />
<label for="is_contract" />
</div>
</xpath>
<xpath expr="//group[@name='group_standard_price']" position="inside">
<field name="contract_template_id"
attrs="{'invisible': [('is_contract', '=', False)],
'required':[('is_contract', '=', True)]}" />
</xpath>
</field>
</record>
</odoo>

View File

@@ -0,0 +1,63 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2018 ACSONE SA/NV.
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
-->
<odoo>
<record id="view_order_form" model="ir.ui.view">
<field name="name">sale.order.form (in product_contract)</field>
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_order_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='order_line']" position="before">
<field name="is_contract" invisible="1"/>
</xpath>
<xpath expr="//field[@name='order_line']/form//field[@name='tax_id']/parent::group"
position="after">
<separator colspan="4" string="Recurrence Invoicing"
attrs="{'invisible': [('is_contract', '=', False)]}"/>
<group attrs="{'invisible': [('is_contract', '=', False)]}">
<field name="is_contract" invisible="1"/>
<field name="recurring_invoicing_type"
attrs="{'invisible': [('is_contract', '=', False)],
'required':[('is_contract', '=', True)]}"/>
</group>
<group attrs="{'invisible': [('is_contract', '=', False)]}">
<label for="recurring_interval"/>
<div>
<field name="recurring_interval"
class="oe_inline" nolabel="1"
attrs="{'required':[('is_contract', '=', True)]}"/>
<field name="recurring_rule_type"
class="oe_inline" nolabel="1"
attrs="{'required':[('is_contract', '=', True)]}"/>
</div>
</group>
<group attrs="{'invisible': [('is_contract', '=', False)]}">
<field name="date_start"/>
<field name="recurring_next_date"/>
</group>
<group attrs="{'invisible': [('is_contract', '=', False)]}">
<field name="date_end"/>
</group>
</xpath>
<xpath expr="//field[@name='order_line']/tree//field[@name='price_total']"
position="after">
<field name="date_start"
attrs="{'column_invisible': [('parent.is_contract', '=', False)]}"/>
<field name="date_end"
attrs="{'column_invisible': [('parent.is_contract', '=', False)]}"/>
<field name="recurring_next_date"
attrs="{'column_invisible': [('parent.is_contract', '=', False)]}"/>
</xpath>
<xpath expr="//field[@name='order_line']/tree"
position="attributes">
<attribute name="editable"/>
</xpath>
</field>
</record>
</odoo>