[MODULE] +v1.1.0 from https://www.odoo.com/apps/7.0/account_financial_report_webkit/
[burette/account_financial_report_webkit.git] / report / trial_balance.py
1 # -*- encoding: utf-8 -*-
2 ##############################################################################
3 #
4 # Author: Guewen Baconnier
5 # Copyright Camptocamp SA 2011
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
23 from datetime import datetime
24
25 from openerp import pooler
26 from openerp.report import report_sxw
27 from openerp.tools.translate import _
28 from .common_balance_reports import CommonBalanceReportHeaderWebkit
29 from .webkit_parser_header_fix import HeaderFooterTextWebKitParser
30
31
32 def sign(number):
33 return cmp(number, 0)
34
35
36 class TrialBalanceWebkit(report_sxw.rml_parse, CommonBalanceReportHeaderWebkit):
37
38 def __init__(self, cursor, uid, name, context):
39 super(TrialBalanceWebkit, self).__init__(cursor, uid, name, context=context)
40 self.pool = pooler.get_pool(self.cr.dbname)
41 self.cursor = self.cr
42
43 company = self.pool.get('res.users').browse(self.cr, uid, uid, context=context).company_id
44 header_report_name = ' - '.join((_('TRIAL BALANCE'), company.name, company.currency_id.name))
45
46 footer_date_time = self.formatLang(str(datetime.today()), date_time=True)
47
48 self.localcontext.update({
49 'cr': cursor,
50 'uid': uid,
51 'report_name': _('Trial Balance'),
52 'display_account': self._get_display_account,
53 'display_account_raw': self._get_display_account_raw,
54 'filter_form': self._get_filter,
55 'target_move': self._get_target_move,
56 'display_target_move': self._get_display_target_move,
57 'accounts': self._get_accounts_br,
58 'additional_args': [
59 ('--header-font-name', 'Helvetica'),
60 ('--footer-font-name', 'Helvetica'),
61 ('--header-font-size', '10'),
62 ('--footer-font-size', '6'),
63 ('--header-left', header_report_name),
64 ('--header-spacing', '2'),
65 ('--footer-left', footer_date_time),
66 ('--footer-right', ' '.join((_('Page'), '[page]', _('of'), '[topage]'))),
67 ('--footer-line',),
68 ],
69 })
70
71 def set_context(self, objects, data, ids, report_type=None):
72 """Populate a ledger_lines attribute on each browse record that will be used
73 by mako template"""
74 objects, new_ids, context_report_values = self.compute_balance_data(data)
75
76 self.localcontext.update(context_report_values)
77
78 return super(TrialBalanceWebkit, self).set_context(objects, data, new_ids,
79 report_type=report_type)
80
81 HeaderFooterTextWebKitParser('report.account.account_report_trial_balance_webkit',
82 'account.account',
83 'addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako',
84 parser=TrialBalanceWebkit)