Launchpad automatic translations update.
[odoo/odoo.git] / addons / account / report / account_print_overdue.py
1 # -*- coding: utf-8 -*-
2 ##############################################################################
3 #
4 #    OpenERP, Open Source Management Solution
5 #    Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
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 import time
23
24 from openerp.report import report_sxw
25 from openerp import pooler
26
27 class Overdue(report_sxw.rml_parse):
28     def __init__(self, cr, uid, name, context):
29         super(Overdue, self).__init__(cr, uid, name, context=context)
30         self.localcontext.update( {
31             'time': time,
32             'getLines': self._lines_get,
33             'tel_get': self._tel_get,
34             'message': self._message,
35         })
36         self.context = context
37
38     def _tel_get(self,partner):
39         if not partner:
40             return False
41         res_partner = pooler.get_pool(self.cr.dbname).get('res.partner')
42         addresses = res_partner.address_get(self.cr, self.uid, [partner.id], ['invoice'])
43         adr_id = addresses and addresses['invoice'] or False
44         if adr_id:
45             adr=res_partner_address.read(self.cr, self.uid, [adr_id])[0]
46             return adr['phone']
47         else:
48             return partner.phone or False
49         return False
50
51     def _lines_get(self, partner):
52         moveline_obj = pooler.get_pool(self.cr.dbname).get('account.move.line')
53         movelines = moveline_obj.search(self.cr, self.uid,
54                 [('partner_id', '=', partner.id),
55                     ('account_id.type', 'in', ['receivable', 'payable']),
56                     ('state', '<>', 'draft'), ('reconcile_id', '=', False)])
57         movelines = moveline_obj.browse(self.cr, self.uid, movelines)
58         return movelines
59
60     def _message(self, obj, company):
61         company_pool = pooler.get_pool(self.cr.dbname).get('res.company')
62         message = company_pool.browse(self.cr, self.uid, company.id, {'lang':obj.lang}).overdue_msg
63         return message.split('\n')
64
65 report_sxw.report_sxw('report.account.overdue', 'res.partner',
66         'addons/account/report/account_print_overdue.rml', parser=Overdue)
67
68
69 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
70