~sebastien.beau/openerp-fiscal-rules/openerp-fiscal-rules-fix-multicompany

« back to all changes in this revision

Viewing changes to account_fiscal_position_rule_purchase/purchase.py

[MIGR] account_fiscal_position_rule_purchase module migration to OpenERP v7

Show diffs side-by-side

added added

removed removed

Lines of Context:
19
19
#
20
20
###############################################################################
21
21
 
22
 
from osv import fields, osv
23
 
 
24
 
class purchase_order(osv.osv):
25
 
 
 
22
from osv import osv
 
23
 
 
24
 
 
25
class purchase_order(osv.Model):
26
26
    _inherit = 'purchase.order'
27
27
 
28
 
    def onchange_partner_id(self, cr, uid, ids, part, company_id=False):
29
 
 
30
 
        result = super(purchase_order, self ).onchange_partner_id(cr, uid, ids, part)
31
 
 
32
 
        if not part or not company_id or not result['value']['partner_address_id']:
33
 
            return result
34
 
 
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)})
38
 
 
39
 
        result['value'].update(fiscal_result)
40
 
 
41
 
        return result
42
 
 
43
 
    def onchange_partner_address_id(self, cr, uid, ids, partner_address_id, company_id=False):
44
 
 
45
 
        result = {'value': {'fiscal_position': False}}
46
 
 
47
 
        if not partner_address_id or not company_id:
48
 
            return result
49
 
 
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)})
53
 
 
54
 
        result['value'].update(fiscal_result)
55
 
 
56
 
        return result
57
 
 
58
 
    def onchange_company_id(self, cr, uid, ids, partner_id, partner_address_id=False, company_id=False):
59
 
 
60
 
        result = {'value': {'fiscal_position': False}}
61
 
 
62
 
        if not partner_id or not partner_address_id or not company_id:
63
 
            return result
64
 
 
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)})
67
 
 
68
 
        result['value'].update(fiscal_result)
69
 
 
70
 
        return result
71
 
 
72
 
purchase_order()
73
 
 
74
 
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
 
28
    def _fiscal_position_map(self, cr, uid, result, **kwargs):
 
29
 
 
30
        if not kwargs.get('context', False):
 
31
            kwargs['context'] = {}
 
32
 
 
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)
 
36
 
 
37
    def onchange_partner_id(self, cr, uid, ids, partner_id, company_id=None,
 
38
                            context=None, **kwargs):
 
39
        if not context:
 
40
            context = {}
 
41
 
 
42
        result = super(purchase_order, self).onchange_partner_id(
 
43
            cr, uid, ids, partner_id)
 
44
 
 
45
        if not partner_id or not company_id:
 
46
            return result
 
47
 
 
48
        kwargs.update({
 
49
            'company_id': company_id,
 
50
            'partner_id': partner_id,
 
51
            'partner_invoice_id': partner_id,
 
52
            'partner_shipping_id': partner_id,
 
53
            'context': context
 
54
        })
 
55
        return self._fiscal_position_map(cr, uid, result, **kwargs)
 
56
 
 
57
    def onchange_dest_address_id(self, cr, uid, ids, partner_id,
 
58
                                dest_address_id, company_id=None,
 
59
                                context=None, **kwargs):
 
60
        if not context:
 
61
            context = {}
 
62
 
 
63
        result = {'value': {'fiscal_position': False}}
 
64
 
 
65
        if not partner_id or not company_id:
 
66
            return result
 
67
 
 
68
        kwargs.update({
 
69
            'company_id': company_id,
 
70
            'partner_id': partner_id,
 
71
            'partner_invoice_id': partner_id,
 
72
            'partner_shipping_id': dest_address_id,
 
73
            'context': context
 
74
        })
 
75
        return self._fiscal_position_map(cr, uid, result, **kwargs)
 
76
 
 
77
    def onchange_company_id(self, cr, uid, ids, partner_id,
 
78
                            dest_address_id=False, company_id=False,
 
79
                            context=None, **kwargs):
 
80
        if not context:
 
81
            context = {}
 
82
 
 
83
        result = {'value': {'fiscal_position': False}}
 
84
 
 
85
        if not partner_id or not company_id:
 
86
            return result
 
87
 
 
88
        kwargs.update({
 
89
            'company_id': company_id,
 
90
            'partner_id': partner_id,
 
91
            'partner_invoice_id': partner_id,
 
92
            'partner_shipping_id': dest_address_id,
 
93
            'context': context
 
94
        })
 
95
        return self._fiscal_position_map(cr, uid, result, **kwargs)