~unifield-team/unifield-wm/us-826

« back to all changes in this revision

Viewing changes to procurement_list/partner.py

  • Committer: Matthieu Dietrich
  • Date: 2011-04-08 14:45:57 UTC
  • mto: This revision was merged to the branch mainline in revision 41.
  • Revision ID: matthieu.dietrich@geneva.msf.org-20110408144557-7ertxyikzk1hbx7z
UF-168: [ADD] - added double currencies for bank statements, purchase orders, sales orders and requests for quotation
- merged with UF-173

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#!/usr/bin/env python
2
 
# -*- encoding: utf-8 -*-
3
 
##############################################################################
4
 
#
5
 
#    OpenERP, Open Source Management Solution
6
 
#    Copyright (C) 2011 TeMPO Consulting, MSF.
7
 
#
8
 
#    This program is free software: you can redistribute it and/or modify
9
 
#    it under the terms of the GNU Affero General Public License as
10
 
#    published by the Free Software Foundation, either version 3 of the
11
 
#    License, or (at your option) any later version.
12
 
#
13
 
#    This program is distributed in the hope that it will be useful,
14
 
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
15
 
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
 
#    GNU Affero General Public License for more details.
17
 
#
18
 
#    You should have received a copy of the GNU Affero General Public License
19
 
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
20
 
#
21
 
##############################################################################
22
 
 
23
 
from osv import osv
24
 
from osv import fields
25
 
 
26
 
class res_partner(osv.osv):
27
 
    _name= 'res.partner'
28
 
    _inherit = 'res.partner'
29
 
    
30
 
    _order = 'name'
31
 
    
32
 
    def _set_in_product(self, cr, uid, ids, field_name, arg, context={}):
33
 
        '''
34
 
        Returns according to the context if the partner is in product form
35
 
        '''
36
 
        res = {}
37
 
        
38
 
        product_obj = self.pool.get('product.product')
39
 
        
40
 
        # If we aren't in the context of choose supplier on procurement list
41
 
        if not context.get('product_id', False) or 'choose_supplier' not in context:
42
 
            for i in ids:
43
 
                res[i] = False
44
 
        else:
45
 
            product = product_obj.browse(cr, uid, context.get('product_id'))
46
 
            seller_ids = []
47
 
            # Get all suppliers defined on product form
48
 
            for s in product.seller_ids:
49
 
                seller_ids.append(s.name.id)
50
 
            # Check if the partner is in product form
51
 
            for i in ids:
52
 
                if i in seller_ids:
53
 
                    res[i] = True
54
 
                else:
55
 
                    res[i] = False
56
 
            
57
 
        return res
58
 
    
59
 
    _columns = {
60
 
        'in_product': fields.function(_set_in_product, string='In product', type="boolean", readonly=True, method=True),     
61
 
    }
62
 
    
63
 
    def read(self, cr, uid, ids, fields=None, context={}, load='_classic_read'):
64
 
        '''
65
 
        Sort the supplier according to the context
66
 
        '''
67
 
        res = super(res_partner, self).read(cr, uid, ids, fields, context=context, load=load)
68
 
        # If we are in the context of choose supplier on procurement list
69
 
        if context.get('product_id', False) and 'choose_supplier' in context:
70
 
            # Add in_product field in read
71
 
            if not 'in_product' in fields:
72
 
                fields.append('in_product')
73
 
            
74
 
            seller_ids =[]
75
 
            not_seller_ids = []
76
 
            
77
 
            for r in res:
78
 
                if r.get('in_product', False):
79
 
                    seller_ids.append(r)
80
 
                else:
81
 
                    not_seller_ids.append(r)
82
 
                    
83
 
            result = seller_ids + not_seller_ids
84
 
        else:
85
 
            result = res
86
 
        
87
 
        return result
88
 
    
89
 
res_partner()
90
 
 
91
 
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
92