_inherit = 'sale.config.settings'
_columns = {
- 'group_invoice_so_lines': fields.boolean('Generate invoices based on the sales order lines',
- implied_group='sale.group_invoice_so_lines',
- help="To allow your salesman to make invoices for sales order lines using the menu 'Lines to Invoice'."),
'timesheet': fields.boolean('Prepare invoices based on timesheets',
help='For modifying account analytic view to show important data to project manager of services companies.'
'You can also view the report of account analytic summary user-wise as well as month wise.\n'
<group>
<label for="id" string="Invoicing Process"/>
<div>
- <div name="group_invoice_so_lines">
- <field name="group_invoice_so_lines" class="oe_inline"/>
- <label for="group_invoice_so_lines"/>
- </div>
<div name="timesheet">
<field name="timesheet" class="oe_inline" on_change="onchange_timesheet(timesheet)"/>
<label for="timesheet"/>
</field>
</record>
+ <menuitem id="base.menu_invoiced" name="Invoicing" parent="base.menu_base_partner"/>
+ <menuitem id="menu_invoicing_sales_order_lines" parent="base.menu_invoiced" action="action_order_line_tree2"/>
+
<record id="action_order_line_tree3" model="ir.actions.act_window">
<field name="name">Uninvoiced and Delivered Lines</field>
<field name="type">ir.actions.act_window</field>
<field name="users" eval="[(4, ref('base.user_root'))]"/>
</record>
- <record id="group_invoice_so_lines" model="res.groups">
- <field name="name">Enable Invoicing Sales order lines</field>
- <field name="category_id" ref="base.module_category_hidden"/>
- </record>
-
<record id="group_delivery_invoice_address" model="res.groups">
<field name="name">Addresses in Sales Orders</field>
<field name="category_id" ref="base.module_category_hidden"/>
res = super(sale_configuration, self).set_sale_defaults(cr, uid, ids, context)
return res
- def onchange_invoice_methods(self, cr, uid, ids, group_invoice_so_lines, group_invoice_deli_orders, context=None):
+ def onchange_invoice_methods(self, cr, uid, ids, group_invoice_deli_orders, context=None):
if not group_invoice_deli_orders:
return {'value': {'default_order_policy': 'manual'}}
- if not group_invoice_so_lines:
- return {'value': {'default_order_policy': 'picking'}}
return {}
<field name="inherit_id" ref="sale.view_sales_config"/>
<field name="arch" type="xml">
<data>
- <xpath expr="//div[@name='group_invoice_so_lines']" position="replace">
- <div>
- <field name="group_invoice_so_lines" on_change="onchange_invoice_methods(group_invoice_so_lines, group_invoice_deli_orders)" class="oe_inline"/>
- <label for="group_invoice_so_lines"/>
- </div>
- </xpath>
<xpath expr="//div[@name='timesheet']" position="before">
<div>
- <field name="group_invoice_deli_orders" class="oe_inline" on_change="onchange_invoice_methods(group_invoice_so_lines, group_invoice_deli_orders)"/>
- <label for="group_invoice_deli_orders"/>
+ <field name="group_invoice_deli_orders" class="oe_inline" on_change="onchange_invoice_methods(group_invoice_deli_orders)"/>
+ <label for="group_invoice_deli_orders"/>
</div>
<div>
<field name="task_work" class="oe_inline" on_change="onchange_task_work(task_work)"/>
</div>
</xpath>
<xpath expr="//div[@name='div_default_options']" position="inside">
- <div attrs="{'invisible':['|',('group_invoice_so_lines','=',False),('group_invoice_deli_orders','=',False)],'required': ['|',('group_invoice_so_lines','=',True),('group_invoice_deli_orders','=',True)]}">
+ <div attrs="{'invisible':[('group_invoice_deli_orders','=',False)],'required': [('group_invoice_deli_orders','=',True)]}">
<field name="default_order_policy" class="oe_inline" widget="radio"/>
</div>
<div>
<label for="group_mrp_properties"/>
</div>
</div>
- <field name="group_invoice_so_lines" position="replace">
- <field name="group_invoice_so_lines" on_change="onchange_invoice_methods(group_invoice_so_lines, group_invoice_deli_orders)" class="oe_inline"/>
- </field>
<xpath expr="//div[@name='Sale Features']" position="inside">
<div>
<field name="group_route_so_lines" class="oe_inline"/>