~openerp-nea/openobject-addons/sigren-addons-community

« back to all changes in this revision

Viewing changes to sale_subscriptions_alerts/sale.py

  • Committer: Gustavo Earnshaw
  • Date: 2011-04-01 18:44:06 UTC
  • mfrom: (292.1.27 addons-community)
  • Revision ID: gustavo@lanave-20110401184406-d8ctncjqx55o6ogd
[MERGE] ~openerp-community/openobject-addons/trunk-addons-community

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# -*- encoding: utf-8 -*-
 
2
##############################################################################
 
3
#
 
4
#    OpenERP, Open Source Management Solution
 
5
#    Copyright (C) 2011 Domsense s.r.l. (<http://www.domsense.com>).
 
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
import netsvc
 
24
import datetime
 
25
from tools.translate import _
 
26
 
 
27
class sale_order(osv.osv):
 
28
    _inherit = "sale.order"
 
29
    _logger = netsvc.Logger()
 
30
    def action_wait(self, cr, uid, ids, *args):
 
31
        super(sale_order, self).action_wait(cr, uid, ids, *args)
 
32
        for o in self.browse(cr, uid, ids):
 
33
            for line in o.order_line:
 
34
                if line.subscription_duration and line.subscription_start_date:
 
35
                    alert_obj = self.pool.get('subscription.alert')
 
36
                    alert_ids = alert_obj.search(cr, uid, [])
 
37
                    for alert_id in alert_ids:
 
38
                        alert = alert_obj.browse(cr, uid, alert_id)
 
39
                        alert_delta = datetime.timedelta(0,alert.days_before * 24 * 60 * 60)
 
40
                        alert_date = datetime.datetime.strptime(line.subscription_end_date, '%Y-%m-%d')  - alert_delta
 
41
                        cron_data = {
 
42
                            'name': _('Alert: ') + line.name + ' - ' + alert.name,
 
43
                            'nextcall' : alert_date.strftime('%Y-%m-%d %H:%M:%S'),
 
44
                            'model': 'email.template',
 
45
                            'interval_number': 0,
 
46
                            'function': 'generate_mail',
 
47
                            'args': repr([alert.template_id.id,[line.id]]),
 
48
                            }
 
49
                        self.pool.get('ir.cron').create(cr, uid, cron_data)
 
50
        return True
 
51
 
 
52
sale_order()
 
53