[IMP] sale.config.settings: define groups for enabling access to menus 'Lines to Invoice' and 'Deliveries to Invoice'

bzr revid: rco@openerp.com-20120321130121-94uhihyq5k0ve5w4
This commit is contained in:
Raphael Collet 2012-03-21 14:01:21 +01:00
parent a9e02f7df1
commit 3cdec55f98
5 changed files with 23 additions and 30 deletions

View File

@ -27,10 +27,12 @@ class sale_configuration(osv.osv_memory):
_inherit = 'sale.config.settings'
_columns = {
'sale_orders': fields.boolean('Based on Sales Orders',
help="To allow your salesman to make invoices for sale order lines using 'Lines to Invoice' menu."),
'deli_orders': fields.boolean('Based on Delivery Orders',
help="To allow your salesman to make invoices for Delivery Orders using 'Deliveries to Invoice' menu."),
'group_invoice_so_lines': fields.boolean('Based on Sales Orders',
implied_group='sale.group_invoice_so_lines',
help="To allow your salesman to make invoices for sale order lines using the menu 'Lines to Invoice'."),
'group_invoice_deli_orders': fields.boolean('Based on Delivery Orders',
implied_group='sale.group_invoice_deli_orders',
help="To allow your salesman to make invoices for Delivery Orders using the menu 'Deliveries to Invoice'."),
'task_work': fields.boolean('Based on Tasks\' Work',
help="""Lets you transfer the entries under tasks defined for Project Management to
the Timesheet line entries for particular date and particular user with the effect of creating, editing and deleting either ways
@ -116,15 +118,6 @@ class sale_configuration(osv.osv_memory):
data_obj = self.pool.get('ir.model.data')
menu_obj = self.pool.get('ir.ui.menu')
result = {}
invoicing_groups_id = [gid.id for gid in data_obj.get_object(cr, uid, 'sale', 'menu_invoicing_sales_order_lines').groups_id]
picking_groups_id = [gid.id for gid in data_obj.get_object(cr, uid, 'sale', 'menu_action_picking_list_to_invoice').groups_id]
group_id = data_obj.get_object(cr, uid, 'base', 'group_sale_salesman').id
for menu in ir_values_obj.get(cr, uid, 'default', False, ['ir.ui.menu']):
if menu[1] == 'groups_id' and group_id in menu[2][0]:
if group_id in invoicing_groups_id:
result['sale_orders'] = True
if group_id in picking_groups_id:
result['deli_orders'] = True
for res in ir_values_obj.get(cr, uid, 'default', False, ['sale.order']):
result[res[1]] = res[2]
return result
@ -150,16 +143,6 @@ class sale_configuration(osv.osv_memory):
wizard = self.browse(cr, uid, ids)[0]
group_id = data_obj.get_object(cr, uid, 'base', 'group_sale_salesman').id
if wizard.sale_orders:
menu_id = data_obj.get_object(cr, uid, 'sale', 'menu_invoicing_sales_order_lines').id
menu_obj.write(cr, uid, menu_id, {'groups_id':[(4,group_id)]})
ir_values_obj.set(cr, uid, 'default', False, 'groups_id', ['ir.ui.menu'], [(4,group_id)])
if wizard.deli_orders:
menu_id = data_obj.get_object(cr, uid, 'sale', 'menu_action_picking_list_to_invoice').id
menu_obj.write(cr, uid, menu_id, {'groups_id':[(4,group_id)]})
ir_values_obj.set(cr, uid, 'default', False, 'groups_id', ['ir.ui.menu'], [(4,group_id)])
if wizard.default_picking_policy:
ir_values_obj.set(cr, uid, 'default', False, 'picking_policy', ['sale.order'], 'one')

View File

@ -12,17 +12,17 @@
<separator string="Picking and Invoice Policy" colspan="4"/>
<group colspan="4">
<group colspan="2" col="2">
<field name="sale_orders"/>
<field name="deli_orders"/>
<field name="group_invoice_so_lines"/>
<field name="group_invoice_deli_orders"/>
<field name="task_work" on_change="onchange_task_work(task_work)"/>
<field name="module_project_timesheet" invisible="1"/>
<field name="module_project_mrp" invisible="1"/>
<field name="module_account_analytic_analysis"/>
</group>
<group colspan="2" col="2">
<field name="default_order_policy" attrs="{'invisible':['|',('sale_orders','=',False),('deli_orders','=',False)]}"/>
<field name="module_delivery" attrs="{'invisible':[('sale_orders','=',False), ('deli_orders','=',False)]}"/>
<field name="default_picking_policy" attrs="{'invisible':[('deli_orders','=',False)]}"/>
<field name="default_order_policy" attrs="{'invisible':['|',('group_invoice_so_lines','=',False),('group_invoice_deli_orders','=',False)]}"/>
<field name="module_delivery" attrs="{'invisible':[('group_invoice_so_lines','=',False), ('group_invoice_deli_orders','=',False)]}"/>
<field name="default_picking_policy" attrs="{'invisible':[('group_invoice_deli_orders','=',False)]}"/>
<field name="time_unit" domain="[('category_id.name','=','Working Time')]" attrs="{'invisible':[('task_work','=',False),('module_account_analytic_analysis','=',False)],'required': [('module_account_analytic_analysis','=',True)]}"/>
</group>
</group>

View File

@ -501,7 +501,7 @@
groups="base.group_sale_salesman"/>
<menuitem id="base.menu_invoiced" name="Invoicing" parent="base.menu_base_partner" sequence="5" groups="base.group_extended"/>
<menuitem id="menu_invoicing_sales_order_lines" parent="base.menu_invoiced" action="action_order_line_tree2" sequence="2" groups="base.group_no_one"/>
<menuitem id="menu_invoicing_sales_order_lines" parent="base.menu_invoiced" action="action_order_line_tree2" sequence="2" groups="group_invoice_so_lines"/>
</data>
</openerp>

View File

@ -20,6 +20,16 @@
<field name="users" eval="[(4, ref('base.user_root'))]"/>
</record>
<record id="group_invoice_so_lines" model="res.groups">
<field name="name">Enable Invoicing Sale order lines</field>
<field name="category_id" ref="base.module_category_hidden"/>
</record>
<record id="group_invoice_deli_orders" model="res.groups">
<field name="name">Enable Invoicing Delivery orders</field>
<field name="category_id" ref="base.module_category_hidden"/>
</record>
<record id="base.group_sale_delivery_address" model="res.groups">
<field name="name">Addresses in Sale Orders</field>
<field name="category_id" ref="base.module_category_hidden"/>

View File

@ -74,7 +74,7 @@
<field name="context">{'default_type': 'out', 'contact_display': 'partner_address', 'search_default_to_invoice': 1, 'search_default_done': 1}</field>
<field name="search_view_id" ref="stock.view_picking_out_search"/>
</record>
<menuitem action="outgoing_picking_list_to_invoice" id="menu_action_picking_list_to_invoice" parent="base.menu_invoiced" groups="base.group_no_one" sequence="20"/>
<menuitem action="outgoing_picking_list_to_invoice" id="menu_action_picking_list_to_invoice" parent="base.menu_invoiced" groups="group_invoice_deli_orders" sequence="20"/>
</data>
</openerp>