diff options
| author | Turkesh Patel (Open ERP) <tpa@tinyerp.com> | 2012-03-07 17:24:53 +0530 |
|---|---|---|
| committer | Turkesh Patel (Open ERP) <tpa@tinyerp.com> | 2012-03-07 17:24:53 +0530 |
| commit | ebd9c6e398e8ec8c8f794369cbe5a6dc9787ee77 (patch) | |
| tree | cc105d81a78708b806fa44da169019fe9e6547ec | |
| parent | 86db6b81213d9e14aed15beeb3532f25ef334f12 (diff) | |
[ADD] added tax policy field
bzr revid: tpa@tinyerp.com-20120307115453-he70yxpcpxsr1yfx
| -rw-r--r-- | addons/purchase/res_config.py | 42 | ||||
| -rw-r--r-- | addons/purchase/res_config_view.xml | 8 | ||||
| -rw-r--r-- | addons/purchase/security/purchase_security.xml | 16 |
3 files changed, 63 insertions, 3 deletions
diff --git a/addons/purchase/res_config.py b/addons/purchase/res_config.py index d32fc3685cd..52f726e8873 100644 --- a/addons/purchase/res_config.py +++ b/addons/purchase/res_config.py @@ -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:
\ No newline at end of file diff --git a/addons/purchase/res_config_view.xml b/addons/purchase/res_config_view.xml index f1273fb55a6..3ad32ba07ad 100644 --- a/addons/purchase/res_config_view.xml +++ b/addons/purchase/res_config_view.xml @@ -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/> diff --git a/addons/purchase/security/purchase_security.xml b/addons/purchase/security/purchase_security.xml index 4a8ac571703..11dfe28b0b0 100644 --- a/addons/purchase/security/purchase_security.xml +++ b/addons/purchase/security/purchase_security.xml @@ -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"/> |
