20
20
###############################################################################
22
from osv import fields, osv
24
class purchase_order(osv.osv):
25
class purchase_order(osv.Model):
26
26
_inherit = 'purchase.order'
28
def onchange_partner_id(self, cr, uid, ids, part, company_id=False):
30
result = super(purchase_order, self ).onchange_partner_id(cr, uid, ids, part)
32
if not part or not company_id or not result['value']['partner_address_id']:
35
partner_address_id = result['value'].get('partner_address_id', False)
36
obj_fiscal_position_rule = self.pool.get('account.fiscal.position.rule')
37
fiscal_result = obj_fiscal_position_rule.fiscal_position_map(cr, uid, part, partner_address_id, company_id, context={'use_domain': ('use_purchase','=',True)})
39
result['value'].update(fiscal_result)
43
def onchange_partner_address_id(self, cr, uid, ids, partner_address_id, company_id=False):
45
result = {'value': {'fiscal_position': False}}
47
if not partner_address_id or not company_id:
50
partner_addr = self.pool.get('res.partner.address').browse(cr, uid, partner_address_id)
51
obj_fiscal_position_rule = self.pool.get('account.fiscal.position.rule')
52
fiscal_result = obj_fiscal_position_rule.fiscal_position_map(cr, uid, partner_addr.partner_id.id, partner_address_id, company_id, context={'use_domain': ('use_purchase','=',True)})
54
result['value'].update(fiscal_result)
58
def onchange_company_id(self, cr, uid, ids, partner_id, partner_address_id=False, company_id=False):
60
result = {'value': {'fiscal_position': False}}
62
if not partner_id or not partner_address_id or not company_id:
65
obj_fiscal_position_rule = self.pool.get('account.fiscal.position.rule')
66
fiscal_result = obj_fiscal_position_rule.fiscal_position_map(cr, uid, partner_id, partner_address_id, company_id, context={'use_domain': ('use_purchase','=',True)})
68
result['value'].update(fiscal_result)
74
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
28
def _fiscal_position_map(self, cr, uid, result, **kwargs):
30
if not kwargs.get('context', False):
31
kwargs['context'] = {}
33
kwargs['context'].update({'use_domain': ('use_purchase', '=', True)})
34
fp_rule_obj = self.pool.get('account.fiscal.position.rule')
35
return fp_rule_obj.apply_fiscal_mapping(cr, uid, result, kwargs)
37
def onchange_partner_id(self, cr, uid, ids, partner_id, company_id=None,
38
context=None, **kwargs):
42
result = super(purchase_order, self).onchange_partner_id(
43
cr, uid, ids, partner_id)
45
if not partner_id or not company_id:
49
'company_id': company_id,
50
'partner_id': partner_id,
51
'partner_invoice_id': partner_id,
52
'partner_shipping_id': partner_id,
55
return self._fiscal_position_map(cr, uid, result, **kwargs)
57
def onchange_dest_address_id(self, cr, uid, ids, partner_id,
58
dest_address_id, company_id=None,
59
context=None, **kwargs):
63
result = {'value': {'fiscal_position': False}}
65
if not partner_id or not company_id:
69
'company_id': company_id,
70
'partner_id': partner_id,
71
'partner_invoice_id': partner_id,
72
'partner_shipping_id': dest_address_id,
75
return self._fiscal_position_map(cr, uid, result, **kwargs)
77
def onchange_company_id(self, cr, uid, ids, partner_id,
78
dest_address_id=False, company_id=False,
79
context=None, **kwargs):
83
result = {'value': {'fiscal_position': False}}
85
if not partner_id or not company_id:
89
'company_id': company_id,
90
'partner_id': partner_id,
91
'partner_invoice_id': partner_id,
92
'partner_shipping_id': dest_address_id,
95
return self._fiscal_position_map(cr, uid, result, **kwargs)