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

« back to all changes in this revision

Viewing changes to sourcing/purchase_order.py

  • Committer: jf
  • Date: 2011-03-23 13:23:55 UTC
  • Revision ID: jf@tempo4-20110323132355-agyf1soy7m5ewatr
Initial Import

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# -*- coding: utf-8 -*-
2
 
##############################################################################
3
 
#
4
 
#    OpenERP, Open Source Management Solution
5
 
#    Copyright (C) 2014 TeMPO Consulting, MSF
6
 
#
7
 
#    This program is free software: you can redistribute it and/or modify
8
 
#    it under the terms of the GNU Affero General Public License as
9
 
#    published by the Free Software Foundation, either version 3 of the
10
 
#    License, or (at your option) any later version.
11
 
#
12
 
#    This program is distributed in the hope that it will be useful,
13
 
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
14
 
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
 
#    GNU Affero General Public License for more details.
16
 
#
17
 
#    You should have received a copy of the GNU Affero General Public License
18
 
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
19
 
#
20
 
##############################################################################
21
 
 
22
 
from osv import fields
23
 
from osv import osv
24
 
 
25
 
 
26
 
class purchase_order(osv.osv):
27
 
    """
28
 
    override for workflow modification
29
 
    """
30
 
    _name = 'purchase.order'
31
 
    _inherit = 'purchase.order'
32
 
 
33
 
    _columns = {
34
 
        'customer_id': fields.many2one('res.partner', string='Customer', domain=[('customer', '=', True)]),
35
 
    }
36
 
 
37
 
    def create(self, cr, uid, vals, context=None):
38
 
        '''
39
 
        override for debugging purpose
40
 
        '''
41
 
        return super(purchase_order, self).create(cr, uid, vals, context)
42
 
 
43
 
    def _check_order_type_and_partner(self, cr, uid, ids, context=None):
44
 
        """
45
 
        Check order type and partner type compatibilities.
46
 
        """
47
 
        compats = {
48
 
            'regular':       ['internal', 'intermission', 'section', 'external', 'esc'],
49
 
            'donation_st':   ['internal', 'intermission', 'section'],
50
 
            'loan':          ['internal', 'intermission', 'section', 'external'],
51
 
            'donation_exp':  ['internal', 'intermission', 'section'],
52
 
            'in_kind':       ['external', 'esc'],
53
 
            'direct':        ['external', 'esc'],
54
 
            'purchase_list': ['external'],
55
 
        }
56
 
        # Browse PO
57
 
        for po in self.browse(cr, uid, ids):
58
 
            if po.order_type not in compats or po.partner_id.partner_type not in compats[po.order_type]:
59
 
                return False
60
 
        return True
61
 
 
62
 
    _constraints = [
63
 
        (
64
 
            _check_order_type_and_partner,
65
 
            "Partner type and order type are incompatible! Please change either order type or partner.",
66
 
            ['order_type', 'partner_id'],
67
 
        ),
68
 
    ]
69
 
 
70
 
purchase_order()
71
 
 
72
 
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: