[ADD] added tax policy field
bzr revid: tpa@tinyerp.com-20120307115453-he70yxpcpxsr1yfx
This commit is contained in:
parent
86db6b8121
commit
ebd9c6e398
|
@ -56,12 +56,54 @@ class purchase_configuration(osv.osv_memory):
|
|||
help="""When a purchase order is created, you now have the opportunity to save the related requisition.
|
||||
This new object will regroup and will allow you to easily keep track and order all your purchase orders.
|
||||
It Installs purchase_requisition module."""),
|
||||
'tax_policy': fields.selection([
|
||||
('no_tax', 'No Tax'),
|
||||
('global_on_order', 'Global On Order'),
|
||||
('on_order_line', 'On Order Lines'),
|
||||
], 'Taxes', required=True,
|
||||
help="""
|
||||
If you want to apply global tax on sale order then select 'Global On Order' it will add 'Global On Order' group to employees.
|
||||
If you want to apply different taxes for sale order lines then select 'On Order Lines' it will add 'On Order Lines' group to employees.
|
||||
"""),
|
||||
'group_purchase_taxes_global_on_order':fields.boolean("Global on order", group='base.group_user', implied_group='base.group_purchase_taxes_global_on_order'),
|
||||
'group_purchase_taxes_on_order_line':fields.boolean("On order line", group='base.group_user', implied_group='base.group_purchase_taxes_on_order_line'),
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
'default_method': lambda s,c,u,ctx: s.pool.get('purchase.order').default_get(c,u,['invoice_method'],context=ctx)['invoice_method'],
|
||||
'tax_policy': 'global_on_order',
|
||||
}
|
||||
|
||||
def _check_default_tax(self, cr, uid, context=None):
|
||||
ir_values_obj = self.pool.get('ir.values')
|
||||
for tax in ir_values_obj.get(cr, uid, 'default', False, ['product.product']):
|
||||
if tax[1] == 'taxes_id':
|
||||
return tax[2]
|
||||
return False
|
||||
|
||||
def set_default_taxes(self, cr, uid, ids, context=None):
|
||||
ir_values_obj = self.pool.get('ir.values')
|
||||
taxes = self._check_default_tax(cr, uid, context=context)
|
||||
if taxes:
|
||||
ir_values_obj.set(cr, uid, 'default', False, 'tax_id', ['purchase.order'], taxes[0])
|
||||
ir_values_obj.set(cr, uid, 'default', False, 'tax_id', ['purchase.order.line'], taxes)
|
||||
ir_values_obj.set(cr, uid, 'default', False, 'taxes_id', ['product.product'], taxes)
|
||||
|
||||
def onchange_tax_policy(self, cr, uid, ids, tax_policy, context=None):
|
||||
res = {'value': {}}
|
||||
if ids:
|
||||
self.set_tax_policy(cr, uid, ids, context=context)
|
||||
if tax_policy == 'global_on_order':
|
||||
res['value'].update({'group_purchase_taxes_global_on_order': True})
|
||||
res['value'].update({'group_purchase_taxes_on_order_line': False})
|
||||
|
||||
elif tax_policy == 'on_order_line':
|
||||
res['value'].update({'group_purchase_taxes_on_order_line': True})
|
||||
res['value'].update({'group_purchase_taxes_global_on_order': False})
|
||||
else:
|
||||
res['value'].update({'group_purchase_taxes_on_order_line': False, 'group_purchase_taxes_global_on_order': False})
|
||||
return res
|
||||
|
||||
purchase_configuration()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -17,9 +17,11 @@
|
|||
<group colspan="4" col="4">
|
||||
<field name="group_purchase_pricelist_per_supplier"/>
|
||||
<newline/>
|
||||
<!--group col="2" colspan="1">
|
||||
<field name="tax_policy" on_change="onchange_tax_policy(tax_policy)"/>
|
||||
</group-->
|
||||
<group col="2" colspan="1">
|
||||
<field name="tax_policy" on_change="onchange_tax_policy(tax_policy)"/>
|
||||
</group>
|
||||
<field name="group_sale_taxes_global_on_order" invisible="1"/>
|
||||
<field name="group_sale_taxes_on_order_line" invisible="1"/>
|
||||
<newline/>
|
||||
<field name="module_warning"/>
|
||||
<newline/>
|
||||
|
|
|
@ -12,6 +12,22 @@
|
|||
<field name="implied_ids" eval="[(4, ref('group_purchase_user'))]"/>
|
||||
</record>
|
||||
|
||||
<record id="base.group_purchase_taxes_global_on_order" model="res.groups">
|
||||
<field name="name">Purchase Taxes Global on Order</field>
|
||||
<field name="category_id" ref="base.module_category_hidden"/>
|
||||
</record>
|
||||
|
||||
<record id="base.group_purchase_taxes_on_order_line" model="res.groups">
|
||||
<field name="name">Purchase Taxes on Order Lines</field>
|
||||
<field name="category_id" ref="base.module_category_hidden"/>
|
||||
</record>
|
||||
|
||||
<record id="base.group_user" model="res.groups">
|
||||
<field name="implied_ids" eval="[(6,0,[
|
||||
ref('base.group_purchase_taxes_global_on_order'),
|
||||
])]"/>
|
||||
</record>
|
||||
|
||||
<record model="ir.rule" id="purchase_order_comp_rule">
|
||||
<field name="name">Purchase Order multi-company</field>
|
||||
<field name="model_id" ref="model_purchase_order"/>
|
||||
|
|
Loading…
Reference in New Issue