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

« back to all changes in this revision

Viewing changes to kit/wizard/modify_expiry_date.py

  • Committer: Olivier DOSSMANN
  • Date: 2013-05-31 14:22:09 UTC
  • mto: This revision was merged to the branch mainline in revision 1687.
  • Revision ID: od@tempo-consulting.fr-20130531142209-sbcwvzuema11guzz
UF-1991 [FIX] Problem with wizard on "msg" field. Change it to "name".

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) Copyright (C) 2011 MSF, TeMPO Consulting.
 
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, osv
 
23
from tools.translate import _
 
24
import decimal_precision as dp
 
25
 
 
26
import netsvc
 
27
 
 
28
class modify_expiry_date(osv.osv_memory):
 
29
    '''
 
30
    wizard called to confirm an action
 
31
    '''
 
32
    _name = "modify.expiry.date"
 
33
    _columns = {'kit_id': fields.many2one('composition.kit', string='Composition List', readonly=True),
 
34
                'date': fields.date(string='Date', readonly=True),
 
35
                'new_date': fields.date(string='New Date', help="When using automatic computation, if no date are found in the kit components, the default value is 01/Jan/9999."),
 
36
                }
 
37
    
 
38
    _defaults = {'kit_id': lambda s, cr, uid, c: c.get('kit_id', False),
 
39
                 'date': lambda s, cr, uid, c: c.get('date', False)}
 
40
    
 
41
    def compute_date(self, cr, uid, ids, context=None):
 
42
        '''
 
43
        compute the date from items and write it to the wizard
 
44
        '''
 
45
        if context is None:
 
46
            context = {}
 
47
        # objects
 
48
        kit_obj = self.pool.get('composition.kit')
 
49
        kit_ids = context['active_ids']
 
50
        new_date = kit_obj._compute_expiry_date(cr, uid, kit_ids, context=context)
 
51
        self.write(cr, uid, ids, {'new_date': new_date}, context=context)
 
52
        return True
 
53
 
 
54
    def do_modify_expiry_date(self, cr, uid, ids, context=None):
 
55
        '''
 
56
        create a purchase order line for each kit item and delete the selected kit purchase order line
 
57
        '''
 
58
        # quick integrity check
 
59
        assert context, 'No context defined, problem on method call'
 
60
        if isinstance(ids, (int, long)):
 
61
            ids = [ids]
 
62
        # objects
 
63
        kit_obj = self.pool.get('composition.kit')
 
64
        kit_ids = context['active_ids']
 
65
        for obj in self.browse(cr, uid, ids, context=context):
 
66
            if not obj.new_date:
 
67
                raise osv.except_osv(_('Warning !'), _('You need to specify a new date.'))
 
68
            kit_obj.write(cr, uid, kit_ids, {'composition_exp': obj.new_date}, context=context)
 
69
        
 
70
        return {'type': 'ir.actions.act_window',
 
71
                'res_model': 'composition.kit',
 
72
                'view_type': 'form',
 
73
                'view_mode': 'form,tree',
 
74
                'res_id': kit_ids[0],
 
75
                'target': 'crunch',
 
76
                'context': context}
 
77
    
 
78
modify_expiry_date()