mirror of
https://github.com/OCA/contract.git
synced 2025-02-13 17:57:24 +02:00
[IMP][10.0] contract: Add templating (#42)
Add template functionality for contracts
This commit is contained in:
committed by
Pedro M. Baeza
parent
eef2c2f8ed
commit
dcf3ff0877
@@ -1,49 +1,55 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
|
||||
<record id="act_recurring_invoices" model="ir.actions.act_window">
|
||||
<field name="context">{'search_default_contract_id':
|
||||
[active_id],
|
||||
'default_contract_id': active_id}
|
||||
</field>
|
||||
<field name="name">Invoices</field>
|
||||
<field name="res_model">account.invoice</field>
|
||||
<field name="view_id" ref="account.invoice_tree" />
|
||||
<field name="search_view_id" ref="account.view_account_invoice_filter"/>
|
||||
</record>
|
||||
|
||||
<record id="account_analytic_account_recurring_form_form" model="ir.ui.view">
|
||||
<field name="name">account.analytic.account.invoice.recurring.form.inherit</field>
|
||||
<field name="model">account.analytic.account</field>
|
||||
<field name="inherit_id" ref="analytic.view_account_analytic_account_form"/>
|
||||
<field eval="40" name="priority"/>
|
||||
<field name="mode">primary</field>
|
||||
<field name="arch" type="xml">
|
||||
<group name="main" position="after">
|
||||
<separator string="Recurring Invoices" attrs="{'invisible': [('recurring_invoices','!=',True)]}"/>
|
||||
<separator string="Recurring Invoices"
|
||||
attrs="{'invisible': [('recurring_invoices','!=',True)]}"
|
||||
/>
|
||||
<div>
|
||||
<field name="recurring_invoices" class="oe_inline"/>
|
||||
<label for="recurring_invoices" />
|
||||
<button name="recurring_create_invoice" type="object"
|
||||
<button name="recurring_create_invoice"
|
||||
type="object"
|
||||
attrs="{'invisible': [('recurring_invoices','!=',True)]}"
|
||||
string="Create invoices" class="oe_link"
|
||||
groups="base.group_no_one"/>
|
||||
<button name="%(contract.act_recurring_invoices)d" type="action"
|
||||
string="Create invoices"
|
||||
class="oe_link"
|
||||
groups="base.group_no_one"
|
||||
/>
|
||||
<button name="contract.act_recurring_invoices"
|
||||
type="action"
|
||||
attrs="{'invisible': [('recurring_invoices','!=',True)]}"
|
||||
string="⇒ Show recurring invoices" class="oe_link"/>
|
||||
string="⇒ Show recurring invoices"
|
||||
class="oe_link"
|
||||
/>
|
||||
</div>
|
||||
<group col="4" attrs="{'invisible': [('recurring_invoices','!=',True)]}">
|
||||
<field name="contract_template_id" />
|
||||
<field name="journal_id"/>
|
||||
<field name="pricelist_id"/>
|
||||
<label for="recurring_interval"/>
|
||||
<div>
|
||||
<field name="recurring_interval" class="oe_inline" attrs="{'required': [('recurring_invoices', '=', True)]}"/>
|
||||
<field name="recurring_rule_type" class="oe_inline" attrs="{'required': [('recurring_invoices', '=', True)]}"/>
|
||||
<field name="recurring_interval"
|
||||
class="oe_inline"
|
||||
attrs="{'required': [('recurring_invoices', '=', True)]}"
|
||||
/>
|
||||
<field name="recurring_rule_type"
|
||||
class="oe_inline"
|
||||
attrs="{'required': [('recurring_invoices', '=', True)]}"
|
||||
/>
|
||||
</div>
|
||||
<field name="recurring_invoicing_type"/>
|
||||
<field name="date_start"/>
|
||||
<field name="recurring_next_date"/>
|
||||
</group>
|
||||
<label for="recurring_invoice_line_ids" attrs="{'invisible': [('recurring_invoices','=',False)]}"/>
|
||||
<label for="recurring_invoice_line_ids"
|
||||
attrs="{'invisible': [('recurring_invoices','=',False)]}"
|
||||
/>
|
||||
<div attrs="{'invisible': [('recurring_invoices','=',False)]}">
|
||||
<field name="recurring_invoice_line_ids">
|
||||
<tree string="Account Analytic Lines" editable="bottom">
|
||||
@@ -87,9 +93,15 @@
|
||||
<field name="name" position="after">
|
||||
<field name="journal_id"/>
|
||||
<field name="pricelist_id"/>
|
||||
<filter name="recurring_invoices" string="Recurring Invoices" domain="[('recurring_invoices','=',True)]"/>
|
||||
<filter name="recurring_invoices"
|
||||
string="Recurring Invoices"
|
||||
domain="[('recurring_invoices','=',True)]"
|
||||
/>
|
||||
<group expand="0" string="Group By...">
|
||||
<filter string="Next Invoice" domain="[]" context="{'group_by':'recurring_next_date'}"/>
|
||||
<filter string="Next Invoice"
|
||||
domain="[]"
|
||||
context="{'group_by':'recurring_next_date'}"
|
||||
/>
|
||||
</group>
|
||||
</field>
|
||||
</field>
|
||||
@@ -109,6 +121,11 @@
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
<menuitem action="action_account_analytic_overdue_all" id="menu_action_account_analytic_overdue_all" sequence="99" parent="account.menu_finance_receivables"/>
|
||||
|
||||
<menuitem id="menu_action_account_analytic_overdue_all"
|
||||
parent="account.menu_finance_receivables"
|
||||
action="action_account_analytic_overdue_all"
|
||||
sequence="99"
|
||||
/>
|
||||
|
||||
</odoo>
|
||||
118
contract/views/account_analytic_contract_view.xml
Normal file
118
contract/views/account_analytic_contract_view.xml
Normal file
@@ -0,0 +1,118 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
|
||||
<record id="account_analytic_contract_view_form" model="ir.ui.view">
|
||||
<field name="name">Account Analytic Contract Form View</field>
|
||||
<field name="model">account.analytic.contract</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Contract Template">
|
||||
<group name="group_main">
|
||||
<field name="name" />
|
||||
<group name="group_main_left">
|
||||
<field name="journal_id" />
|
||||
<field name="pricelist_id" />
|
||||
</group>
|
||||
<group name="group_main_right">
|
||||
<field name="recurring_invoicing_type" />
|
||||
<label for="recurring_interval" />
|
||||
<div>
|
||||
<field name="recurring_interval"
|
||||
class="oe_inline"
|
||||
required="True"
|
||||
/>
|
||||
<field name="recurring_rule_type"
|
||||
class="oe_inline"
|
||||
required="True"
|
||||
/>
|
||||
</div>
|
||||
</group>
|
||||
</group>
|
||||
<group name="group_invoice_lines" string="Invoice Lines">
|
||||
<field name="recurring_invoice_line_ids">
|
||||
<tree string="Account Analytic Lines" editable="bottom">
|
||||
<field name="product_id" />
|
||||
<field name="name" />
|
||||
<field name="quantity" />
|
||||
<field name="uom_id" />
|
||||
<field name="price_unit" />
|
||||
<field name="discount" groups="sale.group_discount_per_so_line" />
|
||||
<field name="price_subtotal" />
|
||||
</tree>
|
||||
</field>
|
||||
</group>
|
||||
<group name="group_legend"
|
||||
string="Legend (for the markers inside invoice lines description)"
|
||||
>
|
||||
<p> <strong>#START#</strong>: Start date of the invoiced period</p>
|
||||
<p> <strong>#END#</strong>: End date of the invoiced period</p>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="account_analytic_contract_view_tree" model="ir.ui.view">
|
||||
<field name="name">Account Analytic Contract Tree View</field>
|
||||
<field name="model">account.analytic.contract</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Contract Templates">
|
||||
<field name="name" />
|
||||
<field name="recurring_rule_type" />
|
||||
<field name="recurring_interval" />
|
||||
<field name="recurring_invoicing_type" />
|
||||
<field name="pricelist_id" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="account_analytic_contract_view_search" model="ir.ui.view">
|
||||
<field name="name">Account Analytic Contract Search View</field>
|
||||
<field name="model">account.analytic.contract</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Contract Templates">
|
||||
<field name="name" />
|
||||
<field name="recurring_rule_type" />
|
||||
<field name="recurring_interval" />
|
||||
<field name="recurring_invoicing_type" />
|
||||
<field name="pricelist_id" />
|
||||
<field name="journal_id" />
|
||||
<filter string="Recurrence"
|
||||
context="{'group_by': 'recurring_rule_type'}"
|
||||
/>
|
||||
<filter string="Invoicing Type"
|
||||
context="{'group_by': 'recurring_invoicing_type'}"
|
||||
/>
|
||||
<filter string="Pricelist"
|
||||
context="{'group_by': 'pricelist_id'}"
|
||||
/>
|
||||
<filter string="Journal"
|
||||
context="{'group_by': 'journal_id'}"
|
||||
/>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="account_analytic_contract_action" model="ir.actions.act_window">
|
||||
<field name="name">Contract Templates</field>
|
||||
<field name="res_model">account.analytic.contract</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="help" type="html">
|
||||
<p class="oe_view_nocontent_create">
|
||||
Click to create a new contract template.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<menuitem id="menu_config_contract"
|
||||
name="Contracts"
|
||||
sequence="1"
|
||||
parent="account.menu_finance_configuration"
|
||||
/>
|
||||
|
||||
<menuitem id="account_analytic_contract_menu"
|
||||
parent="menu_config_contract"
|
||||
action="account_analytic_contract_action"
|
||||
sequence="1"
|
||||
/>
|
||||
|
||||
</odoo>
|
||||
@@ -1,7 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
|
||||
<!-- Invoice search view with contract -->
|
||||
<record id="view_account_invoice_filter_contract" model="ir.ui.view">
|
||||
<field name="name">account.invoice.select.contract</field>
|
||||
<field name="model">account.invoice</field>
|
||||
@@ -14,4 +13,15 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="act_recurring_invoices" model="ir.actions.act_window">
|
||||
<field name="context">{'search_default_contract_id':
|
||||
[active_id],
|
||||
'default_contract_id': active_id}
|
||||
</field>
|
||||
<field name="name">Invoices</field>
|
||||
<field name="res_model">account.invoice</field>
|
||||
<field name="view_id" ref="account.invoice_tree" />
|
||||
<field name="search_view_id" ref="account.view_account_invoice_filter"/>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
|
||||
Reference in New Issue
Block a user