From d705c764ba3246e294acb2aaf42f26c7f473115b Mon Sep 17 00:00:00 2001 From: "Guewen Baconnier @ Camptocamp" Date: Tue, 6 Mar 2012 10:13:59 +0100 Subject: [PATCH 01/28] [FIX] partner balance webkit: hide partners with balance at 0.0 (lp:c2c-addons/6.1 rev 19.1.3) --- account_financial_report_webkit/__init__.py | 23 + .../__openerp__.py | 114 ++ account_financial_report_webkit/account.py | 45 + .../account_move_line.py | 89 ++ .../account_move_line_view.xml | 23 + .../account_view.xml | 18 + .../data/financial_webkit_header.xml | 409 ++++++ .../i18n/account_financial_report_webkit.pot | 1154 ++++++++++++++++ account_financial_report_webkit/i18n/en_US.po | 1160 +++++++++++++++++ account_financial_report_webkit/i18n/fr.po | 1160 +++++++++++++++++ .../images/ledger.png | Bin 0 -> 54833 bytes .../report/__init__.py | 11 + .../report/common_balance_reports.py | 272 ++++ .../report/common_partner_balance_reports.py | 275 ++++ .../report/common_partner_reports.py | 251 ++++ .../report/common_reports.py | 513 ++++++++ .../report/general_ledger.py | 211 +++ .../report/open_invoices.py | 212 +++ .../report/partner_balance.py | 80 ++ .../report/partners_ledger.py | 190 +++ .../report/profit_loss.py | 115 ++ .../report/report.xml | 104 ++ .../account_report_general_ledger.mako | 226 ++++ .../account_report_open_invoices.mako | 251 ++++ .../account_report_partner_balance.mako | 275 ++++ .../account_report_partners_ledger.mako | 281 ++++ .../templates/account_report_profit_loss.mako | 210 +++ .../account_report_trial_balance.mako | 217 +++ .../report/trial_balance.py | 82 ++ .../report/webkit_parser_header_fix.py | 222 ++++ .../report_menus.xml | 26 + .../tests/account_move_line.yml | 3 + .../tests/general_ledger.yml | 65 + .../tests/open_invoices.yml | 60 + .../tests/partner_balance.yml | 67 + .../tests/partner_ledger.yml | 60 + .../tests/trial_balance.yml | 67 + .../wizard/__init__.py | 27 + .../wizard/balance_common.py | 295 +++++ .../wizard/balance_common_view.xml | 11 + .../wizard/general_ledger_wizard.py | 132 ++ .../wizard/general_ledger_wizard_view.xml | 89 ++ .../wizard/open_invoices_wizard.py | 127 ++ .../wizard/open_invoices_wizard_view.xml | 72 + .../wizard/partner_balance_wizard.py | 64 + .../wizard/partner_balance_wizard_view.xml | 85 ++ .../wizard/partners_ledger_wizard.py | 116 ++ .../wizard/partners_ledger_wizard_view.xml | 69 + .../wizard/profit_loss_wizard.py | 166 +++ .../wizard/profit_loss_wizard_view.xml | 72 + .../wizard/trial_balance_wizard.py | 41 + .../wizard/trial_balance_wizard_view.xml | 78 ++ .../wizard/wizard.xml | 4 + 53 files changed, 9989 insertions(+) create mode 100644 account_financial_report_webkit/__init__.py create mode 100644 account_financial_report_webkit/__openerp__.py create mode 100644 account_financial_report_webkit/account.py create mode 100644 account_financial_report_webkit/account_move_line.py create mode 100644 account_financial_report_webkit/account_move_line_view.xml create mode 100644 account_financial_report_webkit/account_view.xml create mode 100644 account_financial_report_webkit/data/financial_webkit_header.xml create mode 100644 account_financial_report_webkit/i18n/account_financial_report_webkit.pot create mode 100644 account_financial_report_webkit/i18n/en_US.po create mode 100644 account_financial_report_webkit/i18n/fr.po create mode 100644 account_financial_report_webkit/images/ledger.png create mode 100644 account_financial_report_webkit/report/__init__.py create mode 100644 account_financial_report_webkit/report/common_balance_reports.py create mode 100644 account_financial_report_webkit/report/common_partner_balance_reports.py create mode 100644 account_financial_report_webkit/report/common_partner_reports.py create mode 100644 account_financial_report_webkit/report/common_reports.py create mode 100644 account_financial_report_webkit/report/general_ledger.py create mode 100644 account_financial_report_webkit/report/open_invoices.py create mode 100644 account_financial_report_webkit/report/partner_balance.py create mode 100644 account_financial_report_webkit/report/partners_ledger.py create mode 100644 account_financial_report_webkit/report/profit_loss.py create mode 100644 account_financial_report_webkit/report/report.xml create mode 100644 account_financial_report_webkit/report/templates/account_report_general_ledger.mako create mode 100644 account_financial_report_webkit/report/templates/account_report_open_invoices.mako create mode 100644 account_financial_report_webkit/report/templates/account_report_partner_balance.mako create mode 100644 account_financial_report_webkit/report/templates/account_report_partners_ledger.mako create mode 100644 account_financial_report_webkit/report/templates/account_report_profit_loss.mako create mode 100644 account_financial_report_webkit/report/templates/account_report_trial_balance.mako create mode 100644 account_financial_report_webkit/report/trial_balance.py create mode 100644 account_financial_report_webkit/report/webkit_parser_header_fix.py create mode 100644 account_financial_report_webkit/report_menus.xml create mode 100644 account_financial_report_webkit/tests/account_move_line.yml create mode 100644 account_financial_report_webkit/tests/general_ledger.yml create mode 100644 account_financial_report_webkit/tests/open_invoices.yml create mode 100644 account_financial_report_webkit/tests/partner_balance.yml create mode 100644 account_financial_report_webkit/tests/partner_ledger.yml create mode 100644 account_financial_report_webkit/tests/trial_balance.yml create mode 100644 account_financial_report_webkit/wizard/__init__.py create mode 100644 account_financial_report_webkit/wizard/balance_common.py create mode 100644 account_financial_report_webkit/wizard/balance_common_view.xml create mode 100644 account_financial_report_webkit/wizard/general_ledger_wizard.py create mode 100644 account_financial_report_webkit/wizard/general_ledger_wizard_view.xml create mode 100644 account_financial_report_webkit/wizard/open_invoices_wizard.py create mode 100644 account_financial_report_webkit/wizard/open_invoices_wizard_view.xml create mode 100644 account_financial_report_webkit/wizard/partner_balance_wizard.py create mode 100644 account_financial_report_webkit/wizard/partner_balance_wizard_view.xml create mode 100644 account_financial_report_webkit/wizard/partners_ledger_wizard.py create mode 100644 account_financial_report_webkit/wizard/partners_ledger_wizard_view.xml create mode 100644 account_financial_report_webkit/wizard/profit_loss_wizard.py create mode 100644 account_financial_report_webkit/wizard/profit_loss_wizard_view.xml create mode 100644 account_financial_report_webkit/wizard/trial_balance_wizard.py create mode 100644 account_financial_report_webkit/wizard/trial_balance_wizard_view.xml create mode 100644 account_financial_report_webkit/wizard/wizard.xml diff --git a/account_financial_report_webkit/__init__.py b/account_financial_report_webkit/__init__.py new file mode 100644 index 00000000..1583e4ad --- /dev/null +++ b/account_financial_report_webkit/__init__.py @@ -0,0 +1,23 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# Author: Nicolas Bessi. Copyright Camptocamp SA +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## +import account +from . import wizard +from . import report +from . import account_move_line \ No newline at end of file diff --git a/account_financial_report_webkit/__openerp__.py b/account_financial_report_webkit/__openerp__.py new file mode 100644 index 00000000..f3101585 --- /dev/null +++ b/account_financial_report_webkit/__openerp__.py @@ -0,0 +1,114 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# Authors: Nicolas Bessi, Guewen Baconnier +# Copyright Camptocamp SA 2011 +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## +# TODO refactor helper in order to act more like mixin +# By using properties we will have a more simple signature in fuctions +{ + 'name': 'Webkit based extended report financial report', + 'description': """ +This module replace the following standard openerp financial reports : + - General ledger + - Trial Balance (simple or comparative view) + - Partner ledger + - Partner balance + - Open invoices report + + +Main improvements per report: + + * The General ledger: details of all entries posted in your books sorted by account. + - Filter by account in the wizard (no need to go to the Chart of account to do this anymore) or by view account (the report will display all regular children account) ie: you can select all P&L accounts. + - The report will now print only account with movements OR with a balance not null. No more endless report with accounts with no data. (field: display account is hidden) + - initial balance calculation on the fly if no open entry posted + - Thanks to a new checkbox in account form, you will have possibility to centralize any accounts you like. ie: you do not want to see all entries posted under the account ‘VAT on sales’ ; you will only see aggregated amounts by periods. + - Counterpart account displayed for each transaction (3 accounts max.) to ease searching. + - Better ergonomy on the wizard: important information at the top, filters in the middle, options at the bottom or separate tab, more specific filtering on a other tabs. No more unique wizard layout for all financial reports (ie: we have removed the journal tab for the GL report) + - improved report style + + * The partner ledger: details of entries relative to payable & receivable accounts posted in your books sorted by account and partner. + - Filter by partner now possible + - Now you can see accounts then Partner with subtotals for each account allowing you to check you data with trial balance and partner balance for instance & accounts are ordered the same way than in the Chart of account + - period have been added (date only is uncompleted since date can be outside period) + - Reconciliation code added + - subtotal by account + - alpha sorting (same in partner balance) + + * Open invoice report : other version of the partner ledger showing unreconciled / partially reconcies entries +(added on the 20/01/2012) + - Possibility to print unreconciled transactions only at any date in the past (thanks to the brand-new field: last_rec_date which calculated the last move line reconciled date). No more pain to get open invoices at the last closing date. + - no initial balance calculated because the report shows open invoices from previous years. + + * The Trial balance: list of account with balances + - you can either see the column : Initial balance , debit, credit , end balance or compare balances over 4 periods of your choice + - You can select the filter opening to get the opening trial balance only + - If you create a extra virtual charts (using consolidated account) of account for your P&L and your balance sheet , you can print your statutory accounts (with comparision over years for ex.) + - If you compare 2 periods, you will get differences in value and % also + + * The Partner balance: list of account with balances + - subtotal by account & partner + - alpha sorting (same in partner balance) + +Limitations: +In order to run properly this module make sure you have installed the librairie ‘wkhtmltopdf’ for the pdf rendering (this library path must be added to you company settings). + +Initial balances in these reports are based either on opening entry posted in the opening period or calculated on the fly. So make sure, your past accounting opening entries are in a opening period. +Initials balances are not calculated when using date filter (since a date can be outside its logical period and IB could be different by date Vs IB by period) +The opening period is assumed to be the 01.01 of the year with an opening flag and the first period of the year must starts also the 01.01 + +Totals for amount in currencies are affective if the partner belong to an account with a secondary currency. + +html headers and footers are deactivated for these reports because of an issue of wkhtmltopdf : http://code.google.com/p/wkhtmltopdf/issues/detail?id=656 +Instead, the header and footer are created as text with arguments passed to wkhtmltopdf. The texts are defined inside the report classes. + +""", + 'version': '1.0', + 'author': 'Camptocamp', + 'category': 'Finance', + 'website': 'http://www.camptocamp.com', + 'images': [ + 'images/ledger.png',], + 'depends': ['account', + 'report_webkit'], + 'init_xml': [], + 'demo_xml' : [], + 'update_xml': ['account_view.xml', + 'account_move_line_view.xml', + 'data/financial_webkit_header.xml', + 'report/report.xml', + 'wizard/wizard.xml', + 'wizard/balance_common_view.xml', + 'wizard/general_ledger_wizard_view.xml', + 'wizard/partners_ledger_wizard_view.xml', + 'wizard/trial_balance_wizard_view.xml', + 'wizard/partner_balance_wizard_view.xml', + 'wizard/open_invoices_wizard_view.xml', + 'report_menus.xml', +# 'wizard/profit_loss_wizard_view.xml', + ], + # tests order matter + 'test': ['tests/general_ledger.yml', + 'tests/partner_ledger.yml', + 'tests/trial_balance.yml', + 'tests/partner_balance.yml', + 'tests/open_invoices.yml',], + #'tests/account_move_line.yml' + 'active': False, + 'installable': True, +} diff --git a/account_financial_report_webkit/account.py b/account_financial_report_webkit/account.py new file mode 100644 index 00000000..d7d28f30 --- /dev/null +++ b/account_financial_report_webkit/account.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Copyright (c) 2011 Camptocamp SA (http://www.camptocamp.com) +# +# Author : Guewen Baconnier (Camptocamp) +# +# WARNING: This program as such is intended to be used by professional +# programmers who take the whole responsability of assessing all potential +# consequences resulting from its eventual inadequacies and bugs +# End users who are looking for a ready-to-use solution with commercial +# garantees and support are strongly adviced to contract a Free Software +# Service Company +# +# This program is Free Software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +############################################################################## + +from osv import osv, fields + + +class AccountAccount(osv.osv): + _inherit = 'account.account' + + _columns = { + 'centralized': fields.boolean('Centralized', help="If flagged, no details will be displayed in the General Ledger report (the webkit one only), only centralized amounts per period.") + } + + _defaults = { + 'centralized': False, + } + +AccountAccount() diff --git a/account_financial_report_webkit/account_move_line.py b/account_financial_report_webkit/account_move_line.py new file mode 100644 index 00000000..2e96728f --- /dev/null +++ b/account_financial_report_webkit/account_move_line.py @@ -0,0 +1,89 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# Author: Nicolas Bessi. +# Copyright Camptocamp SA 2011 +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +############################################################################## + +from osv import fields, osv +from tools.translate import _ + + +class AccountMoveLine(osv.osv): + """Overriding Account move line in order to add last_rec_date. + Last rec date is the date of the last reconciliation (full or partial) account move line""" + _inherit = 'account.move.line' + + def init(self, cr): + ##We do not want to catch error as if sql is not run it will give invalid data + cr.execute("UPDATE account_move_line as acm " + " SET last_rec_date =" + " (SELECT date from account_move_line" + " WHERE reconcile_id = acm.reconcile_id" + " AND reconcile_id IS NOT NULL" + " ORDER BY date DESC LIMIT 1)" + " WHERE last_rec_date is null;") + + cr.execute("UPDATE account_move_line as acm " + " SET last_rec_date =" + " (SELECT date from account_move_line" + " WHERE reconcile_partial_id = acm.reconcile_partial_id" + " AND reconcile_partial_id IS NOT NULL" + " ORDER BY date DESC LIMIT 1)" + " WHERE last_rec_date is null;") + + + def _get_move_line_from_line_rec(self, cr, uid, ids, context=None): + moves = [] + for reconcile in self.pool.get('account.move.reconcile').browse(cr, uid, ids, context=context): + for move_line in reconcile.line_partial_ids: + moves.append(move_line.id) + for move_line in reconcile.line_id: + moves.append(move_line.id) + return list(set(moves)) + + def _get_last_rec_date(self, cursor, uid, ids, name, args, context=None): + if not isinstance(ids, list): + ids = [ids] + res = {} + for line in self.browse(cursor, uid, ids, context): + res[line.id] = {'last_rec_date': False} + rec = line.reconcile_id or line.reconcile_partial_id or False + if rec: + # we use cursor in order to gain some perfs + cursor.execute('SELECT date from account_move_line where' + ' reconcile_id = %s OR reconcile_partial_id = %s' + ' ORDER BY date DESC LIMIT 1 ', + (rec.id, rec.id)) + res_set = cursor.fetchone() + if res_set: + res[line.id] = {'last_rec_date': res_set[0]} + return res + + _columns = { + 'last_rec_date': fields.function(_get_last_rec_date, + method=True, + string='Last reconciliation date', + store={'account.move.line': (lambda self, cr, uid, ids, c={}: ids, ['date'], 20), + 'account.move.reconcile': (_get_move_line_from_line_rec, None ,20)}, + type='date', + multi='all', + help="the date of the last reconciliation (full or partial) account move line"), + + } + +AccountMoveLine() diff --git a/account_financial_report_webkit/account_move_line_view.xml b/account_financial_report_webkit/account_move_line_view.xml new file mode 100644 index 00000000..969a3824 --- /dev/null +++ b/account_financial_report_webkit/account_move_line_view.xml @@ -0,0 +1,23 @@ + + + + + + last_rec_date_form + account.move.line + + + + form + + + + + + + + + + + + \ No newline at end of file diff --git a/account_financial_report_webkit/account_view.xml b/account_financial_report_webkit/account_view.xml new file mode 100644 index 00000000..60666774 --- /dev/null +++ b/account_financial_report_webkit/account_view.xml @@ -0,0 +1,18 @@ + + + + + account.account.form.webkit + account.account + + form + + + + + + + + + + diff --git a/account_financial_report_webkit/data/financial_webkit_header.xml b/account_financial_report_webkit/data/financial_webkit_header.xml new file mode 100644 index 00000000..fd72405d --- /dev/null +++ b/account_financial_report_webkit/data/financial_webkit_header.xml @@ -0,0 +1,409 @@ + + + + + + + + + + <% import datetime %> + + + + + + + + +
${formatLang( str(datetime.datetime.today()), date_time=True)}${user.name}Page  of 
+ +]]>
+ Landscape + A4 + + + + + + + + + + + +
${report_name} - ${company.partner_id.name | entity} - ${company.currency_id.name | entity}
${_debug or ''|n} +]]> +
+ + + + Financial Landscape Header +
+ + + + + + + + <% import datetime %> + + + + + + + + +
${formatLang( str(datetime.datetime.today()), date_time=True)}${user.name}Page  of 
+ +]]>
+ Portrait + A4 + + + + + + + + + + + +
${report_name} - ${company.partner_id.name | entity} - ${company.currency_id.name | entity}
${_debug or ''|n} +]]> +
+ + + + + Financial Portrait Header +
+
+
diff --git a/account_financial_report_webkit/i18n/account_financial_report_webkit.pot b/account_financial_report_webkit/i18n/account_financial_report_webkit.pot new file mode 100644 index 00000000..394aa4e7 --- /dev/null +++ b/account_financial_report_webkit/i18n/account_financial_report_webkit.pot @@ -0,0 +1,1154 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_financial_report_webkit +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 6.0.3\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2012-01-20 09:03+0000\n" +"PO-Revision-Date: 2012-01-20 09:03+0000\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: account_financial_report_webkit +#: field:account.common.balance.report,account_ids:0 +#: field:general.ledger.webkit,account_ids:0 +#: field:partner.balance.webkit,account_ids:0 +#: field:trial.balance.webkit,account_ids:0 +msgid "Filter on accounts" +msgstr "" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/common_reports.py:424 +#, python-format +msgid "Please set a valid time filter" +msgstr "" + +#. module: account_financial_report_webkit +#: view:general.ledger.webkit:0 +#: view:open.invoices.webkit:0 +#: view:partners.ledger.webkit:0 +msgid "Layout Options" +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:203 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:223 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:253 +msgid "Cumulated Balance on Account" +msgstr "" + +#. module: account_financial_report_webkit +#: field:general.ledger.webkit,centralize:0 +msgid "Activate Centralization" +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:154 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:161 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:120 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:127 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:135 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:142 +msgid "Balance %s" +msgstr "" + +#. module: account_financial_report_webkit +#: view:account.move.line:0 +msgid "Misc." +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:92 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:102 +msgid "Periods Filter:" +msgstr "" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:172 +#, python-format +msgid "No header defined for this Webkit report!" +msgstr "" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/open_invoices.py:162 +#, python-format +msgid "Filter has to be in filter date, period, or none" +msgstr "" + +#. module: account_financial_report_webkit +#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_trial_balance_menu_webkit +#: model:ir.actions.report.xml,name:account_financial_report_webkit.account_report_trial_balance_webkit +msgid "Trial Balance Webkit" +msgstr "" + +#. module: account_financial_report_webkit +#: constraint:account.account:0 +msgid "Configuration Error! \n" +"You cannot define children to an account with internal type different of \"View\"! " +msgstr "" + +#. module: account_financial_report_webkit +#: view:partner.balance.webkit:0 +msgid "This report is an analysis done by a partner, It is a PDF report containing one line per partner representing the cumulative credit balance" +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:138 +msgid "Account / Partner Name" +msgstr "" + +#. module: account_financial_report_webkit +#: field:account.common.balance.report,journal_ids:0 +#: field:general.ledger.webkit,journal_ids:0 +#: field:open.invoices.webkit,journal_ids:0 +#: field:partner.balance.webkit,journal_ids:0 +#: field:partners.ledger.webkit,journal_ids:0 +#: field:trial.balance.webkit,journal_ids:0 +msgid "Journals" +msgstr "" + +#. module: account_financial_report_webkit +#: help:general.ledger.webkit,amount_currency:0 +#: help:open.invoices.webkit,amount_currency:0 +#: help:partners.ledger.webkit,amount_currency:0 +msgid "It adds the currency column" +msgstr "" + +#. module: account_financial_report_webkit +#: selection:open.invoices.webkit,result_selection:0 +#: selection:partner.balance.webkit,result_selection:0 +#: selection:partners.ledger.webkit,result_selection:0 +#: code:addons/account_financial_report_webkit/report/common_reports.py:73 +#, python-format +msgid "Receivable and Payable Accounts" +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:104 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:119 +#: model:ir.model,name:account_financial_report_webkit.model_account_account +msgid "Account" +msgstr "" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/trial_balance.py:42 +#, python-format +msgid "TRIAL BALANCE" +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:118 +msgid "Due Date" +msgstr "" + +#. module: account_financial_report_webkit +#: view:general.ledger.webkit:0 +#: view:open.invoices.webkit:0 +#: view:partner.balance.webkit:0 +#: view:partners.ledger.webkit:0 +#: view:trial.balance.webkit:0 +msgid "Print only" +msgstr "" + +#. module: account_financial_report_webkit +#: constraint:account.move.line:0 +msgid "You can not create move line on closed account." +msgstr "" + +#. module: account_financial_report_webkit +#: model:ir.model,name:account_financial_report_webkit.model_account_report_partner_balance_webkit +msgid "Partner Balance Report" +msgstr "" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:221 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:230 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:247 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:258 +#, python-format +msgid "Webkit render" +msgstr "" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:167 +#, python-format +msgid "Error!" +msgstr "" + +#. module: account_financial_report_webkit +#: model:ir.model,name:account_financial_report_webkit.model_account_report_trial_balance_webkit +msgid "Trial Balance Report" +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:117 +msgid "Code" +msgstr "" + +#. module: account_financial_report_webkit +#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_partners_ledger_menu_webkit +#: model:ir.actions.report.xml,name:account_financial_report_webkit.account_report_partners_ledger_webkit +msgid "Partner Ledger Webkit" +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:192 +msgid "Unallocated" +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:116 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:112 +msgid "Rec." +msgstr "" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:123 +#, python-format +msgid "Webkit raise an error" +msgstr "" + +#. module: account_financial_report_webkit +#: selection:open.invoices.webkit,result_selection:0 +#: selection:partner.balance.webkit,result_selection:0 +#: selection:partners.ledger.webkit,result_selection:0 +#: code:addons/account_financial_report_webkit/report/common_reports.py:69 +#, python-format +msgid "Receivable Accounts" +msgstr "" + +#. module: account_financial_report_webkit +#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_general_ledger_menu_webkit +#: model:ir.actions.report.xml,name:account_financial_report_webkit.account_report_general_ledger_webkit +msgid "General Ledger Webkit" +msgstr "" + +#. module: account_financial_report_webkit +#: field:account.common.balance.report,period_from:0 +#: field:general.ledger.webkit,period_from:0 +#: field:open.invoices.webkit,period_from:0 +#: field:partner.balance.webkit,period_from:0 +#: field:partners.ledger.webkit,period_from:0 +#: field:trial.balance.webkit,period_from:0 +msgid "Start period" +msgstr "" + +#. module: account_financial_report_webkit +#: model:ir.model,name:account_financial_report_webkit.model_account_report_open_transactions_webkit +msgid "Open Transactions Report" +msgstr "" + +#. module: account_financial_report_webkit +#: constraint:account.account:0 +msgid "Error ! You can not create recursive accounts." +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:33 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:37 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:46 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:34 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:58 +msgid "Periods Filter" +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:38 +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:139 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:52 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:142 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:39 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:153 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:50 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:108 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:63 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:123 +msgid "Initial Balance" +msgstr "" + +#. module: account_financial_report_webkit +#: field:account.common.balance.report,period_to:0 +#: field:general.ledger.webkit,period_to:0 +#: field:open.invoices.webkit,period_to:0 +#: field:partner.balance.webkit,period_to:0 +#: field:partners.ledger.webkit,period_to:0 +#: field:trial.balance.webkit,period_to:0 +msgid "End period" +msgstr "" + +#. module: account_financial_report_webkit +#: model:ir.model,name:account_financial_report_webkit.model_account_report_general_ledger_webkit +msgid "General Ledger Report" +msgstr "" + +#. module: account_financial_report_webkit +#: constraint:open.invoices.webkit:0 +msgid "Clearance date must be the very last date of the last period or later." +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:48 +msgid "Displayed Accounts" +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:99 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:112 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:108 +msgid "Partner" +msgstr "" + +#. module: account_financial_report_webkit +#: help:account.common.balance.report,chart_account_id:0 +#: help:general.ledger.webkit,chart_account_id:0 +#: help:open.invoices.webkit,chart_account_id:0 +#: help:partner.balance.webkit,chart_account_id:0 +#: help:partners.ledger.webkit,chart_account_id:0 +#: help:trial.balance.webkit,chart_account_id:0 +msgid "Select Charts of Accounts" +msgstr "" + +#. module: account_financial_report_webkit +#: field:account.common.balance.report,filter:0 +#: field:general.ledger.webkit,filter:0 +#: field:open.invoices.webkit,filter:0 +#: field:partner.balance.webkit,filter:0 +#: field:partners.ledger.webkit,filter:0 +#: field:trial.balance.webkit,filter:0 +msgid "Filter by" +msgstr "" + +#. module: account_financial_report_webkit +#: view:partners.ledger.webkit:0 +#: code:addons/account_financial_report_webkit/report/partners_ledger.py:48 +#, python-format +msgid "Partner Ledger" +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:114 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:129 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:123 +msgid "Curr." +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:101 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:114 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:110 +msgid "Label" +msgstr "" + +#. module: account_financial_report_webkit +#: help:account.common.balance.report,account_ids:0 +#: help:general.ledger.webkit,account_ids:0 +#: help:partner.balance.webkit,account_ids:0 +#: help:trial.balance.webkit,account_ids:0 +msgid "Only selected accounts will be printed. Leave empty to print all accounts." +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:105 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:120 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:145 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:114 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:111 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:126 +msgid "Debit" +msgstr "" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:173 +#, python-format +msgid "Please set a header in company settings" +msgstr "" + +#. module: account_financial_report_webkit +#: view:general.ledger.webkit:0 +#: view:open.invoices.webkit:0 +#: view:partner.balance.webkit:0 +#: view:partners.ledger.webkit:0 +#: view:trial.balance.webkit:0 +msgid "Time Filters" +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:188 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:219 +msgid "Cumulated Balance on Partner" +msgstr "" + +#. module: account_financial_report_webkit +#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_partner_balance_menu_webkit +#: model:ir.actions.report.xml,name:account_financial_report_webkit.account_report_partner_balance_webkit +msgid "Partner Balance Webkit" +msgstr "" + +#. module: account_financial_report_webkit +#: help:open.invoices.webkit,until_date:0 +msgid "The clearance date is essentially a tool used for debtors provisionning calculation.\n" +"\n" +"By default, this date is equal to the the end date (ie: 31/12/2011 if you select fy 2011).\n" +"\n" +"By amending the clearance date, you will be, for instance, able to answer the question : 'based on my last year end debtors open invoices, which invoices are still unpaid today (today is my clearance date)?'\n" +"" +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:40 +msgid "Clearance Date" +msgstr "" + +#. module: account_financial_report_webkit +#: selection:general.ledger.webkit,display_account:0 +#: code:addons/account_financial_report_webkit/report/common_reports.py:62 +#, python-format +msgid "With transactions or non zero balance" +msgstr "" + +#. module: account_financial_report_webkit +#: view:partners.ledger.webkit:0 +msgid "This report allows you to print or generate a pdf of your partner ledger with details of all your payable/receivable account" +msgstr "" + +#. module: account_financial_report_webkit +#: selection:account.common.balance.report,display_account:0 +#: selection:partner.balance.webkit,display_account:0 +#: selection:trial.balance.webkit,display_account:0 +msgid "With balance is not equal to 0" +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:94 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:104 +msgid "Fiscal Year :" +msgstr "" + +#. module: account_financial_report_webkit +#: view:open.invoices.webkit:0 +msgid "This report allows you to print or generate a pdf of your open invoices per partner with details of all your payable/receivable account. Exclude full reconciled journal items." +msgstr "" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/common_reports.py:416 +#, python-format +msgid "Must be in include_opening, exclude_opening" +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:43 +#: code:addons/account_financial_report_webkit/wizard/balance_common.py:163 +#, python-format +msgid "Dates" +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:136 +msgid "Code / Ref" +msgstr "" + +#. module: account_financial_report_webkit +#: view:trial.balance.webkit:0 +#: code:addons/account_financial_report_webkit/report/trial_balance.py:49 +#, python-format +msgid "Trial Balance" +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:87 +msgid "Dates : " +msgstr "" + +#. module: account_financial_report_webkit +#: model:ir.model,name:account_financial_report_webkit.model_account_common_balance_report +msgid "Common Balance Report" +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:36 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:41 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:49 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:37 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:61 +msgid "Accounts Filter" +msgstr "" + +#. module: account_financial_report_webkit +#: field:account.common.balance.report,chart_account_id:0 +#: field:general.ledger.webkit,chart_account_id:0 +#: field:open.invoices.webkit,chart_account_id:0 +#: field:partner.balance.webkit,chart_account_id:0 +#: field:partners.ledger.webkit,chart_account_id:0 +#: field:trial.balance.webkit,chart_account_id:0 +msgid "Chart of account" +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:65 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:60 +msgid "Custom Filter" +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:90 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:100 +msgid "Dates Filter:" +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:91 +msgid "Fiscal Year : " +msgstr "" + +#. module: account_financial_report_webkit +#: selection:account.common.balance.report,display_account:0 +#: selection:partner.balance.webkit,display_account:0 +#: selection:trial.balance.webkit,display_account:0 +msgid "With movements" +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:109 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:124 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:118 +msgid "Cumul. Bal." +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:22 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:35 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:23 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:47 +msgid "Computed" +msgstr "" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/general_ledger.py:64 +#: code:addons/account_financial_report_webkit/report/open_invoices.py:63 +#: code:addons/account_financial_report_webkit/report/partner_balance.py:63 +#: code:addons/account_financial_report_webkit/report/partners_ledger.py:64 +#: code:addons/account_financial_report_webkit/report/profit_loss.py:71 +#: code:addons/account_financial_report_webkit/report/trial_balance.py:64 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:67 +#, python-format +msgid "of" +msgstr "" + +#. module: account_financial_report_webkit +#: selection:open.invoices.webkit,result_selection:0 +#: selection:partner.balance.webkit,result_selection:0 +#: selection:partners.ledger.webkit,result_selection:0 +#: code:addons/account_financial_report_webkit/report/common_reports.py:71 +#, python-format +msgid "Payable Accounts" +msgstr "" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/open_invoices.py:48 +#: model:ir.actions.report.xml,name:account_financial_report_webkit.account_report_open_invoices_webkit +#: model:ir.model,name:account_financial_report_webkit.model_account_report_open_invoices_webkit +#, python-format +msgid "Open Invoices Report" +msgstr "" + +#. module: account_financial_report_webkit +#: field:account.account,centralized:0 +msgid "Centralized" +msgstr "" + +#. module: account_financial_report_webkit +#: field:account.common.balance.report,display_account:0 +#: field:general.ledger.webkit,display_account:0 +#: field:partner.balance.webkit,display_account:0 +#: field:trial.balance.webkit,display_account:0 +msgid "Display accounts" +msgstr "" + +#. module: account_financial_report_webkit +#: view:account.move.line:0 +msgid "Narration" +msgstr "" + +#. module: account_financial_report_webkit +#: field:account.common.balance.report,date_from:0 +#: field:general.ledger.webkit,date_from:0 +#: field:open.invoices.webkit,date_from:0 +#: field:partner.balance.webkit,date_from:0 +#: field:partners.ledger.webkit,date_from:0 +#: field:trial.balance.webkit,date_from:0 +msgid "Start Date" +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:22 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:35 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:23 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:47 +msgid "Opening Entries" +msgstr "" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/general_ledger.py:40 +#, python-format +msgid "GENERAL LEDGER" +msgstr "" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/wizard/profit_loss_wizard.py:131 +#, python-format +msgid "Level %s" +msgstr "" + +#. module: account_financial_report_webkit +#: help:account.account,centralized:0 +msgid "If flagged, no details will be displayed in the General Ledger report (the webkit one only), only centralized amounts per period." +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:22 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:35 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:23 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:77 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:94 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:47 +msgid "No" +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:97 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:94 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:107 +msgid "Initial Balance:" +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:163 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:129 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:144 +msgid "Balance C%s" +msgstr "" + +#. module: account_financial_report_webkit +#: field:account.move.line,last_rec_date:0 +msgid "Last reconciliation date" +msgstr "" + +#. module: account_financial_report_webkit +#: field:open.invoices.webkit,partner_ids:0 +#: field:partner.balance.webkit,partner_ids:0 +#: field:partners.ledger.webkit,partner_ids:0 +msgid "Filter on partner" +msgstr "" + +#. module: account_financial_report_webkit +#: view:general.ledger.webkit:0 +#: code:addons/account_financial_report_webkit/report/general_ledger.py:47 +#, python-format +msgid "General Ledger" +msgstr "" + +#. module: account_financial_report_webkit +#: view:trial.balance.webkit:0 +msgid "This report allows you to print or generate a pdf of your trial balance allowing you to quickly check the balance of each of your accounts in a single report" +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:89 +msgid "Periods : " +msgstr "" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/partner_balance.py:40 +#, python-format +msgid "PARTNER BALANCE" +msgstr "" + +#. module: account_financial_report_webkit +#: help:open.invoices.webkit,partner_ids:0 +#: help:partner.balance.webkit,partner_ids:0 +#: help:partners.ledger.webkit,partner_ids:0 +msgid "Only selected partners will be printed. Leave empty to print all partners." +msgstr "" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:167 +#, python-format +msgid "Webkit Report template not found !" +msgstr "" + +#. module: account_financial_report_webkit +#: selection:account.common.balance.report,filter:0 +#: selection:general.ledger.webkit,filter:0 +#: selection:open.invoices.webkit,filter:0 +#: selection:partner.balance.webkit,filter:0 +#: selection:partners.ledger.webkit,filter:0 +#: selection:trial.balance.webkit,filter:0 +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:91 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:104 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:100 +msgid "Date" +msgstr "" + +#. module: account_financial_report_webkit +#: help:general.ledger.webkit,centralize:0 +msgid "Uncheck to display all the details of centralized accounts." +msgstr "" + +#. module: account_financial_report_webkit +#: constraint:account.move.line:0 +msgid "Company must be same for its related account and period." +msgstr "" + +#. module: account_financial_report_webkit +#: constraint:account.common.balance.report:0 +#: constraint:general.ledger.webkit:0 +#: constraint:partner.balance.webkit:0 +#: constraint:partners.ledger.webkit:0 +#: constraint:trial.balance.webkit:0 +msgid "When no Fiscal year is selected, you must choose to filter by periods or by date." +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:50 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:55 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:64 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:51 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:62 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:75 +msgid "To:" +msgstr "" + +#. module: account_financial_report_webkit +#: sql_constraint:account.account:0 +msgid "The code of the account must be unique per company !" +msgstr "" + +#. module: account_financial_report_webkit +#: view:open.invoices.webkit:0 +#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_open_invoices_menu_webkit +msgid "Open Invoices" +msgstr "" + +#. module: account_financial_report_webkit +#: selection:account.common.balance.report,target_move:0 +#: selection:general.ledger.webkit,target_move:0 +#: selection:open.invoices.webkit,target_move:0 +#: selection:partner.balance.webkit,target_move:0 +#: selection:partners.ledger.webkit,target_move:0 +#: selection:trial.balance.webkit,target_move:0 +#: code:addons/account_financial_report_webkit/report/common_reports.py:80 +#, python-format +msgid "All Posted Entries" +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:87 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:84 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:97 +#: code:addons/account_financial_report_webkit/wizard/balance_common.py:156 +#, python-format +msgid "Comparison %s" +msgstr "" + +#. module: account_financial_report_webkit +#: selection:account.common.balance.report,display_account:0 +#: selection:general.ledger.webkit,display_account:0 +#: selection:partner.balance.webkit,display_account:0 +#: selection:trial.balance.webkit,display_account:0 +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:61 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:75 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:73 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:86 +msgid "All" +msgstr "" + +#. module: account_financial_report_webkit +#: help:account.common.balance.report,fiscalyear_id:0 +#: help:general.ledger.webkit,fiscalyear_id:0 +#: help:open.invoices.webkit,fiscalyear_id:0 +#: help:partner.balance.webkit,fiscalyear_id:0 +#: help:partners.ledger.webkit,fiscalyear_id:0 +#: help:trial.balance.webkit,fiscalyear_id:0 +msgid "Keep empty for all open fiscal year" +msgstr "" + +#. module: account_financial_report_webkit +#: help:account.move.line,last_rec_date:0 +msgid "the date of the last reconciliation (full or partial) account move line" +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:107 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:122 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:147 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:116 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:113 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:128 +msgid "Credit" +msgstr "" + +#. module: account_financial_report_webkit +#: selection:account.common.balance.report,filter:0 +#: selection:general.ledger.webkit,filter:0 +#: selection:open.invoices.webkit,filter:0 +#: selection:partner.balance.webkit,filter:0 +#: selection:partners.ledger.webkit,filter:0 +#: selection:trial.balance.webkit,filter:0 +msgid "No Filters" +msgstr "" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/open_invoices.py:102 +#: code:addons/account_financial_report_webkit/report/partners_ledger.py:102 +#, python-format +msgid "Error" +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:152 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:118 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:133 +msgid "Balance" +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:103 +msgid "Counter part" +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:168 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:134 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:149 +msgid "% Difference" +msgstr "" + +#. module: account_financial_report_webkit +#: help:account.common.balance.report,filter:0 +#: help:open.invoices.webkit,filter:0 +#: help:partner.balance.webkit,filter:0 +#: help:partners.ledger.webkit,filter:0 +#: help:trial.balance.webkit,filter:0 +msgid "Filter by date : no opening balance will be displayed. (opening balance can only be calculated based on period to be correct)." +msgstr "" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/common_reports.py:313 +#, python-format +msgid "No period found" +msgstr "" + +#. module: account_financial_report_webkit +#: view:partner.balance.webkit:0 +#: code:addons/account_financial_report_webkit/report/partner_balance.py:47 +#, python-format +msgid "Partner Balance" +msgstr "" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/general_ledger.py:146 +#, python-format +msgid "Centralized Entries" +msgstr "" + +#. module: account_financial_report_webkit +#: view:general.ledger.webkit:0 +#: view:partner.balance.webkit:0 +#: view:trial.balance.webkit:0 +msgid "Accounts Filters" +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:31 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:35 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:44 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:32 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:56 +msgid "Dates Filter" +msgstr "" + +#. module: account_financial_report_webkit +#: field:account.common.balance.report,fiscalyear_id:0 +#: field:general.ledger.webkit,fiscalyear_id:0 +#: field:open.invoices.webkit,fiscalyear_id:0 +#: field:partner.balance.webkit,fiscalyear_id:0 +#: field:partners.ledger.webkit,fiscalyear_id:0 +#: field:trial.balance.webkit,fiscalyear_id:0 +msgid "Fiscal year" +msgstr "" + +#. module: account_financial_report_webkit +#: selection:account.common.balance.report,filter:0 +#: selection:general.ledger.webkit,filter:0 +#: selection:open.invoices.webkit,filter:0 +#: selection:partner.balance.webkit,filter:0 +#: selection:partners.ledger.webkit,filter:0 +#: selection:trial.balance.webkit,filter:0 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:45 +#: code:addons/account_financial_report_webkit/wizard/balance_common.py:168 +#, python-format +msgid "Periods" +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:112 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:127 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:121 +msgid "Curr. Balance" +msgstr "" + +#. module: account_financial_report_webkit +#: model:ir.model,name:account_financial_report_webkit.model_account_move_line +msgid "Journal Items" +msgstr "" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/common_reports.py:416 +#, python-format +msgid "Invalid query mode" +msgstr "" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/open_invoices.py:161 +#, python-format +msgid "Unsuported filter" +msgstr "" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/common_reports.py:60 +#, python-format +msgid "All accounts" +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:93 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:106 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:102 +msgid "Period" +msgstr "" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/common_reports.py:424 +#, python-format +msgid "No valid filter" +msgstr "" + +#. module: account_financial_report_webkit +#: model:ir.ui.menu,name:account_financial_report_webkit.menu_account_open_invoices +msgid "Open Invoices" +msgstr "" + +#. module: account_financial_report_webkit +#: view:open.invoices.webkit:0 +msgid "Clearance Analysis Options" +msgstr "" + +#. module: account_financial_report_webkit +#: selection:account.common.balance.report,filter:0 +#: selection:partner.balance.webkit,filter:0 +#: selection:trial.balance.webkit,filter:0 +msgid "Opening Only" +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:97 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:110 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:106 +msgid "Journal" +msgstr "" + +#. module: account_financial_report_webkit +#: field:general.ledger.webkit,amount_currency:0 +#: field:open.invoices.webkit,amount_currency:0 +#: field:partners.ledger.webkit,amount_currency:0 +msgid "With Currency" +msgstr "" + +#. module: account_financial_report_webkit +#: field:open.invoices.webkit,result_selection:0 +#: field:partner.balance.webkit,result_selection:0 +#: field:partners.ledger.webkit,result_selection:0 +msgid "Partner's" +msgstr "" + +#. module: account_financial_report_webkit +#: view:general.ledger.webkit:0 +msgid "This report allows you to print or generate a pdf of your general ledger with details of all your account journals" +msgstr "" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/profit_loss.py:42 +#, python-format +msgid "PROFIT AND LOSS" +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:27 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:31 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:40 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:28 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:39 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:52 +msgid "Chart of Account" +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:167 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:133 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:148 +msgid "Difference" +msgstr "" + +#. module: account_financial_report_webkit +#: field:account.common.balance.report,target_move:0 +#: field:general.ledger.webkit,target_move:0 +#: field:open.invoices.webkit,target_move:0 +#: field:partner.balance.webkit,target_move:0 +#: field:partners.ledger.webkit,target_move:0 +#: field:trial.balance.webkit,target_move:0 +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:37 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:42 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:51 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:38 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:49 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:62 +msgid "Target Moves" +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:44 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:49 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:58 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:45 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:56 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:69 +msgid "From:" +msgstr "" + +#. module: account_financial_report_webkit +#: field:account.common.balance.report,date_to:0 +#: field:general.ledger.webkit,date_to:0 +#: field:open.invoices.webkit,date_to:0 +#: field:partner.balance.webkit,date_to:0 +#: field:partners.ledger.webkit,date_to:0 +#: field:trial.balance.webkit,date_to:0 +msgid "End Date" +msgstr "" + +#. module: account_financial_report_webkit +#: field:open.invoices.webkit,until_date:0 +msgid "Clearance date" +msgstr "" + +#. module: account_financial_report_webkit +#: model:ir.model,name:account_financial_report_webkit.model_account_report_partners_ledger_webkit +msgid "Partner Ledger Report" +msgstr "" + +#. module: account_financial_report_webkit +#: view:open.invoices.webkit:0 +#: view:partner.balance.webkit:0 +#: view:partners.ledger.webkit:0 +msgid "Partners Filters" +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:28 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:32 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:41 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:29 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:40 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:53 +msgid "Fiscal Year" +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:77 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:94 +msgid "Yes" +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:95 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:108 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:104 +msgid "Entry" +msgstr "" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/general_ledger.py:64 +#: code:addons/account_financial_report_webkit/report/open_invoices.py:63 +#: code:addons/account_financial_report_webkit/report/partner_balance.py:63 +#: code:addons/account_financial_report_webkit/report/partners_ledger.py:64 +#: code:addons/account_financial_report_webkit/report/profit_loss.py:71 +#: code:addons/account_financial_report_webkit/report/trial_balance.py:64 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:67 +#, python-format +msgid "Page" +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:50 +msgid "Partners Filter" +msgstr "" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/open_invoices.py:102 +#: code:addons/account_financial_report_webkit/report/partners_ledger.py:102 +#, python-format +msgid "No accounts to print." +msgstr "" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/profit_loss.py:49 +#, python-format +msgid "Profit and Loss" +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:99 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:95 +msgid "No Partner" +msgstr "" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/open_invoices.py:41 +#, python-format +msgid "OPEN INVOICES REPORT" +msgstr "" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/partners_ledger.py:41 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:57 +#, python-format +msgid "PARTNER LEDGER" +msgstr "" + +#. module: account_financial_report_webkit +#: selection:account.common.balance.report,target_move:0 +#: selection:general.ledger.webkit,target_move:0 +#: selection:open.invoices.webkit,target_move:0 +#: selection:partner.balance.webkit,target_move:0 +#: selection:partners.ledger.webkit,target_move:0 +#: selection:trial.balance.webkit,target_move:0 +#: code:addons/account_financial_report_webkit/report/common_reports.py:82 +#, python-format +msgid "All Entries" +msgstr "" + +#. module: account_financial_report_webkit +#: sql_constraint:account.move.line:0 +msgid "Wrong credit or debit value in accounting entry !" +msgstr "" + +#. module: account_financial_report_webkit +#: constraint:account.move.line:0 +msgid "You can not create move line on view account." +msgstr "" + diff --git a/account_financial_report_webkit/i18n/en_US.po b/account_financial_report_webkit/i18n/en_US.po new file mode 100644 index 00000000..0e2f8a81 --- /dev/null +++ b/account_financial_report_webkit/i18n/en_US.po @@ -0,0 +1,1160 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_financial_report_webkit +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 6.0.3\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2012-01-20 10:47+0000\n" +"PO-Revision-Date: 2012-01-20 10:47+0000\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: account_financial_report_webkit +#: field:account.common.balance.report,account_ids:0 +#: field:general.ledger.webkit,account_ids:0 +#: field:partner.balance.webkit,account_ids:0 +#: field:trial.balance.webkit,account_ids:0 +msgid "Filter on accounts" +msgstr "Filter on accounts" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/common_reports.py:424 +#, python-format +msgid "Please set a valid time filter" +msgstr "Please set a valid time filter" + +#. module: account_financial_report_webkit +#: view:general.ledger.webkit:0 +#: view:open.invoices.webkit:0 +#: view:partners.ledger.webkit:0 +msgid "Layout Options" +msgstr "Layout Options" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:203 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:223 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:253 +msgid "Cumulated Balance on Account" +msgstr "Cumulated Balance on Account" + +#. module: account_financial_report_webkit +#: field:general.ledger.webkit,centralize:0 +msgid "Activate Centralization" +msgstr "Activate Centralization" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:154 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:161 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:120 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:127 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:135 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:142 +msgid "Balance %s" +msgstr "Balance %s" + +#. module: account_financial_report_webkit +#: view:account.move.line:0 +msgid "Misc." +msgstr "Misc." + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:92 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:102 +msgid "Periods Filter:" +msgstr "Periods Filter:" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:172 +#, python-format +msgid "No header defined for this Webkit report!" +msgstr "No header defined for this Webkit report!" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/open_invoices.py:162 +#, python-format +msgid "Filter has to be in filter date, period, or none" +msgstr "Filter has to be in filter date, period, or none" + +#. module: account_financial_report_webkit +#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_trial_balance_menu_webkit +#: model:ir.actions.report.xml,name:account_financial_report_webkit.account_report_trial_balance_webkit +msgid "Trial Balance Webkit" +msgstr "Trial Balance Webkit" + +#. module: account_financial_report_webkit +#: constraint:account.account:0 +msgid "Configuration Error! \n" +"You cannot define children to an account with internal type different of \"View\"! " +msgstr "Configuration Error! \n" +"You cannot define children to an account with internal type different of \"View\"! " + +#. module: account_financial_report_webkit +#: view:partner.balance.webkit:0 +msgid "This report is an analysis done by a partner, It is a PDF report containing one line per partner representing the cumulative credit balance" +msgstr "This report is an analysis done by a partner, It is a PDF report containing one line per partner representing the cumulative credit balance" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:138 +msgid "Account / Partner Name" +msgstr "Account / Partner Name" + +#. module: account_financial_report_webkit +#: field:account.common.balance.report,journal_ids:0 +#: field:general.ledger.webkit,journal_ids:0 +#: field:open.invoices.webkit,journal_ids:0 +#: field:partner.balance.webkit,journal_ids:0 +#: field:partners.ledger.webkit,journal_ids:0 +#: field:trial.balance.webkit,journal_ids:0 +msgid "Journals" +msgstr "Journals" + +#. module: account_financial_report_webkit +#: help:general.ledger.webkit,amount_currency:0 +#: help:open.invoices.webkit,amount_currency:0 +#: help:partners.ledger.webkit,amount_currency:0 +msgid "It adds the currency column" +msgstr "It adds the currency column" + +#. module: account_financial_report_webkit +#: selection:open.invoices.webkit,result_selection:0 +#: selection:partner.balance.webkit,result_selection:0 +#: selection:partners.ledger.webkit,result_selection:0 +#: code:addons/account_financial_report_webkit/report/common_reports.py:73 +#, python-format +msgid "Receivable and Payable Accounts" +msgstr "Receivable and Payable Accounts" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:104 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:119 +#: model:ir.model,name:account_financial_report_webkit.model_account_account +msgid "Account" +msgstr "Account" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/trial_balance.py:42 +#, python-format +msgid "TRIAL BALANCE" +msgstr "TRIAL BALANCE" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:118 +msgid "Due Date" +msgstr "Due Date" + +#. module: account_financial_report_webkit +#: view:general.ledger.webkit:0 +#: view:open.invoices.webkit:0 +#: view:partner.balance.webkit:0 +#: view:partners.ledger.webkit:0 +#: view:trial.balance.webkit:0 +msgid "Print only" +msgstr "Print only" + +#. module: account_financial_report_webkit +#: constraint:account.move.line:0 +msgid "You can not create move line on closed account." +msgstr "You can not create move line on closed account." + +#. module: account_financial_report_webkit +#: model:ir.model,name:account_financial_report_webkit.model_account_report_partner_balance_webkit +msgid "Partner Balance Report" +msgstr "Partner Balance Report" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:221 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:230 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:247 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:258 +#, python-format +msgid "Webkit render" +msgstr "Webkit render" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:167 +#, python-format +msgid "Error!" +msgstr "Error!" + +#. module: account_financial_report_webkit +#: model:ir.model,name:account_financial_report_webkit.model_account_report_trial_balance_webkit +msgid "Trial Balance Report" +msgstr "Trial Balance Report" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:117 +msgid "Code" +msgstr "Code" + +#. module: account_financial_report_webkit +#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_partners_ledger_menu_webkit +#: model:ir.actions.report.xml,name:account_financial_report_webkit.account_report_partners_ledger_webkit +msgid "Partner Ledger Webkit" +msgstr "Partner Ledger Webkit" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:192 +msgid "Unallocated" +msgstr "Unallocated" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:116 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:112 +msgid "Rec." +msgstr "Rec." + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:123 +#, python-format +msgid "Webkit raise an error" +msgstr "Webkit raise an error" + +#. module: account_financial_report_webkit +#: selection:open.invoices.webkit,result_selection:0 +#: selection:partner.balance.webkit,result_selection:0 +#: selection:partners.ledger.webkit,result_selection:0 +#: code:addons/account_financial_report_webkit/report/common_reports.py:69 +#, python-format +msgid "Receivable Accounts" +msgstr "Receivable Accounts" + +#. module: account_financial_report_webkit +#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_general_ledger_menu_webkit +#: model:ir.actions.report.xml,name:account_financial_report_webkit.account_report_general_ledger_webkit +msgid "General Ledger Webkit" +msgstr "General Ledger Webkit" + +#. module: account_financial_report_webkit +#: field:account.common.balance.report,period_from:0 +#: field:general.ledger.webkit,period_from:0 +#: field:open.invoices.webkit,period_from:0 +#: field:partner.balance.webkit,period_from:0 +#: field:partners.ledger.webkit,period_from:0 +#: field:trial.balance.webkit,period_from:0 +msgid "Start period" +msgstr "Start period" + +#. module: account_financial_report_webkit +#: model:ir.model,name:account_financial_report_webkit.model_account_report_open_transactions_webkit +msgid "Open Transactions Report" +msgstr "Open Transactions Report" + +#. module: account_financial_report_webkit +#: constraint:account.account:0 +msgid "Error ! You can not create recursive accounts." +msgstr "Error ! You can not create recursive accounts." + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:33 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:37 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:46 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:34 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:58 +msgid "Periods Filter" +msgstr "Periods Filter" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:38 +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:139 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:52 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:142 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:39 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:153 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:50 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:108 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:63 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:123 +msgid "Initial Balance" +msgstr "Initial Balance" + +#. module: account_financial_report_webkit +#: field:account.common.balance.report,period_to:0 +#: field:general.ledger.webkit,period_to:0 +#: field:open.invoices.webkit,period_to:0 +#: field:partner.balance.webkit,period_to:0 +#: field:partners.ledger.webkit,period_to:0 +#: field:trial.balance.webkit,period_to:0 +msgid "End period" +msgstr "End period" + +#. module: account_financial_report_webkit +#: model:ir.model,name:account_financial_report_webkit.model_account_report_general_ledger_webkit +msgid "General Ledger Report" +msgstr "General Ledger Report" + +#. module: account_financial_report_webkit +#: constraint:open.invoices.webkit:0 +msgid "Clearance date must be the very last date of the last period or later." +msgstr "Clearance date must be the very last date of the last period or later." + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:48 +msgid "Displayed Accounts" +msgstr "Displayed Accounts" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:99 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:112 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:108 +msgid "Partner" +msgstr "Partner" + +#. module: account_financial_report_webkit +#: help:account.common.balance.report,chart_account_id:0 +#: help:general.ledger.webkit,chart_account_id:0 +#: help:open.invoices.webkit,chart_account_id:0 +#: help:partner.balance.webkit,chart_account_id:0 +#: help:partners.ledger.webkit,chart_account_id:0 +#: help:trial.balance.webkit,chart_account_id:0 +msgid "Select Charts of Accounts" +msgstr "Select Charts of Accounts" + +#. module: account_financial_report_webkit +#: field:account.common.balance.report,filter:0 +#: field:general.ledger.webkit,filter:0 +#: field:open.invoices.webkit,filter:0 +#: field:partner.balance.webkit,filter:0 +#: field:partners.ledger.webkit,filter:0 +#: field:trial.balance.webkit,filter:0 +msgid "Filter by" +msgstr "Filter by" + +#. module: account_financial_report_webkit +#: view:partners.ledger.webkit:0 +#: code:addons/account_financial_report_webkit/report/partners_ledger.py:48 +#, python-format +msgid "Partner Ledger" +msgstr "Partner Ledger" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:114 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:129 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:123 +msgid "Curr." +msgstr "Curr." + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:101 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:114 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:110 +msgid "Label" +msgstr "Label" + +#. module: account_financial_report_webkit +#: help:account.common.balance.report,account_ids:0 +#: help:general.ledger.webkit,account_ids:0 +#: help:partner.balance.webkit,account_ids:0 +#: help:trial.balance.webkit,account_ids:0 +msgid "Only selected accounts will be printed. Leave empty to print all accounts." +msgstr "Only selected accounts will be printed. Leave empty to print all accounts." + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:105 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:120 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:145 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:114 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:111 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:126 +msgid "Debit" +msgstr "Debit" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:173 +#, python-format +msgid "Please set a header in company settings" +msgstr "Please set a header in company settings" + +#. module: account_financial_report_webkit +#: view:general.ledger.webkit:0 +#: view:open.invoices.webkit:0 +#: view:partner.balance.webkit:0 +#: view:partners.ledger.webkit:0 +#: view:trial.balance.webkit:0 +msgid "Time Filters" +msgstr "Time Filters" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:188 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:219 +msgid "Cumulated Balance on Partner" +msgstr "Cumulated Balance on Partner" + +#. module: account_financial_report_webkit +#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_partner_balance_menu_webkit +#: model:ir.actions.report.xml,name:account_financial_report_webkit.account_report_partner_balance_webkit +msgid "Partner Balance Webkit" +msgstr "Partner Balance Webkit" + +#. module: account_financial_report_webkit +#: help:open.invoices.webkit,until_date:0 +msgid "The clearance date is essentially a tool used for debtors provisionning calculation.\n" +"\n" +"By default, this date is equal to the the end date (ie: 31/12/2011 if you select fy 2011).\n" +"\n" +"By amending the clearance date, you will be, for instance, able to answer the question : 'based on my last year end debtors open invoices, which invoices are still unpaid today (today is my clearance date)?'\n" +"" +msgstr "The clearance date is essentially a tool used for debtors provisionning calculation.\n" +"\n" +"By default, this date is equal to the the end date (ie: 31/12/2011 if you select fy 2011).\n" +"\n" +"By amending the clearance date, you will be, for instance, able to answer the question : 'based on my last year end debtors open invoices, which invoices are still unpaid today (today is my clearance date)?'\n" +"" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:40 +msgid "Clearance Date" +msgstr "Clearance Date" + +#. module: account_financial_report_webkit +#: selection:general.ledger.webkit,display_account:0 +#: code:addons/account_financial_report_webkit/report/common_reports.py:62 +#, python-format +msgid "With transactions or non zero balance" +msgstr "With transactions or non zero balance" + +#. module: account_financial_report_webkit +#: view:partners.ledger.webkit:0 +msgid "This report allows you to print or generate a pdf of your partner ledger with details of all your payable/receivable account" +msgstr "This report allows you to print or generate a pdf of your partner ledger with details of all your payable/receivable account" + +#. module: account_financial_report_webkit +#: selection:account.common.balance.report,display_account:0 +#: selection:partner.balance.webkit,display_account:0 +#: selection:trial.balance.webkit,display_account:0 +msgid "With balance is not equal to 0" +msgstr "With balance is not equal to 0" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:94 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:104 +msgid "Fiscal Year :" +msgstr "Fiscal Year :" + +#. module: account_financial_report_webkit +#: view:open.invoices.webkit:0 +msgid "This report allows you to print or generate a pdf of your open invoices per partner with details of all your payable/receivable account. Exclude full reconciled journal items." +msgstr "This report allows you to print or generate a pdf of your open invoices per partner with details of all your payable/receivable account. Exclude full reconciled journal items." + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/common_reports.py:416 +#, python-format +msgid "Must be in include_opening, exclude_opening" +msgstr "Must be in include_opening, exclude_opening" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:43 +#: code:addons/account_financial_report_webkit/wizard/balance_common.py:163 +#, python-format +msgid "Dates" +msgstr "Dates" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:136 +msgid "Code / Ref" +msgstr "Code / Ref" + +#. module: account_financial_report_webkit +#: view:trial.balance.webkit:0 +#: code:addons/account_financial_report_webkit/report/trial_balance.py:49 +#, python-format +msgid "Trial Balance" +msgstr "Trial Balance" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:87 +msgid "Dates : " +msgstr "Dates : " + +#. module: account_financial_report_webkit +#: model:ir.model,name:account_financial_report_webkit.model_account_common_balance_report +msgid "Common Balance Report" +msgstr "Common Balance Report" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:36 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:41 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:49 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:37 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:61 +msgid "Accounts Filter" +msgstr "Accounts Filter" + +#. module: account_financial_report_webkit +#: field:account.common.balance.report,chart_account_id:0 +#: field:general.ledger.webkit,chart_account_id:0 +#: field:open.invoices.webkit,chart_account_id:0 +#: field:partner.balance.webkit,chart_account_id:0 +#: field:partners.ledger.webkit,chart_account_id:0 +#: field:trial.balance.webkit,chart_account_id:0 +msgid "Chart of account" +msgstr "Chart of account" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:65 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:60 +msgid "Custom Filter" +msgstr "Custom Filter" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:90 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:100 +msgid "Dates Filter:" +msgstr "Dates Filter:" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:91 +msgid "Fiscal Year : " +msgstr "Fiscal Year : " + +#. module: account_financial_report_webkit +#: selection:account.common.balance.report,display_account:0 +#: selection:partner.balance.webkit,display_account:0 +#: selection:trial.balance.webkit,display_account:0 +msgid "With movements" +msgstr "With movements" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:109 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:124 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:118 +msgid "Cumul. Bal." +msgstr "Cumul. Bal." + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:22 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:35 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:23 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:47 +msgid "Computed" +msgstr "Computed" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/general_ledger.py:64 +#: code:addons/account_financial_report_webkit/report/open_invoices.py:63 +#: code:addons/account_financial_report_webkit/report/partner_balance.py:63 +#: code:addons/account_financial_report_webkit/report/partners_ledger.py:64 +#: code:addons/account_financial_report_webkit/report/profit_loss.py:71 +#: code:addons/account_financial_report_webkit/report/trial_balance.py:64 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:67 +#, python-format +msgid "of" +msgstr "of" + +#. module: account_financial_report_webkit +#: selection:open.invoices.webkit,result_selection:0 +#: selection:partner.balance.webkit,result_selection:0 +#: selection:partners.ledger.webkit,result_selection:0 +#: code:addons/account_financial_report_webkit/report/common_reports.py:71 +#, python-format +msgid "Payable Accounts" +msgstr "Payable Accounts" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/open_invoices.py:48 +#: model:ir.actions.report.xml,name:account_financial_report_webkit.account_report_open_invoices_webkit +#: model:ir.model,name:account_financial_report_webkit.model_account_report_open_invoices_webkit +#, python-format +msgid "Open Invoices Report" +msgstr "Open Invoices Report" + +#. module: account_financial_report_webkit +#: field:account.account,centralized:0 +msgid "Centralized" +msgstr "Centralized" + +#. module: account_financial_report_webkit +#: field:account.common.balance.report,display_account:0 +#: field:general.ledger.webkit,display_account:0 +#: field:partner.balance.webkit,display_account:0 +#: field:trial.balance.webkit,display_account:0 +msgid "Display accounts" +msgstr "Display accounts" + +#. module: account_financial_report_webkit +#: view:account.move.line:0 +msgid "Narration" +msgstr "Narration" + +#. module: account_financial_report_webkit +#: field:account.common.balance.report,date_from:0 +#: field:general.ledger.webkit,date_from:0 +#: field:open.invoices.webkit,date_from:0 +#: field:partner.balance.webkit,date_from:0 +#: field:partners.ledger.webkit,date_from:0 +#: field:trial.balance.webkit,date_from:0 +msgid "Start Date" +msgstr "Start Date" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:22 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:35 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:23 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:47 +msgid "Opening Entries" +msgstr "Opening Entries" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/general_ledger.py:40 +#, python-format +msgid "GENERAL LEDGER" +msgstr "GENERAL LEDGER" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/wizard/profit_loss_wizard.py:131 +#, python-format +msgid "Level %s" +msgstr "Level %s" + +#. module: account_financial_report_webkit +#: help:account.account,centralized:0 +msgid "If flagged, no details will be displayed in the General Ledger report (the webkit one only), only centralized amounts per period." +msgstr "If flagged, no details will be displayed in the General Ledger report (the webkit one only), only centralized amounts per period." + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:22 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:35 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:23 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:77 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:94 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:47 +msgid "No" +msgstr "No" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:97 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:94 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:107 +msgid "Initial Balance:" +msgstr "Initial Balance:" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:163 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:129 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:144 +msgid "Balance C%s" +msgstr "Balance C%s" + +#. module: account_financial_report_webkit +#: field:account.move.line,last_rec_date:0 +msgid "Last reconciliation date" +msgstr "Last reconciliation date" + +#. module: account_financial_report_webkit +#: field:open.invoices.webkit,partner_ids:0 +#: field:partner.balance.webkit,partner_ids:0 +#: field:partners.ledger.webkit,partner_ids:0 +msgid "Filter on partner" +msgstr "Filter on partner" + +#. module: account_financial_report_webkit +#: view:general.ledger.webkit:0 +#: code:addons/account_financial_report_webkit/report/general_ledger.py:47 +#, python-format +msgid "General Ledger" +msgstr "General Ledger" + +#. module: account_financial_report_webkit +#: view:trial.balance.webkit:0 +msgid "This report allows you to print or generate a pdf of your trial balance allowing you to quickly check the balance of each of your accounts in a single report" +msgstr "This report allows you to print or generate a pdf of your trial balance allowing you to quickly check the balance of each of your accounts in a single report" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:89 +msgid "Periods : " +msgstr "Periods : " + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/partner_balance.py:40 +#, python-format +msgid "PARTNER BALANCE" +msgstr "PARTNER BALANCE" + +#. module: account_financial_report_webkit +#: help:open.invoices.webkit,partner_ids:0 +#: help:partner.balance.webkit,partner_ids:0 +#: help:partners.ledger.webkit,partner_ids:0 +msgid "Only selected partners will be printed. Leave empty to print all partners." +msgstr "Only selected partners will be printed. Leave empty to print all partners." + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:167 +#, python-format +msgid "Webkit Report template not found !" +msgstr "Webkit Report template not found !" + +#. module: account_financial_report_webkit +#: selection:account.common.balance.report,filter:0 +#: selection:general.ledger.webkit,filter:0 +#: selection:open.invoices.webkit,filter:0 +#: selection:partner.balance.webkit,filter:0 +#: selection:partners.ledger.webkit,filter:0 +#: selection:trial.balance.webkit,filter:0 +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:91 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:104 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:100 +msgid "Date" +msgstr "Date" + +#. module: account_financial_report_webkit +#: help:general.ledger.webkit,centralize:0 +msgid "Uncheck to display all the details of centralized accounts." +msgstr "Uncheck to display all the details of centralized accounts." + +#. module: account_financial_report_webkit +#: constraint:account.move.line:0 +msgid "Company must be same for its related account and period." +msgstr "Company must be same for its related account and period." + +#. module: account_financial_report_webkit +#: constraint:account.common.balance.report:0 +#: constraint:general.ledger.webkit:0 +#: constraint:partner.balance.webkit:0 +#: constraint:partners.ledger.webkit:0 +#: constraint:trial.balance.webkit:0 +msgid "When no Fiscal year is selected, you must choose to filter by periods or by date." +msgstr "When no Fiscal year is selected, you must choose to filter by periods or by date." + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:50 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:55 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:64 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:51 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:62 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:75 +msgid "To:" +msgstr "To:" + +#. module: account_financial_report_webkit +#: sql_constraint:account.account:0 +msgid "The code of the account must be unique per company !" +msgstr "The code of the account must be unique per company !" + +#. module: account_financial_report_webkit +#: view:open.invoices.webkit:0 +#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_open_invoices_menu_webkit +msgid "Open Invoices" +msgstr "Open Invoices" + +#. module: account_financial_report_webkit +#: selection:account.common.balance.report,target_move:0 +#: selection:general.ledger.webkit,target_move:0 +#: selection:open.invoices.webkit,target_move:0 +#: selection:partner.balance.webkit,target_move:0 +#: selection:partners.ledger.webkit,target_move:0 +#: selection:trial.balance.webkit,target_move:0 +#: code:addons/account_financial_report_webkit/report/common_reports.py:80 +#, python-format +msgid "All Posted Entries" +msgstr "All Posted Entries" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:87 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:84 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:97 +#: code:addons/account_financial_report_webkit/wizard/balance_common.py:156 +#, python-format +msgid "Comparison %s" +msgstr "Comparison %s" + +#. module: account_financial_report_webkit +#: selection:account.common.balance.report,display_account:0 +#: selection:general.ledger.webkit,display_account:0 +#: selection:partner.balance.webkit,display_account:0 +#: selection:trial.balance.webkit,display_account:0 +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:61 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:75 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:73 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:86 +msgid "All" +msgstr "All" + +#. module: account_financial_report_webkit +#: help:account.common.balance.report,fiscalyear_id:0 +#: help:general.ledger.webkit,fiscalyear_id:0 +#: help:open.invoices.webkit,fiscalyear_id:0 +#: help:partner.balance.webkit,fiscalyear_id:0 +#: help:partners.ledger.webkit,fiscalyear_id:0 +#: help:trial.balance.webkit,fiscalyear_id:0 +msgid "Keep empty for all open fiscal year" +msgstr "Keep empty for all open fiscal year" + +#. module: account_financial_report_webkit +#: help:account.move.line,last_rec_date:0 +msgid "the date of the last reconciliation (full or partial) account move line" +msgstr "the date of the last reconciliation (full or partial) account move line" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:107 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:122 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:147 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:116 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:113 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:128 +msgid "Credit" +msgstr "Credit" + +#. module: account_financial_report_webkit +#: selection:account.common.balance.report,filter:0 +#: selection:general.ledger.webkit,filter:0 +#: selection:open.invoices.webkit,filter:0 +#: selection:partner.balance.webkit,filter:0 +#: selection:partners.ledger.webkit,filter:0 +#: selection:trial.balance.webkit,filter:0 +msgid "No Filters" +msgstr "No Filters" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/open_invoices.py:102 +#: code:addons/account_financial_report_webkit/report/partners_ledger.py:102 +#, python-format +msgid "Error" +msgstr "Error" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:152 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:118 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:133 +msgid "Balance" +msgstr "Balance" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:103 +msgid "Counter part" +msgstr "Counter part" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:168 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:134 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:149 +msgid "% Difference" +msgstr "% Difference" + +#. module: account_financial_report_webkit +#: help:account.common.balance.report,filter:0 +#: help:open.invoices.webkit,filter:0 +#: help:partner.balance.webkit,filter:0 +#: help:partners.ledger.webkit,filter:0 +#: help:trial.balance.webkit,filter:0 +msgid "Filter by date : no opening balance will be displayed. (opening balance can only be calculated based on period to be correct)." +msgstr "Filter by date : no opening balance will be displayed. (opening balance can only be calculated based on period to be correct)." + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/common_reports.py:313 +#, python-format +msgid "No period found" +msgstr "No period found" + +#. module: account_financial_report_webkit +#: view:partner.balance.webkit:0 +#: code:addons/account_financial_report_webkit/report/partner_balance.py:47 +#, python-format +msgid "Partner Balance" +msgstr "Partner Balance" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/general_ledger.py:146 +#, python-format +msgid "Centralized Entries" +msgstr "Centralized Entries" + +#. module: account_financial_report_webkit +#: view:general.ledger.webkit:0 +#: view:partner.balance.webkit:0 +#: view:trial.balance.webkit:0 +msgid "Accounts Filters" +msgstr "Accounts Filters" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:31 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:35 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:44 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:32 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:56 +msgid "Dates Filter" +msgstr "Dates Filter" + +#. module: account_financial_report_webkit +#: field:account.common.balance.report,fiscalyear_id:0 +#: field:general.ledger.webkit,fiscalyear_id:0 +#: field:open.invoices.webkit,fiscalyear_id:0 +#: field:partner.balance.webkit,fiscalyear_id:0 +#: field:partners.ledger.webkit,fiscalyear_id:0 +#: field:trial.balance.webkit,fiscalyear_id:0 +msgid "Fiscal year" +msgstr "Fiscal year" + +#. module: account_financial_report_webkit +#: selection:account.common.balance.report,filter:0 +#: selection:general.ledger.webkit,filter:0 +#: selection:open.invoices.webkit,filter:0 +#: selection:partner.balance.webkit,filter:0 +#: selection:partners.ledger.webkit,filter:0 +#: selection:trial.balance.webkit,filter:0 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:45 +#: code:addons/account_financial_report_webkit/wizard/balance_common.py:168 +#, python-format +msgid "Periods" +msgstr "Periods" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:112 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:127 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:121 +msgid "Curr. Balance" +msgstr "Curr. Balance" + +#. module: account_financial_report_webkit +#: model:ir.model,name:account_financial_report_webkit.model_account_move_line +msgid "Journal Items" +msgstr "Journal Items" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/common_reports.py:416 +#, python-format +msgid "Invalid query mode" +msgstr "Invalid query mode" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/open_invoices.py:161 +#, python-format +msgid "Unsuported filter" +msgstr "Unsuported filter" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/common_reports.py:60 +#, python-format +msgid "All accounts" +msgstr "All accounts" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:93 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:106 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:102 +msgid "Period" +msgstr "Period" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/common_reports.py:424 +#, python-format +msgid "No valid filter" +msgstr "No valid filter" + +#. module: account_financial_report_webkit +#: model:ir.ui.menu,name:account_financial_report_webkit.menu_account_open_invoices +msgid "Open Invoices" +msgstr "Open Invoices" + +#. module: account_financial_report_webkit +#: view:open.invoices.webkit:0 +msgid "Clearance Analysis Options" +msgstr "Clearance Analysis Options" + +#. module: account_financial_report_webkit +#: selection:account.common.balance.report,filter:0 +#: selection:partner.balance.webkit,filter:0 +#: selection:trial.balance.webkit,filter:0 +msgid "Opening Only" +msgstr "Opening Only" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:97 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:110 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:106 +msgid "Journal" +msgstr "Journal" + +#. module: account_financial_report_webkit +#: field:general.ledger.webkit,amount_currency:0 +#: field:open.invoices.webkit,amount_currency:0 +#: field:partners.ledger.webkit,amount_currency:0 +msgid "With Currency" +msgstr "With Currency" + +#. module: account_financial_report_webkit +#: field:open.invoices.webkit,result_selection:0 +#: field:partner.balance.webkit,result_selection:0 +#: field:partners.ledger.webkit,result_selection:0 +msgid "Partner's" +msgstr "Partner's" + +#. module: account_financial_report_webkit +#: view:general.ledger.webkit:0 +msgid "This report allows you to print or generate a pdf of your general ledger with details of all your account journals" +msgstr "This report allows you to print or generate a pdf of your general ledger with details of all your account journals" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/profit_loss.py:42 +#, python-format +msgid "PROFIT AND LOSS" +msgstr "PROFIT AND LOSS" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:27 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:31 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:40 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:28 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:39 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:52 +msgid "Chart of Account" +msgstr "Chart of Account" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:167 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:133 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:148 +msgid "Difference" +msgstr "Difference" + +#. module: account_financial_report_webkit +#: field:account.common.balance.report,target_move:0 +#: field:general.ledger.webkit,target_move:0 +#: field:open.invoices.webkit,target_move:0 +#: field:partner.balance.webkit,target_move:0 +#: field:partners.ledger.webkit,target_move:0 +#: field:trial.balance.webkit,target_move:0 +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:37 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:42 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:51 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:38 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:49 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:62 +msgid "Target Moves" +msgstr "Target Moves" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:44 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:49 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:58 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:45 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:56 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:69 +msgid "From:" +msgstr "From:" + +#. module: account_financial_report_webkit +#: field:account.common.balance.report,date_to:0 +#: field:general.ledger.webkit,date_to:0 +#: field:open.invoices.webkit,date_to:0 +#: field:partner.balance.webkit,date_to:0 +#: field:partners.ledger.webkit,date_to:0 +#: field:trial.balance.webkit,date_to:0 +msgid "End Date" +msgstr "End Date" + +#. module: account_financial_report_webkit +#: field:open.invoices.webkit,until_date:0 +msgid "Clearance date" +msgstr "Clearance date" + +#. module: account_financial_report_webkit +#: model:ir.model,name:account_financial_report_webkit.model_account_report_partners_ledger_webkit +msgid "Partner Ledger Report" +msgstr "Partner Ledger Report" + +#. module: account_financial_report_webkit +#: view:open.invoices.webkit:0 +#: view:partner.balance.webkit:0 +#: view:partners.ledger.webkit:0 +msgid "Partners Filters" +msgstr "Partners Filters" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:28 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:32 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:41 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:29 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:40 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:53 +msgid "Fiscal Year" +msgstr "Fiscal Year" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:77 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:94 +msgid "Yes" +msgstr "Yes" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:95 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:108 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:104 +msgid "Entry" +msgstr "Entry" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/general_ledger.py:64 +#: code:addons/account_financial_report_webkit/report/open_invoices.py:63 +#: code:addons/account_financial_report_webkit/report/partner_balance.py:63 +#: code:addons/account_financial_report_webkit/report/partners_ledger.py:64 +#: code:addons/account_financial_report_webkit/report/profit_loss.py:71 +#: code:addons/account_financial_report_webkit/report/trial_balance.py:64 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:67 +#, python-format +msgid "Page" +msgstr "Page" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:50 +msgid "Partners Filter" +msgstr "Partners Filter" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/open_invoices.py:102 +#: code:addons/account_financial_report_webkit/report/partners_ledger.py:102 +#, python-format +msgid "No accounts to print." +msgstr "No accounts to print." + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/profit_loss.py:49 +#, python-format +msgid "Profit and Loss" +msgstr "Profit and Loss" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:99 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:95 +msgid "No Partner" +msgstr "No Partner" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/open_invoices.py:41 +#, python-format +msgid "OPEN INVOICES REPORT" +msgstr "OPEN INVOICES REPORT" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/partners_ledger.py:41 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:57 +#, python-format +msgid "PARTNER LEDGER" +msgstr "PARTNER LEDGER" + +#. module: account_financial_report_webkit +#: selection:account.common.balance.report,target_move:0 +#: selection:general.ledger.webkit,target_move:0 +#: selection:open.invoices.webkit,target_move:0 +#: selection:partner.balance.webkit,target_move:0 +#: selection:partners.ledger.webkit,target_move:0 +#: selection:trial.balance.webkit,target_move:0 +#: code:addons/account_financial_report_webkit/report/common_reports.py:82 +#, python-format +msgid "All Entries" +msgstr "All Entries" + +#. module: account_financial_report_webkit +#: sql_constraint:account.move.line:0 +msgid "Wrong credit or debit value in accounting entry !" +msgstr "Wrong credit or debit value in accounting entry !" + +#. module: account_financial_report_webkit +#: constraint:account.move.line:0 +msgid "You can not create move line on view account." +msgstr "You can not create move line on view account." + diff --git a/account_financial_report_webkit/i18n/fr.po b/account_financial_report_webkit/i18n/fr.po new file mode 100644 index 00000000..39a8388a --- /dev/null +++ b/account_financial_report_webkit/i18n/fr.po @@ -0,0 +1,1160 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_financial_report_webkit +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 6.0.3\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2012-01-20 10:47+0000\n" +"PO-Revision-Date: 2012-01-20 10:47+0000\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: account_financial_report_webkit +#: field:account.common.balance.report,account_ids:0 +#: field:general.ledger.webkit,account_ids:0 +#: field:partner.balance.webkit,account_ids:0 +#: field:trial.balance.webkit,account_ids:0 +msgid "Filter on accounts" +msgstr "Filtre par compte" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/common_reports.py:424 +#, python-format +msgid "Please set a valid time filter" +msgstr "Veuillez selectionner un filtre de temps valide" + +#. module: account_financial_report_webkit +#: view:general.ledger.webkit:0 +#: view:open.invoices.webkit:0 +#: view:partners.ledger.webkit:0 +msgid "Layout Options" +msgstr "Options de format" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:203 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:223 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:253 +msgid "Cumulated Balance on Account" +msgstr "Solde cumulé" + +#. module: account_financial_report_webkit +#: field:general.ledger.webkit,centralize:0 +msgid "Activate Centralization" +msgstr "Centralisation activée" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:154 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:161 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:120 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:127 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:135 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:142 +msgid "Balance %s" +msgstr "Solde %s" + +#. module: account_financial_report_webkit +#: view:account.move.line:0 +msgid "Misc." +msgstr "Divers" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:92 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:102 +msgid "Periods Filter:" +msgstr "Filtre par période:" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:172 +#, python-format +msgid "No header defined for this Webkit report!" +msgstr "Pas d'en-tête défini pour ce rapport Webkit!" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/open_invoices.py:162 +#, python-format +msgid "Filter has to be in filter date, period, or none" +msgstr "Filtre par date, periode au aucun uniquement" + +#. module: account_financial_report_webkit +#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_trial_balance_menu_webkit +#: model:ir.actions.report.xml,name:account_financial_report_webkit.account_report_trial_balance_webkit +msgid "Trial Balance Webkit" +msgstr "Balance des comptes" + +#. module: account_financial_report_webkit +#: constraint:account.account:0 +msgid "Configuration Error! \n" +"You cannot define children to an account with internal type different of \"View\"! " +msgstr "Erreur de paramétrage! \n" +"Vous ne pouvez pas définir de sous-compte sur un compte non \"Vue\"! " + +#. module: account_financial_report_webkit +#: view:partner.balance.webkit:0 +msgid "This report is an analysis done by a partner, It is a PDF report containing one line per partner representing the cumulative credit balance" +msgstr "Ce rapport montre les soldes ouverts par client ou fourniseurs." + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:138 +msgid "Account / Partner Name" +msgstr "Compte / Partenaire" + +#. module: account_financial_report_webkit +#: field:account.common.balance.report,journal_ids:0 +#: field:general.ledger.webkit,journal_ids:0 +#: field:open.invoices.webkit,journal_ids:0 +#: field:partner.balance.webkit,journal_ids:0 +#: field:partners.ledger.webkit,journal_ids:0 +#: field:trial.balance.webkit,journal_ids:0 +msgid "Journals" +msgstr "Journaux" + +#. module: account_financial_report_webkit +#: help:general.ledger.webkit,amount_currency:0 +#: help:open.invoices.webkit,amount_currency:0 +#: help:partners.ledger.webkit,amount_currency:0 +msgid "It adds the currency column" +msgstr "Ajoute la colonne devise" + +#. module: account_financial_report_webkit +#: selection:open.invoices.webkit,result_selection:0 +#: selection:partner.balance.webkit,result_selection:0 +#: selection:partners.ledger.webkit,result_selection:0 +#: code:addons/account_financial_report_webkit/report/common_reports.py:73 +#, python-format +msgid "Receivable and Payable Accounts" +msgstr "Comptes clients et fournisseurs" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:104 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:119 +#: model:ir.model,name:account_financial_report_webkit.model_account_account +msgid "Account" +msgstr "Comptes" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/trial_balance.py:42 +#, python-format +msgid "TRIAL BALANCE" +msgstr "BALANCE DES COMPTES" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:118 +msgid "Due Date" +msgstr "Echéance" + +#. module: account_financial_report_webkit +#: view:general.ledger.webkit:0 +#: view:open.invoices.webkit:0 +#: view:partner.balance.webkit:0 +#: view:partners.ledger.webkit:0 +#: view:trial.balance.webkit:0 +msgid "Print only" +msgstr "Filter sur:" + +#. module: account_financial_report_webkit +#: constraint:account.move.line:0 +msgid "You can not create move line on closed account." +msgstr "Impossible de créer une ligne d'écriture sur un compte clôturé." + +#. module: account_financial_report_webkit +#: model:ir.model,name:account_financial_report_webkit.model_account_report_partner_balance_webkit +msgid "Partner Balance Report" +msgstr "Balance des tiers" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:221 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:230 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:247 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:258 +#, python-format +msgid "Webkit render" +msgstr "Rendu Webkit" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:167 +#, python-format +msgid "Error!" +msgstr "Erreur!" + +#. module: account_financial_report_webkit +#: model:ir.model,name:account_financial_report_webkit.model_account_report_trial_balance_webkit +msgid "Trial Balance Report" +msgstr "Balance des comptes" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:117 +msgid "Code" +msgstr "Code" + +#. module: account_financial_report_webkit +#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_partners_ledger_menu_webkit +#: model:ir.actions.report.xml,name:account_financial_report_webkit.account_report_partners_ledger_webkit +msgid "Partner Ledger Webkit" +msgstr "Livre des tiers" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:192 +msgid "Unallocated" +msgstr "Non-alloué" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:116 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:112 +msgid "Rec." +msgstr "Let." + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:123 +#, python-format +msgid "Webkit raise an error" +msgstr "Erreur Webkit" + +#. module: account_financial_report_webkit +#: selection:open.invoices.webkit,result_selection:0 +#: selection:partner.balance.webkit,result_selection:0 +#: selection:partners.ledger.webkit,result_selection:0 +#: code:addons/account_financial_report_webkit/report/common_reports.py:69 +#, python-format +msgid "Receivable Accounts" +msgstr "Comptes clients" + +#. module: account_financial_report_webkit +#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_general_ledger_menu_webkit +#: model:ir.actions.report.xml,name:account_financial_report_webkit.account_report_general_ledger_webkit +msgid "General Ledger Webkit" +msgstr "Grand Livre des comptes" + +#. module: account_financial_report_webkit +#: field:account.common.balance.report,period_from:0 +#: field:general.ledger.webkit,period_from:0 +#: field:open.invoices.webkit,period_from:0 +#: field:partner.balance.webkit,period_from:0 +#: field:partners.ledger.webkit,period_from:0 +#: field:trial.balance.webkit,period_from:0 +msgid "Start period" +msgstr "Période Début" + +#. module: account_financial_report_webkit +#: model:ir.model,name:account_financial_report_webkit.model_account_report_open_transactions_webkit +msgid "Open Transactions Report" +msgstr "Liste des factures ouvertes" + +#. module: account_financial_report_webkit +#: constraint:account.account:0 +msgid "Error ! You can not create recursive accounts." +msgstr "Erreur ! Vous ne pouvez pas créer de comptes récursifs." + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:33 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:37 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:46 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:34 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:58 +msgid "Periods Filter" +msgstr "Filtre par période" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:38 +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:139 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:52 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:142 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:39 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:153 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:50 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:108 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:63 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:123 +msgid "Initial Balance" +msgstr "Solde à nouveau" + +#. module: account_financial_report_webkit +#: field:account.common.balance.report,period_to:0 +#: field:general.ledger.webkit,period_to:0 +#: field:open.invoices.webkit,period_to:0 +#: field:partner.balance.webkit,period_to:0 +#: field:partners.ledger.webkit,period_to:0 +#: field:trial.balance.webkit,period_to:0 +msgid "End period" +msgstr "Période Fin" + +#. module: account_financial_report_webkit +#: model:ir.model,name:account_financial_report_webkit.model_account_report_general_ledger_webkit +msgid "General Ledger Report" +msgstr "Grand livre des comptes" + +#. module: account_financial_report_webkit +#: constraint:open.invoices.webkit:0 +msgid "Clearance date must be the very last date of the last period or later." +msgstr "La date d'apurement doit être postérieure à la date de fin sélectionnée." + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:48 +msgid "Displayed Accounts" +msgstr "Comptes filtrés" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:99 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:112 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:108 +msgid "Partner" +msgstr "Partenaire" + +#. module: account_financial_report_webkit +#: help:account.common.balance.report,chart_account_id:0 +#: help:general.ledger.webkit,chart_account_id:0 +#: help:open.invoices.webkit,chart_account_id:0 +#: help:partner.balance.webkit,chart_account_id:0 +#: help:partners.ledger.webkit,chart_account_id:0 +#: help:trial.balance.webkit,chart_account_id:0 +msgid "Select Charts of Accounts" +msgstr "Selection du Plan comptable" + +#. module: account_financial_report_webkit +#: field:account.common.balance.report,filter:0 +#: field:general.ledger.webkit,filter:0 +#: field:open.invoices.webkit,filter:0 +#: field:partner.balance.webkit,filter:0 +#: field:partners.ledger.webkit,filter:0 +#: field:trial.balance.webkit,filter:0 +msgid "Filter by" +msgstr "Filtrer par" + +#. module: account_financial_report_webkit +#: view:partners.ledger.webkit:0 +#: code:addons/account_financial_report_webkit/report/partners_ledger.py:48 +#, python-format +msgid "Partner Ledger" +msgstr "Livre des tiers" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:114 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:129 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:123 +msgid "Curr." +msgstr "Dev." + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:101 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:114 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:110 +msgid "Label" +msgstr "Description" + +#. module: account_financial_report_webkit +#: help:account.common.balance.report,account_ids:0 +#: help:general.ledger.webkit,account_ids:0 +#: help:partner.balance.webkit,account_ids:0 +#: help:trial.balance.webkit,account_ids:0 +msgid "Only selected accounts will be printed. Leave empty to print all accounts." +msgstr "Seuls les comptes selectionnés seront imprimés. Laisser vide pour les imprimer tous." + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:105 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:120 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:145 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:114 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:111 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:126 +msgid "Debit" +msgstr "Débit" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:173 +#, python-format +msgid "Please set a header in company settings" +msgstr "Veuillez paramétrer un en-tête dans la société" + +#. module: account_financial_report_webkit +#: view:general.ledger.webkit:0 +#: view:open.invoices.webkit:0 +#: view:partner.balance.webkit:0 +#: view:partners.ledger.webkit:0 +#: view:trial.balance.webkit:0 +msgid "Time Filters" +msgstr "Filtre de temps" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:188 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:219 +msgid "Cumulated Balance on Partner" +msgstr "Totaux" + +#. module: account_financial_report_webkit +#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_partner_balance_menu_webkit +#: model:ir.actions.report.xml,name:account_financial_report_webkit.account_report_partner_balance_webkit +msgid "Partner Balance Webkit" +msgstr "Balance des tiers" + +#. module: account_financial_report_webkit +#: help:open.invoices.webkit,until_date:0 +msgid "The clearance date is essentially a tool used for debtors provisionning calculation.\n" +"\n" +"By default, this date is equal to the the end date (ie: 31/12/2011 if you select fy 2011).\n" +"\n" +"By amending the clearance date, you will be, for instance, able to answer the question : 'based on my last year end debtors open invoices, which invoices are still unpaid today (today is my clearance date)?'\n" +"" +msgstr "La date d'apurement est une aide pour le calcule de la provision sur compte client.\n" +"\n" +"Par défaut, elle est égale à la date de fin selectionnée (ex: 31/12/2011 si vous selectionnez 2011).\n" +"\n" +"En la modifant, vous pourrez répondre à la question suivante:'A partir de la listes des factures ouvertes a la fin de l'exercice comptable précedant, lesquelles sont toujours impayées aujourd'hui (aujourd'hui étant la date d'apurement)?'\n" +"" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:40 +msgid "Clearance Date" +msgstr "Date d'apurement" + +#. module: account_financial_report_webkit +#: selection:general.ledger.webkit,display_account:0 +#: code:addons/account_financial_report_webkit/report/common_reports.py:62 +#, python-format +msgid "With transactions or non zero balance" +msgstr "Compte mouvementé ou dont le solde n'est pas nul" + +#. module: account_financial_report_webkit +#: view:partners.ledger.webkit:0 +msgid "This report allows you to print or generate a pdf of your partner ledger with details of all your payable/receivable account" +msgstr "Cet état imprime tout les mouvements comptables par partenaire (client / fournisseur)" + +#. module: account_financial_report_webkit +#: selection:account.common.balance.report,display_account:0 +#: selection:partner.balance.webkit,display_account:0 +#: selection:trial.balance.webkit,display_account:0 +msgid "With balance is not equal to 0" +msgstr "Compte dont le solde n'est pas 0" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:94 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:104 +msgid "Fiscal Year :" +msgstr "Excercice comptable :" + +#. module: account_financial_report_webkit +#: view:open.invoices.webkit:0 +msgid "This report allows you to print or generate a pdf of your open invoices per partner with details of all your payable/receivable account. Exclude full reconciled journal items." +msgstr "Cet état vous permet d'éditer la listes de factures ouvertes à la date de votre choix" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/common_reports.py:416 +#, python-format +msgid "Must be in include_opening, exclude_opening" +msgstr "Doit être dans include_opening, exclude_opening" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:43 +#: code:addons/account_financial_report_webkit/wizard/balance_common.py:163 +#, python-format +msgid "Dates" +msgstr "Dates" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:136 +msgid "Code / Ref" +msgstr "Compte / Réf." + +#. module: account_financial_report_webkit +#: view:trial.balance.webkit:0 +#: code:addons/account_financial_report_webkit/report/trial_balance.py:49 +#, python-format +msgid "Trial Balance" +msgstr "Balance des comptes" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:87 +msgid "Dates : " +msgstr "Dates : " + +#. module: account_financial_report_webkit +#: model:ir.model,name:account_financial_report_webkit.model_account_common_balance_report +msgid "Common Balance Report" +msgstr "Common Balance Report" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:36 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:41 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:49 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:37 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:61 +msgid "Accounts Filter" +msgstr "Filtre par compte" + +#. module: account_financial_report_webkit +#: field:account.common.balance.report,chart_account_id:0 +#: field:general.ledger.webkit,chart_account_id:0 +#: field:open.invoices.webkit,chart_account_id:0 +#: field:partner.balance.webkit,chart_account_id:0 +#: field:partners.ledger.webkit,chart_account_id:0 +#: field:trial.balance.webkit,chart_account_id:0 +msgid "Chart of account" +msgstr "Plan comptable" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:65 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:60 +msgid "Custom Filter" +msgstr "Filtre personalisé" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:90 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:100 +msgid "Dates Filter:" +msgstr "Filtre Dates:" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:91 +msgid "Fiscal Year : " +msgstr "Excercice comptable : " + +#. module: account_financial_report_webkit +#: selection:account.common.balance.report,display_account:0 +#: selection:partner.balance.webkit,display_account:0 +#: selection:trial.balance.webkit,display_account:0 +msgid "With movements" +msgstr "Mouvementé" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:109 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:124 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:118 +msgid "Cumul. Bal." +msgstr "Solde Cumul." + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:22 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:35 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:23 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:47 +msgid "Computed" +msgstr "Calculé" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/general_ledger.py:64 +#: code:addons/account_financial_report_webkit/report/open_invoices.py:63 +#: code:addons/account_financial_report_webkit/report/partner_balance.py:63 +#: code:addons/account_financial_report_webkit/report/partners_ledger.py:64 +#: code:addons/account_financial_report_webkit/report/profit_loss.py:71 +#: code:addons/account_financial_report_webkit/report/trial_balance.py:64 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:67 +#, python-format +msgid "of" +msgstr "de" + +#. module: account_financial_report_webkit +#: selection:open.invoices.webkit,result_selection:0 +#: selection:partner.balance.webkit,result_selection:0 +#: selection:partners.ledger.webkit,result_selection:0 +#: code:addons/account_financial_report_webkit/report/common_reports.py:71 +#, python-format +msgid "Payable Accounts" +msgstr "Comptes fournisseur" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/open_invoices.py:48 +#: model:ir.actions.report.xml,name:account_financial_report_webkit.account_report_open_invoices_webkit +#: model:ir.model,name:account_financial_report_webkit.model_account_report_open_invoices_webkit +#, python-format +msgid "Open Invoices Report" +msgstr "Etat des factures ouvertes" + +#. module: account_financial_report_webkit +#: field:account.account,centralized:0 +msgid "Centralized" +msgstr "Centralisé" + +#. module: account_financial_report_webkit +#: field:account.common.balance.report,display_account:0 +#: field:general.ledger.webkit,display_account:0 +#: field:partner.balance.webkit,display_account:0 +#: field:trial.balance.webkit,display_account:0 +msgid "Display accounts" +msgstr "Comptes affichés" + +#. module: account_financial_report_webkit +#: view:account.move.line:0 +msgid "Narration" +msgstr "Historique" + +#. module: account_financial_report_webkit +#: field:account.common.balance.report,date_from:0 +#: field:general.ledger.webkit,date_from:0 +#: field:open.invoices.webkit,date_from:0 +#: field:partner.balance.webkit,date_from:0 +#: field:partners.ledger.webkit,date_from:0 +#: field:trial.balance.webkit,date_from:0 +msgid "Start Date" +msgstr "Date Début" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:22 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:35 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:23 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:47 +msgid "Opening Entries" +msgstr "Basé sur l'écriture d'ouverture" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/general_ledger.py:40 +#, python-format +msgid "GENERAL LEDGER" +msgstr "GRAND LIVRE DES COMPTES" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/wizard/profit_loss_wizard.py:131 +#, python-format +msgid "Level %s" +msgstr "Niveau %s" + +#. module: account_financial_report_webkit +#: help:account.account,centralized:0 +msgid "If flagged, no details will be displayed in the General Ledger report (the webkit one only), only centralized amounts per period." +msgstr "Si coché, les mouvements de ce compte seront groupés par période." + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:22 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:35 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:23 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:77 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:94 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:47 +msgid "No" +msgstr "Non" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:97 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:94 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:107 +msgid "Initial Balance:" +msgstr "Solde à nouveau:" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:163 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:129 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:144 +msgid "Balance C%s" +msgstr "Solde C%s" + +#. module: account_financial_report_webkit +#: field:account.move.line,last_rec_date:0 +msgid "Last reconciliation date" +msgstr "Last reconciliation date" + +#. module: account_financial_report_webkit +#: field:open.invoices.webkit,partner_ids:0 +#: field:partner.balance.webkit,partner_ids:0 +#: field:partners.ledger.webkit,partner_ids:0 +msgid "Filter on partner" +msgstr "Filtre sur partenaire" + +#. module: account_financial_report_webkit +#: view:general.ledger.webkit:0 +#: code:addons/account_financial_report_webkit/report/general_ledger.py:47 +#, python-format +msgid "General Ledger" +msgstr "Grand livre des comptes" + +#. module: account_financial_report_webkit +#: view:trial.balance.webkit:0 +msgid "This report allows you to print or generate a pdf of your trial balance allowing you to quickly check the balance of each of your accounts in a single report" +msgstr "Cet état liste les comptes et leurs solde. Vous pouvez également faire des comparaisons de période (jusqu'à 4 périodes)." + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:89 +msgid "Periods : " +msgstr "Periodes : " + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/partner_balance.py:40 +#, python-format +msgid "PARTNER BALANCE" +msgstr "BALANCE DES TIERS" + +#. module: account_financial_report_webkit +#: help:open.invoices.webkit,partner_ids:0 +#: help:partner.balance.webkit,partner_ids:0 +#: help:partners.ledger.webkit,partner_ids:0 +msgid "Only selected partners will be printed. Leave empty to print all partners." +msgstr "Selectionnez les partenaires à imprimer ou laissez vide pour les imprimer tous." + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:167 +#, python-format +msgid "Webkit Report template not found !" +msgstr "Webkit Report template not found !" + +#. module: account_financial_report_webkit +#: selection:account.common.balance.report,filter:0 +#: selection:general.ledger.webkit,filter:0 +#: selection:open.invoices.webkit,filter:0 +#: selection:partner.balance.webkit,filter:0 +#: selection:partners.ledger.webkit,filter:0 +#: selection:trial.balance.webkit,filter:0 +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:91 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:104 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:100 +msgid "Date" +msgstr "Date" + +#. module: account_financial_report_webkit +#: help:general.ledger.webkit,centralize:0 +msgid "Uncheck to display all the details of centralized accounts." +msgstr "Décocher pour afficher ne pas activer la centralisation des comptes." + +#. module: account_financial_report_webkit +#: constraint:account.move.line:0 +msgid "Company must be same for its related account and period." +msgstr "La société doit être la même pour les comptes et périodes liées." + +#. module: account_financial_report_webkit +#: constraint:account.common.balance.report:0 +#: constraint:general.ledger.webkit:0 +#: constraint:partner.balance.webkit:0 +#: constraint:partners.ledger.webkit:0 +#: constraint:trial.balance.webkit:0 +msgid "When no Fiscal year is selected, you must choose to filter by periods or by date." +msgstr "When no Fiscal year is selected, you must choose to filter by periods or by date." + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:50 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:55 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:64 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:51 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:62 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:75 +msgid "To:" +msgstr "A:" + +#. module: account_financial_report_webkit +#: sql_constraint:account.account:0 +msgid "The code of the account must be unique per company !" +msgstr "Le code du compte doit être unique par société." + +#. module: account_financial_report_webkit +#: view:open.invoices.webkit:0 +#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_open_invoices_menu_webkit +msgid "Open Invoices" +msgstr "Factures ouvertes" + +#. module: account_financial_report_webkit +#: selection:account.common.balance.report,target_move:0 +#: selection:general.ledger.webkit,target_move:0 +#: selection:open.invoices.webkit,target_move:0 +#: selection:partner.balance.webkit,target_move:0 +#: selection:partners.ledger.webkit,target_move:0 +#: selection:trial.balance.webkit,target_move:0 +#: code:addons/account_financial_report_webkit/report/common_reports.py:80 +#, python-format +msgid "All Posted Entries" +msgstr "Ecritures validées" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:87 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:84 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:97 +#: code:addons/account_financial_report_webkit/wizard/balance_common.py:156 +#, python-format +msgid "Comparison %s" +msgstr "Comparaison %s" + +#. module: account_financial_report_webkit +#: selection:account.common.balance.report,display_account:0 +#: selection:general.ledger.webkit,display_account:0 +#: selection:partner.balance.webkit,display_account:0 +#: selection:trial.balance.webkit,display_account:0 +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:61 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:75 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:73 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:86 +msgid "All" +msgstr "Tous" + +#. module: account_financial_report_webkit +#: help:account.common.balance.report,fiscalyear_id:0 +#: help:general.ledger.webkit,fiscalyear_id:0 +#: help:open.invoices.webkit,fiscalyear_id:0 +#: help:partner.balance.webkit,fiscalyear_id:0 +#: help:partners.ledger.webkit,fiscalyear_id:0 +#: help:trial.balance.webkit,fiscalyear_id:0 +msgid "Keep empty for all open fiscal year" +msgstr "Laisser vide pour selectionner tout les excercices" + +#. module: account_financial_report_webkit +#: help:account.move.line,last_rec_date:0 +msgid "the date of the last reconciliation (full or partial) account move line" +msgstr "Date du léttrage le plus récent (total ou partiel) c'est à dire du dernier paiement" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:107 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:122 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:147 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:116 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:113 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:128 +msgid "Credit" +msgstr "Crédit" + +#. module: account_financial_report_webkit +#: selection:account.common.balance.report,filter:0 +#: selection:general.ledger.webkit,filter:0 +#: selection:open.invoices.webkit,filter:0 +#: selection:partner.balance.webkit,filter:0 +#: selection:partners.ledger.webkit,filter:0 +#: selection:trial.balance.webkit,filter:0 +msgid "No Filters" +msgstr "Pas de filtre" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/open_invoices.py:102 +#: code:addons/account_financial_report_webkit/report/partners_ledger.py:102 +#, python-format +msgid "Error" +msgstr "Erreur" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:152 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:118 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:133 +msgid "Balance" +msgstr "Solde" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:103 +msgid "Counter part" +msgstr "Contrepartie" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:168 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:134 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:149 +msgid "% Difference" +msgstr "% Différence" + +#. module: account_financial_report_webkit +#: help:account.common.balance.report,filter:0 +#: help:open.invoices.webkit,filter:0 +#: help:partner.balance.webkit,filter:0 +#: help:partners.ledger.webkit,filter:0 +#: help:trial.balance.webkit,filter:0 +msgid "Filter by date : no opening balance will be displayed. (opening balance can only be calculated based on period to be correct)." +msgstr "Filtre par date : pas de solde initiale calculé. (il ne peut etre correct que sur filtre par périod et une écriture peut avoir une date en dehors de sa période)." + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/common_reports.py:313 +#, python-format +msgid "No period found" +msgstr "Pas de période trouvée" + +#. module: account_financial_report_webkit +#: view:partner.balance.webkit:0 +#: code:addons/account_financial_report_webkit/report/partner_balance.py:47 +#, python-format +msgid "Partner Balance" +msgstr "Balance des tiers" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/general_ledger.py:146 +#, python-format +msgid "Centralized Entries" +msgstr "Ecritures centralisées" + +#. module: account_financial_report_webkit +#: view:general.ledger.webkit:0 +#: view:partner.balance.webkit:0 +#: view:trial.balance.webkit:0 +msgid "Accounts Filters" +msgstr "Filtre par compte" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:31 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:35 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:44 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:32 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:56 +msgid "Dates Filter" +msgstr "Filtre par date" + +#. module: account_financial_report_webkit +#: field:account.common.balance.report,fiscalyear_id:0 +#: field:general.ledger.webkit,fiscalyear_id:0 +#: field:open.invoices.webkit,fiscalyear_id:0 +#: field:partner.balance.webkit,fiscalyear_id:0 +#: field:partners.ledger.webkit,fiscalyear_id:0 +#: field:trial.balance.webkit,fiscalyear_id:0 +msgid "Fiscal year" +msgstr "Excercice comptable" + +#. module: account_financial_report_webkit +#: selection:account.common.balance.report,filter:0 +#: selection:general.ledger.webkit,filter:0 +#: selection:open.invoices.webkit,filter:0 +#: selection:partner.balance.webkit,filter:0 +#: selection:partners.ledger.webkit,filter:0 +#: selection:trial.balance.webkit,filter:0 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:45 +#: code:addons/account_financial_report_webkit/wizard/balance_common.py:168 +#, python-format +msgid "Periods" +msgstr "Periodes" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:112 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:127 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:121 +msgid "Curr. Balance" +msgstr "Solde Devise" + +#. module: account_financial_report_webkit +#: model:ir.model,name:account_financial_report_webkit.model_account_move_line +msgid "Journal Items" +msgstr "Lignes d'écriture" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/common_reports.py:416 +#, python-format +msgid "Invalid query mode" +msgstr "Mode de recherche invalide" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/open_invoices.py:161 +#, python-format +msgid "Unsuported filter" +msgstr "Filter non supporté" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/common_reports.py:60 +#, python-format +msgid "All accounts" +msgstr "Tout les comptes" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:93 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:106 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:102 +msgid "Period" +msgstr "Periode" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/common_reports.py:424 +#, python-format +msgid "No valid filter" +msgstr "Pas de filtre valide" + +#. module: account_financial_report_webkit +#: model:ir.ui.menu,name:account_financial_report_webkit.menu_account_open_invoices +msgid "Open Invoices" +msgstr "Etat des factures ouvertes" + +#. module: account_financial_report_webkit +#: view:open.invoices.webkit:0 +msgid "Clearance Analysis Options" +msgstr "Option d'analyse d'apurement de compte tiers" + +#. module: account_financial_report_webkit +#: selection:account.common.balance.report,filter:0 +#: selection:partner.balance.webkit,filter:0 +#: selection:trial.balance.webkit,filter:0 +msgid "Opening Only" +msgstr "Balance d'ouverture" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:97 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:110 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:106 +msgid "Journal" +msgstr "Journal" + +#. module: account_financial_report_webkit +#: field:general.ledger.webkit,amount_currency:0 +#: field:open.invoices.webkit,amount_currency:0 +#: field:partners.ledger.webkit,amount_currency:0 +msgid "With Currency" +msgstr "Avec devise" + +#. module: account_financial_report_webkit +#: field:open.invoices.webkit,result_selection:0 +#: field:partner.balance.webkit,result_selection:0 +#: field:partners.ledger.webkit,result_selection:0 +msgid "Partner's" +msgstr "Type de partenaire" + +#. module: account_financial_report_webkit +#: view:general.ledger.webkit:0 +msgid "This report allows you to print or generate a pdf of your general ledger with details of all your account journals" +msgstr "Cet etat vous permet d'éditer l'ensemble des écritures comptables par compte (Rq: pensez à centraliser certains comptes pour réduire le nombre de pages)" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/profit_loss.py:42 +#, python-format +msgid "PROFIT AND LOSS" +msgstr "PROFIT AND LOSS" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:27 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:31 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:40 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:28 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:39 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:52 +msgid "Chart of Account" +msgstr "Plan comptable" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:167 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:133 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:148 +msgid "Difference" +msgstr "Différence" + +#. module: account_financial_report_webkit +#: field:account.common.balance.report,target_move:0 +#: field:general.ledger.webkit,target_move:0 +#: field:open.invoices.webkit,target_move:0 +#: field:partner.balance.webkit,target_move:0 +#: field:partners.ledger.webkit,target_move:0 +#: field:trial.balance.webkit,target_move:0 +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:37 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:42 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:51 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:38 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:49 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:62 +msgid "Target Moves" +msgstr "Filtre d'écritures" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:44 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:49 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:58 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:45 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:56 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:69 +msgid "From:" +msgstr "Depuis:" + +#. module: account_financial_report_webkit +#: field:account.common.balance.report,date_to:0 +#: field:general.ledger.webkit,date_to:0 +#: field:open.invoices.webkit,date_to:0 +#: field:partner.balance.webkit,date_to:0 +#: field:partners.ledger.webkit,date_to:0 +#: field:trial.balance.webkit,date_to:0 +msgid "End Date" +msgstr "Date Fin" + +#. module: account_financial_report_webkit +#: field:open.invoices.webkit,until_date:0 +msgid "Clearance date" +msgstr "Date d'apurement" + +#. module: account_financial_report_webkit +#: model:ir.model,name:account_financial_report_webkit.model_account_report_partners_ledger_webkit +msgid "Partner Ledger Report" +msgstr "Livre des tiers" + +#. module: account_financial_report_webkit +#: view:open.invoices.webkit:0 +#: view:partner.balance.webkit:0 +#: view:partners.ledger.webkit:0 +msgid "Partners Filters" +msgstr "Filtre Partenaire" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:28 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:32 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:41 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:29 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:40 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:53 +msgid "Fiscal Year" +msgstr "Excercice comptable" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:77 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:94 +msgid "Yes" +msgstr "Oui" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:95 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:108 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:104 +msgid "Entry" +msgstr "Ecriture" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/general_ledger.py:64 +#: code:addons/account_financial_report_webkit/report/open_invoices.py:63 +#: code:addons/account_financial_report_webkit/report/partner_balance.py:63 +#: code:addons/account_financial_report_webkit/report/partners_ledger.py:64 +#: code:addons/account_financial_report_webkit/report/profit_loss.py:71 +#: code:addons/account_financial_report_webkit/report/trial_balance.py:64 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:67 +#, python-format +msgid "Page" +msgstr "Page" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:50 +msgid "Partners Filter" +msgstr "Filtre Partenaire" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/open_invoices.py:102 +#: code:addons/account_financial_report_webkit/report/partners_ledger.py:102 +#, python-format +msgid "No accounts to print." +msgstr "Aucun compte à imprimer" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/profit_loss.py:49 +#, python-format +msgid "Profit and Loss" +msgstr "Perte et profit" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:99 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:95 +msgid "No Partner" +msgstr "Pas de partenaire" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/open_invoices.py:41 +#, python-format +msgid "OPEN INVOICES REPORT" +msgstr "ETAT DES FACTURES OUVERTES" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/partners_ledger.py:41 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:57 +#, python-format +msgid "PARTNER LEDGER" +msgstr "LIVRE DES TIERS" + +#. module: account_financial_report_webkit +#: selection:account.common.balance.report,target_move:0 +#: selection:general.ledger.webkit,target_move:0 +#: selection:open.invoices.webkit,target_move:0 +#: selection:partner.balance.webkit,target_move:0 +#: selection:partners.ledger.webkit,target_move:0 +#: selection:trial.balance.webkit,target_move:0 +#: code:addons/account_financial_report_webkit/report/common_reports.py:82 +#, python-format +msgid "All Entries" +msgstr "Ecritures validées + brouillon" + +#. module: account_financial_report_webkit +#: sql_constraint:account.move.line:0 +msgid "Wrong credit or debit value in accounting entry !" +msgstr "Valeur erronée au crédit ou au débit dans l'écriture comptable !" + +#. module: account_financial_report_webkit +#: constraint:account.move.line:0 +msgid "You can not create move line on view account." +msgstr "Vous ne pouvez pas créer de ligne d'écriture sur un compte de type \"Vue\"." + diff --git a/account_financial_report_webkit/images/ledger.png b/account_financial_report_webkit/images/ledger.png new file mode 100644 index 0000000000000000000000000000000000000000..d99593f53f3bc3c5698c0861b7e8eefa2d69559f GIT binary patch literal 54833 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
d&WDJA9=RrL~4~R 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

M*jy$ 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 SkYi#KewY|o=$GrdME@UQ6VxOC literal 0 HcmV?d00001 diff --git a/account_financial_report_webkit/report/__init__.py b/account_financial_report_webkit/report/__init__.py new file mode 100644 index 00000000..d7d7cf9a --- /dev/null +++ b/account_financial_report_webkit/report/__init__.py @@ -0,0 +1,11 @@ +from . import common_reports +from . import common_partner_reports +from . import common_balance_reports +from . import common_partner_balance_reports +from . import general_ledger +from . import partners_ledger +from . import webkit_parser_header_fix +from . import trial_balance +from . import partner_balance +from . import open_invoices +#from . import account_report_profit_loss diff --git a/account_financial_report_webkit/report/common_balance_reports.py b/account_financial_report_webkit/report/common_balance_reports.py new file mode 100644 index 00000000..53700aba --- /dev/null +++ b/account_financial_report_webkit/report/common_balance_reports.py @@ -0,0 +1,272 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# Author: Guewen Baconnier +# Copyright Camptocamp SA 2011 +# SQL inspired from OpenERP original code +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +from operator import add + +from common_reports import CommonReportHeaderWebkit + + +class CommonBalanceReportHeaderWebkit(CommonReportHeaderWebkit): + """Define common helper for balance (trial balance, P&L, BS oriented financial report""" + + def _get_numbers_display(self, data): + return self._get_form_param('numbers_display', data) + + @staticmethod + def find_key_by_value_in_list(dic, value): + return [key for key, val in dic.iteritems() if value in val][0] + + def _get_account_details(self, account_ids, target_move, fiscalyear, main_filter, start, stop, initial_balance_mode, context=None): + """ + Get details of accounts to display on the report + @param account_ids: ids of accounts to get details + @param target_move: selection filter for moves (all or posted) + @param fiscalyear: browse of the fiscalyear + @param main_filter: selection filter period / date or none + @param start: start date or start period browse instance + @param stop: stop date or stop period browse instance + @param initial_balance_mode: False: no calculation, 'opening_balance': from the opening period, 'initial_balance': computed from previous year / periods + @return: dict of list containing accounts details, keys are the account ids + """ + if context is None: + context = {} + + account_obj = self.pool.get('account.account') + period_obj = self.pool.get('account.period') + use_period_ids = main_filter in ('filter_no', 'filter_period', 'filter_opening') + + if use_period_ids: + if main_filter == 'filter_opening': + period_ids = [start.id] + else: + period_ids = period_obj.build_ctx_periods(self.cursor, self.uid, start.id, stop.id) + # never include the opening in the debit / credit amounts + period_ids = self.exclude_opening_periods(period_ids) + + init_balance = False + if initial_balance_mode == 'opening_balance': + init_balance = self._read_opening_balance(account_ids, start) + elif initial_balance_mode: + init_balance = self._compute_initial_balances(account_ids, start, fiscalyear) + + ctx = context.copy() + ctx.update({'state': target_move, + 'all_fiscalyear': True}) + + if use_period_ids: + ctx.update({'periods': period_ids,}) + elif main_filter == 'filter_date': + ctx.update({'date_from': start, + 'date_to': stop}) + + accounts = account_obj.read(self.cursor, self.uid, account_ids, ['type','code','name','debit','credit', 'balance', 'parent_id','level','child_id'], ctx) + + accounts_by_id = {} + for account in accounts: + if init_balance: + # sum for top level views accounts + child_ids = account_obj._get_children_and_consol(self.cursor, self.uid, account['id'], ctx) + if child_ids: + child_init_balances = [init_bal['init_balance'] for acnt_id, init_bal in init_balance.iteritems() if acnt_id in child_ids ] + top_init_balance = reduce(add, child_init_balances) + account['init_balance'] = top_init_balance + else: + account.update(init_balance[account['id']]) + account['balance'] = account['init_balance'] + account['debit'] - account['credit'] + accounts_by_id[account['id']] = account + return accounts_by_id + + def _get_comparison_details(self, data, account_ids, target_move, comparison_filter, index): + """ + + @param data: data of the wizard form + @param account_ids: ids of the accounts to get details + @param comparison_filter: selected filter on the form for the comparison (filter_no, filter_year, filter_period, filter_date) + @param index: index of the fields to get (ie. comp1_fiscalyear_id where 1 is the index) + @return: dict of account details (key = account id) + """ + fiscalyear = self._get_info(data, "comp%s_fiscalyear_id" % (index,), 'account.fiscalyear') + start_period = self._get_info(data, "comp%s_period_from" % (index,), 'account.period') + stop_period = self._get_info(data, "comp%s_period_to" % (index,), 'account.period') + start_date = self._get_form_param("comp%s_date_from" % (index,), data) + stop_date = self._get_form_param("comp%s_date_to" % (index,), data) + init_balance = self.is_initial_balance_enabled(comparison_filter) + + accounts_by_ids = {} + comp_params = {} + details_filter = comparison_filter + if comparison_filter != 'filter_no': + start_period, stop_period, start, stop = \ + self._get_start_stop_for_filter(comparison_filter, fiscalyear, start_date, stop_date, start_period, stop_period) + if comparison_filter == 'filter_year': + details_filter = 'filter_no' + + initial_balance_mode = init_balance and self._get_initial_balance_mode(start) or False + accounts_by_ids = self._get_account_details(account_ids, target_move, fiscalyear, details_filter, + start, stop, initial_balance_mode) + comp_params = { + 'comparison_filter': comparison_filter, + 'fiscalyear': fiscalyear, + 'start': start, + 'stop': stop, + 'initial_balance': init_balance, + 'initial_balance_mode': initial_balance_mode, + } + + return accounts_by_ids, comp_params + + def _get_diff(self, balance, previous_balance): + """ + @param balance: current balance + @param previous_balance: last balance + @return: dict of form {'diff': difference, 'percent_diff': diff in percentage} + """ + diff = balance - previous_balance + + obj_precision = self.pool.get('decimal.precision') + precision = obj_precision.precision_get(self.cursor, self.uid, 'Account') + # round previous balance with account precision to avoid big numbers if previous + # balance is 0.0000001 or a any very small number + if round(previous_balance, precision) == 0: + percent_diff = False + else: + percent_diff = round(diff / previous_balance * 100, precision) + + return {'diff': diff, 'percent_diff': percent_diff} + + def _comp_filters(self, data, comparison_number): + """ + @param data: data of the report + @param comparison_number: number of comparisons + @return: list of comparison filters, nb of comparisons used and comparison mode (no_comparison, single, multiple) + """ + comp_filters = [] + for index in range(comparison_number): + comp_filters.append(self._get_form_param("comp%s_filter" % (index,), data, default='filter_no')) + + nb_comparisons = len([comp_filter for comp_filter in comp_filters if comp_filter != 'filter_no']) + if not nb_comparisons: + comparison_mode = 'no_comparison' + elif nb_comparisons > 1: + comparison_mode = 'multiple' + else: + comparison_mode = 'single' + return comp_filters, nb_comparisons, comparison_mode + + def _get_start_stop_for_filter(self, main_filter, fiscalyear, start_date, stop_date, start_period, stop_period): + if main_filter in ('filter_no', 'filter_year'): + start_period = self.get_first_fiscalyear_period(fiscalyear) + stop_period = self.get_last_fiscalyear_period(fiscalyear) + elif main_filter == 'filter_opening': + opening_period = self._get_st_fiscalyear_period(fiscalyear, special=True) + start_period = stop_period = opening_period + if main_filter == 'filter_date': + start = start_date + stop = stop_date + else: + start = start_period + stop = stop_period + + return start_period, stop_period, start, stop + + def compute_balance_data(self, data, filter_report_type=None): + new_ids = data['form']['account_ids'] or data['form']['chart_account_id'] + max_comparison = self._get_form_param('max_comparison', data, default=0) + main_filter = self._get_form_param('filter', data, default='filter_no') + + comp_filters, nb_comparisons, comparison_mode = self._comp_filters(data, max_comparison) + + fiscalyear = self.get_fiscalyear_br(data) + + start_period = self.get_start_period_br(data) + stop_period = self.get_end_period_br(data) + + target_move = self._get_form_param('target_move', data, default='all') + start_date = self._get_form_param('date_from', data) + stop_date = self._get_form_param('date_to', data) + chart_account = self._get_chart_account_id_br(data) + + start_period, stop_period, start, stop = \ + self._get_start_stop_for_filter(main_filter, fiscalyear, start_date, stop_date, start_period, stop_period) + + init_balance = self.is_initial_balance_enabled(main_filter) + initial_balance_mode = init_balance and self._get_initial_balance_mode(start) or False + + # Retrieving accounts + account_ids = self.get_all_accounts(new_ids, only_type=filter_report_type) + + # get details for each accounts, total of debit / credit / balance + accounts_by_ids = self._get_account_details(account_ids, target_move, fiscalyear, main_filter, start, stop, initial_balance_mode) + + comparison_params = [] + comp_accounts_by_ids = [] + for index in range(max_comparison): + if comp_filters[index] != 'filter_no': + comparison_result, comp_params = self._get_comparison_details(data, account_ids, target_move, comp_filters[index], index) + comparison_params.append(comp_params) + comp_accounts_by_ids.append(comparison_result) + + to_display = dict.fromkeys(account_ids, True) + objects = [] + for account in self.pool.get('account.account').browse(self.cursor, self.uid, account_ids): + if not account.parent_id: # hide top level account + continue + if account.type == 'consolidation': + to_display.update(dict([(a.id, False) for a in account.child_consol_ids])) + elif account.type == 'view': + to_display.update(dict([(a.id, True) for a in account.child_id])) + account.debit = accounts_by_ids[account.id]['debit'] + account.credit = accounts_by_ids[account.id]['credit'] + account.balance = accounts_by_ids[account.id]['balance'] + account.init_balance = accounts_by_ids[account.id].get('init_balance', 0.0) + + display_account = False # if any amount is != 0 in comparisons, we have to display the whole account + comp_accounts = [] + for comp_account_by_id in comp_accounts_by_ids: + values = comp_account_by_id.get(account.id) + values.update(self._get_diff(account.balance, values['balance'])) + display_account = any((values.get('credit', 0.0), values.get('debit', 0.0), values.get('balance', 0.0), values.get('init_balance', 0.0))) + comp_accounts.append(values) + account.comparisons = comp_accounts + # we have to display the account if a comparison as an amount or if we have an amount in the main column + # we set it as a property to let the data in the report if someone want to use it in a custom report + display_account = display_account or any((account.debit, account.credit, account.balance, account.init_balance)) + to_display.update({account.id: display_account and to_display[account.id]}) + objects.append(account) + + for account in objects: + account.to_display = to_display[account.id] + + context_report_values = { + 'fiscalyear': fiscalyear, + 'start_date': start_date, + 'stop_date': stop_date, + 'start_period': start_period, + 'stop_period': stop_period, + 'chart_account': chart_account, + 'comparison_mode': comparison_mode, + 'nb_comparison': nb_comparisons, + 'initial_balance': init_balance, + 'initial_balance_mode': initial_balance_mode, + 'comp_params': comparison_params, + } + return objects, new_ids, context_report_values diff --git a/account_financial_report_webkit/report/common_partner_balance_reports.py b/account_financial_report_webkit/report/common_partner_balance_reports.py new file mode 100644 index 00000000..c0dba07d --- /dev/null +++ b/account_financial_report_webkit/report/common_partner_balance_reports.py @@ -0,0 +1,275 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# Author: Guewen Baconnier +# Copyright Camptocamp SA 2011 +# SQL inspired from OpenERP original code +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +from collections import defaultdict +from operator import add + +from common_balance_reports import CommonBalanceReportHeaderWebkit +from common_partner_reports import CommonPartnersReportHeaderWebkit + + +class CommonPartnerBalanceReportHeaderWebkit(CommonBalanceReportHeaderWebkit, CommonPartnersReportHeaderWebkit): + """Define common helper for balance (trial balance, P&L, BS oriented financial report""" + + def _get_account_partners_details(self, account_by_ids, main_filter, target_move, start, + stop, initial_balance_mode, partner_filter_ids=False): + res = {} + filter_from = False + if main_filter in ('filter_period', 'filter_no', 'filter_opening'): + filter_from = 'period' + elif main_filter == 'filter_date': + filter_from = 'date' + + partners_init_balances_by_ids = {} + for account_id, account_details in account_by_ids.iteritems(): + partners_init_balances_by_ids.update(self._get_partners_initial_balances(account_id, + start, + initial_balance_mode, + partner_filter_ids=partner_filter_ids, + exclude_reconcile=False)) # we'll never exclude reconciled entries in the legal reports + opening_mode = 'exclude_opening' + if main_filter == 'filter_opening': + opening_mode = 'include_opening' + # get credit and debit for partner + details = self._get_partners_totals_account(filter_from, + account_id, + start, + stop, + target_move, + partner_filter_ids=partner_filter_ids, + mode=opening_mode) + + # merge initial balances in partner details + if partners_init_balances_by_ids.get(account_id): + for partner_id, initial_balances in partners_init_balances_by_ids[account_id].iteritems(): + if initial_balances.get('init_balance'): + details[partner_id].update({'init_balance': initial_balances['init_balance']}) + + # compute balance for the partner + for partner_id, partner_details in details.iteritems(): + details[partner_id]['balance'] = details[partner_id].get('init_balance', 0.0) +\ + details[partner_id].get('debit', 0.0) -\ + details[partner_id].get('credit', 0.0) + res[account_id] = details + + return res + + def _get_partners_initial_balances(self, account_ids, start_period, initial_balance_mode, partner_filter_ids=None, exclude_reconcile=False): + # we get the initial balance from the opening period (opening_balance) when the opening period is included in the start period and + # when there is at least one entry in the opening period. Otherwise we compute it from previous periods + if initial_balance_mode == 'opening_balance': + opening_period_selected = self.get_included_opening_period(start_period) + res = self._compute_partners_initial_balances(account_ids, start_period, partner_filter_ids, force_period_ids=opening_period_selected, exclude_reconcile=exclude_reconcile) + elif initial_balance_mode == 'initial_balance': + res = self._compute_partners_initial_balances(account_ids, start_period, partner_filter_ids, exclude_reconcile=exclude_reconcile) + else: + res = {} + return res + + def _get_partners_totals_account(self, filter_from, account_id, start, stop, target_move, partner_filter_ids=None, mode='exclude_opening'): + final_res = defaultdict(dict) + + sql_select = """ + SELECT account_move_line.partner_id, + sum(account_move_line.debit) AS debit, + sum(account_move_line.credit) AS credit + FROM account_move_line""" + sql_joins = '' + sql_where = "WHERE account_move_line.account_id = %(account_id)s AND account_move_line.state = 'valid' " + sql_conditions, search_params = getattr(self, '_get_query_params_from_'+filter_from+'s')(start, stop, mode=mode) + sql_where += sql_conditions + + if partner_filter_ids: + sql_where += " AND account_move_line.partner_id in %(partner_ids)s" + search_params.update({'partner_ids': tuple(partner_filter_ids),}) + + if target_move == 'posted': + sql_joins += "INNER JOIN account_move ON account_move_line.move_id = account_move.id" + sql_where += " AND account_move.state = %(target_move)s" + search_params.update({'target_move': target_move,}) + + sql_groupby = "GROUP BY account_move_line.partner_id" + + search_params.update({'account_id': account_id,}) + query = ' '.join((sql_select, sql_joins, sql_where, sql_groupby)) + + self.cursor.execute(query, search_params) + res = self.cursor.dictfetchall() + if res: + for row in res: + final_res[row['partner_id']] = row + return final_res + + def _get_filter_type(self, result_selection): + filter_type = ('payable', 'receivable') + if result_selection == 'customer': + filter_type = ('receivable',) + if result_selection == 'supplier': + filter_type = ('payable',) + return filter_type + + def _get_partners_comparison_details(self, data, account_ids, target_move, comparison_filter, index, partner_filter_ids=False): + """ + + @param data: data of the wizard form + @param account_ids: ids of the accounts to get details + @param comparison_filter: selected filter on the form for the comparison (filter_no, filter_year, filter_period, filter_date) + @param index: index of the fields to get (ie. comp1_fiscalyear_id where 1 is the index) + @param partner_filter_ids: list of ids of partners to select + @return: dict of account details (key = account id) + """ + fiscalyear = self._get_info(data, "comp%s_fiscalyear_id" % (index,), 'account.fiscalyear') + start_period = self._get_info(data, "comp%s_period_from" % (index,), 'account.period') + stop_period = self._get_info(data, "comp%s_period_to" % (index,), 'account.period') + start_date = self._get_form_param("comp%s_date_from" % (index,), data) + stop_date = self._get_form_param("comp%s_date_to" % (index,), data) + init_balance = self.is_initial_balance_enabled(comparison_filter) + + comp_params = {} + accounts_details_by_ids = defaultdict(dict) + if comparison_filter != 'filter_no': + start_period, stop_period, start, stop = \ + self._get_start_stop_for_filter(comparison_filter, fiscalyear, start_date, stop_date, start_period, stop_period) + details_filter = comparison_filter + if comparison_filter == 'filter_year': + details_filter = 'filter_no' + + initial_balance_mode = init_balance and self._get_initial_balance_mode(start) or False + + accounts_by_ids = self._get_account_details(account_ids, target_move, fiscalyear, details_filter, start, stop, initial_balance_mode) + + partner_details_by_ids = self._get_account_partners_details(accounts_by_ids, details_filter, + target_move, start, stop, initial_balance_mode, + partner_filter_ids=partner_filter_ids) + + for account_id in account_ids: + accounts_details_by_ids[account_id]['account'] = accounts_by_ids[account_id] + accounts_details_by_ids[account_id]['partners_amounts'] = partner_details_by_ids[account_id] + + comp_params = { + 'comparison_filter': comparison_filter, + 'fiscalyear': fiscalyear, + 'start': start, + 'stop': stop, + 'initial_balance_mode': initial_balance_mode, + } + + return accounts_details_by_ids, comp_params + + def compute_partner_balance_data(self, data, filter_report_type=None): + new_ids = data['form']['account_ids'] or data['form']['chart_account_id'] + max_comparison = self._get_form_param('max_comparison', data, default=0) + main_filter = self._get_form_param('filter', data, default='filter_no') + + comp_filters, nb_comparisons, comparison_mode = self._comp_filters(data, max_comparison) + + fiscalyear = self.get_fiscalyear_br(data) + + start_period = self.get_start_period_br(data) + stop_period = self.get_end_period_br(data) + target_move = self._get_form_param('target_move', data, default='all') + start_date = self._get_form_param('date_from', data) + stop_date = self._get_form_param('date_to', data) + chart_account = self._get_chart_account_id_br(data) + result_selection = self._get_form_param('result_selection', data) + partner_ids = self._get_form_param('partner_ids', data) + + filter_type = self._get_filter_type(result_selection) + + start_period, stop_period, start, stop = \ + self._get_start_stop_for_filter(main_filter, fiscalyear, start_date, stop_date, start_period, stop_period) + + initial_balance = self.is_initial_balance_enabled(main_filter) + initial_balance_mode = initial_balance and self._get_initial_balance_mode(start) or False + + # Retrieving accounts + account_ids = self.get_all_accounts(new_ids, only_type=filter_type, + filter_report_type=filter_report_type) + + # get details for each accounts, total of debit / credit / balance + accounts_by_ids = self._get_account_details(account_ids, target_move, fiscalyear, main_filter, start, stop, initial_balance_mode) + + partner_details_by_ids = self._get_account_partners_details(accounts_by_ids, + main_filter, + target_move, + start, + stop, + initial_balance_mode, + partner_filter_ids=partner_ids) + + comparison_params = [] + comp_accounts_by_ids = [] + for index in range(max_comparison): + if comp_filters[index] != 'filter_no': + comparison_result, comp_params = self._get_partners_comparison_details(data, account_ids, + target_move, comp_filters[index], + index, partner_filter_ids=partner_ids) + comparison_params.append(comp_params) + comp_accounts_by_ids.append(comparison_result) + objects = [] + + for account in self.pool.get('account.account').browse(self.cursor, self.uid, account_ids): + if not account.parent_id: # hide top level account + continue + account.debit = accounts_by_ids[account.id]['debit'] + account.credit = accounts_by_ids[account.id]['credit'] + account.balance = accounts_by_ids[account.id]['balance'] + account.init_balance = accounts_by_ids[account.id].get('init_balance', 0.0) + account.partners_amounts = partner_details_by_ids[account.id] + comp_accounts = [] + for comp_account_by_id in comp_accounts_by_ids: + values = comp_account_by_id.get(account.id) + + values['account'].update(self._get_diff(account.balance, values['account'].get('balance', 0.0))) + comp_accounts.append(values) + + for partner_id, partner_values in values['partners_amounts'].copy().iteritems(): + base_partner_balance = account.partners_amounts[partner_id]['balance'] if \ + account.partners_amounts.get(partner_id) else 0.0 + partner_values.update(self._get_diff(base_partner_balance, + partner_values.get('balance', 0.0))) + values['partners_amounts'][partner_id].update(partner_values) + + account.comparisons = comp_accounts + + all_partner_ids = reduce(add, [comp['partners_amounts'].keys() for comp in comp_accounts], + account.partners_amounts.keys()) + + account.partners_order = self._order_partners(all_partner_ids) + + objects.append(account) + + context_report_values = { + 'fiscalyear': fiscalyear, + 'start_date': start_date, + 'stop_date': stop_date, + 'start_period': start_period, + 'stop_period': stop_period, + 'chart_account': chart_account, + 'comparison_mode': comparison_mode, + 'nb_comparison': nb_comparisons, + 'comp_params': comparison_params, + 'initial_balance_mode': initial_balance_mode, + 'compute_diff': self._get_diff, + } + + return objects, new_ids, context_report_values diff --git a/account_financial_report_webkit/report/common_partner_reports.py b/account_financial_report_webkit/report/common_partner_reports.py new file mode 100644 index 00000000..5ebd36c3 --- /dev/null +++ b/account_financial_report_webkit/report/common_partner_reports.py @@ -0,0 +1,251 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# Author: Nicolas Bessi, Guewen Baconnier +# Copyright Camptocamp SA 2011 +# SQL inspired from OpenERP original code +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## +# TODO refactor helper in order to act more like mixin +# By using properties we will have a more simple signature in fuctions + +from collections import defaultdict + +from common_reports import CommonReportHeaderWebkit + + +class CommonPartnersReportHeaderWebkit(CommonReportHeaderWebkit): + """Define common helper for partner oriented financial report""" + + ####################Account move line retrieval helper ########################## + def get_partners_move_lines_ids(self, account_id, main_filter, start, stop, target_move, + exclude_reconcile=False, partner_filter=False): + filter_from = False + if main_filter in ('filter_period', 'filter_no'): + filter_from = 'period' + elif main_filter == 'filter_date': + filter_from = 'date' + if filter_from: + return self._get_partners_move_line_ids(filter_from, + account_id, + start, + stop, + target_move, + exclude_reconcile=exclude_reconcile, + partner_filter=partner_filter) + + def _get_query_params_from_periods(self, period_start, period_stop, mode='exclude_opening'): + # we do not want opening period so we exclude opening + periods = self.pool.get('account.period').build_ctx_periods(self.cr, self.uid, period_start.id, period_stop.id) + if not periods: + return [] + + if mode == 'exclude_opening': + periods = self.exclude_opening_periods(periods) + + search_params = {'period_ids': tuple(periods), + 'date_stop': period_stop.date_stop} + + sql_conditions = " AND account_move_line.period_id in %(period_ids)s" + + return sql_conditions, search_params + + def _get_query_params_from_dates(self, date_start, date_stop, **args): + + periods = self._get_opening_periods() + if not periods: + periods = (-1,) + + search_params = {'period_ids': tuple(periods), + 'date_start': date_start, + 'date_stop': date_stop} + + sql_conditions = " AND account_move_line.period_id not in %(period_ids)s" \ + " AND account_move_line.date between date(%(date_start)s) and date((%(date_stop)s))" + + return sql_conditions, search_params + + def _get_partners_move_line_ids(self, filter_from, account_id, start, stop, target_move, opening_mode='include_opening', + exclude_reconcile=False, partner_filter=False): + + final_res = defaultdict(list) + + sql_select = "SELECT account_move_line.id, account_move_line.partner_id FROM account_move_line" + sql_joins = '' + sql_where = " WHERE account_move_line.account_id = %(account_ids)s " \ + " AND account_move_line.state = 'valid' " + + sql_conditions, search_params = getattr(self, '_get_query_params_from_'+filter_from+'s')(start, stop, mode=opening_mode) + + sql_where += sql_conditions + + if exclude_reconcile: + sql_where += (" AND ((account_move_line.reconcile_id IS NULL)" + " OR (account_move_line.reconcile_id IS NOT NULL AND account_move_line.last_rec_date > date(%(date_stop)s)))") + + if partner_filter: + sql_where += " AND account_move_line.partner_id in %(partner_ids)s" + + if target_move == 'posted': + sql_joins += "INNER JOIN account_move ON account_move_line.move_id = account_move.id" + sql_where += " AND account_move.state = %(target_move)s" + search_params.update({'target_move': target_move,}) + + search_params.update({ + 'account_ids': account_id, + 'partner_ids': tuple(partner_filter), + }) + + sql = ' '.join((sql_select, sql_joins, sql_where)) + self.cursor.execute(sql, search_params) + res = self.cursor.dictfetchall() + if res: + for row in res: + final_res[row['partner_id']].append(row['id']) + return final_res + + def _get_clearance_move_line_ids(self, move_line_ids, date_stop, date_until): + if not move_line_ids: + return [] + move_line_obj = self.pool.get('account.move.line') + # we do not use orm in order to gain perfo + # In this case I have to test the effective gain over an itteration + # Actually ORM does not allows distinct behavior + sql = "Select distinct reconcile_id from account_move_line where id in %s" + self.cursor.execute(sql, (tuple(move_line_ids),)) + rec_ids = self.cursor.fetchall() + if rec_ids: + rec_ids = [x[0] for x in rec_ids] + l_ids = move_line_obj.search(self.cursor, + self.uid, + [('reconcile_id', 'in', rec_ids), + ('date', '>=', date_stop), + ('date', '<=', date_until)]) + return l_ids + else: + return [] + + ####################Initial Partner Balance helper ######################## + + def _tree_move_line_ids(self, move_lines_data, key=None): + """ + move_lines_data must be a list of dict which contains at least keys : + - account_id + - partner_id + - other keys with values of the line + - if param key is defined, only this key will be inserted in the tree + returns a tree like + res[account_id.1][partner_id.1][move_line.1, + move_line.2] + [partner_id.2][move_line.3] + res[account_id.2][partner_id.1][move_line.4] + """ + res = defaultdict(dict) + for row in move_lines_data[:]: + account_id = row.pop('account_id') + partner_id = row.pop('partner_id') + if key: + res[account_id].setdefault(partner_id, []).append(row[key]) + else: + res[account_id][partner_id] = row + return res + + def _partners_initial_balance_line_ids(self, account_ids, start_period, partner_filter, exclude_reconcile=False, force_period_ids=False, date_stop=None): + # take ALL previous periods + period_ids = force_period_ids \ + if force_period_ids \ + else self._get_period_range_from_start_period(start_period, fiscalyear=False, include_opening=False) + + if not period_ids: + period_ids = [-1] + search_param = {'date_start': start_period.date_start, + 'period_ids': tuple(period_ids), + 'account_ids': tuple(account_ids),} + sql = ("SELECT ml.id, ml.account_id, ml.partner_id " + "FROM account_move_line ml " + "INNER JOIN account_account a " + "ON a.id = ml.account_id " + "WHERE ml.period_id in %(period_ids)s " + "AND ml.account_id in %(account_ids)s ") + if exclude_reconcile: + if not date_stop: + raise Exception("Missing \"date_stop\" to compute the open invoices.") + search_param.update({'date_stop': date_stop}) + sql += ("AND ((ml.reconcile_id IS NULL)" + "OR (ml.reconcile_id IS NOT NULL AND ml.last_rec_date > date(%(date_stop)s))) ") + if partner_filter: + sql += "AND ml.partner_id in %(partner_ids)s " + search_param.update({'partner_ids': tuple(partner_filter)}) + + self.cursor.execute(sql, search_param) + return self.cursor.dictfetchall() + + def _compute_partners_initial_balances(self, account_ids, start_period, partner_filter=None, exclude_reconcile=False, force_period_ids=False): + """We compute initial balance. + If form is filtered by date all initial balance are equal to 0 + This function will sum pear and apple in currency amount if account as no secondary currency""" + if isinstance(account_ids, (int, long)): + account_ids = [account_ids] + move_line_ids = self._partners_initial_balance_line_ids(account_ids, start_period, partner_filter, + exclude_reconcile=exclude_reconcile, + force_period_ids=force_period_ids) + if not move_line_ids: + move_line_ids = [{'id': -1}] + sql = ("SELECT ml.account_id, ml.partner_id," + " sum(ml.debit) as debit, sum(ml.credit) as credit," + " sum(ml.debit-ml.credit) as init_balance," + " CASE WHEN a.currency_id ISNULL THEN 0.0 ELSE sum(ml.amount_currency) END as init_balance_currency, " + " c.name as currency_name " + "FROM account_move_line ml " + "INNER JOIN account_account a " + "ON a.id = ml.account_id " + "LEFT JOIN res_currency c " + "ON c.id = a.currency_id " + "WHERE ml.id in %(move_line_ids)s " + "GROUP BY ml.account_id, ml.partner_id, a.currency_id, c.name") + search_param = {'move_line_ids': tuple([move_line['id'] for move_line in move_line_ids])} + self.cursor.execute(sql, search_param) + res = self.cursor.dictfetchall() + return self._tree_move_line_ids(res) + + ####################Partner specific helper ################################ + def _order_partners(self, *args): + """We get the partner linked to all current accounts that are used. + We also use ensure that partner are ordered by name + args must be list""" + res = [] + partner_ids = [] + for arg in args: + if arg: + partner_ids += arg + if not partner_ids: + return [] + + existing_partner_ids = [partner_id for partner_id in partner_ids if partner_id] + if existing_partner_ids: + # We may use orm here as the performance optimization is not that big + sql = ("SELECT name|| ' ' ||CASE WHEN ref IS NOT NULL THEN '('||ref||')' ELSE '' END, id, ref, name" + " FROM res_partner WHERE id IN %s ORDER BY name, ref") + self.cursor.execute(sql, (tuple(set(existing_partner_ids)),)) + res = self.cursor.fetchall() + + # move lines without partners, set None for empty partner + if not all(partner_ids): + res.append((None, None, None, None)) + + if not res: + return [] + return res diff --git a/account_financial_report_webkit/report/common_reports.py b/account_financial_report_webkit/report/common_reports.py new file mode 100644 index 00000000..bce56a45 --- /dev/null +++ b/account_financial_report_webkit/report/common_reports.py @@ -0,0 +1,513 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# Author: Nicolas Bessi, Guewen Baconnier +# Copyright Camptocamp SA 2011 +# SQL inspired from OpenERP original code +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## +# TODO refactor helper in order to act more like mixin +# By using properties we will have a more simple signature in fuctions + +import logging + +from openerp.addons.account.report.common_report_header import common_report_header +from osv import osv +from tools.translate import _ + + +_logger = logging.getLogger('financial.reports.webkit') + +class CommonReportHeaderWebkit(common_report_header): + """Define common helper for financial report""" + + ####################From getter helper ##################################### + def get_start_period_br(self, data): + return self._get_info(data,'period_from', 'account.period') + + def get_end_period_br(self, data): + return self._get_info(data,'period_to', 'account.period') + + def get_fiscalyear_br(self, data): + return self._get_info(data,'fiscalyear_id', 'account.fiscalyear') + + def _get_chart_account_id_br(self, data): + return self._get_info(data, 'chart_account_id', 'account.account') + + def _get_accounts_br(self, data): + return self._get_info(data, 'account_ids', 'account.account') + + def _get_info(self, data, field, model): + info = data.get('form', {}).get(field) + if info: + return self.pool.get(model).browse(self.cursor, self.uid, info) + return False + + def _get_display_account(self, data): + val = self._get_form_param('display_account', data) + if val == 'bal_all': + return _('All accounts') + elif val == 'bal_mix': + return _('With transactions or non zero balance') + else: + return val + + def _get_display_partner_account(self, data): + val = self._get_form_param('result_selection', data) + if val == 'customer': + return _('Receivable Accounts') + elif val == 'supplier': + return _('Payable Accounts') + elif val == 'customer_supplier': + return _('Receivable and Payable Accounts') + else: + return val + + def _get_display_target_move(self, data): + val = self._get_form_param('target_move', data) + if val == 'posted': + return _('All Posted Entries') + elif val == 'all': + return _('All Entries') + else: + return val + + def _get_display_account_raw(self, data): + return self._get_form_param('display_account', data) + + def _get_filter(self, data): + return self._get_form_param('filter', data) + + def _get_target_move(self, data): + return self._get_form_param('target_move', data) + + def _get_initial_balance(self, data): + return self._get_form_param('initial_balance', data) + + def _get_amount_currency(self, data): + return self._get_form_param('amount_currency', data) + + def _get_date_from(self, data): + return self._get_form_param('date_from', data) + + def _get_date_to(self, data): + return self._get_form_param('date_to', data) + + def _get_form_param(self, param, data, default=False): + return data.get('form', {}).get(param, default) + + + + ####################Account and account line filter helper ################# + + def sort_accounts_with_structure(self, root_account_ids, account_ids, context=None): + """Sort accounts by code respecting their structure""" + + def recursive_sort_by_code(accounts, parent): + sorted_accounts = [] + # add all accounts with same parent + level_accounts = [account for account in accounts + if account['parent_id'] and account['parent_id'][0] == parent['id']] + # add consolidation children of parent, as they are logically on the same level + if parent.get('child_consol_ids'): + level_accounts.extend([account for account in accounts + if account['id'] in parent['child_consol_ids']]) + # stop recursion if no children found + if not level_accounts: + return [] + + level_accounts = sorted(level_accounts, key=lambda a: a['code']) + + for level_account in level_accounts: + sorted_accounts.append(level_account['id']) + sorted_accounts.extend(recursive_sort_by_code(accounts, parent=level_account)) + return sorted_accounts + + if not account_ids: + return [] + + accounts_data = self.pool.get('account.account').read(self.cr, self.uid, + account_ids, + ['id', 'parent_id', 'level', 'code', 'child_consol_ids'], + context=context) + + sorted_accounts = [] + + root_accounts_data = [account_data for account_data in accounts_data + if account_data['id'] in root_account_ids] + for root_account_data in root_accounts_data: + sorted_accounts.append(root_account_data['id']) + sorted_accounts.extend(recursive_sort_by_code(accounts_data, root_account_data)) + + # fallback to unsorted accounts when sort failed + # sort fails when the levels are miscalculated by account.account + # check lp:783670 + if len(sorted_accounts) != len(account_ids): + _logger.warn('Webkit financial reports: Sort of accounts failed.') + sorted_accounts = account_ids + + return sorted_accounts + + def get_all_accounts(self, account_ids, exclude_type=None, only_type=None, filter_report_type=None, context=None): + """Get all account passed in params with their childrens + + @param exclude_type: list of types to exclude (view, receivable, payable, consolidation, other) + @param only_type: list of types to filter on (view, receivable, payable, consolidation, other) + @param filter_report_type: list of report type to filter on + """ + context = context or {} + accounts = [] + if not isinstance(account_ids, list): + account_ids = [account_ids] + acc_obj = self.pool.get('account.account') + for account_id in account_ids: + accounts.append(account_id) + accounts += acc_obj._get_children_and_consol(self.cursor, self.uid, account_id, context=context) + res_ids = list(set(accounts)) + res_ids = self.sort_accounts_with_structure(account_ids, res_ids, context=context) + + if exclude_type or only_type or filter_report_type: + sql_filters = {'ids': tuple(res_ids)} + sql_select = "SELECT a.id FROM account_account a" + sql_join = "" + sql_where = "WHERE a.id IN %(ids)s" + if exclude_type: + sql_where += " AND a.type not in %(exclude_type)s" + sql_filters.update({'exclude_type': tuple(exclude_type)}) + if only_type: + sql_where += " AND a.type IN %(only_type)s" + sql_filters.update({'only_type': tuple(only_type)}) + if filter_report_type: + sql_join += "INNER JOIN account_account_type t" \ + " ON t.id = a.user_type" + sql_join += " AND t.report_type IN %(report_type)s" + sql_filters.update({'report_type': tuple(filter_report_type)}) + + sql = ' '.join((sql_select, sql_join, sql_where)) + self.cursor.execute(sql, sql_filters) + fetch_only_ids = self.cursor.fetchall() + if not fetch_only_ids: + return [] + only_ids = [only_id[0] for only_id in fetch_only_ids] + # keep sorting but filter ids + res_ids = [res_id for res_id in res_ids if res_id in only_ids] + return res_ids + + ####################Periods and fiscal years helper ####################### + + def _get_opening_periods(self): + """Return the list of all journal that can be use to create opening entries + We actually filter on this instead of opening period as older version of OpenERP + did not have this notion""" + return self.pool.get('account.period').search(self.cursor, self.uid, [('special', '=', True)]) + + def exclude_opening_periods(self, period_ids): + period_obj = self.pool.get('account.period') + return period_obj.search(self.cr, self.uid, [['special', '=', False], ['id', 'in', period_ids]]) + + def get_included_opening_period(self, period): + """Return the opening included in normal period we use the assumption + that there is only one opening period per fiscal year""" + period_obj = self.pool.get('account.period') + return period_obj.search(self.cursor, self.uid, + [('special', '=', True), + ('date_start', '>=', period.date_start), + ('date_stop', '<=', period.date_stop)], + limit=1) + + def periods_contains_move_lines(self, period_ids): + if not period_ids: + return False + mv_line_obj = self.pool.get('account.move.line') + if isinstance(period_ids, (int, long)): + period_ids = [period_ids] + return mv_line_obj.search(self.cursor, self.uid, [('period_id', 'in', period_ids)], limit=1) and True or False + + def _get_period_range_from_periods(self, start_period, stop_period, mode=None): + """ + Deprecated. We have to use now the build_ctx_periods of period_obj otherwise we'll have + inconsistencies, because build_ctx_periods does never filter on the the special + """ + period_obj = self.pool.get('account.period') + search_period = [('date_start', '>=', start_period.date_start), + ('date_stop', '<=', stop_period.date_stop)] + + if mode == 'exclude_opening': + search_period += [('special', '=', False)] + res = period_obj.search(self.cursor, self.uid, search_period) + return res + + def _get_period_range_from_start_period(self, start_period, include_opening=False, + fiscalyear=False, stop_at_previous_opening=False): + """We retrieve all periods before start period""" + opening_period_id = False + past_limit = [] + period_obj = self.pool.get('account.period') + mv_line_obj = self.pool.get('account.move.line') + # We look for previous opening period + if stop_at_previous_opening: + opening_search = [('special', '=', True), + ('date_stop', '<', start_period.date_start)] + if fiscalyear: + opening_search.append(('fiscalyear_id', '=', fiscalyear.id)) + + opening_periods = period_obj.search(self.cursor, self.uid, opening_search, + order='date_stop desc') + for opening_period in opening_periods: + validation_res = mv_line_obj.search(self.cursor, + self.uid, + [('period_id', '=', opening_period)], + limit=1) + if validation_res: + opening_period_id = opening_period + break + if opening_period_id: + #we also look for overlapping periods + opening_period_br = period_obj.browse(self.cursor, self.uid, opening_period_id) + past_limit = [('date_start', '>=', opening_period_br.date_stop)] + + periods_search = [('date_stop', '<=', start_period.date_stop)] + periods_search += past_limit + + if not include_opening: + periods_search += [('special', '=', False)] + + if fiscalyear : + periods_search.append(('fiscalyear_id', '=', fiscalyear.id)) + periods = period_obj.search(self.cursor, self.uid, periods_search) + if include_opening and opening_period_id: + periods.append(opening_period_id) + periods = list(set(periods)) + if start_period.id in periods: + periods.remove(start_period.id) + return periods + + def get_first_fiscalyear_period(self, fiscalyear): + return self._get_st_fiscalyear_period(fiscalyear) + + def get_last_fiscalyear_period(self, fiscalyear): + return self._get_st_fiscalyear_period(fiscalyear, order='DESC') + + def _get_st_fiscalyear_period(self, fiscalyear, special=False, order='ASC'): + period_obj = self.pool.get('account.period') + p_id = period_obj.search(self.cursor, + self.uid, + [('special','=', special), + ('fiscalyear_id', '=', fiscalyear.id)], + limit=1, + order='date_start %s' % (order,)) + if not p_id: + raise osv.except_osv(_('No period found'),'') + return period_obj.browse(self.cursor, self.uid, p_id[0]) + + ####################Initial Balance helper ################################# + + def _compute_init_balance(self, account_id=None, period_ids=None, mode='computed', default_values=False): + if not isinstance(period_ids, list): + period_ids = [period_ids] + res = {} + + if not default_values: + if not account_id or not period_ids: + raise Exception('Missing account or period_ids') + try: + self.cursor.execute("SELECT sum(debit) AS debit, " + " sum(credit) AS credit, " + " sum(debit)-sum(credit) AS balance, " + " sum(amount_currency) AS curr_balance" + " FROM account_move_line" + " WHERE period_id in %s" + " AND account_id = %s", (tuple(period_ids), account_id)) + res = self.cursor.dictfetchone() + + except Exception, exc: + self.cursor.rollback() + raise + + return {'debit': res.get('debit') or 0.0, + 'credit': res.get('credit') or 0.0, + 'init_balance': res.get('balance') or 0.0, + 'init_balance_currency': res.get('curr_balance') or 0.0, + 'state': mode} + + def _read_opening_balance(self, account_ids, start_period): + """ Read opening balances from the opening balance + """ + opening_period_selected = self.get_included_opening_period(start_period) + res = {} + for account_id in account_ids: + res[account_id] = self._compute_init_balance(account_id, opening_period_selected, mode='read') + return res + + def _compute_initial_balances(self, account_ids, start_period, fiscalyear): + """We compute initial balance. + If form is filtered by date all initial balance are equal to 0 + This function will sum pear and apple in currency amount if account as no secondary currency""" + # if opening period is included in start period we do not need to compute init balance + # we just read it from opening entries + res = {} + # PNL and Balance accounts are not computed the same way look for attached doc + # We include opening period in pnl account in order to see if opening entries + # were created by error on this account + pnl_periods_ids = self._get_period_range_from_start_period(start_period, fiscalyear=fiscalyear, + include_opening=True) + bs_period_ids = self._get_period_range_from_start_period(start_period, include_opening=True, + stop_at_previous_opening=True) + opening_period_selected = self.get_included_opening_period(start_period) + + for acc in self.pool.get('account.account').browse(self.cursor, self.uid, account_ids): + res[acc.id] = self._compute_init_balance(default_values=True) + if acc.user_type.close_method == 'none': + # we compute the initial balance for close_method == none only when we print a GL + # during the year, when the opening period is not included in the period selection! + if pnl_periods_ids and not opening_period_selected: + res[acc.id] = self._compute_init_balance(acc.id, pnl_periods_ids) + else: + res[acc.id] = self._compute_init_balance(acc.id, bs_period_ids) + return res + + ####################Account move retrieval helper ########################## + def _get_move_ids_from_periods(self, account_id, period_start, period_stop, target_move): + move_line_obj = self.pool.get('account.move.line') + period_obj = self.pool.get('account.period') + periods = period_obj.build_ctx_periods(self.cursor, self.uid, period_start.id, period_stop.id) + if not periods: + return [] + search = [('period_id', 'in', periods), ('account_id', '=', account_id)] + if target_move == 'posted': + search += [('move_id.state', '=', 'posted')] + return move_line_obj.search(self.cursor, self.uid, search) + + def _get_move_ids_from_dates(self, account_id, date_start, date_stop, target_move, mode='include_opening'): + # TODO imporve perfomance by setting opening period as a property + move_line_obj = self.pool.get('account.move.line') + search_period = [('date', '>=', date_start), + ('date', '<=', date_stop), + ('account_id', '=', account_id)] + + # actually not used because OpenERP itself always include the opening when we + # get the periods from january to december + if mode == 'exclude_opening': + opening = self._get_opening_periods() + if opening: + search_period += ['period_id', 'not in', opening] + + if target_move == 'posted': + search_period += [('move_id.state', '=', 'posted')] + + return move_line_obj.search(self.cursor, self.uid, search_period) + + def get_move_lines_ids(self, account_id, main_filter, start, stop, target_move, mode='include_opening'): + """Get account move lines base on form data""" + if mode not in ('include_opening', 'exclude_opening'): + raise osv.except_osv(_('Invalid query mode'), _('Must be in include_opening, exclude_opening')) + + if main_filter in ('filter_period', 'filter_no'): + return self._get_move_ids_from_periods(account_id, start, stop, target_move) + + elif main_filter == 'filter_date': + return self._get_move_ids_from_dates(account_id, start, stop, target_move) + else: + raise osv.except_osv(_('No valid filter'), _('Please set a valid time filter')) + + def _get_move_line_datas(self, move_line_ids, order='per.special DESC, l.date ASC, per.date_start ASC, m.name ASC'): + if not move_line_ids: + return [] + if not isinstance(move_line_ids, list): + move_line_ids = [move_line_ids] + monster =""" +SELECT l.id AS id, + l.date AS ldate, + j.code AS jcode , + l.currency_id, + l.account_id, + l.amount_currency, + l.ref AS lref, + l.name AS lname, + COALESCE(l.debit, 0.0) - COALESCE(l.credit, 0.0) AS balance, + l.debit, + l.credit, + l.period_id AS lperiod_id, + per.code as period_code, + per.special AS peropen, + l.partner_id AS lpartner_id, + p.name AS partner_name, + m.name AS move_name, + COALESCE(partialrec.name, fullrec.name, '') AS rec_name, + m.id AS move_id, + c.name AS currency_code, + i.id AS invoice_id, + i.type AS invoice_type, + i.number AS invoice_number, + l.date_maturity +FROM account_move_line l + JOIN account_move m on (l.move_id=m.id) + LEFT JOIN res_currency c on (l.currency_id=c.id) + LEFT JOIN account_move_reconcile partialrec on (l.reconcile_partial_id = partialrec.id) + LEFT JOIN account_move_reconcile fullrec on (l.reconcile_id = fullrec.id) + LEFT JOIN res_partner p on (l.partner_id=p.id) + LEFT JOIN account_invoice i on (m.id =i.move_id) + LEFT JOIN account_period per on (per.id=l.period_id) + JOIN account_journal j on (l.journal_id=j.id) + WHERE l.id in %s""" + monster += (" ORDER BY %s" % (order,)) + try: + self.cursor.execute(monster, (tuple(move_line_ids),)) + res= self.cursor.dictfetchall() + except Exception, exc: + self.cursor.rollback() + raise + return res or [] + + def _get_moves_counterparts(self, move_ids, account_id, limit=3): + if not move_ids: + return {} + if not isinstance(move_ids, list): + move_ids = [move_ids] + sql = """ +SELECT account_move.id, + array_to_string( + ARRAY(SELECT DISTINCT a.code + FROM account_move_line m2 + LEFT JOIN account_account a ON (m2.account_id=a.id) + WHERE m2.move_id =account_move_line.move_id + AND m2.account_id<>%s limit %s) , ', ') + +FROM account_move + JOIN account_move_line on (account_move_line.move_id = account_move.id) + JOIN account_account on (account_move_line.account_id = account_account.id) +WHERE move_id in %s""" + + try: + self.cursor.execute(sql, (account_id, limit, tuple(move_ids))) + res= self.cursor.fetchall() + except Exception, exc: + self.cursor.rollback() + raise + return res and dict(res) or {} + + def is_initial_balance_enabled(self, main_filter): + if main_filter not in ('filter_no', 'filter_year', 'filter_period'): + return False + return True + + def _get_initial_balance_mode(self, start_period): + opening_period_selected = self.get_included_opening_period(start_period) + opening_move_lines = self.periods_contains_move_lines(opening_period_selected) + if opening_move_lines: + return 'opening_balance' + else: + return 'initial_balance' diff --git a/account_financial_report_webkit/report/general_ledger.py b/account_financial_report_webkit/report/general_ledger.py new file mode 100644 index 00000000..5244ea07 --- /dev/null +++ b/account_financial_report_webkit/report/general_ledger.py @@ -0,0 +1,211 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# Author: Nicolas Bessi, Guewen Baconnier +# Copyright Camptocamp SA 2011 +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +from report import report_sxw +from tools.translate import _ +import pooler +from operator import itemgetter +from itertools import groupby +from datetime import datetime + +from common_reports import CommonReportHeaderWebkit +from webkit_parser_header_fix import HeaderFooterTextWebKitParser + +class GeneralLedgerWebkit(report_sxw.rml_parse, CommonReportHeaderWebkit): + + def __init__(self, cursor, uid, name, context): + super(GeneralLedgerWebkit, self).__init__(cursor, uid, name, context=context) + self.pool = pooler.get_pool(self.cr.dbname) + self.cursor = self.cr + + company = self.pool.get('res.users').browse(self.cr, uid, uid, context=context).company_id + header_report_name = ' - '.join((_('GENERAL LEDGER'), company.name, company.currency_id.name)) + + footer_date_time = self.formatLang(str(datetime.today()), date_time=True) + + self.localcontext.update({ + 'cr': cursor, + 'uid': uid, + 'report_name': _('General Ledger'), + 'display_account': self._get_display_account, + 'display_account_raw': self._get_display_account_raw, + 'filter_form': self._get_filter, + 'target_move': self._get_target_move, + 'initial_balance': self._get_initial_balance, + 'amount_currency': self._get_amount_currency, + 'display_target_move': self._get_display_target_move, + 'accounts': self._get_accounts_br, + 'additional_args': [ + ('--header-font-name', 'Helvetica'), + ('--footer-font-name', 'Helvetica'), + ('--header-font-size', '10'), + ('--footer-font-size', '6'), + ('--header-left', header_report_name), + ('--header-spacing', '2'), + ('--footer-left', footer_date_time), + ('--footer-right', ' '.join((_('Page'), '[page]', _('of'), '[topage]'))), + ('--footer-line',), + ], + }) + + def set_context(self, objects, data, ids, report_type=None): + """Populate a ledger_lines attribute on each browse record that will be used + by mako template""" + new_ids = data['form']['account_ids'] or data['form']['chart_account_id'] + + # Account initial balance memoizer + init_balance_memoizer = {} + + # Reading form + main_filter = self._get_form_param('filter', data, default='filter_no') + target_move = self._get_form_param('target_move', data, default='all') + start_date = self._get_form_param('date_from', data) + stop_date = self._get_form_param('date_to', data) + do_centralize = self._get_form_param('centralize', data) + start_period = self.get_start_period_br(data) + stop_period = self.get_end_period_br(data) + fiscalyear = self.get_fiscalyear_br(data) + chart_account = self._get_chart_account_id_br(data) + + if main_filter == 'filter_no': + start_period = self.get_first_fiscalyear_period(fiscalyear) + stop_period = self.get_last_fiscalyear_period(fiscalyear) + + # computation of ledger lines + if main_filter == 'filter_date': + start = start_date + stop = stop_date + else: + start = start_period + stop = stop_period + + initial_balance = self.is_initial_balance_enabled(main_filter) + initial_balance_mode = initial_balance and self._get_initial_balance_mode(start) or False + + # Retrieving accounts + accounts = self.get_all_accounts(new_ids, exclude_type=['view']) + if initial_balance_mode == 'initial_balance': + init_balance_memoizer = self._compute_initial_balances(accounts, start, fiscalyear) + + ledger_lines_memoizer = self._compute_account_ledger_lines(accounts, init_balance_memoizer, + main_filter, target_move, start, stop) + objects = [] + for account in self.pool.get('account.account').browse(self.cursor, self.uid, accounts): + if do_centralize and account.centralized and ledger_lines_memoizer.get(account.id): + account.ledger_lines = self._centralize_lines(main_filter, ledger_lines_memoizer.get(account.id, [])) + else: + account.ledger_lines = ledger_lines_memoizer.get(account.id, []) + account.init_balance = init_balance_memoizer.get(account.id, {}) + + objects.append(account) + + self.localcontext.update({ + 'fiscalyear': fiscalyear, + 'start_date': start_date, + 'stop_date': stop_date, + 'start_period': start_period, + 'stop_period': stop_period, + 'chart_account': chart_account, + 'initial_balance_mode': initial_balance_mode, + }) + + return super(GeneralLedgerWebkit, self).set_context(objects, data, new_ids, + report_type=report_type) + + def _centralize_lines(self, filter, ledger_lines, context=None): + """ Group by period in filter mode 'period' or on one line in filter mode 'date' + ledger_lines parameter is a list of dict built by _get_ledger_lines""" + def group_lines(lines): + if not lines: + return {} + sums = reduce(lambda line, memo: dict((key, value + memo[key]) for key, value + in line.iteritems() if key in ('balance', 'debit', 'credit')), lines) + + res_lines = { + 'balance': sums['balance'], + 'debit': sums['debit'], + 'credit': sums['credit'], + 'lname': _('Centralized Entries'), + 'account_id': lines[0]['account_id'], + } + return res_lines + + centralized_lines = [] + if filter == 'filter_date': + # by date we centralize all entries in only one line + centralized_lines.append(group_lines(ledger_lines)) + + else: # by period + # by period we centralize all entries in one line per period + period_obj = self.pool.get('account.period') + # we need to sort the lines per period in order to use groupby + # unique ids of each used period id in lines + period_ids = list(set([line['lperiod_id'] for line in ledger_lines ])) + # search on account.period in order to sort them by date_start + sorted_period_ids = period_obj.search(self.cr, self.uid, + [('id', 'in', period_ids)], + order='special desc, date_start', + context=context) + sorted_ledger_lines = sorted(ledger_lines, key=lambda x: sorted_period_ids.index(x['lperiod_id'])) + + for period_id, lines_per_period_iterator in groupby(sorted_ledger_lines, itemgetter('lperiod_id')): + lines_per_period = list(lines_per_period_iterator) + if not lines_per_period: + continue + group_per_period = group_lines(lines_per_period) + group_per_period.update({ + 'lperiod_id': period_id, + 'period_code': lines_per_period[0]['period_code'], # period code is anyway the same on each line per period + }) + centralized_lines.append(group_per_period) + + return centralized_lines + + def _compute_account_ledger_lines(self, accounts_ids, init_balance_memoizer, main_filter, + target_move, start, stop): + res = {} + for acc_id in accounts_ids: + move_line_ids = self.get_move_lines_ids(acc_id, main_filter, start, stop, target_move) + if not move_line_ids: + res[acc_id] = [] + continue + + lines = self._get_ledger_lines(move_line_ids, acc_id) + res[acc_id] = lines + return res + + def _get_ledger_lines(self, move_line_ids, account_id): + if not move_line_ids: + return [] + res = self._get_move_line_datas(move_line_ids) + ## computing counter part is really heavy in term of ressouces consuption + ## looking for a king of SQL to help me improve it + move_ids = [x.get('move_id') for x in res] + counter_parts = self._get_moves_counterparts(move_ids, account_id) + for line in res: + line['counterparts'] = counter_parts.get(line.get('move_id'), '') + return res + + +HeaderFooterTextWebKitParser('report.account.account_report_general_ledger_webkit', + 'account.account', + 'addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako', + parser=GeneralLedgerWebkit) diff --git a/account_financial_report_webkit/report/open_invoices.py b/account_financial_report_webkit/report/open_invoices.py new file mode 100644 index 00000000..90b9b676 --- /dev/null +++ b/account_financial_report_webkit/report/open_invoices.py @@ -0,0 +1,212 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# Author: Nicolas Bessi, Guewen Baconnier +# Copyright Camptocamp SA 2011 +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## +import pooler + +from collections import defaultdict +from report import report_sxw +from osv import osv +from tools.translate import _ +from datetime import datetime + +from common_partner_reports import CommonPartnersReportHeaderWebkit +from webkit_parser_header_fix import HeaderFooterTextWebKitParser + + +class PartnersOpenInvoicesWebkit(report_sxw.rml_parse, CommonPartnersReportHeaderWebkit): + + def __init__(self, cursor, uid, name, context): + super(PartnersOpenInvoicesWebkit, self).__init__(cursor, uid, name, context=context) + self.pool = pooler.get_pool(self.cr.dbname) + self.cursor = self.cr + + company = self.pool.get('res.users').browse(self.cr, uid, uid, context=context).company_id + header_report_name = ' - '.join((_('OPEN INVOICES REPORT'), company.name, company.currency_id.name)) + + footer_date_time = self.formatLang(str(datetime.today()), date_time=True) + + self.localcontext.update({ + 'cr': cursor, + 'uid': uid, + 'report_name':_('Open Invoices Report'), + 'display_account_raw': self._get_display_account_raw, + 'filter_form': self._get_filter, + 'target_move': self._get_target_move, + 'amount_currency': self._get_amount_currency, + 'display_partner_account': self._get_display_partner_account, + 'display_target_move': self._get_display_target_move, + 'additional_args': [ + ('--header-font-name', 'Helvetica'), + ('--footer-font-name', 'Helvetica'), + ('--header-font-size', '10'), + ('--footer-font-size', '6'), + ('--header-left', header_report_name), + ('--header-spacing', '2'), + ('--footer-left', footer_date_time), + ('--footer-right', ' '.join((_('Page'), '[page]', _('of'), '[topage]'))), + ('--footer-line',), + ], + }) + + def set_context(self, objects, data, ids, report_type=None): + """Populate a ledger_lines attribute on each browse record that will be used + by mako template""" + new_ids = data['form']['chart_account_id'] + + # Account initial balance memoizer + init_balance_memoizer = {} + # Reading form + main_filter = self._get_form_param('filter', data, default='filter_no') + target_move = self._get_form_param('target_move', data, default='all') + start_date = self._get_form_param('date_from', data) + stop_date = self._get_form_param('date_to', data) + start_period = self.get_start_period_br(data) + stop_period = self.get_end_period_br(data) + fiscalyear = self.get_fiscalyear_br(data) + partner_ids = self._get_form_param('partner_ids', data) + result_selection = self._get_form_param('result_selection', data) + date_until = self._get_form_param('until_date', data) + chart_account = self._get_chart_account_id_br(data) + + if main_filter == 'filter_no' and fiscalyear: + start_period = self.get_first_fiscalyear_period(fiscalyear) + stop_period = self.get_last_fiscalyear_period(fiscalyear) + + # Retrieving accounts + filter_type = ('payable', 'receivable') + if result_selection == 'customer': + filter_type = ('receivable',) + if result_selection == 'supplier': + filter_type = ('payable',) + + account_ids = self.get_all_accounts(new_ids, exclude_type=['view'], only_type=filter_type) + + if not account_ids: + raise osv.except_osv(_('Error'), _('No accounts to print.')) + + # computation of ledeger lines + if main_filter == 'filter_date': + start = start_date + stop = stop_date + else: + start = start_period + stop = stop_period + ledger_lines_memoizer = self._compute_open_transactions_lines(account_ids, + main_filter, + target_move, + start, + stop, + date_until, + partner_filter=partner_ids) + objects = [] + for account in self.pool.get('account.account').browse(self.cursor, self.uid, account_ids): + account.ledger_lines = ledger_lines_memoizer.get(account.id, {}) + account.init_balance = init_balance_memoizer.get(account.id, {}) + ## we have to compute partner order based on inital balance + ## and ledger line as we may have partner with init bal + ## that are not in ledger line and vice versa + ledg_lines_pids = ledger_lines_memoizer.get(account.id, {}).keys() + non_null_init_balances = dict([(ib, amounts) for ib, amounts in account.init_balance.iteritems() + if amounts['init_balance'] or amounts['init_balance_currency']]) + init_bal_lines_pids = non_null_init_balances.keys() + + account.partners_order = self._order_partners(ledg_lines_pids, init_bal_lines_pids) + account.ledger_lines = ledger_lines_memoizer.get(account.id, {}) + objects.append(account) + + self.localcontext.update({ + 'fiscalyear': fiscalyear, + 'start_date': start_date, + 'stop_date': stop_date, + 'start_period': start_period, + 'stop_period': stop_period, + 'date_until': date_until, + 'partner_ids': partner_ids, + 'chart_account': chart_account, + }) + + return super(PartnersOpenInvoicesWebkit, self).set_context(objects, data, new_ids, + report_type=report_type) + + def _compute_open_transactions_lines(self, accounts_ids, main_filter, target_move, start, stop, date_until=False, partner_filter=False): + res = defaultdict(dict) + + ## we check if until date and date stop have the same value + if main_filter in ('filter_period', 'filter_no'): + date_stop = stop.date_stop + date_until_match = (date_stop == date_until) + + elif main_filter == 'filter_date': + date_stop = stop + date_until_match = (stop == date_until) + + else: + raise osv.except_osv(_('Unsuported filter'), + _('Filter has to be in filter date, period, or none')) + + initial_move_lines_per_account = {} + if main_filter in ('filter_period', 'filter_no'): + initial_move_lines_per_account = self._tree_move_line_ids( + self._partners_initial_balance_line_ids(accounts_ids, + start, + partner_filter, + exclude_reconcile=True, + force_period_ids=False, + date_stop=date_stop), key='id') + + for account_id in accounts_ids: + initial_move_lines_ids_per_partner = initial_move_lines_per_account.get(account_id, {}) + + # We get the move line ids of the account depending of the + # way the initial balance was created we include or not opening entries + move_line_ids_per_partner = self.get_partners_move_lines_ids(account_id, + main_filter, + start, + stop, + target_move, + exclude_reconcile=True, + partner_filter=partner_filter) + + if not initial_move_lines_ids_per_partner and not move_line_ids_per_partner: + continue + for partner_id in list(set(initial_move_lines_ids_per_partner.keys() + move_line_ids_per_partner.keys())): + partner_line_ids = (move_line_ids_per_partner.get(partner_id, []) + + initial_move_lines_ids_per_partner.get(partner_id, [])) + + clearance_line_ids = [] + if date_until and not date_until_match and partner_line_ids: + clearance_line_ids = self._get_clearance_move_line_ids(partner_line_ids, date_stop, date_until) + partner_line_ids += clearance_line_ids + + lines = self._get_move_line_datas(list(set(partner_line_ids))) + for line in lines: + if line['id'] in initial_move_lines_ids_per_partner.get(partner_id, []): + line['is_from_previous_periods'] = True + if line['id'] in clearance_line_ids: + line['is_clearance_line'] = True + + res[account_id][partner_id] = lines + return res + + +HeaderFooterTextWebKitParser('report.account.account_report_open_invoices_webkit', + 'account.account', + 'addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako', + parser=PartnersOpenInvoicesWebkit) diff --git a/account_financial_report_webkit/report/partner_balance.py b/account_financial_report_webkit/report/partner_balance.py new file mode 100644 index 00000000..1e717832 --- /dev/null +++ b/account_financial_report_webkit/report/partner_balance.py @@ -0,0 +1,80 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# Author: Guewen Baconnier +# Copyright Camptocamp SA 2011 +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + + +from report import report_sxw +from tools.translate import _ +import pooler +from datetime import datetime + +from common_partner_balance_reports import CommonPartnerBalanceReportHeaderWebkit +from webkit_parser_header_fix import HeaderFooterTextWebKitParser + + +class PartnerBalanceWebkit(report_sxw.rml_parse, CommonPartnerBalanceReportHeaderWebkit): + + def __init__(self, cursor, uid, name, context): + super(PartnerBalanceWebkit, self).__init__(cursor, uid, name, context=context) + self.pool = pooler.get_pool(self.cr.dbname) + self.cursor = self.cr + + company = self.pool.get('res.users').browse(self.cr, uid, uid, context=context).company_id + header_report_name = ' - '.join((_('PARTNER BALANCE'), company.name, company.currency_id.name)) + + footer_date_time = self.formatLang(str(datetime.today()), date_time=True) + + self.localcontext.update({ + 'cr': cursor, + 'uid': uid, + 'report_name': _('Partner Balance'), + 'display_account': self._get_display_account, + 'display_account_raw': self._get_display_account_raw, + 'filter_form': self._get_filter, + 'target_move': self._get_target_move, + 'display_target_move': self._get_display_target_move, + 'display_partner_account': self._get_display_partner_account, + 'accounts': self._get_accounts_br, + 'additional_args': [ + ('--header-font-name', 'Helvetica'), + ('--footer-font-name', 'Helvetica'), + ('--header-font-size', '10'), + ('--footer-font-size', '6'), + ('--header-left', header_report_name), + ('--header-spacing', '2'), + ('--footer-left', footer_date_time), + ('--footer-right', ' '.join((_('Page'), '[page]', _('of'), '[topage]'))), + ('--footer-line',), + ], + }) + + def set_context(self, objects, data, ids, report_type=None): + """Populate a ledger_lines attribute on each browse record that will be used + by mako template""" + objects, new_ids, context_report_values = self.compute_partner_balance_data(data) + + self.localcontext.update(context_report_values) + return super(PartnerBalanceWebkit, self).set_context(objects, data, new_ids, + report_type=report_type) + +HeaderFooterTextWebKitParser('report.account.account_report_partner_balance_webkit', + 'account.account', + 'addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako', + parser=PartnerBalanceWebkit) diff --git a/account_financial_report_webkit/report/partners_ledger.py b/account_financial_report_webkit/report/partners_ledger.py new file mode 100644 index 00000000..44b01699 --- /dev/null +++ b/account_financial_report_webkit/report/partners_ledger.py @@ -0,0 +1,190 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# Author: Nicolas Bessi, Guewen Baconnier +# Copyright Camptocamp SA 2011 +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## +import pooler + +from collections import defaultdict +from report import report_sxw +from osv import osv +from tools.translate import _ +from datetime import datetime + +from common_partner_reports import CommonPartnersReportHeaderWebkit +from webkit_parser_header_fix import HeaderFooterTextWebKitParser + + +class PartnersLedgerWebkit(report_sxw.rml_parse, CommonPartnersReportHeaderWebkit): + + def __init__(self, cursor, uid, name, context): + super(PartnersLedgerWebkit, self).__init__(cursor, uid, name, context=context) + self.pool = pooler.get_pool(self.cr.dbname) + self.cursor = self.cr + + company = self.pool.get('res.users').browse(self.cr, uid, uid, context=context).company_id + header_report_name = ' - '.join((_('PARTNER LEDGER'), company.name, company.currency_id.name)) + + footer_date_time = self.formatLang(str(datetime.today()), date_time=True) + + self.localcontext.update({ + 'cr': cursor, + 'uid': uid, + 'report_name':_('Partner Ledger'), + 'display_account_raw': self._get_display_account_raw, + 'filter_form': self._get_filter, + 'target_move': self._get_target_move, + 'initial_balance': self._get_initial_balance, + 'amount_currency': self._get_amount_currency, + 'display_partner_account': self._get_display_partner_account, + 'display_target_move': self._get_display_target_move, + 'additional_args': [ + ('--header-font-name', 'Helvetica'), + ('--footer-font-name', 'Helvetica'), + ('--header-font-size', '10'), + ('--footer-font-size', '6'), + ('--header-left', header_report_name), + ('--header-spacing', '2'), + ('--footer-left', footer_date_time), + ('--footer-right', ' '.join((_('Page'), '[page]', _('of'), '[topage]'))), + ('--footer-line',), + ], + }) + + def set_context(self, objects, data, ids, report_type=None): + """Populate a ledger_lines attribute on each browse record that will be used + by mako template""" + new_ids = data['form']['chart_account_id'] + + # account partner memoizer + # Reading form + main_filter = self._get_form_param('filter', data, default='filter_no') + target_move = self._get_form_param('target_move', data, default='all') + start_date = self._get_form_param('date_from', data) + stop_date = self._get_form_param('date_to', data) + start_period = self.get_start_period_br(data) + stop_period = self.get_end_period_br(data) + fiscalyear = self.get_fiscalyear_br(data) + partner_ids = self._get_form_param('partner_ids', data) + result_selection = self._get_form_param('result_selection', data) + chart_account = self._get_chart_account_id_br(data) + + if main_filter == 'filter_no' and fiscalyear: + start_period = self.get_first_fiscalyear_period(fiscalyear) + stop_period = self.get_last_fiscalyear_period(fiscalyear) + + # Retrieving accounts + filter_type = ('payable', 'receivable') + if result_selection == 'customer': + filter_type = ('receivable',) + if result_selection == 'supplier': + filter_type = ('payable',) + + accounts = self.get_all_accounts(new_ids, exclude_type=['view'], + only_type=filter_type) + + if not accounts: + raise osv.except_osv(_('Error'), _('No accounts to print.')) + + if main_filter == 'filter_date': + start = start_date + stop = stop_date + else: + start = start_period + stop = stop_period + + # when the opening period is included in the selected range of periods and + # the opening period contains move lines, we must not compute the initial balance from previous periods + # but only display the move lines of the opening period + # we identify them as : + # - 'initial_balance' means compute the sums of move lines from previous periods + # - 'opening_balance' means display the move lines of the opening period + init_balance = main_filter in ('filter_no', 'filter_period') + initial_balance_mode = init_balance and self._get_initial_balance_mode(start) or False + + init_balance_memoizer = {} + if initial_balance_mode == 'initial_balance': + init_balance_memoizer = self._compute_partners_initial_balances(accounts, + start_period, + partner_filter=partner_ids, + exclude_reconcile=False) + + ledger_lines_memoizer = self._compute_partner_ledger_lines(accounts, + main_filter, + target_move, + start, + stop, + partner_filter=partner_ids) + objects = [] + for account in self.pool.get('account.account').browse(self.cursor, self.uid, accounts): + account.ledger_lines = ledger_lines_memoizer.get(account.id, {}) + account.init_balance = init_balance_memoizer.get(account.id, {}) + ## we have to compute partner order based on inital balance + ## and ledger line as we may have partner with init bal + ## that are not in ledger line and vice versa + ledg_lines_pids = ledger_lines_memoizer.get(account.id, {}).keys() + if initial_balance_mode: + non_null_init_balances = dict([(ib, amounts) for ib, amounts in account.init_balance.iteritems() + if amounts['init_balance'] or amounts['init_balance_currency']]) + init_bal_lines_pids = non_null_init_balances.keys() + else: + account.init_balance = {} + init_bal_lines_pids = [] + + account.partners_order = self._order_partners(ledg_lines_pids, init_bal_lines_pids) + account.ledger_lines = ledger_lines_memoizer.get(account.id, {}) + objects.append(account) + + self.localcontext.update({ + 'fiscalyear': fiscalyear, + 'start_date': start_date, + 'stop_date': stop_date, + 'start_period': start_period, + 'stop_period': stop_period, + 'partner_ids': partner_ids, + 'chart_account': chart_account, + 'initial_balance_mode': initial_balance_mode, + }) + + return super(PartnersLedgerWebkit, self).set_context(objects, data, new_ids, + report_type=report_type) + + def _compute_partner_ledger_lines(self, accounts_ids, main_filter, target_move, start, stop, partner_filter=False): + res = defaultdict(dict) + + for acc_id in accounts_ids: + move_line_ids = self.get_partners_move_lines_ids(acc_id, + main_filter, + start, + stop, + target_move, + exclude_reconcile=False, + partner_filter=partner_filter) + if not move_line_ids: + continue + for partner_id in move_line_ids: + partner_line_ids = move_line_ids.get(partner_id, []) + lines = self._get_move_line_datas(list(set(partner_line_ids))) + res[acc_id][partner_id] = lines + return res + + +HeaderFooterTextWebKitParser('report.account.account_report_partners_ledger_webkit', + 'account.account', + 'addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako', + parser=PartnersLedgerWebkit) diff --git a/account_financial_report_webkit/report/profit_loss.py b/account_financial_report_webkit/report/profit_loss.py new file mode 100644 index 00000000..d53362e0 --- /dev/null +++ b/account_financial_report_webkit/report/profit_loss.py @@ -0,0 +1,115 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# Author: Guewen Baconnier +# Copyright Camptocamp SA 2011 +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +import pooler + +from report import report_sxw +from tools.translate import _ +from datetime import datetime +from common_balance_reports import CommonBalanceReportHeaderWebkit +from webkit_parser_header_fix import HeaderFooterTextWebKitParser + + +class ProfitLossWebkit(report_sxw.rml_parse, CommonBalanceReportHeaderWebkit): + + def __init__(self, cursor, uid, name, context): + super(ProfitLossWebkit, self).__init__(cursor, uid, name, context=context) + self.pool = pooler.get_pool(self.cr.dbname) + self.cursor = self.cr + + company = self.pool.get('res.users').browse(self.cr, uid, uid, context=context).company_id + header_report_name = ' - '.join((_('PROFIT AND LOSS'), company.name, company.currency_id.name)) + + footer_date_time = self.formatLang(str(datetime.today()), date_time=True) + + self.localcontext.update({ + 'cr': cursor, + 'uid': uid, + 'report_name': _('Profit and Loss'), + 'display_account': self._get_display_account, + 'display_account_raw': self._get_display_account_raw, + 'filter_form': self._get_filter, + 'target_move': self._get_target_move, + 'display_target_move': self._get_display_target_move, + 'accounts': self._get_accounts_br, + 'numbers_display': self._get_numbers_display, + 'level_print': self._get_level_print, + 'level_bold': self._get_level_bold, + 'level_italic': self._get_level_italic, + 'level_size': self._get_level_size, + 'level_underline': self._get_level_underline, + 'level_uppercase': self._get_level_uppercase, + 'additional_args': [ + ('--header-font-name', 'Helvetica'), + ('--footer-font-name', 'Helvetica'), + ('--header-font-size', '10'), + ('--footer-font-size', '6'), + ('--header-left', header_report_name), + ('--header-spacing', '2'), + ('--footer-left', footer_date_time), + ('--footer-right', ' '.join((_('Page'), '[page]', _('of'), '[topage]'))), + ('--footer-line',), + ], + }) + + def _get_level_print(self, data, level): + return self._get_form_param("level%s_print" % (level,), data) + + def _get_level_bold(self, data, level): + return self._get_form_param("level%s_bold" % (level,), data) + + def _get_level_italic(self, data, level): + return self._get_form_param("level%s_italic" % (level,), data) + + def _get_level_size(self, data, level): + return self._get_form_param("level%s_size" % (level,), data) + + def _get_level_underline(self, data, level): + return self._get_form_param("level%s_underline" % (level,), data) + + def _get_level_uppercase(self, data, level): + return self._get_form_param("level%s_uppercase" % (level,), data) + + def _update_levels(self, objects): + # start leveling from 0 + levels = [account['current']['level'] for account in objects] + min_level = min(levels) + + for account in objects: + account['current']['level'] -= min_level + return objects + + def set_context(self, objects, data, ids, report_type=None): + """Populate a ledger_lines attribute on each browse record that will be used + by mako template""" + objects, new_ids, context_report_values = self.compute_balance_data(data, filter_report_type=['expense', 'income']) + + objects = self._update_levels(objects) + + self.localcontext.update(context_report_values) + + return super(ProfitLossWebkit, self).set_context(objects, data, new_ids, + report_type=report_type) + +HeaderFooterTextWebKitParser('report.account.account_report_profit_loss_webkit', + 'account.account', + 'addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako', + parser=ProfitLossWebkit) diff --git a/account_financial_report_webkit/report/report.xml b/account_financial_report_webkit/report/report.xml new file mode 100644 index 00000000..3579a120 --- /dev/null +++ b/account_financial_report_webkit/report/report.xml @@ -0,0 +1,104 @@ + + + + + + webkit + account.account_report_general_ledger_webkit + + + + + account.account + ir.actions.report.xml + General Ledger Webkit + account_financial_report_webkit/report/templates/account_report_general_ledger.mako + account_financial_report_webkit/report/templates/account_report_general_ledger.mako + + + + + + + webkit + account.account_report_partners_ledger_webkit + + + + + account.account + ir.actions.report.xml + Partner Ledger Webkit + account_financial_report_webkit/report/templates/account_report_partners_ledger.mako + account_financial_report_webkit/report/templates/account_report_partners_ledger.mako + + + + + webkit + account.account_report_trial_balance_webkit + + + + + account.account + ir.actions.report.xml + Trial Balance Webkit + account_financial_report_webkit/report/templates/account_report_trial_balance.mako + account_financial_report_webkit/report/templates/account_report_trial_balance.mako + + + + + webkit + account.account_report_partner_balance_webkit + + + + + account.account + ir.actions.report.xml + Partner Balance Webkit + account_financial_report_webkit/report/templates/account_report_partner_balance.mako + account_financial_report_webkit/report/templates/account_report_partner_balance.mako + + + + + webkit + account.account_report_open_invoices_webkit + + + + + account.account + ir.actions.report.xml + Open Invoices Report + account_financial_report_webkit/report/templates/account_report_open_invoices.mako + account_financial_report_webkit/report/templates/account_report_open_invoices.mako + + + + + + + + + + + + + + + + + + + diff --git a/account_financial_report_webkit/report/templates/account_report_general_ledger.mako b/account_financial_report_webkit/report/templates/account_report_general_ledger.mako new file mode 100644 index 00000000..df819cb4 --- /dev/null +++ b/account_financial_report_webkit/report/templates/account_report_general_ledger.mako @@ -0,0 +1,226 @@ + + + + + + + <%! + def amount(text): + return text.replace('-', '‑') # replace by a non-breaking hyphen (it will not word-wrap between hyphen and numbers) + %> + + <%setLang(user.context_lang)%> + + <% + initial_balance_text = {'initial_balance': _('Computed'), 'opening_balance': _('Opening Entries'), False: _('No')} + %> + +

+
+
${_('Chart of Account')}
+
${_('Fiscal Year')}
+
+ %if filter_form(data) == 'filter_date': + ${_('Dates Filter')} + %else: + ${_('Periods Filter')} + %endif +
+
${_('Accounts Filter')}
+
${_('Target Moves')}
+
${_('Initial Balance')}
+
+
+
${ chart_account.name }
+
${ fiscalyear.name if fiscalyear else '-' }
+
+ ${_('From:')} + %if filter_form(data) == 'filter_date': + ${formatLang(start_date, date=True) if start_date else u'' } + %else: + ${start_period.name if start_period else u''} + %endif + ${_('To:')} + %if filter_form(data) == 'filter_date': + ${ formatLang(stop_date, date=True) if stop_date else u'' } + %else: + ${stop_period.name if stop_period else u'' } + %endif +
+
+ %if accounts(data): + ${', '.join([account.code for account in accounts(data)])} + %else: + ${_('All')} + %endif + +
+
${ display_target_move(data) }
+
${ initial_balance_text[initial_balance_mode] }
+
+
+ + + %for account in objects: + <% + display_initial_balance = account.init_balance and (account.init_balance.get('debit', 0.0) != 0.0 or account.init_balance.get('credit', 0.0) != 0.0) + display_ledger_lines = account.ledger_lines + %> + %if display_account_raw(data) == 'all' or (display_ledger_lines or display_initial_balance): + <% + cumul_debit = 0.0 + cumul_credit = 0.0 + cumul_balance = 0.0 + cumul_balance_curr = 0.0 + %> +
+ + +
+
+ ## date +
${_('Date')}
+ ## period +
${_('Period')}
+ ## move +
${_('Entry')}
+ ## journal +
${_('Journal')}
+ ## partner +
${_('Partner')}
+ ## label +
${_('Label')}
+ ## counterpart +
${_('Counter part')}
+ ## debit +
${_('Debit')}
+ ## credit +
${_('Credit')}
+ ## balance cumulated +
${_('Cumul. Bal.')}
+ %if amount_currency(data): + ## currency balance +
${_('Curr. Balance')}
+ ## curency code +
${_('Curr.')}
+ %endif +
+
+ +
+ %if display_initial_balance: + <% + cumul_debit = account.init_balance.get('debit') or 0.0 + cumul_credit = account.init_balance.get('credit') or 0.0 + cumul_balance = account.init_balance.get('init_balance') or 0.0 + cumul_balance_curr = account.init_balance.get('init_balance_currency') or 0.0 + %> +
+ ## date +
+ ## period +
+ ## move +
+ ## journal +
+ ## partner +
+ ## label +
${_('Initial Balance')}
+ ## counterpart +
+ ## debit +
${formatLang(account.init_balance.get('debit')) | amount}
+ ## credit +
${formatLang(account.init_balance.get('credit')) | amount}
+ ## balance cumulated +
${formatLang(cumul_balance) | amount }
+ %if amount_currency(data): + ## currency balance +
${formatLang(cumul_balance_curr) | amount }
+ ## curency code +
+ %endif + +
+ %endif + %for line in account.ledger_lines: + <% + cumul_debit += line.get('debit') or 0.0 + cumul_credit += line.get('credit') or 0.0 + cumul_balance_curr += line.get('amount_currency') or 0.0 + cumul_balance += line.get('balance') or 0.0 + label_elements = [line.get('lname') or ''] + if line.get('invoice_number'): + label_elements.append("(%s)" % (line['invoice_number'],)) + label = ' '.join(label_elements) + %> + +
+ ## date +
${formatLang(line.get('ldate') or '', date=True)}
+ ## period +
${line.get('period_code') or ''}
+ ## move +
${line.get('move_name') or ''}
+ ## journal +
${line.get('jcode') or ''}
+ ## partner +
${line.get('partner_name') or ''}
+ ## label +
${label}
+ ## counterpart +
${line.get('counterparts') or ''}
+ ## debit +
${ formatLang(line.get('debit', 0.0)) | amount }
+ ## credit +
${ formatLang(line.get('credit', 0.0)) | amount }
+ ## balance cumulated +
${ formatLang(cumul_balance) | amount }
+ %if amount_currency(data): + ## currency balance +
${formatLang(line.get('amount_currency') or 0.0) | amount }
+ ## curency code +
${line.get('currency_code') or ''}
+ %endif +
+ %endfor +
+
+
+ ## date +
${account.code} - ${account.name}
+
${_("Cumulated Balance on Account")}
+ ## debit +
${ formatLang(cumul_debit) | amount }
+ ## credit +
${ formatLang(cumul_credit) | amount }
+ ## balance cumulated +
${ formatLang(cumul_balance) | amount }
+ %if amount_currency(data): + %if account.currency_id: + ## currency balance +
${formatLang(cumul_balance_curr) | amount }
+ %else: +
-
+ %endif + ## curency code +
+ %endif +
+
+
+ %endif + %endfor + + diff --git a/account_financial_report_webkit/report/templates/account_report_open_invoices.mako b/account_financial_report_webkit/report/templates/account_report_open_invoices.mako new file mode 100644 index 00000000..ebc4ecd4 --- /dev/null +++ b/account_financial_report_webkit/report/templates/account_report_open_invoices.mako @@ -0,0 +1,251 @@ + + + + + + + <%! + def amount(text): + return text.replace('-', '‑') # replace by a non-breaking hyphen (it will not word-wrap between hyphen and numbers) + %> + + <%setLang(user.context_lang)%> + +
+
+
${_('Chart of Account')}
+
${_('Fiscal Year')}
+
+ %if filter_form(data) == 'filter_date': + ${_('Dates Filter')} + %else: + ${_('Periods Filter')} + %endif +
+
${_('Clearance Date')}
+
${_('Accounts Filter')}
+
${_('Target Moves')}
+ +
+
+
${ chart_account.name }
+
${ fiscalyear.name if fiscalyear else '-' }
+
+ ${_('From:')} + %if filter_form(data) == 'filter_date': + ${formatLang(start_date, date=True) if start_date else u'' } + %else: + ${start_period.name if start_period else u''} + %endif + ${_('To:')} + %if filter_form(data) == 'filter_date': + ${ formatLang(stop_date, date=True) if stop_date else u'' } + %else: + ${stop_period.name if stop_period else u'' } + %endif +
+
${ formatLang(date_until, date=True) }
+
+ %if partner_ids: + ${_('Custom Filter')} + %else: + ${ display_partner_account(data) } + %endif +
+
${ display_target_move(data) }
+
+
+ + %for account in objects: + %if account.ledger_lines: + <% + if not account.partners_order: + continue + account_total_debit = 0.0 + account_total_credit = 0.0 + account_balance_cumul = 0.0 + account_balance_cumul_curr = 0.0 + %> + + + + %for partner_name, p_id, p_ref, p_name in account.partners_order: + <% + total_debit = 0.0 + total_credit = 0.0 + cumul_balance = 0.0 + cumul_balance_curr = 0.0 + + part_cumul_balance = 0.0 + part_cumul_balance_curr = 0.0 + %> +
+ +
+
+ ## date +
${_('Date')}
+ ## period +
${_('Period')}
+ ## move +
${_('Entry')}
+ ## journal +
${_('Journal')}
+ ## partner +
${_('Partner')}
+ ## label +
${_('Label')}
+ ## reconcile +
${_('Rec.')}
+ ## maturity +
${_('Due Date')}
+ ## debit +
${_('Debit')}
+ ## credit +
${_('Credit')}
+ ## balance cumulated +
${_('Cumul. Bal.')}
+ %if amount_currency(data): + ## currency balance +
${_('Curr. Balance')}
+ ## curency code +
${_('Curr.')}
+ %endif +
+
+
+ <% + total_debit = 0.0 + total_credit = 0.0 + %> + + %for line in account.ledger_lines.get(p_id, []): + <% + total_debit += line.get('debit') or 0.0 + total_credit += line.get('credit') or 0.0 + + label_elements = [line.get('lname') or ''] + if line.get('invoice_number'): + label_elements.append("(%s)" % (line['invoice_number'],)) + label = ' '.join(label_elements) + %> +
+ ## date +
${formatLang(line.get('ldate') or '', date=True)}
+ ## period +
${line.get('period_code') or ''}
+ ## move +
${line.get('move_name') or ''}
+ ## journal +
${line.get('jcode') or ''}
+ ## partner +
${line.get('partner_name') or ''}
+ ## label +
${label}
+ ## reconcile +
${line.get('rec_name') or ''}
+ ## maturity date +
${formatLang(line.get('date_maturity') or '', date=True)}
+ ## debit +
${formatLang(line.get('debit') or 0.0) | amount }
+ ## credit +
${formatLang(line.get('credit') or 0.0) | amount }
+ ## balance cumulated + <% cumul_balance += line.get('balance') or 0.0 %> +
${formatLang(cumul_balance) | amount }
+ %if amount_currency(data): + ## currency balance +
${formatLang(line.get('amount_currency') or 0.0) | amount }
+ ## curency code +
${line.get('currency_code') or ''}
+ %endif +
+ %endfor +
+ ## date +
+ ## period +
+ ## move +
+ ## journal +
+ ## partner +
+ ## label +
${_('Cumulated Balance on Partner')}
+ ## reconcile +
+ ## maturity date +
+ ## debit +
${formatLang(total_debit) | amount }
+ ## credit +
${formatLang(total_credit) | amount }
+ ## balance cumulated +
${formatLang(cumul_balance) | amount }
+ %if amount_currency(data): + %if account.currency_id: + ## currency balance +
${formatLang(cumul_balance_curr) | amount }
+ %else: +
${ u'-' }
+ %endif + ## curency code +
${ account.currency_id.name if account.currency_id else u'' }
+ %endif +
+
+
+ <% + account_total_debit += total_debit + account_total_credit += total_credit + account_balance_cumul += cumul_balance + account_balance_cumul_curr += cumul_balance_curr + %> + %endfor +
+
+
${account.code} - ${account.name}
+ ## label +
${_("Cumulated Balance on Account")}
+ ## debit +
${ formatLang(account_total_debit) | amount }
+ ## credit +
${ formatLang(account_total_credit) | amount }
+ ## balance cumulated +
${ formatLang(account_balance_cumul) | amount }
+ %if amount_currency(data): + ## currency balance cumulated + %if account.currency_id: +
${ formatLang(account_balance_cumul_curr) | amount }
+ %else: +
${ u'-' }
+ %endif + ## curency code +
${ account.currency_id.name if account.currency_id else u'' }
+ %endif +
+
+ + %endif + %endfor + + diff --git a/account_financial_report_webkit/report/templates/account_report_partner_balance.mako b/account_financial_report_webkit/report/templates/account_report_partner_balance.mako new file mode 100644 index 00000000..31b18fca --- /dev/null +++ b/account_financial_report_webkit/report/templates/account_report_partner_balance.mako @@ -0,0 +1,275 @@ + + + + + + + <%! + def amount(text): + return text.replace('-', '‑') # replace by a non-breaking hyphen (it will not word-wrap between hyphen and numbers) + %> + + <%setLang(user.context_lang)%> + + <% + initial_balance_text = {'initial_balance': _('Computed'), 'opening_balance': _('Opening Entries'), False: _('No')} + %> + +
+
+
${_('Chart of Account')}
+
${_('Fiscal Year')}
+
+ %if filter_form(data) == 'filter_date': + ${_('Dates Filter')} + %else: + ${_('Periods Filter')} + %endif +
+
${_('Accounts Filter')}
+
${_('Partners Filter')}
+
${_('Target Moves')}
+
${_('Initial Balance')}
+
+
+
${ chart_account.name }
+
${ fiscalyear.name if fiscalyear else '-' }
+
+ ${_('From:')} + %if filter_form(data) == 'filter_date': + ${formatLang(start_date, date=True) if start_date else u'' } + %else: + ${start_period.name if start_period else u''} + %endif + ${_('To:')} + %if filter_form(data) == 'filter_date': + ${ formatLang(stop_date, date=True) if stop_date else u'' } + %else: + ${stop_period.name if stop_period else u'' } + %endif +
+
+ %if accounts(data): + ${', '.join([account.code for account in accounts(data)])} + %else: + ${_('All')} + %endif +
+
${display_partner_account(data)}
+
${ display_target_move(data) }
+
${ initial_balance_text[initial_balance_mode] }
+
+
+ + %for index, params in enumerate(comp_params): +
+
+
${_('Comparison %s') % (index + 1,)} (${"C%s" % (index + 1,)})
+
+ %if params['comparison_filter'] == 'filter_date': + ${_('Dates Filter:')} ${formatLang(params['start'], date=True) } - ${formatLang(params['stop'], date=True) } + %elif params['comparison_filter'] == 'filter_period': + ${_('Periods Filter:')} ${params['start'].name} - ${params['stop'].name} + %else: + ${_('Fiscal Year :')} ${params['fiscalyear'].name} + %endif +
+
${ _('Initial Balance:')} ${ initial_balance_text[params['initial_balance_mode']] }
+
+
+ %endfor + + + %for current_account in objects: + <% + partners_order = current_account.partners_order + + # do not display accounts without partners + if not partners_order: + continue + + comparisons = current_account.comparisons + + all_comparison_lines = [comp['partners_amounts'][partner_id[1]] for partner_id in partners_order for comp in comparisons] + if not current_account.balance and not any([line.get('balance') for line in all_comparison_lines]): + continue + + current_partner_amounts = current_account.partners_amounts + + total_initial_balance = 0.0 + total_debit = 0.0 + total_credit = 0.0 + total_balance = 0.0 + if comparison_mode in ('single', 'multiple'): + comparison_total = {} + for i, comp in enumerate(comparisons): + comparison_total[i] = {'balance': 0.0} + %> + + + +
+ +
+
+ ## code +
${_('Code / Ref')}
+ ## account name +
${_('Account / Partner Name')}
+ %if comparison_mode == 'no_comparison': + %if initial_balance_mode: + ## initial balance +
${_('Initial Balance')}
+ %endif + ## debit +
${_('Debit')}
+ ## credit +
${_('Credit')}
+ %endif + ## balance +
+ %if comparison_mode == 'no_comparison' or not fiscalyear: + ${_('Balance')} + %else: + ${_('Balance %s') % (fiscalyear.name,)} + %endif +
+ %if comparison_mode in ('single', 'multiple'): + %for index in range(nb_comparison): +
+ %if comp_params[index]['comparison_filter'] == 'filter_year' and comp_params[index].get('fiscalyear', False): + ${_('Balance %s') % (comp_params[index]['fiscalyear'].name,)} + %else: + ${_('Balance C%s') % (index + 1,)} + %endif +
+ %if comparison_mode == 'single': ## no diff in multiple comparisons because it shows too data +
${_('Difference')}
+
${_('% Difference')}
+ %endif + %endfor + %endif +
+
+ +
+ + %for (partner_code_name, partner_id, partner_ref, partner_name) in partners_order: + <% + partner = current_partner_amounts.get(partner_id, {}) + + all_comparison_lines = [comp['partners_amounts'][partner_id] for comp in comparisons if comp['partners_amounts'].get(partner_id)] + if not partner.get('balance') and not any([line.get('balance') for line in all_comparison_lines]): + continue + + total_initial_balance += partner.get('init_balance', 0.0) + total_debit += partner.get('debit', 0.0) + total_credit += partner.get('credit', 0.0) + total_balance += partner.get('balance', 0.0) + %> +
+
${partner_ref if partner_ref else ''}
+
${partner_name if partner_name else _('Unallocated') }
+ %if comparison_mode == 'no_comparison': + %if initial_balance_mode: +
${formatLang(partner.get('init_balance', 0.0)) | amount}
+ %endif +
${formatLang(partner.get('debit', 0.0)) | amount}
+
${formatLang(partner.get('credit', 0.0)) | amount}
+ %endif +
${formatLang(partner['balance'] if partner else 0.0) | amount}
+ + %if comparison_mode in ('single', 'multiple'): + %for i, comp in enumerate(comparisons): + <% + comp_partners = comp['partners_amounts'] + balance = diff = percent_diff = 0 + if comp_partners.get(partner_id): + balance = comp_partners[partner_id]['balance'] + diff = comp_partners[partner_id]['diff'] + percent_diff = comp_partners[partner_id]['percent_diff'] + comparison_total[i]['balance'] += balance + %> +
${formatLang(balance) | amount}
+ %if comparison_mode == 'single': ## no diff in multiple comparisons because it shows too data +
${formatLang(diff) | amount}
+
+ %if percent_diff is False: + ${ '-' } + %else: + ${int(round(percent_diff)) | amount} % + %endif +
+ %endif + %endfor + %endif +
+ %endfor + +
+
+
+ ## code +
${current_account.code}
+ ## account name +
${current_account.name}
+ %if comparison_mode == 'no_comparison': + %if initial_balance_mode: + ## opening balance +
${formatLang(total_initial_balance) | amount}
+ %endif + ## debit +
${formatLang(total_debit) | amount}
+ ## credit +
${formatLang(total_credit and total_credit * -1 or 0.0) | amount}
+ %endif + ## balance +
${formatLang(total_balance) | amount}
+ + %if comparison_mode in ('single', 'multiple'): + %for i, comp in enumerate(comparisons): + <% + comp_account = comp['account'] + diffs = compute_diff(total_balance, comparison_total[i]['balance']) + %> +
${formatLang(comparison_total[i]['balance']) | amount}
+ %if comparison_mode == 'single': ## no diff in multiple comparisons because it shows too data +
${formatLang(diffs['diff']) | amount}
+
+ %if diffs['percent_diff'] is False: + ${ '-' } + %else: + ${int(round(diffs['percent_diff'])) | amount} % + %endif +
+ %endif + %endfor + %endif +
+
+
+ + %endfor + + + diff --git a/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako b/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako new file mode 100644 index 00000000..b651df3d --- /dev/null +++ b/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako @@ -0,0 +1,281 @@ + + + + + + + <%! + def amount(text): + return text.replace('-', '‑') # replace by a non-breaking hyphen (it will not word-wrap between hyphen and numbers) + %> + + <%setLang(user.context_lang)%> + + <% + initial_balance_text = {'initial_balance': _('Computed'), 'opening_balance': _('Opening Entries'), False: _('No')} + %> + +
+
+
${_('Chart of Account')}
+
${_('Fiscal Year')}
+
+ %if filter_form(data) == 'filter_date': + ${_('Dates Filter')} + %else: + ${_('Periods Filter')} + %endif +
+
${_('Accounts Filter')}
+
${_('Target Moves')}
+
${_('Initial Balance')}
+
+
+
${ chart_account.name }
+
${ fiscalyear.name if fiscalyear else '-' }
+
+ ${_('From:')} + %if filter_form(data) == 'filter_date': + ${formatLang(start_date, date=True) if start_date else u'' } + %else: + ${start_period.name if start_period else u''} + %endif + ${_('To:')} + %if filter_form(data) == 'filter_date': + ${ formatLang(stop_date, date=True) if stop_date else u'' } + %else: + ${stop_period.name if stop_period else u'' } + %endif +
+
+ %if partner_ids: + ${_('Custom Filter')} + %else: + ${ display_partner_account(data) } + %endif +
+
${ display_target_move(data) }
+
${ initial_balance_text[initial_balance_mode] }
+
+
+ + %for account in objects: + %if account.ledger_lines or account.init_balance: + <% + if not account.partners_order: + continue + account_total_debit = 0.0 + account_total_credit = 0.0 + account_balance_cumul = 0.0 + account_balance_cumul_curr = 0.0 + %> + + + + %for partner_name, p_id, p_ref, p_name in account.partners_order: + <% + total_debit = 0.0 + total_credit = 0.0 + cumul_balance = 0.0 + cumul_balance_curr = 0.0 + + part_cumul_balance = 0.0 + part_cumul_balance_curr = 0.0 + %> +
+ +
+
+ ## date +
${_('Date')}
+ ## period +
${_('Period')}
+ ## move +
${_('Entry')}
+ ## journal +
${_('Journal')}
+ ## partner +
${_('Partner')}
+ ## label +
${_('Label')}
+ ## reconcile +
${_('Rec.')}
+ ## debit +
${_('Debit')}
+ ## credit +
${_('Credit')}
+ ## balance cumulated +
${_('Cumul. Bal.')}
+ %if amount_currency(data): + ## currency balance +
${_('Curr. Balance')}
+ ## curency code +
${_('Curr.')}
+ %endif +
+
+
+ <% + total_debit = account.init_balance.get(p_id, {}).get('debit') or 0.0 + total_credit = account.init_balance.get(p_id, {}).get('credit') or 0.0 + %> + %if initial_balance_mode and (total_debit or total_credit): + <% + part_cumul_balance = account.init_balance.get(p_id, {}).get('init_balance') or 0.0 + part_cumul_balance_curr = account.init_balance.get(p_id, {}).get('init_balance_currency') or 0.0 + balance_forward_currency = account.init_balance.get(p_id, {}).get('currency_name') or '' + + cumul_balance += part_cumul_balance + cumul_balance_curr += part_cumul_balance_curr + %> +
+ ## date +
+ ## period +
+ ## move +
+ ## journal +
+ ## partner +
+ ## label +
${_('Initial Balance')}
+ ## reconcile +
+ ## debit +
${formatLang(total_debit) | amount }
+ ## credit +
${formatLang(total_credit) | amount }
+ ## balance cumulated +
${formatLang(part_cumul_balance) | amount }
+ %if amount_currency(data): + ## currency balance +
${formatLang(part_cumul_balance_curr) | amount }
+ ## curency code +
${balance_forward_currency}
+ %endif + +
+ %endif + + %for line in account.ledger_lines.get(p_id, []): + <% + total_debit += line.get('debit') or 0.0 + total_credit += line.get('credit') or 0.0 + + label_elements = [line.get('lname') or ''] + if line.get('invoice_number'): + label_elements.append("(%s)" % (line['invoice_number'],)) + label = ' '.join(label_elements) + %> +
+ ## date +
${formatLang(line.get('ldate') or '', date=True)}
+ ## period +
${line.get('period_code') or ''}
+ ## move +
${line.get('move_name') or ''}
+ ## journal +
${line.get('jcode') or ''}
+ ## partner +
${line.get('partner_name') or ''}
+ ## label +
${label}
+ ## reconcile +
${line.get('rec_name') or ''}
+ ## debit +
${formatLang(line.get('debit') or 0.0) | amount }
+ ## credit +
${formatLang(line.get('credit') or 0.0) | amount }
+ ## balance cumulated + <% cumul_balance += line.get('balance') or 0.0 %> +
${formatLang(cumul_balance) | amount }
+ %if amount_currency(data): + ## currency balance +
${formatLang(line.get('amount_currency') or 0.0) | amount }
+ ## curency code +
${line.get('currency_code') or ''}
+ %endif +
+ %endfor +
+ ## date +
+ ## period +
+ ## move +
+ ## journal +
+ ## partner +
+ ## label +
${_('Cumulated Balance on Partner')}
+ ## reconcile +
+ ## debit +
${formatLang(total_debit) | amount }
+ ## credit +
${formatLang(total_credit) | amount }
+ ## balance cumulated +
${formatLang(cumul_balance) | amount }
+ %if amount_currency(data): + ## currency balance + %if account.currency_id: +
${formatLang(cumul_balance_curr) | amount }
+ %else: +
${ u'-' }
+ %endif + ## currency code +
${ account.currency_id.name if account.currency_id else u'' }
+ %endif +
+
+
+ <% + account_total_debit += total_debit + account_total_credit += total_credit + account_balance_cumul += cumul_balance + account_balance_cumul_curr += cumul_balance_curr + %> + %endfor + +
+
+
${account.code} - ${account.name}
+ ## label +
${_("Cumulated Balance on Account")}
+ ## debit +
${ formatLang(account_total_debit) | amount }
+ ## credit +
${ formatLang(account_total_credit) | amount }
+ ## balance cumulated +
${ formatLang(account_balance_cumul) | amount }
+ %if amount_currency(data): + ## currency balance + %if account.currency_id: +
${ formatLang(account_balance_cumul_curr) | amount }
+ %else: +
${ u'-' }
+ %endif + ## curency code +
${ account.currency_id.name if account.currency_id else u'' }
+ %endif +
+
+ + %endif + %endfor + + diff --git a/account_financial_report_webkit/report/templates/account_report_profit_loss.mako b/account_financial_report_webkit/report/templates/account_report_profit_loss.mako new file mode 100644 index 00000000..494b310f --- /dev/null +++ b/account_financial_report_webkit/report/templates/account_report_profit_loss.mako @@ -0,0 +1,210 @@ + + + + + + + <%! + + def amount(text): + return text.replace('-', '‑') # replace by a non-breaking hyphen (it will not word-wrap between hyphen and numbers) + %> + + <%def name="format_amount(amount, display_option=None)"> + <% + output = amount + if display_option == 'normal': + output = amount + elif display_option == 'round': + output = u"%.0f" % round(amount) + elif display_option == 'kilo': + if amount: + output = u"%.2fK" % (amount / 1000,) + %> + ${output} + + + <%setLang(user.context_lang)%> + +
+
+
${_('Chart of Account')}
+
${_('Fiscal Year')}
+
+ %if filter_form(data) == 'filter_date': + ${_('Dates')} + %else: + ${_('Periods')} + %endif +
+
${_('Displayed Accounts')}
+
${_('Target Moves')}
+
${_('Initial Balance')}
+
+
+
${ chart_account.name }
+
${ fiscalyear.name if fiscalyear else '-' }
+
+ ${_('From:')} + %if filter_form(data) == 'filter_date': + ${formatLang(start_date, date=True) if start_date else u'' } + %else: + ${start_period.name if start_period else u''} + %endif + ${_('To:')} + %if filter_form(data) == 'filter_date': + ${ formatLang(stop_date, date=True) if stop_date else u'' } + %else: + ${stop_period.name if stop_period else u'' } + %endif +
+
+ %if accounts(data): + ${', '.join([account.code for account in accounts(data)])} + %else: + ${_('All')} + %endif +
+
${ display_target_move(data) }
+
${ _('Yes') if initial_balance else _('No') }
+
+
+ + %for index, params in enumerate(comp_params): +
+
+
${_('Comparison %s') % (index + 1,)} (${"C%s" % (index + 1,)})
+
+ %if params['comparison_filter'] == 'filter_date': + ${_('Dates : ')} ${formatLang(params['start'], date=True) } - ${formatLang(params['stop'], date=True) } + %elif params['comparison_filter'] == 'filter_period': + ${_('Periods : ')} ${params['start'].name} - ${params['stop'].name} + %else: + ${_('Fiscal Year : ')} ${params['fiscalyear'].name} + %endif +
+
${_('Initial Balance:')} ${ _('Yes') if params['initial_balance'] else _('No') }
+
+
+ %endfor + +
+ +
+
+ ## account name +
${_('Account')}
+ %if comparison_mode == 'no_comparison': + %if initial_balance: + ## initial balance +
${_('Initial Balance')}
+ %endif + ## debit +
${_('Debit')}
+ ## credit +
${_('Credit')}
+ %endif + ## balance +
+ %if comparison_mode == 'no_comparison' or not fiscalyear: + ${_('Balance')} + %else: + ${_('Balance %s') % (fiscalyear.name,)} + %endif +
+ %if comparison_mode in ('single', 'multiple'): + %for index in range(nb_comparison): +
+ %if comp_params[index]['comparison_filter'] == 'filter_year' and comp_params[index].get('fiscalyear', False): + ${_('Balance %s') % (comp_params[index]['fiscalyear'].name,)} + %else: + ${_('Balance C%s') % (index + 1,)} + %endif +
+ %if comparison_mode == 'single': ## no diff in multiple comparisons because it shows too data +
${_('Difference')}
+
${_('% Difference')}
+ %endif + %endfor + %endif +
+
+ +
+ %for account_at in objects: + <% + current_account = account_at['current'] + level = current_account['level'] + %> + %if level_print(data, level): ## how to manage levels? + <% + styles = [] + if level_bold(data, level): + styles.append('font-weight: bold;') + else: + styles.append('font-weight: normal;') + + if level_italic(data, level): + styles.append('font-style: italic;') + else: + styles.append('font-style: normal;') + + if level_underline(data, level): + styles.append('text-decoration: underline;') + else: + styles.append('text-decoration: none;') + + if level_uppercase(data, level): + styles.append('text-transform: uppercase;') + else: + styles.append('font-decoration: none;') + + styles.append("font-size: %spx;" % (level_size(data, level),)) + + %> +
+ ## account name +
${current_account['name']}
+ %if comparison_mode == 'no_comparison': + %if initial_balance: + ## opening balance +
${format_amount(current_account['init_balance'], numbers_display(data)) | amount}
+ %endif + ## debit +
${format_amount(current_account['debit'], numbers_display(data)) | amount}
+ ## credit +
${format_amount(current_account['credit'] * -1, numbers_display(data)) if current_account['credit'] else 0.0 | amount}
+ %endif + ## balance +
${format_amount(current_account['balance'], numbers_display(data)) | amount}
+ + %if comparison_mode in ('single', 'multiple'): + %for comp_account in account_at['comparisons']: +
${format_amount(comp_account['balance'], numbers_display(data)) | amount}
+ %if comparison_mode == 'single': ## no diff in multiple comparisons because it shows too data +
${format_amount(comp_account['diff'], numbers_display(data)) | amount}
+
+ %if comp_account['percent_diff'] is False: + ${ '-' } + %else: + ${comp_account['percent_diff'] | amount} % + %endif +
+ %endif + %endfor + %endif +
+ %endif + %endfor +
+
+ + diff --git a/account_financial_report_webkit/report/templates/account_report_trial_balance.mako b/account_financial_report_webkit/report/templates/account_report_trial_balance.mako new file mode 100644 index 00000000..8efd7647 --- /dev/null +++ b/account_financial_report_webkit/report/templates/account_report_trial_balance.mako @@ -0,0 +1,217 @@ + + + + + + + <%! + def amount(text): + return text.replace('-', '‑') # replace by a non-breaking hyphen (it will not word-wrap between hyphen and numbers) + %> + + <%setLang(user.context_lang)%> + + <% + initial_balance_text = {'initial_balance': _('Computed'), 'opening_balance': _('Opening Entries'), False: _('No')} + %> + +
+
+
${_('Chart of Account')}
+
${_('Fiscal Year')}
+
+ %if filter_form(data) == 'filter_date': + ${_('Dates Filter')} + %else: + ${_('Periods Filter')} + %endif +
+
${_('Accounts Filter')}
+
${_('Target Moves')}
+
${_('Initial Balance')}
+
+
+
${ chart_account.name }
+
${ fiscalyear.name if fiscalyear else '-' }
+
+ ${_('From:')} + %if filter_form(data) == 'filter_date': + ${formatLang(start_date, date=True) if start_date else u'' } + %else: + ${start_period.name if start_period else u''} + %endif + ${_('To:')} + %if filter_form(data) == 'filter_date': + ${ formatLang(stop_date, date=True) if stop_date else u'' } + %else: + ${stop_period.name if stop_period else u'' } + %endif +
+
+ %if accounts(data): + ${', '.join([account.code for account in accounts(data)])} + %else: + ${_('All')} + %endif +
+
${ display_target_move(data) }
+
${ initial_balance_text[initial_balance_mode] }
+
+
+ + %for index, params in enumerate(comp_params): +
+
+
${_('Comparison %s') % (index + 1,)} (${"C%s" % (index + 1,)})
+
+ %if params['comparison_filter'] == 'filter_date': + ${_('Dates Filter:')} ${formatLang(params['start'], date=True) } - ${formatLang(params['stop'], date=True) } + %elif params['comparison_filter'] == 'filter_period': + ${_('Periods Filter:')} ${params['start'].name} - ${params['stop'].name} + %else: + ${_('Fiscal Year :')} ${params['fiscalyear'].name} + %endif +
+
${_('Initial Balance:')} ${ initial_balance_text[params['initial_balance_mode']] }
+
+
+ %endfor + +
+ +
+
+ ## code +
${_('Code')}
+ ## account name +
${_('Account')}
+ %if comparison_mode == 'no_comparison': + %if initial_balance_mode: + ## initial balance +
${_('Initial Balance')}
+ %endif + ## debit +
${_('Debit')}
+ ## credit +
${_('Credit')}
+ %endif + ## balance +
+ %if comparison_mode == 'no_comparison' or not fiscalyear: + ${_('Balance')} + %else: + ${_('Balance %s') % (fiscalyear.name,)} + %endif +
+ %if comparison_mode in ('single', 'multiple'): + %for index in range(nb_comparison): +
+ %if comp_params[index]['comparison_filter'] == 'filter_year' and comp_params[index].get('fiscalyear', False): + ${_('Balance %s') % (comp_params[index]['fiscalyear'].name,)} + %else: + ${_('Balance C%s') % (index + 1,)} + %endif +
+ %if comparison_mode == 'single': ## no diff in multiple comparisons because it shows too data +
${_('Difference')}
+
${_('% Difference')}
+ %endif + %endfor + %endif +
+
+ +
+ <% + last_child_consol_ids = [] + last_level = False + %> + %for current_account in objects: + <% + if not current_account.to_display: + continue + + comparisons = current_account.comparisons + + if current_account.id in last_child_consol_ids: + # current account is a consolidation child of the last account: use the level of last account + level = last_level + level_class = "account_level_consol" + else: + # current account is a not a consolidation child: use its own level + level = current_account.level or 0 + level_class = "account_level_%s" % (level,) + last_child_consol_ids = [child_consol_id.id for child_consol_id in current_account.child_consol_ids] + last_level = current_account.level + %> +
+ ## code +
${current_account.code}
+ ## account name +
${current_account.name}
+ %if comparison_mode == 'no_comparison': + %if initial_balance_mode: + ## opening balance +
${formatLang(current_account.init_balance) | amount}
+ %endif + ## debit +
${formatLang(current_account.debit) | amount}
+ ## credit +
${formatLang(current_account.credit) | amount}
+ %endif + ## balance +
${formatLang(current_account.balance) | amount}
+ + %if comparison_mode in ('single', 'multiple'): + %for comp_account in comparisons: +
${formatLang(comp_account['balance']) | amount}
+ %if comparison_mode == 'single': ## no diff in multiple comparisons because it shows too data +
${formatLang(comp_account['diff']) | amount}
+
+ %if comp_account['percent_diff'] is False: + ${ '-' } + %else: + ${int(round(comp_account['percent_diff'])) | amount} % + %endif +
+ %endif + %endfor + %endif +
+ %endfor +
+
+ + diff --git a/account_financial_report_webkit/report/trial_balance.py b/account_financial_report_webkit/report/trial_balance.py new file mode 100644 index 00000000..c596f080 --- /dev/null +++ b/account_financial_report_webkit/report/trial_balance.py @@ -0,0 +1,82 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# Author: Guewen Baconnier +# Copyright Camptocamp SA 2011 +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + + +from report import report_sxw +from tools.translate import _ +import pooler +from datetime import datetime + +from common_balance_reports import CommonBalanceReportHeaderWebkit +from webkit_parser_header_fix import HeaderFooterTextWebKitParser + +def sign(number): + return cmp(number, 0) + +class TrialBalanceWebkit(report_sxw.rml_parse, CommonBalanceReportHeaderWebkit): + + def __init__(self, cursor, uid, name, context): + super(TrialBalanceWebkit, self).__init__(cursor, uid, name, context=context) + self.pool = pooler.get_pool(self.cr.dbname) + self.cursor = self.cr + + company = self.pool.get('res.users').browse(self.cr, uid, uid, context=context).company_id + header_report_name = ' - '.join((_('TRIAL BALANCE'), company.name, company.currency_id.name)) + + footer_date_time = self.formatLang(str(datetime.today()), date_time=True) + + self.localcontext.update({ + 'cr': cursor, + 'uid': uid, + 'report_name': _('Trial Balance'), + 'display_account': self._get_display_account, + 'display_account_raw': self._get_display_account_raw, + 'filter_form': self._get_filter, + 'target_move': self._get_target_move, + 'display_target_move': self._get_display_target_move, + 'accounts': self._get_accounts_br, + 'additional_args': [ + ('--header-font-name', 'Helvetica'), + ('--footer-font-name', 'Helvetica'), + ('--header-font-size', '10'), + ('--footer-font-size', '6'), + ('--header-left', header_report_name), + ('--header-spacing', '2'), + ('--footer-left', footer_date_time), + ('--footer-right', ' '.join((_('Page'), '[page]', _('of'), '[topage]'))), + ('--footer-line',), + ], + }) + + def set_context(self, objects, data, ids, report_type=None): + """Populate a ledger_lines attribute on each browse record that will be used + by mako template""" + objects, new_ids, context_report_values = self.compute_balance_data(data) + + self.localcontext.update(context_report_values) + + return super(TrialBalanceWebkit, self).set_context(objects, data, new_ids, + report_type=report_type) + +HeaderFooterTextWebKitParser('report.account.account_report_trial_balance_webkit', + 'account.account', + 'addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako', + parser=TrialBalanceWebkit) diff --git a/account_financial_report_webkit/report/webkit_parser_header_fix.py b/account_financial_report_webkit/report/webkit_parser_header_fix.py new file mode 100644 index 00000000..f3928443 --- /dev/null +++ b/account_financial_report_webkit/report/webkit_parser_header_fix.py @@ -0,0 +1,222 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Copyright (c) 2011 Camptocamp SA (http://www.camptocamp.com) +# +# Author : Guewen Baconnier (Camptocamp) +# +# WARNING: This program as such is intended to be used by professional +# programmers who take the whole responsability of assessing all potential +# consequences resulting from its eventual inadequacies and bugs +# End users who are looking for a ready-to-use solution with commercial +# garantees and support are strongly adviced to contract a Free Software +# Service Company +# +# This program is Free Software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +############################################################################## +import os +import subprocess +import tempfile +import time +import pooler +import tools +import openerp.addons + + +from mako import exceptions +from osv.osv import except_osv +from tools.translate import _ +from openerp.addons.report_webkit import webkit_report +from openerp.addons.report_webkit.webkit_report import mako_template +from openerp.addons.report_webkit.report_helper import WebKitHelper + + +# Class used only as a workaround to bug : +# http://code.google.com/p/wkhtmltopdf/issues/detail?id=656 + +# html headers and footers do not work on big files (hundreds of pages) so we replace them by +# text headers and footers passed as arguments to wkhtmltopdf +# this class has to be removed once the bug is fixed + +# in your report class, to print headers and footers as text, you have to add them in the localcontext with a key 'additional_args' +# for instance : +# header_report_name = _('PARTNER LEDGER') +# footer_date_time = self.formatLang(str(datetime.today()), date_time=True) +# self.localcontext.update({ +# 'additional_args': [ +# ('--header-font-name', 'Helvetica'), +# ('--footer-font-name', 'Helvetica'), +# ('--header-font-size', '10'), +# ('--footer-font-size', '7'), +# ('--header-left', header_report_name), +# ('--footer-left', footer_date_time), +# ('--footer-right', ' '.join((_('Page'), '[page]', _('of'), '[topage]'))), +# ('--footer-line',), +# ], +# }) + + +class HeaderFooterTextWebKitParser(webkit_report.WebKitParser): + + def generate_pdf(self, comm_path, report_xml, header, footer, html_list, webkit_header=False): + """Call webkit in order to generate pdf""" + if not webkit_header: + webkit_header = report_xml.webkit_header + tmp_dir = tempfile.gettempdir() + out_filename = tempfile.mktemp(suffix=".pdf", prefix="webkit.tmp.") + files = [] + file_to_del = [] + if comm_path: + command = [comm_path] + else: + command = ['wkhtmltopdf'] + + command.append('--quiet') + # default to UTF-8 encoding. Use to override. + command.extend(['--encoding', 'utf-8']) + + if webkit_header.margin_top : + command.extend(['--margin-top', str(webkit_header.margin_top).replace(',', '.')]) + if webkit_header.margin_bottom : + command.extend(['--margin-bottom', str(webkit_header.margin_bottom).replace(',', '.')]) + if webkit_header.margin_left : + command.extend(['--margin-left', str(webkit_header.margin_left).replace(',', '.')]) + if webkit_header.margin_right : + command.extend(['--margin-right', str(webkit_header.margin_right).replace(',', '.')]) + if webkit_header.orientation : + command.extend(['--orientation', str(webkit_header.orientation).replace(',', '.')]) + if webkit_header.format : + command.extend(['--page-size', str(webkit_header.format).replace(',', '.')]) + + if self.parser_instance.localcontext.get('additional_args', False): + for arg in self.parser_instance.localcontext['additional_args']: + command.extend(arg) + + count = 0 + for html in html_list : + html_file = file(os.path.join(tmp_dir, str(time.time()) + str(count) +'.body.html'), 'w') + count += 1 + html_file.write(html) + html_file.close() + file_to_del.append(html_file.name) + command.append(html_file.name) + command.append(out_filename) + try: + status = subprocess.call(command, stderr=subprocess.PIPE) # ignore stderr + if status : + raise except_osv( + _('Webkit raise an error' ), + status + ) + except Exception: + for f_to_del in file_to_del : + os.unlink(f_to_del) + + pdf = file(out_filename, 'rb').read() + for f_to_del in file_to_del : + os.unlink(f_to_del) + + os.unlink(out_filename) + return pdf + + # override needed to keep the attachments' storing procedure + def create_single_pdf(self, cursor, uid, ids, data, report_xml, context=None): + """generate the PDF""" + + if context is None: + context={} + htmls = [] + if report_xml.report_type != 'webkit': + return super(HeaderFooterTextWebKitParser,self).create_single_pdf(cursor, uid, ids, data, report_xml, context=context) + + self.parser_instance = self.parser(cursor, + uid, + self.name2, + context=context) + + self.pool = pooler.get_pool(cursor.dbname) + objs = self.getObjects(cursor, uid, ids, context) + self.parser_instance.set_context(objs, data, ids, report_xml.report_type) + + template = False + + if report_xml.report_file : + path =openerp.addons.get_module_resource(report_xml.report_file) + if os.path.exists(path) : + template = file(path).read() + if not template and report_xml.report_webkit_data : + template = report_xml.report_webkit_data + if not template : + raise except_osv(_('Error!'), _('Webkit Report template not found !')) + header = report_xml.webkit_header.html + footer = report_xml.webkit_header.footer_html + if not header and report_xml.header: + raise except_osv( + _('No header defined for this Webkit report!'), + _('Please set a header in company settings') + ) + + css = report_xml.webkit_header.css + if not css : + css = '' + user = self.pool.get('res.users').browse(cursor, uid, uid) + + #default_filters=['unicode', 'entity'] can be used to set global filter + body_mako_tpl = mako_template(template) + helper = WebKitHelper(cursor, uid, report_xml.id, context) + if report_xml.precise_mode: + for obj in objs: + self.parser_instance.localcontext['objects'] = [obj] + try : + html = body_mako_tpl.render(helper=helper, + css=css, + _=self.translate_call, + **self.parser_instance.localcontext) + htmls.append(html) + except Exception, e: + msg = exceptions.text_error_template().render() + logger.error(msg) + raise except_osv(_('Webkit render'), msg) + else: + try : + html = body_mako_tpl.render(helper=helper, + css=css, + _=self.translate_call, + **self.parser_instance.localcontext) + htmls.append(html) + except Exception, e: + msg = exceptions.text_error_template().render() + logger.error(msg) + raise except_osv(_('Webkit render'), msg) + + # NO html footer and header because we write them as text with wkhtmltopdf + head = foot = False + + if report_xml.webkit_debug : + try : + deb = body_mako_tpl.render(helper=helper, + css=css, + _debug=tools.ustr("\n".join(htmls)), + _=self.translate_call, + **self.parser_instance.localcontext) + except Exception, e: + msg = exceptions.text_error_template().render() + logger.error(msg) + raise except_osv(_('Webkit render'), msg) + return (deb, 'html') + bin = self.get_lib(cursor, uid) + pdf = self.generate_pdf(bin, report_xml, head, foot, htmls) + return (pdf, 'pdf') diff --git a/account_financial_report_webkit/report_menus.xml b/account_financial_report_webkit/report_menus.xml new file mode 100644 index 00000000..585f839d --- /dev/null +++ b/account_financial_report_webkit/report_menus.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + diff --git a/account_financial_report_webkit/tests/account_move_line.yml b/account_financial_report_webkit/tests/account_move_line.yml new file mode 100644 index 00000000..d0a3ee00 --- /dev/null +++ b/account_financial_report_webkit/tests/account_move_line.yml @@ -0,0 +1,3 @@ +- + In order to test the last_rec_date behavior we will create a move and reconcile it +- \ No newline at end of file diff --git a/account_financial_report_webkit/tests/general_ledger.yml b/account_financial_report_webkit/tests/general_ledger.yml new file mode 100644 index 00000000..17f733d8 --- /dev/null +++ b/account_financial_report_webkit/tests/general_ledger.yml @@ -0,0 +1,65 @@ +- + In order to test the PDF General Ledger webkit wizard I will print report with default setting +- + !python {model: account.account}: | + ctx={} + data_dict = {'chart_account_id':ref('account.chart0')} + ctx.update({'model': 'account.account','active_ids':[ref('account.chart0')],'active_id':ref('account.chart0')}) + from tools import test_reports + test_reports.try_report_action(cr, uid, 'action_account_general_ledger_menu_webkit',wiz_data=data_dict, context=ctx, our_module='account_financial_report_webkit') + +- + In order to test the PDF General Ledger webkit wizard I will print report with posted move +- + !python {model: account.account}: | + ctx={} + data_dict = {'chart_account_id':ref('account.chart0'), 'target_move': 'posted'} + ctx.update({'model': 'account.account','active_ids':[ref('account.chart0')],'active_id':ref('account.chart0')}) + from tools import test_reports + test_reports.try_report_action(cr, uid, 'action_account_general_ledger_menu_webkit',wiz_data=data_dict, context=ctx, our_module='account_financial_report_webkit') + +- + In order to test the PDF General Ledger webkit wizard I will print report with transactions or non zero balance +- + !python {model: account.account}: | + ctx={} + data_dict = {'chart_account_id':ref('account.chart0'), 'display_account': 'bal_mix'} + ctx.update({'model': 'account.account','active_ids':[ref('account.chart0')],'active_id':ref('account.chart0')}) + from tools import test_reports + test_reports.try_report_action(cr, uid, 'action_account_general_ledger_menu_webkit',wiz_data=data_dict, context=ctx, our_module='account_financial_report_webkit') + +- + In order to test the PDF General Ledger webkit wizard I will print report with inital balance and currency ammount +- + !python {model: account.account}: | + ctx={} + data_dict = {'chart_account_id':ref('account.chart0'), 'amount_currency': 1} + ctx.update({'model': 'account.account','active_ids':[ref('account.chart0')],'active_id':ref('account.chart0')}) + from tools import test_reports + test_reports.try_report_action(cr, uid, 'action_account_general_ledger_menu_webkit',wiz_data=data_dict, context=ctx, our_module='account_financial_report_webkit') + +#Filter by date +- + In order to test the PDF General Ledger webkit wizard I will print report with inital balance and currency ammount and I filter by date of the first tree month +- + !python {model: account.account}: | + from datetime import datetime + ctx={} + data_dict = {'chart_account_id':ref('account.chart0'),'amount_currency': 1, 'chart_account_id': 1, 'date_from': '%s-01-01' %(datetime.now().year), + 'date_to':'%s-04-01' %(datetime.now().year), 'display_account': 'bal_all', 'filter': 'filter_date',} + ctx.update({'model': 'account.account','active_ids':[ref('account.chart0')],'active_id':ref('account.chart0')}) + from tools import test_reports + test_reports.try_report_action(cr, uid, 'action_account_general_ledger_menu_webkit',wiz_data=data_dict, context=ctx, our_module='account_financial_report_webkit') + +- + In order to test the PDF General Ledger webkit wizard I will print report with inital balance and currency ammount and I filter by date of the first tree month +- + !python {model: account.account}: | + from datetime import datetime + ctx={} + data_dict = {'chart_account_id':ref('account.chart0'),'amount_currency': 1, 'chart_account_id': 1, 'date_from': '%s-01-01' %(datetime.now().year), + 'date_to':'%s-04-01' %(datetime.now().year), 'display_account': 'bal_all', 'filter': 'filter_date',} + ctx.update({'model': 'account.account','active_ids':[ref('account.chart0')],'active_id':ref('account.chart0')}) + from tools import test_reports + test_reports.try_report_action(cr, uid, 'action_account_general_ledger_menu_webkit',wiz_data=data_dict, context=ctx, our_module='account_financial_report_webkit') +# I still have to parse report content but for this I need accounting data on multiple exercises and faor all fiscal year diff --git a/account_financial_report_webkit/tests/open_invoices.yml b/account_financial_report_webkit/tests/open_invoices.yml new file mode 100644 index 00000000..c2c77ed0 --- /dev/null +++ b/account_financial_report_webkit/tests/open_invoices.yml @@ -0,0 +1,60 @@ +- + In order to test the PDF Open Invoices Report webkit wizard I will print report with default setting +- + !python {model: account.account}: | + from datetime import datetime + ctx={} + data_dict = {'chart_account_id':ref('account.chart0'), 'until_date': '%s-12-31' %(datetime.now().year)} + from tools import test_reports + test_reports.try_report_action(cr, uid, 'action_account_open_invoices_menu_webkit',wiz_data=data_dict, context=ctx, our_module='account_financial_report_webkit') + +- + In order to test the PDF Open Invoices Report webkit wizard I will print report with filters and currency +- + !python {model: account.account}: | + from datetime import datetime + ctx={} + data_dict = {'chart_account_id':ref('account.chart0'), 'fiscalyear_id': ref('account.data_fiscalyear'), + 'until_date': '%s-12-31' %(datetime.now().year), 'target_move': 'posted', + 'amount_currency': True, 'result_selection': 'customer_supplier'} + from tools import test_reports + test_reports.try_report_action(cr, uid, 'action_account_open_invoices_menu_webkit',wiz_data=data_dict, context=ctx, our_module='account_financial_report_webkit') + +- + In order to test the PDF Open Invoices Report webkit wizard I will print report with filters on partners +- + !python {model: account.account}: | + from datetime import datetime + ctx={} + data_dict = {'chart_account_id':ref('account.chart0'), 'fiscalyear_id': ref('account.data_fiscalyear'), + 'until_date': '%s-12-31' %(datetime.now().year), 'target_move': 'posted', + 'amount_currency': True, 'result_selection': 'customer_supplier', + 'partner_ids': [ref('base.res_partner_agrolait'), ref('base.res_partner_asus')]} + from tools import test_reports + test_reports.try_report_action(cr, uid, 'action_account_open_invoices_menu_webkit',wiz_data=data_dict, context=ctx, our_module='account_financial_report_webkit') + +- + In order to test the PDF Open Invoices Report webkit wizard I will print report with filters on periods +- + !python {model: account.account}: | + from datetime import datetime + ctx={} + data_dict = {'chart_account_id':ref('account.chart0'), 'fiscalyear_id': ref('account.data_fiscalyear'), + 'until_date': '%s-12-31' %(datetime.now().year), 'target_move': 'posted', + 'amount_currency': True, 'result_selection': 'customer_supplier', + 'filter': 'filter_period', 'period_from': ref('account.period_1'), 'period_to': ref('account.period_12')} + from tools import test_reports + test_reports.try_report_action(cr, uid, 'action_account_open_invoices_menu_webkit',wiz_data=data_dict, context=ctx, our_module='account_financial_report_webkit') + +- + In order to test the PDF Open Invoices Report webkit wizard I will print report with filters on dates +- + !python {model: account.account}: | + from datetime import datetime + ctx={} + data_dict = {'chart_account_id':ref('account.chart0'), 'fiscalyear_id': ref('account.data_fiscalyear'), + 'until_date': '%s-12-31' %(datetime.now().year), 'target_move': 'posted', + 'amount_currency': True, 'result_selection': 'customer_supplier', + 'filter': 'filter_date', 'date_from': '%s-01-01' %(datetime.now().year), 'date_to': '%s-12-31' %(datetime.now().year)} + from tools import test_reports + test_reports.try_report_action(cr, uid, 'action_account_open_invoices_menu_webkit',wiz_data=data_dict, context=ctx, our_module='account_financial_report_webkit') diff --git a/account_financial_report_webkit/tests/partner_balance.yml b/account_financial_report_webkit/tests/partner_balance.yml new file mode 100644 index 00000000..37613104 --- /dev/null +++ b/account_financial_report_webkit/tests/partner_balance.yml @@ -0,0 +1,67 @@ +- + In order to test the PDF Partner Balance webkit wizard I will print report with default setting +- + !python {model: account.account}: | + from datetime import datetime + ctx={} + data_dict = {'chart_account_id':ref('account.chart0')} + from tools import test_reports + test_reports.try_report_action(cr, uid, 'action_account_partner_balance_menu_webkit',wiz_data=data_dict, context=ctx, our_module='account_financial_report_webkit') + +- + In order to test the PDF Partner Balance webkit wizard I will print report as if we print it from an account +- + !python {model: account.account}: | + from datetime import datetime + ctx={} + data_dict = {'chart_account_id':ref('account.chart0')} + ctx.update({'model': 'account.account','active_ids':[ref('account.assets_view'), ref('account.liabilities_view')],'active_id': ref('account.assets_view')}) + from tools import test_reports + test_reports.try_report_action(cr, uid, 'action_account_partner_balance_menu_webkit',wiz_data=data_dict, context=ctx, our_module='account_financial_report_webkit') + +- + In order to test the PDF Partner Balance webkit wizard I will print report with filters on period +- + !python {model: account.account}: | + from datetime import datetime + ctx={} + data_dict = {'chart_account_id':ref('account.chart0'), 'fiscalyear_id': ref('account.data_fiscalyear'), + 'filter': 'filter_period', 'period_from': ref('account.period_1'), 'period_to': ref('account.period_12')} + from tools import test_reports + test_reports.try_report_action(cr, uid, 'action_account_partner_balance_menu_webkit',wiz_data=data_dict, context=ctx, our_module='account_financial_report_webkit') + +- + In order to test the PDF Partner Balance webkit wizard I will print report with filters on dates +- + !python {model: account.account}: | + from datetime import datetime + ctx={} + data_dict = {'chart_account_id':ref('account.chart0'), 'fiscalyear_id': ref('account.data_fiscalyear'), + 'filter': 'filter_date', 'date_from': '%s-01-01' %(datetime.now().year), 'date_to': '%s-12-31' %(datetime.now().year)} + from tools import test_reports + test_reports.try_report_action(cr, uid, 'action_account_partner_balance_menu_webkit',wiz_data=data_dict, context=ctx, our_module='account_financial_report_webkit') + +- + In order to test the PDF Partner Balance webkit wizard I will print report with one comparison filtered by year +- + !python {model: account.account}: | + from datetime import datetime + ctx={} + data_dict = {'chart_account_id':ref('account.chart0'), 'fiscalyear_id': ref('account.data_fiscalyear'), + 'comp0_filter': 'filter_year', 'comp0_fiscalyear_id': ref('account.data_fiscalyear')} + from tools import test_reports + test_reports.try_report_action(cr, uid, 'action_account_partner_balance_menu_webkit',wiz_data=data_dict, context=ctx, our_module='account_financial_report_webkit') + +- + In order to test the PDF Partner Balance webkit wizard I will print report with all comparisons filtered by year, period and date +- + !python {model: account.account}: | + from datetime import datetime + ctx={} + data_dict = {'chart_account_id':ref('account.chart0'), 'fiscalyear_id': ref('account.data_fiscalyear'), + 'comp0_filter': 'filter_year', 'comp0_fiscalyear_id': ref('account.data_fiscalyear'), + 'comp1_filter': 'filter_period', 'comp1_period_from': ref('account.period_1'), 'comp1_period_to': ref('account.period_12'), + 'comp2_filter': 'filter_date', 'comp2_date_from': '%s-01-01' %(datetime.now().year), 'comp2_date_to': '%s-12-31' %(datetime.now().year) + } + from tools import test_reports + test_reports.try_report_action(cr, uid, 'action_account_partner_balance_menu_webkit',wiz_data=data_dict, context=ctx, our_module='account_financial_report_webkit') diff --git a/account_financial_report_webkit/tests/partner_ledger.yml b/account_financial_report_webkit/tests/partner_ledger.yml new file mode 100644 index 00000000..57546267 --- /dev/null +++ b/account_financial_report_webkit/tests/partner_ledger.yml @@ -0,0 +1,60 @@ +- + In order to test the PDF Partner Ledger webkit wizard I will print report with default setting +- + !python {model: account.account}: | + from datetime import datetime + ctx={} + data_dict = {'chart_account_id':ref('account.chart0'), 'until_date': '%s-12-31' %(datetime.now().year)} + from tools import test_reports + test_reports.try_report_action(cr, uid, 'action_account_partners_ledger_menu_webkit',wiz_data=data_dict, context=ctx, our_module='account_financial_report_webkit') + +- + In order to test the PDF Partner Ledger webkit wizard I will print report with filters and currency +- + !python {model: account.account}: | + from datetime import datetime + ctx={} + data_dict = {'chart_account_id':ref('account.chart0'), 'fiscalyear_id': ref('account.data_fiscalyear'), + 'until_date': '%s-12-31' %(datetime.now().year), 'target_move': 'posted', + 'amount_currency': True, 'result_selection': 'customer_supplier'} + from tools import test_reports + test_reports.try_report_action(cr, uid, 'action_account_partners_ledger_menu_webkit',wiz_data=data_dict, context=ctx, our_module='account_financial_report_webkit') + +- + In order to test the PDF Partner Ledger webkit wizard I will print report with filters on partners +- + !python {model: account.account}: | + from datetime import datetime + ctx={} + data_dict = {'chart_account_id':ref('account.chart0'), 'fiscalyear_id': ref('account.data_fiscalyear'), + 'until_date': '%s-12-31' %(datetime.now().year), 'target_move': 'posted', + 'amount_currency': True, 'result_selection': 'customer_supplier', + 'partner_ids': [ref('base.res_partner_agrolait'), ref('base.res_partner_asus')]} + from tools import test_reports + test_reports.try_report_action(cr, uid, 'action_account_partners_ledger_menu_webkit',wiz_data=data_dict, context=ctx, our_module='account_financial_report_webkit') + +- + In order to test the PDF Partner Ledger webkit wizard I will print report with filters on periods +- + !python {model: account.account}: | + from datetime import datetime + ctx={} + data_dict = {'chart_account_id':ref('account.chart0'), 'fiscalyear_id': ref('account.data_fiscalyear'), + 'until_date': '%s-12-31' %(datetime.now().year), 'target_move': 'posted', + 'amount_currency': True, 'result_selection': 'customer_supplier', + 'filter': 'filter_period', 'period_from': ref('account.period_1'), 'period_to': ref('account.period_12')} + from tools import test_reports + test_reports.try_report_action(cr, uid, 'action_account_partners_ledger_menu_webkit',wiz_data=data_dict, context=ctx, our_module='account_financial_report_webkit') + +- + In order to test the PDF Partner Ledger webkit wizard I will print report with filters on dates +- + !python {model: account.account}: | + from datetime import datetime + ctx={} + data_dict = {'chart_account_id':ref('account.chart0'), 'fiscalyear_id': ref('account.data_fiscalyear'), + 'until_date': '%s-12-31' %(datetime.now().year), 'target_move': 'posted', + 'amount_currency': True, 'result_selection': 'customer_supplier', + 'filter': 'filter_date', 'date_from': '%s-01-01' %(datetime.now().year), 'date_to': '%s-12-31' %(datetime.now().year)} + from tools import test_reports + test_reports.try_report_action(cr, uid, 'action_account_partners_ledger_menu_webkit',wiz_data=data_dict, context=ctx, our_module='account_financial_report_webkit') diff --git a/account_financial_report_webkit/tests/trial_balance.yml b/account_financial_report_webkit/tests/trial_balance.yml new file mode 100644 index 00000000..f5d276c3 --- /dev/null +++ b/account_financial_report_webkit/tests/trial_balance.yml @@ -0,0 +1,67 @@ +- + In order to test the PDF Trial Balance webkit wizard I will print report with default setting +- + !python {model: account.account}: | + from datetime import datetime + ctx={} + data_dict = {'chart_account_id':ref('account.chart0')} + from tools import test_reports + test_reports.try_report_action(cr, uid, 'action_account_trial_balance_menu_webkit',wiz_data=data_dict, context=ctx, our_module='account_financial_report_webkit') + +- + In order to test the PDF Trial Balance webkit wizard I will print report as if we print it from an account +- + !python {model: account.account}: | + from datetime import datetime + ctx={} + data_dict = {'chart_account_id':ref('account.chart0')} + ctx.update({'model': 'account.account','active_ids':[ref('account.assets_view'), ref('account.liabilities_view')],'active_id': ref('account.assets_view')}) + from tools import test_reports + test_reports.try_report_action(cr, uid, 'action_account_trial_balance_menu_webkit',wiz_data=data_dict, context=ctx, our_module='account_financial_report_webkit') + +- + In order to test the PDF Trial Balance webkit wizard I will print report with filters on period +- + !python {model: account.account}: | + from datetime import datetime + ctx={} + data_dict = {'chart_account_id':ref('account.chart0'), 'fiscalyear_id': ref('account.data_fiscalyear'), + 'filter': 'filter_period', 'period_from': ref('account.period_1'), 'period_to': ref('account.period_12')} + from tools import test_reports + test_reports.try_report_action(cr, uid, 'action_account_trial_balance_menu_webkit',wiz_data=data_dict, context=ctx, our_module='account_financial_report_webkit') + +- + In order to test the PDF Trial Balance webkit wizard I will print report with filters on dates +- + !python {model: account.account}: | + from datetime import datetime + ctx={} + data_dict = {'chart_account_id':ref('account.chart0'), 'fiscalyear_id': ref('account.data_fiscalyear'), + 'filter': 'filter_date', 'date_from': '%s-01-01' %(datetime.now().year), 'date_to': '%s-12-31' %(datetime.now().year)} + from tools import test_reports + test_reports.try_report_action(cr, uid, 'action_account_trial_balance_menu_webkit',wiz_data=data_dict, context=ctx, our_module='account_financial_report_webkit') + +- + In order to test the PDF Trial Balance webkit wizard I will print report with one comparison filtered by year +- + !python {model: account.account}: | + from datetime import datetime + ctx={} + data_dict = {'chart_account_id':ref('account.chart0'), 'fiscalyear_id': ref('account.data_fiscalyear'), + 'comp0_filter': 'filter_year', 'comp0_fiscalyear_id': ref('account.data_fiscalyear')} + from tools import test_reports + test_reports.try_report_action(cr, uid, 'action_account_trial_balance_menu_webkit',wiz_data=data_dict, context=ctx, our_module='account_financial_report_webkit') + +- + In order to test the PDF Trial Balance webkit wizard I will print report with all comparisons filtered by year, period and date +- + !python {model: account.account}: | + from datetime import datetime + ctx={} + data_dict = {'chart_account_id':ref('account.chart0'), 'fiscalyear_id': ref('account.data_fiscalyear'), + 'comp0_filter': 'filter_year', 'comp0_fiscalyear_id': ref('account.data_fiscalyear'), + 'comp1_filter': 'filter_period', 'comp1_period_from': ref('account.period_1'), 'comp1_period_to': ref('account.period_12'), + 'comp2_filter': 'filter_date', 'comp2_date_from': '%s-01-01' %(datetime.now().year), 'comp2_date_to': '%s-12-31' %(datetime.now().year) + } + from tools import test_reports + test_reports.try_report_action(cr, uid, 'action_account_trial_balance_menu_webkit',wiz_data=data_dict, context=ctx, our_module='account_financial_report_webkit') diff --git a/account_financial_report_webkit/wizard/__init__.py b/account_financial_report_webkit/wizard/__init__.py new file mode 100644 index 00000000..9e184891 --- /dev/null +++ b/account_financial_report_webkit/wizard/__init__.py @@ -0,0 +1,27 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# Author: Nicolas Bessi. Copyright Camptocamp SA +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +from . import balance_common +from . import general_ledger_wizard +from . import partners_ledger_wizard +from . import trial_balance_wizard +from . import partner_balance_wizard +from . import open_invoices_wizard +#from . import account_report_profit_loss_wizard diff --git a/account_financial_report_webkit/wizard/balance_common.py b/account_financial_report_webkit/wizard/balance_common.py new file mode 100644 index 00000000..db0df4fe --- /dev/null +++ b/account_financial_report_webkit/wizard/balance_common.py @@ -0,0 +1,295 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Copyright (c) 2011 Camptocamp SA (http://www.camptocamp.com) +# +# Author : Guewen Baconnier (Camptocamp) +# +# WARNING: This program as such is intended to be used by professional +# programmers who take the whole responsability of assessing all potential +# consequences resulting from its eventual inadequacies and bugs +# End users who are looking for a ready-to-use solution with commercial +# garantees and support are strongly adviced to contract a Free Software +# Service Company +# +# This program is Free Software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +############################################################################## + +import time + +from osv import fields, osv +from lxml import etree +from tools.translate import _ +from datetime import datetime + +def previous_year_date(date, nb_prev=1): + if not date: + return False + parsed_date = datetime.strptime(date, '%Y-%m-%d') + previous_date = datetime(year=parsed_date.year - nb_prev, + month=parsed_date.month, + day=parsed_date.day) + return previous_date + +class AccountBalanceCommonWizard(osv.osv_memory): + """Will launch trial balance report and pass required args""" + + _inherit = "account.common.account.report" + _name = "account.common.balance.report" + _description = "Common Balance Report" + + # an update module should be done if changed + # in order to create fields in db + COMPARISON_LEVEL = 3 + + COMPARE_SELECTION = [('filter_no', 'No Comparison'), + ('filter_year', 'Fiscal Year'), + ('filter_date', 'Date'), + ('filter_period', 'Periods'), + ('filter_opening', 'Opening Only')] + + M2O_DYNAMIC_FIELDS = [f % index for f in ["comp%s_fiscalyear_id", + "comp%s_period_from", + "comp%s_period_to",] + for index in range(COMPARISON_LEVEL)] + SIMPLE_DYNAMIC_FIELDS = [f % index for f in ["comp%s_filter", + "comp%s_date_from", + "comp%s_date_to"] + for index in range(COMPARISON_LEVEL)] + DYNAMIC_FIELDS = M2O_DYNAMIC_FIELDS + SIMPLE_DYNAMIC_FIELDS + + def _get_account_ids(self, cr, uid, context=None): + res = False + if context.get('active_model', False) == 'account.account' and context.get('active_ids', False): + res = context['active_ids'] + return res + + _columns = { + 'account_ids': fields.many2many('account.account', string='Filter on accounts', + help="Only selected accounts will be printed. Leave empty to print all accounts."), + 'filter': fields.selection([('filter_no', 'No Filters'), + ('filter_date', 'Date'), + ('filter_period', 'Periods'), + ('filter_opening', 'Opening Only')], "Filter by", required=True, help='Filter by date : no opening balance will be displayed. (opening balance can only be calculated based on period to be correct).'), + } + + for index in range(COMPARISON_LEVEL): + _columns.update( + {"comp%s_filter" % (index,): fields.selection(COMPARE_SELECTION, string='Compare By', required=True), + "comp%s_fiscalyear_id" % (index,): fields.many2one('account.fiscalyear', 'Fiscal Year'), + "comp%s_period_from" % (index,): fields.many2one('account.period', 'Start Period'), + "comp%s_period_to" % (index,): fields.many2one('account.period', 'End Period'), + "comp%s_date_from" % (index,): fields.date("Start Date"), + "comp%s_date_to" % (index,): fields.date("End Date"),}) + + _defaults = { + 'account_ids': _get_account_ids, + } + + def _check_fiscalyear(self, cr, uid, ids, context=None): + obj = self.read(cr, uid, ids[0], ['fiscalyear_id', 'filter'], context=context) + if not obj['fiscalyear_id'] and obj['filter'] == 'filter_no': + return False + return True + + _constraints = [ + (_check_fiscalyear, 'When no Fiscal year is selected, you must choose to filter by periods or by date.', ['filter']), + ] + + def default_get(self, cr, uid, fields, context=None): + """ + To get default values for the object. + + @param self: The object pointer. + @param cr: A database cursor + @param uid: ID of the user currently logged in + @param fields: List of fields for which we want default values + @param context: A standard dictionary + + @return: A dictionary which of fields with values. + + """ + res = super(AccountBalanceCommonWizard, self).default_get(cr, uid, fields, context=context) + for index in range(self.COMPARISON_LEVEL): + field = "comp%s_filter" % (index,) + if not res.get(field, False): + res[field] = 'filter_no' + return res + + def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False): + res = super(AccountBalanceCommonWizard, self).fields_view_get(cr, uid, view_id, view_type, context=context, toolbar=toolbar, submenu=submenu) + + res['fields'].update(self.fields_get(cr, uid, + allfields=self.DYNAMIC_FIELDS, + context=context, write_access=True)) + + eview = etree.fromstring(res['arch']) + placeholder = eview.xpath("//page[@name='placeholder']") + if placeholder: + placeholder = placeholder[0] + for index in range(self.COMPARISON_LEVEL): + page = etree.Element('page', {'name': "comp%s" % (index,), 'string': _("Comparison %s") % (index+1,)}) + page.append(etree.Element('field', {'name': "comp%s_filter" % (index,), + 'colspan': '4', + 'on_change': "onchange_comp_filter(%(index)s, filter, comp%(index)s_filter, fiscalyear_id, date_from, date_to)" % {'index': index}})) + page.append(etree.Element('field', {'name': "comp%s_fiscalyear_id" % (index,), + 'colspan': '4', + 'attrs': "{'required': [('comp%(index)s_filter','in',('filter_year','filter_opening'))], 'readonly':[('comp%(index)s_filter','not in',('filter_year','filter_opening'))]}" % {'index': index}})) + page.append(etree.Element('separator', {'string': _('Dates'), 'colspan':'4'})) + page.append(etree.Element('field', {'name': "comp%s_date_from" % (index,), 'colspan':'4', + 'attrs': "{'required': [('comp%(index)s_filter','=','filter_date')], 'readonly':[('comp%(index)s_filter','!=','filter_date')]}" % {'index': index}})) + page.append(etree.Element('field', {'name': "comp%s_date_to" % (index,), 'colspan':'4', + 'attrs': "{'required': [('comp%(index)s_filter','=','filter_date')], 'readonly':[('comp%(index)s_filter','!=','filter_date')]}" % {'index': index}})) + page.append(etree.Element('separator', {'string': _('Periods'), 'colspan':'4'})) + page.append(etree.Element('field', {'name': "comp%s_period_from" % (index,), + 'colspan': '4', + 'attrs': "{'required': [('comp%(index)s_filter','=','filter_period')], 'readonly':[('comp%(index)s_filter','!=','filter_period')]}" % {'index': index}, + 'domain': "[('special', '=', False)]"})) + page.append(etree.Element('field', {'name': "comp%s_period_to" % (index,), + 'colspan': '4', + 'attrs': "{'required': [('comp%(index)s_filter','=','filter_period')], 'readonly':[('comp%(index)s_filter','!=','filter_period')]}" % {'index': index}, + 'domain': "[('special', '=', False)]"})) + + placeholder.addprevious(page) + placeholder.getparent().remove(placeholder) + res['arch'] = etree.tostring(eview) + return res + + def onchange_filter(self, cr, uid, ids, filter='filter_no', fiscalyear_id=False, context=None): + res = {} + if filter == 'filter_no': + res['value'] = {'period_from': False, 'period_to': False, 'date_from': False ,'date_to': False} + if filter == 'filter_date': + if fiscalyear_id: + fyear = self.pool.get('account.fiscalyear').browse(cr, uid, fiscalyear_id, context=context) + date_from = fyear.date_start + date_to = fyear.date_stop > time.strftime('%Y-%m-%d') and time.strftime('%Y-%m-%d') or fyear.date_stop + else: + date_from, date_to = time.strftime('%Y-01-01'), time.strftime('%Y-%m-%d') + res['value'] = {'period_from': False, 'period_to': False, 'date_from': date_from, 'date_to': date_to} + if filter == 'filter_period' and fiscalyear_id: + start_period = end_period = False + cr.execute(''' + SELECT * FROM (SELECT p.id + FROM account_period p + LEFT JOIN account_fiscalyear f ON (p.fiscalyear_id = f.id) + WHERE f.id = %s + AND COALESCE(p.special, FALSE) = FALSE + ORDER BY p.date_start ASC + LIMIT 1) AS period_start + UNION + SELECT * FROM (SELECT p.id + FROM account_period p + LEFT JOIN account_fiscalyear f ON (p.fiscalyear_id = f.id) + WHERE f.id = %s + AND p.date_start < NOW() + AND COALESCE(p.special, FALSE) = FALSE + ORDER BY p.date_stop DESC + LIMIT 1) AS period_stop''', (fiscalyear_id, fiscalyear_id)) + periods = [i[0] for i in cr.fetchall()] + if periods: + start_period = end_period = periods[0] + if len(periods) > 1: + end_period = periods[1] + res['value'] = {'period_from': start_period, 'period_to': end_period, 'date_from': False, 'date_to': False} + return res + + def onchange_comp_filter(self, cr, uid, ids, index, main_filter='filter_no', comp_filter='filter_no', fiscalyear_id=False, start_date=False, stop_date=False, context=None): + res = {} + fy_obj = self.pool.get('account.fiscalyear') + last_fiscalyear_id = False + if fiscalyear_id: + fiscalyear = fy_obj.browse(cr, uid, fiscalyear_id, context=context) + last_fiscalyear_ids = fy_obj.search(cr, uid, [('date_stop', '<', fiscalyear.date_start)], + limit=self.COMPARISON_LEVEL, order='date_start desc', context=context) + if last_fiscalyear_ids: + if len(last_fiscalyear_ids) > index: + last_fiscalyear_id = last_fiscalyear_ids[index] # first element for the comparison 1, second element for the comparison 2 + + fy_id_field = "comp%s_fiscalyear_id" % (index,) + period_from_field = "comp%s_period_from" % (index,) + period_to_field = "comp%s_period_to" % (index,) + date_from_field = "comp%s_date_from" % (index,) + date_to_field = "comp%s_date_to" % (index,) + + if comp_filter == 'filter_no': + res['value'] = {fy_id_field: False, period_from_field: False, period_to_field: False, date_from_field: False ,date_to_field: False} + if comp_filter in ('filter_year', 'filter_opening'): + res['value'] = {fy_id_field: last_fiscalyear_id, period_from_field: False, period_to_field: False, date_from_field: False ,date_to_field: False} + if comp_filter == 'filter_date': + dates = {} + if main_filter == 'filter_date': + dates = { + 'date_start': previous_year_date(start_date, index + 1).strftime('%Y-%m-%d'), + 'date_stop': previous_year_date(stop_date, index + 1).strftime('%Y-%m-%d'),} + elif last_fiscalyear_id: + dates = fy_obj.read(cr, uid, last_fiscalyear_id, ['date_start', 'date_stop'], context=context) + + res['value'] = {fy_id_field: False, period_from_field: False, period_to_field: False, date_from_field: dates.get('date_start', False), date_to_field: dates.get('date_stop', False)} + if comp_filter == 'filter_period' and last_fiscalyear_id: + start_period = end_period = False + cr.execute(''' + SELECT * FROM (SELECT p.id + FROM account_period p + LEFT JOIN account_fiscalyear f ON (p.fiscalyear_id = f.id) + WHERE f.id = %(fiscalyear)s + AND COALESCE(p.special, FALSE) = FALSE + ORDER BY p.date_start ASC + LIMIT 1) AS period_start + UNION + SELECT * FROM (SELECT p.id + FROM account_period p + LEFT JOIN account_fiscalyear f ON (p.fiscalyear_id = f.id) + WHERE f.id = %(fiscalyear)s + AND p.date_start < NOW() + AND COALESCE(p.special, FALSE) = FALSE + ORDER BY p.date_stop DESC + LIMIT 1) AS period_stop''', {'fiscalyear': last_fiscalyear_id}) + periods = [i[0] for i in cr.fetchall()] + if periods and len(periods) > 1: + start_period = end_period = periods[0] + if len(periods) > 1: + end_period = periods[1] + res['value'] = {fy_id_field: False, + period_from_field: start_period, + period_to_field: end_period, + date_from_field: False, + date_to_field: False} + return res + + def pre_print_report(self, cr, uid, ids, data, context=None): + data = super(AccountBalanceCommonWizard, self).pre_print_report( + cr, uid, ids, data, context) + if context is None: + context = {} + + # will be used to attach the report on the main account + data['ids'] = [data['form']['chart_account_id']] + + fields_to_read = ['account_ids',] + fields_to_read += self.DYNAMIC_FIELDS + vals = self.read(cr, uid, ids, fields_to_read, context=context)[0] + + # extract the id from the m2o tuple (id, name) + for field in self.M2O_DYNAMIC_FIELDS: + if isinstance(vals[field], tuple): + vals[field] = vals[field][0] + + vals['max_comparison'] = self.COMPARISON_LEVEL + data['form'].update(vals) + return data + +AccountBalanceCommonWizard() diff --git a/account_financial_report_webkit/wizard/balance_common_view.xml b/account_financial_report_webkit/wizard/balance_common_view.xml new file mode 100644 index 00000000..dc3e4f04 --- /dev/null +++ b/account_financial_report_webkit/wizard/balance_common_view.xml @@ -0,0 +1,11 @@ + + + + + + + + diff --git a/account_financial_report_webkit/wizard/general_ledger_wizard.py b/account_financial_report_webkit/wizard/general_ledger_wizard.py new file mode 100644 index 00000000..2ee6eb16 --- /dev/null +++ b/account_financial_report_webkit/wizard/general_ledger_wizard.py @@ -0,0 +1,132 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# Author: Nicolas Bessi, Guewen Baconnier +# Copyright Camptocamp SA 2011 +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +import time + +from osv import fields, osv + + +class AccountReportGeneralLedgerWizard(osv.osv_memory): + """Will launch general ledger report and pass requiered args""" + + + _inherit = "account.common.account.report" + _name = "general.ledger.webkit" + _description = "General Ledger Report" + + def _get_account_ids(self, cr, uid, context=None): + res = False + if context.get('active_model', False) == 'account.account' and context.get('active_ids', False): + res = context['active_ids'] + return res + + _columns = { + 'amount_currency': fields.boolean("With Currency", + help="It adds the currency column"), + + 'display_account': fields.selection([('bal_all', 'All'), + ('bal_mix', 'With transactions or non zero balance')], + 'Display accounts', + required=True), + 'account_ids': fields.many2many('account.account', string='Filter on accounts', + help="""Only selected accounts will be printed. Leave empty to print all accounts."""), + 'centralize': fields.boolean('Activate Centralization', help='Uncheck to display all the details of centralized accounts.') + } + _defaults = { + 'amount_currency': False, + 'display_account': 'bal_mix', + 'account_ids': _get_account_ids, + 'centralize': True, + } + + def _check_fiscalyear(self, cr, uid, ids, context=None): + obj = self.read(cr, uid, ids[0], ['fiscalyear_id', 'filter'], context=context) + if not obj['fiscalyear_id'] and obj['filter'] == 'filter_no': + return False + return True + + _constraints = [ + (_check_fiscalyear, 'When no Fiscal year is selected, you must choose to filter by periods or by date.', ['filter']), + ] + + def pre_print_report(self, cr, uid, ids, data, context=None): + data = super(AccountReportGeneralLedgerWizard, self).pre_print_report(cr, uid, ids, data, context) + if context is None: + context = {} + # will be used to attach the report on the main account + data['ids'] = [data['form']['chart_account_id']] + vals = self.read(cr, uid, ids, + ['amount_currency', + 'display_account', + 'account_ids', + 'centralize'], + context=context)[0] + data['form'].update(vals) + return data + + def onchange_filter(self, cr, uid, ids, filter='filter_no', fiscalyear_id=False, context=None): + res = {} + if filter == 'filter_no': + res['value'] = {'period_from': False, 'period_to': False, 'date_from': False ,'date_to': False} + if filter == 'filter_date': + if fiscalyear_id: + fyear = self.pool.get('account.fiscalyear').browse(cr, uid, fiscalyear_id, context=context) + date_from = fyear.date_start + date_to = fyear.date_stop > time.strftime('%Y-%m-%d') and time.strftime('%Y-%m-%d') or fyear.date_stop + else: + date_from, date_to = time.strftime('%Y-01-01'), time.strftime('%Y-%m-%d') + res['value'] = {'period_from': False, 'period_to': False, 'date_from': date_from, 'date_to': date_to} + if filter == 'filter_period' and fiscalyear_id: + start_period = end_period = False + cr.execute(''' + SELECT * FROM (SELECT p.id + FROM account_period p + LEFT JOIN account_fiscalyear f ON (p.fiscalyear_id = f.id) + WHERE f.id = %s + AND COALESCE(p.special, FALSE) = FALSE + ORDER BY p.date_start ASC + LIMIT 1) AS period_start + UNION + SELECT * FROM (SELECT p.id + FROM account_period p + LEFT JOIN account_fiscalyear f ON (p.fiscalyear_id = f.id) + WHERE f.id = %s + AND p.date_start < NOW() + AND COALESCE(p.special, FALSE) = FALSE + ORDER BY p.date_stop DESC + LIMIT 1) AS period_stop''', (fiscalyear_id, fiscalyear_id)) + periods = [i[0] for i in cr.fetchall()] + if periods: + start_period = end_period = periods[0] + if len(periods) > 1: + end_period = periods[1] + res['value'] = {'period_from': start_period, 'period_to': end_period, 'date_from': False, 'date_to': False} + return res + + def _print_report(self, cursor, uid, ids, data, context=None): + context = context or {} + # we update form with display account value + data = self.pre_print_report(cursor, uid, ids, data, context=context) + return {'type': 'ir.actions.report.xml', + 'report_name': 'account.account_report_general_ledger_webkit', + 'datas': data} + +AccountReportGeneralLedgerWizard() diff --git a/account_financial_report_webkit/wizard/general_ledger_wizard_view.xml b/account_financial_report_webkit/wizard/general_ledger_wizard_view.xml new file mode 100644 index 00000000..a7bce96d --- /dev/null +++ b/account_financial_report_webkit/wizard/general_ledger_wizard_view.xml @@ -0,0 +1,89 @@ + + + + + + General Ledger + general.ledger.webkit + form + + + + + + + + 4 + +
+ + + + + + + + + + + + + + + + + + + + + True + + + Time Filters + + + [('fiscalyear_id', '=', fiscalyear_id), ('special', '=', False)] + + + [('fiscalyear_id', '=', fiscalyear_id), ('special', '=', False)] + +
+
+
+ + + General Ledger + general.ledger.webkit + form + + + + + + + + + + General Ledger + ir.actions.act_window + general.ledger.webkit + form + form + + new + + + + + + General Ledger + client_print_multi + + action + account.account + + +
+
diff --git a/account_financial_report_webkit/wizard/open_invoices_wizard.py b/account_financial_report_webkit/wizard/open_invoices_wizard.py new file mode 100644 index 00000000..115541bb --- /dev/null +++ b/account_financial_report_webkit/wizard/open_invoices_wizard.py @@ -0,0 +1,127 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# Author: Guewen Baconnier +# Copyright Camptocamp SA 2012 +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## +from osv import fields, osv + + +class AccountReportOpenInvoicesWizard(osv.osv_memory): + """Will launch partner ledger report and pass required args""" + + _inherit = "partners.ledger.webkit" + _name = "open.invoices.webkit" + _description = "Open Invoices Report" + + _columns = { + 'until_date': fields.date("Clearance date", + required=True, + help="""The clearance date is essentially a tool used for debtors provisionning calculation. + +By default, this date is equal to the the end date (ie: 31/12/2011 if you select fy 2011). + +By amending the clearance date, you will be, for instance, able to answer the question : 'based on my last year end debtors open invoices, which invoices are still unpaid today (today is my clearance date)?' +"""), + + } + + def _check_until_date(self, cr, uid, ids, context=None): + def get_key_id(obj, field): + return obj.get(field) and obj[field][0] or False + + obj = self.read(cr, uid, ids[0], ['fiscalyear_id', 'period_to', 'date_to', 'until_date'], context=context) + min_date = self.default_until_date(cr, uid, ids, + get_key_id(obj, 'fiscalyear_id'), + get_key_id(obj, 'period_to'), + obj['date_to'], + context=context) + if min_date and obj['until_date'] < min_date: + return False + return True + + _constraints = [ + (_check_until_date, 'Clearance date must be the very last date of the last period or later.', ['until_date']), + ] + + def default_until_date(self, cursor, uid, ids, fiscalyear_id=False, period_id=False, date_to=False, context=None): + res_date = False + # first priority: period or date filters + if period_id: + res_date = self.pool.get('account.period').read(cursor, uid, period_id, ['date_stop'], context=context)['date_stop'] + elif date_to: + res_date = date_to + elif fiscalyear_id: + res_date = self.pool.get('account.fiscalyear').read(cursor, uid, fiscalyear_id, ['date_stop'], context=context)['date_stop'] + return res_date + + def onchange_fiscalyear(self, cursor, uid, ids, fiscalyear=False, period_id=False, date_to=False, until_date=False, context=None): + res = {'value': {}} + res['value']['until_date'] = self.default_until_date(cursor, uid, ids, + fiscalyear_id=fiscalyear, + period_id=period_id, + date_to=date_to, + context=context) + return res + + def onchange_date_to(self, cursor, uid, ids, fiscalyear=False, period_id=False, date_to=False, until_date=False, context=None): + res = {'value': {}} + res['value']['until_date'] = self.default_until_date(cursor, uid, ids, + fiscalyear_id=fiscalyear, + period_id=period_id, + date_to=date_to, + context=context) + return res + + def onchange_period_to(self, cursor, uid, ids, fiscalyear=False, period_id=False, date_to=False, until_date=False, context=None): + res = {'value': {}} + res['value']['until_date'] = self.default_until_date(cursor, uid, ids, + fiscalyear_id=fiscalyear, + period_id=period_id, + date_to=date_to, + context=context) + return res + + def onchange_filter(self, cr, uid, ids, filter='filter_no', fiscalyear_id=False, context=None): + res = super(AccountReportOpenInvoicesWizard, self).onchange_filter(cr, uid, ids, filter=filter, fiscalyear_id=fiscalyear_id, context=context) + if res.get('value', False): + res['value']['until_date'] = self.default_until_date(cr, uid, ids, + fiscalyear_id=fiscalyear_id, + period_id=res['value'].get('period_to', False), + date_to=res['value'].get('date_to', False), + context=context) + return res + + def pre_print_report(self, cr, uid, ids, data, context=None): + data = super(AccountReportOpenInvoicesWizard, self).pre_print_report(cr, uid, ids, data, context) + if context is None: + context = {} + vals = self.read(cr, uid, ids, + ['until_date',], + context=context)[0] + data['form'].update(vals) + return data + + def _print_report(self, cursor, uid, ids, data, context=None): + context = context or {} + # we update form with display account value + data = self.pre_print_report(cursor, uid, ids, data, context=context) + return {'type': 'ir.actions.report.xml', + 'report_name': 'account.account_report_open_invoices_webkit', + 'datas': data} + +AccountReportOpenInvoicesWizard() diff --git a/account_financial_report_webkit/wizard/open_invoices_wizard_view.xml b/account_financial_report_webkit/wizard/open_invoices_wizard_view.xml new file mode 100644 index 00000000..1b1c1fa2 --- /dev/null +++ b/account_financial_report_webkit/wizard/open_invoices_wizard_view.xml @@ -0,0 +1,72 @@ + + + + + + Open Invoices Report + open.invoices.webkit + form + + + + + + + + 4 + + + + + + + + + + + + + + + + + + + + Time Filters + + + True + + + onchange_fiscalyear(fiscalyear_id, period_to, date_to, until_date) + + + onchange_date_to(fiscalyear_id, period_to, date_to, until_date) + + + onchange_period_to(fiscalyear_id, period_to, date_to, until_date) + + + [('fiscalyear_id', '=', fiscalyear_id), ('special', '=', False)] + + + [('fiscalyear_id', '=', fiscalyear_id), ('special', '=', False)] + + + + + + + Open Invoices Report + ir.actions.act_window + open.invoices.webkit + form + form + + new + + + + diff --git a/account_financial_report_webkit/wizard/partner_balance_wizard.py b/account_financial_report_webkit/wizard/partner_balance_wizard.py new file mode 100644 index 00000000..fb2964b1 --- /dev/null +++ b/account_financial_report_webkit/wizard/partner_balance_wizard.py @@ -0,0 +1,64 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# Author: Guewen Baconnier +# Copyright Camptocamp SA 2011 +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +from osv import fields, osv + + +class AccountPartnerBalanceWizard(osv.osv_memory): + """Will launch partner balance report and pass required args""" + + _inherit = "account.common.balance.report" + _name = "partner.balance.webkit" + _description = "Partner Balance Report" + + _columns = { + 'result_selection': fields.selection([('customer','Receivable Accounts'), + ('supplier','Payable Accounts'), + ('customer_supplier','Receivable and Payable Accounts')], + "Partner's", required=True), + 'partner_ids': fields.many2many('res.partner', string='Filter on partner', + help="Only selected partners will be printed. Leave empty to print all partners."), + } + + _defaults = { + 'result_selection': 'customer_supplier', + } + + def pre_print_report(self, cr, uid, ids, data, context=None): + data = super(AccountPartnerBalanceWizard, self).pre_print_report(cr, uid, ids, data, context) + if context is None: + context = {} + vals = self.read(cr, uid, ids, + ['result_selection', 'partner_ids'], + context=context)[0] + data['form'].update(vals) + return data + + def _print_report(self, cursor, uid, ids, data, context=None): + context = context or {} + # we update form with display account value + data = self.pre_print_report(cursor, uid, ids, data, context=context) + + return {'type': 'ir.actions.report.xml', + 'report_name': 'account.account_report_partner_balance_webkit', + 'datas': data} + +AccountPartnerBalanceWizard() diff --git a/account_financial_report_webkit/wizard/partner_balance_wizard_view.xml b/account_financial_report_webkit/wizard/partner_balance_wizard_view.xml new file mode 100644 index 00000000..e1dfdc3f --- /dev/null +++ b/account_financial_report_webkit/wizard/partner_balance_wizard_view.xml @@ -0,0 +1,85 @@ + + + + + + + Partner Balance + partner.balance.webkit + form + + + + + + + + 4 + + + + + + + + + + + + + + + + + + + + + + + + True + + + Time Filters + + + [('fiscalyear_id', '=', fiscalyear_id), ('special', '=', False)] + + + [('fiscalyear_id', '=', fiscalyear_id), ('special', '=', False)] + + + {'required': [('filter', '=', 'filter_opening')]} + + + + + + + Partner Balance + ir.actions.act_window + partner.balance.webkit + form + form + + new + + + + + + Partner Balance + client_print_multi + + action + account.account + + + + diff --git a/account_financial_report_webkit/wizard/partners_ledger_wizard.py b/account_financial_report_webkit/wizard/partners_ledger_wizard.py new file mode 100644 index 00000000..c3def319 --- /dev/null +++ b/account_financial_report_webkit/wizard/partners_ledger_wizard.py @@ -0,0 +1,116 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# Author: Nicolas Bessi, Guewen Baconnier +# Copyright Camptocamp SA 2011 +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## +import time + +from osv import fields, osv + + +class AccountReportPartnersLedgerWizard(osv.osv_memory): + """Will launch partner ledger report and pass required args""" + + _inherit = "account.common.partner.report" + _name = "partners.ledger.webkit" + _description = "Partner Ledger Report" + + _columns = { + 'amount_currency': fields.boolean("With Currency", + help="It adds the currency column"), + 'partner_ids': fields.many2many('res.partner', string='Filter on partner', + help="Only selected partners will be printed. Leave empty to print all partners."), + 'filter': fields.selection([('filter_no', 'No Filters'), + ('filter_date', 'Date'), + ('filter_period', 'Periods')], "Filter by", required=True, help='Filter by date : no opening balance will be displayed. (opening balance can only be calculated based on period to be correct).'), + } + _defaults = { + 'amount_currency': False, + 'result_selection': 'customer_supplier', + } + + def _check_fiscalyear(self, cr, uid, ids, context=None): + obj = self.read(cr, uid, ids[0], ['fiscalyear_id', 'filter'], context=context) + if not obj['fiscalyear_id'] and obj['filter'] == 'filter_no': + return False + return True + + _constraints = [ + (_check_fiscalyear, 'When no Fiscal year is selected, you must choose to filter by periods or by date.', ['filter']), + ] + + def onchange_filter(self, cr, uid, ids, filter='filter_no', fiscalyear_id=False, context=None): + res = {} + if filter == 'filter_no': + res['value'] = {'period_from': False, 'period_to': False, 'date_from': False ,'date_to': False} + if filter == 'filter_date': + if fiscalyear_id: + fyear = self.pool.get('account.fiscalyear').browse(cr, uid, fiscalyear_id, context=context) + date_from = fyear.date_start + date_to = fyear.date_stop > time.strftime('%Y-%m-%d') and time.strftime('%Y-%m-%d') or fyear.date_stop + else: + date_from, date_to = time.strftime('%Y-01-01'), time.strftime('%Y-%m-%d') + res['value'] = {'period_from': False, 'period_to': False, 'date_from': date_from, 'date_to': date_to} + if filter == 'filter_period' and fiscalyear_id: + start_period = end_period = False + cr.execute(''' + SELECT * FROM (SELECT p.id + FROM account_period p + LEFT JOIN account_fiscalyear f ON (p.fiscalyear_id = f.id) + WHERE f.id = %s + AND COALESCE(p.special, FALSE) = FALSE + ORDER BY p.date_start ASC + LIMIT 1) AS period_start + UNION + SELECT * FROM (SELECT p.id + FROM account_period p + LEFT JOIN account_fiscalyear f ON (p.fiscalyear_id = f.id) + WHERE f.id = %s + AND p.date_start < NOW() + AND COALESCE(p.special, FALSE) = FALSE + ORDER BY p.date_stop DESC + LIMIT 1) AS period_stop''', (fiscalyear_id, fiscalyear_id)) + periods = [i[0] for i in cr.fetchall()] + if periods: + start_period = end_period = periods[0] + if len(periods) > 1: + end_period = periods[1] + res['value'] = {'period_from': start_period, 'period_to': end_period, 'date_from': False, 'date_to': False} + return res + + def pre_print_report(self, cr, uid, ids, data, context=None): + data = super(AccountReportPartnersLedgerWizard, self).pre_print_report(cr, uid, ids, data, context) + if context is None: + context = {} + # will be used to attach the report on the main account + data['ids'] = [data['form']['chart_account_id']] + vals = self.read(cr, uid, ids, + ['amount_currency', 'partner_ids',], + context=context)[0] + data['form'].update(vals) + return data + + def _print_report(self, cursor, uid, ids, data, context=None): + context = context or {} + # we update form with display account value + data = self.pre_print_report(cursor, uid, ids, data, context=context) + return {'type': 'ir.actions.report.xml', + 'report_name': 'account.account_report_partners_ledger_webkit', + 'datas': data} + +AccountReportPartnersLedgerWizard() diff --git a/account_financial_report_webkit/wizard/partners_ledger_wizard_view.xml b/account_financial_report_webkit/wizard/partners_ledger_wizard_view.xml new file mode 100644 index 00000000..fa165c59 --- /dev/null +++ b/account_financial_report_webkit/wizard/partners_ledger_wizard_view.xml @@ -0,0 +1,69 @@ + + + + + + Partner Ledger + partners.ledger.webkit + form + + + + + + + + 4 + + + + + + + + + + + + + + + Time Filters + + + True + + + [('fiscalyear_id', '=', fiscalyear_id), ('special', '=', False)] + + + [('fiscalyear_id', '=', fiscalyear_id), ('special', '=', False)] + + + + + + + Partner Ledger + ir.actions.act_window + partners.ledger.webkit + form + form + + new + + + + + + Partner Ledger + client_print_multi + + action + account.account + + + + diff --git a/account_financial_report_webkit/wizard/profit_loss_wizard.py b/account_financial_report_webkit/wizard/profit_loss_wizard.py new file mode 100644 index 00000000..25d758d9 --- /dev/null +++ b/account_financial_report_webkit/wizard/profit_loss_wizard.py @@ -0,0 +1,166 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Copyright (c) 2011 Camptocamp SA (http://www.camptocamp.com) +# +# Author : Guewen Baconnier (Camptocamp) +# +# WARNING: This program as such is intended to be used by professional +# programmers who take the whole responsability of assessing all potential +# consequences resulting from its eventual inadequacies and bugs +# End users who are looking for a ready-to-use solution with commercial +# garantees and support are strongly adviced to contract a Free Software +# Service Company +# +# This program is Free Software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +############################################################################## + +from lxml import etree +from tools.translate import _ +from osv import fields, osv + +LEVEL_STYLES = 6 + +DEFAULT_STYLES = { + 'print': [True, True, True, True, True, True], + 'size': [12, 11, 10, 9, 9, 9], + 'bold': [True, True, True, False, False, False], + 'italic': [False, False, False, False, False, False], + 'underline': [False, False, False, False, False, False], + 'uppercase': [True, True, False, False, False, False], +} + +class AccountProfitAndLossLedgerWizard(osv.osv_memory): + """Will launch trial balance report and pass required args""" + + _inherit = "account.common.balance.report" + _name = "profit.loss.webkit" + _description = "Profit and Loss Report" + + _columns = { + 'numbers_display': fields.selection([('normal', 'Normal'), ('round', 'Round (No decimal)'), ('kilo', 'Kilo')], 'Numbers Display', required=True) + } + + _defaults = { + 'numbers_display': 'normal', + } + + def view_init(self, cr, uid, fields_list, context=None): + """ + Creates view dynamically and adding fields at runtime. + @param self: The object pointer. + @param cr: A database cursor + @param uid: ID of the user currently logged in + @param context: A standard dictionary + @return: New arch of view with new columns. + """ + res = super(AccountProfitAndLossLedgerWizard, self).view_init(cr, uid, fields_list, context=context) + for index in range(LEVEL_STYLES): + # create columns for each comparison page + self._columns.update({ + "level%s_print" % (index,): + fields.boolean('Print'), + "level%s_size" % (index,): + fields.integer('Size', required=True), + "level%s_bold" % (index,): + fields.boolean('Bold'), + "level%s_italic" % (index,): + fields.boolean('Italic'), + "level%s_underline" % (index,): + fields.boolean('Underline'), + "level%s_uppercase" % (index,): + fields.boolean('Uppercase'), + }) + return res + + def default_get(self, cr, uid, fields, context=None): + """ + To get default values for the object. + + @param self: The object pointer. + @param cr: A database cursor + @param uid: ID of the user currently logged in + @param fields: List of fields for which we want default values + @param context: A standard dictionary + + @return: A dictionary which of fields with values. + + """ + res = super(AccountProfitAndLossLedgerWizard, self).default_get(cr, uid, fields, context=context) + + for key, values in DEFAULT_STYLES.iteritems(): + for index in range(LEVEL_STYLES): + field = "level%s_%s" % (index, key) + if not res.get(field, False): + res[field] = values[index] + return res + + def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False): + res = super(AccountProfitAndLossLedgerWizard, self).fields_view_get(cr, uid, view_id, view_type, context=context, toolbar=toolbar, submenu=submenu) + + eview = etree.fromstring(res['arch']) + placeholder = eview.xpath("//group[@name='levels']") + if placeholder: + placeholder = placeholder[0] + for index in range(LEVEL_STYLES): + # add fields + res['fields']["level%s_print" % (index,)] = {'string': "Print", 'type': 'boolean'} + res['fields']["level%s_size" % (index,)] = {'string': "Size", 'type': 'integer', 'required': True} + res['fields']["level%s_bold" % (index,)] = {'string': "Bold", 'type': 'boolean',} + res['fields']["level%s_italic" % (index,)] = {'string': "Italic", 'type': 'boolean',} + res['fields']["level%s_underline" % (index,)] = {'string': "Underline", 'type': 'boolean',} + res['fields']["level%s_uppercase" % (index,)] = {'string': "Uppercase", 'type': 'boolean'} + + common_attrs = "{'readonly': [('level%(index)s_print', '=', False)]}" % {'index': index} + group = etree.Element('group', {'name': "group_level_%s" % (index,), 'colspan':'4', 'col': '10'}) + group.append(etree.Element('separator', {'string': _('Level %s') % (index+1,), 'colspan':'2'})) + group.append(etree.Element('field', {'name': "level%s_print" % (index,), 'colspan': '8'})) + group.append(etree.Element('field', {'name': "level%s_size" % (index,), 'attrs': common_attrs})) + group.append(etree.Element('field', {'name': "level%s_bold" % (index,), 'attrs': common_attrs})) + group.append(etree.Element('field', {'name': "level%s_italic" % (index,), 'attrs': common_attrs})) + group.append(etree.Element('field', {'name': "level%s_underline" % (index,), 'attrs': common_attrs})) + group.append(etree.Element('field', {'name': "level%s_uppercase" % (index,), 'attrs': common_attrs})) + + placeholder.append(group) + res['arch'] = etree.tostring(eview) + return res + + def _print_report(self, cursor, uid, ids, data, context=None): + context = context or {} + # we update form with display account value + data = self.pre_print_report(cursor, uid, ids, data, context=context) + + fields_to_read = ['numbers_display',] + + # comparison fields + for index in range(LEVEL_STYLES): + fields_to_read.extend([ + "level%s_print" % (index,), + "level%s_size" % (index,), + "level%s_bold" % (index,), + "level%s_italic" % (index,), + "level%s_underline" % (index,), + "level%s_uppercase" % (index,), + ]) + + vals = self.read(cursor, uid, ids, fields_to_read,context=context)[0] + + data['form'].update(vals) + return {'type': 'ir.actions.report.xml', + 'report_name': 'account.account_report_profit_loss_webkit', + 'datas': data} + +AccountProfitAndLossLedgerWizard() diff --git a/account_financial_report_webkit/wizard/profit_loss_wizard_view.xml b/account_financial_report_webkit/wizard/profit_loss_wizard_view.xml new file mode 100644 index 00000000..0f5c63fa --- /dev/null +++ b/account_financial_report_webkit/wizard/profit_loss_wizard_view.xml @@ -0,0 +1,72 @@ + + + + + + Profit and Loss Webkit + profit.loss.webkit + form + + + + + + + + 4 + + + + + + + + + + + + + + + + + + + + + True + + + + + + + Profit and Loss Webkit + ir.actions.act_window + profit.loss.webkit + form + form + + new + + + + + + + + + + + + + + + + + + + + + diff --git a/account_financial_report_webkit/wizard/trial_balance_wizard.py b/account_financial_report_webkit/wizard/trial_balance_wizard.py new file mode 100644 index 00000000..25e14359 --- /dev/null +++ b/account_financial_report_webkit/wizard/trial_balance_wizard.py @@ -0,0 +1,41 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# Author: Guewen Baconnier +# Copyright Camptocamp SA 2011 +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +from osv import osv + + +class AccountTrialBalanceWizard(osv.osv_memory): + """Will launch trial balance report and pass required args""" + + _inherit = "account.common.balance.report" + _name = "trial.balance.webkit" + _description = "Trial Balance Report" + + def _print_report(self, cursor, uid, ids, data, context=None): + context = context or {} + # we update form with display account value + data = self.pre_print_report(cursor, uid, ids, data, context=context) + + return {'type': 'ir.actions.report.xml', + 'report_name': 'account.account_report_trial_balance_webkit', + 'datas': data} + +AccountTrialBalanceWizard() diff --git a/account_financial_report_webkit/wizard/trial_balance_wizard_view.xml b/account_financial_report_webkit/wizard/trial_balance_wizard_view.xml new file mode 100644 index 00000000..cfdf39e8 --- /dev/null +++ b/account_financial_report_webkit/wizard/trial_balance_wizard_view.xml @@ -0,0 +1,78 @@ + + + + + + + Trial Balance + trial.balance.webkit + form + + + + + + + + 4 + + + + + + + + + + + + + + + + + True + + + Time Filters + + + [('fiscalyear_id', '=', fiscalyear_id), ('special', '=', False)] + + + [('fiscalyear_id', '=', fiscalyear_id), ('special', '=', False)] + + + {'required': [('filter', '=', 'filter_opening')]} + + + + + + + Trial Balance + ir.actions.act_window + trial.balance.webkit + form + form + + new + + + + + + Trial Balance + client_print_multi + + action + account.account + + + + diff --git a/account_financial_report_webkit/wizard/wizard.xml b/account_financial_report_webkit/wizard/wizard.xml new file mode 100644 index 00000000..9686f24e --- /dev/null +++ b/account_financial_report_webkit/wizard/wizard.xml @@ -0,0 +1,4 @@ + + + + From c57188fcea544104f6c5c7c601c7b1d462048bfa Mon Sep 17 00:00:00 2001 From: "Guewen Baconnier @ Camptocamp" Date: Wed, 18 Apr 2012 16:35:42 +0200 Subject: [PATCH 02/28] [MRG] from upstream (lp:c2c-addons/6.1 rev 24.1.2) --- .../account_move_line_view.xml | 4 ++-- .../report/webkit_parser_header_fix.py | 8 +++++--- account_financial_report_webkit/wizard/balance_common.py | 4 ++-- .../wizard/general_ledger_wizard.py | 2 +- .../wizard/partners_ledger_wizard.py | 2 +- 5 files changed, 11 insertions(+), 9 deletions(-) diff --git a/account_financial_report_webkit/account_move_line_view.xml b/account_financial_report_webkit/account_move_line_view.xml index 969a3824..a99a8e9d 100644 --- a/account_financial_report_webkit/account_move_line_view.xml +++ b/account_financial_report_webkit/account_move_line_view.xml @@ -10,7 +10,7 @@ form - + @@ -20,4 +20,4 @@ - \ No newline at end of file + diff --git a/account_financial_report_webkit/report/webkit_parser_header_fix.py b/account_financial_report_webkit/report/webkit_parser_header_fix.py index f3928443..cc2bb997 100644 --- a/account_financial_report_webkit/report/webkit_parser_header_fix.py +++ b/account_financial_report_webkit/report/webkit_parser_header_fix.py @@ -33,6 +33,7 @@ import tempfile import time import pooler import tools +import logging import openerp.addons @@ -43,6 +44,7 @@ from openerp.addons.report_webkit import webkit_report from openerp.addons.report_webkit.webkit_report import mako_template from openerp.addons.report_webkit.report_helper import WebKitHelper +_logger = logging.getLogger('financial.reports.webkit') # Class used only as a workaround to bug : # http://code.google.com/p/wkhtmltopdf/issues/detail?id=656 @@ -188,7 +190,7 @@ class HeaderFooterTextWebKitParser(webkit_report.WebKitParser): htmls.append(html) except Exception, e: msg = exceptions.text_error_template().render() - logger.error(msg) + _logger.error(msg) raise except_osv(_('Webkit render'), msg) else: try : @@ -199,7 +201,7 @@ class HeaderFooterTextWebKitParser(webkit_report.WebKitParser): htmls.append(html) except Exception, e: msg = exceptions.text_error_template().render() - logger.error(msg) + _logger.error(msg) raise except_osv(_('Webkit render'), msg) # NO html footer and header because we write them as text with wkhtmltopdf @@ -214,7 +216,7 @@ class HeaderFooterTextWebKitParser(webkit_report.WebKitParser): **self.parser_instance.localcontext) except Exception, e: msg = exceptions.text_error_template().render() - logger.error(msg) + _logger.error(msg) raise except_osv(_('Webkit render'), msg) return (deb, 'html') bin = self.get_lib(cursor, uid) diff --git a/account_financial_report_webkit/wizard/balance_common.py b/account_financial_report_webkit/wizard/balance_common.py index db0df4fe..bee3949b 100644 --- a/account_financial_report_webkit/wizard/balance_common.py +++ b/account_financial_report_webkit/wizard/balance_common.py @@ -190,7 +190,7 @@ class AccountBalanceCommonWizard(osv.osv_memory): AND COALESCE(p.special, FALSE) = FALSE ORDER BY p.date_start ASC LIMIT 1) AS period_start - UNION + UNION ALL SELECT * FROM (SELECT p.id FROM account_period p LEFT JOIN account_fiscalyear f ON (p.fiscalyear_id = f.id) @@ -249,7 +249,7 @@ class AccountBalanceCommonWizard(osv.osv_memory): AND COALESCE(p.special, FALSE) = FALSE ORDER BY p.date_start ASC LIMIT 1) AS period_start - UNION + UNION ALL SELECT * FROM (SELECT p.id FROM account_period p LEFT JOIN account_fiscalyear f ON (p.fiscalyear_id = f.id) diff --git a/account_financial_report_webkit/wizard/general_ledger_wizard.py b/account_financial_report_webkit/wizard/general_ledger_wizard.py index 2ee6eb16..863c1d98 100644 --- a/account_financial_report_webkit/wizard/general_ledger_wizard.py +++ b/account_financial_report_webkit/wizard/general_ledger_wizard.py @@ -104,7 +104,7 @@ class AccountReportGeneralLedgerWizard(osv.osv_memory): AND COALESCE(p.special, FALSE) = FALSE ORDER BY p.date_start ASC LIMIT 1) AS period_start - UNION + UNION ALL SELECT * FROM (SELECT p.id FROM account_period p LEFT JOIN account_fiscalyear f ON (p.fiscalyear_id = f.id) diff --git a/account_financial_report_webkit/wizard/partners_ledger_wizard.py b/account_financial_report_webkit/wizard/partners_ledger_wizard.py index c3def319..e8af5c5d 100644 --- a/account_financial_report_webkit/wizard/partners_ledger_wizard.py +++ b/account_financial_report_webkit/wizard/partners_ledger_wizard.py @@ -76,7 +76,7 @@ class AccountReportPartnersLedgerWizard(osv.osv_memory): AND COALESCE(p.special, FALSE) = FALSE ORDER BY p.date_start ASC LIMIT 1) AS period_start - UNION + UNION ALL SELECT * FROM (SELECT p.id FROM account_period p LEFT JOIN account_fiscalyear f ON (p.fiscalyear_id = f.id) From aa82ee070cc8e0b5e7910d1369ddada2e713908c Mon Sep 17 00:00:00 2001 From: "Guewen Baconnier @ Camptocamp" Date: Mon, 7 May 2012 13:54:03 +0200 Subject: [PATCH 03/28] [MRG] from upstream (lp:c2c-addons/6.1 rev 24.1.4) --- .../i18n/account_financial_report_webkit.pot | 428 +++--- account_financial_report_webkit/i18n/de.po | 1162 +++++++++++++++++ .../report/open_invoices.py | 31 +- .../account_report_open_invoices.mako | 196 +-- ..._by_curr_open_invoices_inclusion.mako.html | 166 +++ .../open_invoices_inclusion.mako.html | 176 +++ .../wizard/open_invoices_wizard.py | 7 +- .../wizard/open_invoices_wizard_view.xml | 1 + 8 files changed, 1831 insertions(+), 336 deletions(-) create mode 100644 account_financial_report_webkit/i18n/de.po create mode 100644 account_financial_report_webkit/report/templates/grouped_by_curr_open_invoices_inclusion.mako.html create mode 100644 account_financial_report_webkit/report/templates/open_invoices_inclusion.mako.html diff --git a/account_financial_report_webkit/i18n/account_financial_report_webkit.pot b/account_financial_report_webkit/i18n/account_financial_report_webkit.pot index 394aa4e7..9d23983d 100644 --- a/account_financial_report_webkit/i18n/account_financial_report_webkit.pot +++ b/account_financial_report_webkit/i18n/account_financial_report_webkit.pot @@ -4,10 +4,10 @@ # msgid "" msgstr "" -"Project-Id-Version: OpenERP Server 6.0.3\n" -"Report-Msgid-Bugs-To: support@openerp.com\n" -"POT-Creation-Date: 2012-01-20 09:03+0000\n" -"PO-Revision-Date: 2012-01-20 09:03+0000\n" +"Project-Id-Version: OpenERP Server 6.1\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-05-07 07:02+0000\n" +"PO-Revision-Date: 2012-05-07 07:02+0000\n" "Last-Translator: <>\n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -38,8 +38,8 @@ msgstr "" #. module: account_financial_report_webkit #: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:203 -#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:223 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:253 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:228 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:258 msgid "Cumulated Balance on Account" msgstr "" @@ -70,7 +70,7 @@ msgid "Periods Filter:" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:172 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:170 #, python-format msgid "No header defined for this Webkit report!" msgstr "" @@ -82,15 +82,18 @@ msgid "Filter has to be in filter date, period, or none" msgstr "" #. module: account_financial_report_webkit -#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_trial_balance_menu_webkit #: model:ir.actions.report.xml,name:account_financial_report_webkit.account_report_trial_balance_webkit msgid "Trial Balance Webkit" msgstr "" #. module: account_financial_report_webkit -#: constraint:account.account:0 -msgid "Configuration Error! \n" -"You cannot define children to an account with internal type different of \"View\"! " +#: field:account.common.balance.report,company_id:0 +#: field:general.ledger.webkit,company_id:0 +#: field:open.invoices.webkit,company_id:0 +#: field:partner.balance.webkit,company_id:0 +#: field:partners.ledger.webkit,company_id:0 +#: field:trial.balance.webkit,company_id:0 +msgid "Company" msgstr "" #. module: account_financial_report_webkit @@ -121,10 +124,10 @@ msgid "It adds the currency column" msgstr "" #. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/common_reports.py:75 #: selection:open.invoices.webkit,result_selection:0 #: selection:partner.balance.webkit,result_selection:0 #: selection:partners.ledger.webkit,result_selection:0 -#: code:addons/account_financial_report_webkit/report/common_reports.py:73 #, python-format msgid "Receivable and Payable Accounts" msgstr "" @@ -157,32 +160,26 @@ msgid "Print only" msgstr "" #. module: account_financial_report_webkit -#: constraint:account.move.line:0 -msgid "You can not create move line on closed account." -msgstr "" - -#. module: account_financial_report_webkit -#: model:ir.model,name:account_financial_report_webkit.model_account_report_partner_balance_webkit +#: model:ir.model,name:account_financial_report_webkit.model_partner_balance_webkit msgid "Partner Balance Report" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:221 -#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:230 -#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:247 -#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:258 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:194 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:205 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:220 #, python-format msgid "Webkit render" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:167 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:165 #, python-format msgid "Error!" msgstr "" #. module: account_financial_report_webkit -#: model:ir.model,name:account_financial_report_webkit.model_account_report_trial_balance_webkit +#: model:ir.model,name:account_financial_report_webkit.model_trial_balance_webkit msgid "Trial Balance Report" msgstr "" @@ -192,20 +189,20 @@ msgid "Code" msgstr "" #. module: account_financial_report_webkit -#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_partners_ledger_menu_webkit #: model:ir.actions.report.xml,name:account_financial_report_webkit.account_report_partners_ledger_webkit msgid "Partner Ledger Webkit" msgstr "" #. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:192 -msgid "Unallocated" +#: field:account.common.balance.report,display_account:0 +#: field:partner.balance.webkit,display_account:0 +#: field:trial.balance.webkit,display_account:0 +msgid "Display Accounts" msgstr "" #. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:116 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:112 -msgid "Rec." +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:192 +msgid "Unallocated" msgstr "" #. module: account_financial_report_webkit @@ -215,33 +212,23 @@ msgid "Webkit raise an error" msgstr "" #. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/common_reports.py:71 #: selection:open.invoices.webkit,result_selection:0 #: selection:partner.balance.webkit,result_selection:0 #: selection:partners.ledger.webkit,result_selection:0 -#: code:addons/account_financial_report_webkit/report/common_reports.py:69 #, python-format msgid "Receivable Accounts" msgstr "" #. module: account_financial_report_webkit -#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_general_ledger_menu_webkit #: model:ir.actions.report.xml,name:account_financial_report_webkit.account_report_general_ledger_webkit msgid "General Ledger Webkit" msgstr "" #. module: account_financial_report_webkit -#: field:account.common.balance.report,period_from:0 -#: field:general.ledger.webkit,period_from:0 -#: field:open.invoices.webkit,period_from:0 -#: field:partner.balance.webkit,period_from:0 -#: field:partners.ledger.webkit,period_from:0 -#: field:trial.balance.webkit,period_from:0 -msgid "Start period" -msgstr "" - -#. module: account_financial_report_webkit -#: model:ir.model,name:account_financial_report_webkit.model_account_report_open_transactions_webkit -msgid "Open Transactions Report" +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:116 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:112 +msgid "Rec." msgstr "" #. module: account_financial_report_webkit @@ -258,6 +245,12 @@ msgstr "" msgid "Periods Filter" msgstr "" +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/common_reports.py:313 +#, python-format +msgid "No period found" +msgstr "" + #. module: account_financial_report_webkit #: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:38 #: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:139 @@ -273,17 +266,12 @@ msgid "Initial Balance" msgstr "" #. module: account_financial_report_webkit -#: field:account.common.balance.report,period_to:0 -#: field:general.ledger.webkit,period_to:0 -#: field:open.invoices.webkit,period_to:0 -#: field:partner.balance.webkit,period_to:0 -#: field:partners.ledger.webkit,period_to:0 -#: field:trial.balance.webkit,period_to:0 -msgid "End period" +#: constraint:account.move.line:0 +msgid "The date of your Journal Entry is not in the defined period! You should change the date or remove this constraint from the journal." msgstr "" #. module: account_financial_report_webkit -#: model:ir.model,name:account_financial_report_webkit.model_account_report_general_ledger_webkit +#: model:ir.model,name:account_financial_report_webkit.model_general_ledger_webkit msgid "General Ledger Report" msgstr "" @@ -325,8 +313,9 @@ msgid "Filter by" msgstr "" #. module: account_financial_report_webkit -#: view:partners.ledger.webkit:0 #: code:addons/account_financial_report_webkit/report/partners_ledger.py:48 +#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_partners_ledger_menu_webkit +#: view:partners.ledger.webkit:0 #, python-format msgid "Partner Ledger" msgstr "" @@ -364,7 +353,7 @@ msgid "Debit" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:173 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:171 #, python-format msgid "Please set a header in company settings" msgstr "" @@ -379,13 +368,12 @@ msgid "Time Filters" msgstr "" #. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:188 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:219 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:193 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:224 msgid "Cumulated Balance on Partner" msgstr "" #. module: account_financial_report_webkit -#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_partner_balance_menu_webkit #: model:ir.actions.report.xml,name:account_financial_report_webkit.account_report_partner_balance_webkit msgid "Partner Balance Webkit" msgstr "" @@ -405,13 +393,6 @@ msgstr "" msgid "Clearance Date" msgstr "" -#. module: account_financial_report_webkit -#: selection:general.ledger.webkit,display_account:0 -#: code:addons/account_financial_report_webkit/report/common_reports.py:62 -#, python-format -msgid "With transactions or non zero balance" -msgstr "" - #. module: account_financial_report_webkit #: view:partners.ledger.webkit:0 msgid "This report allows you to print or generate a pdf of your partner ledger with details of all your payable/receivable account" @@ -443,7 +424,7 @@ msgstr "" #. module: account_financial_report_webkit #: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:43 -#: code:addons/account_financial_report_webkit/wizard/balance_common.py:163 +#: code:addons/account_financial_report_webkit/wizard/balance_common.py:151 #, python-format msgid "Dates" msgstr "" @@ -454,8 +435,9 @@ msgid "Code / Ref" msgstr "" #. module: account_financial_report_webkit -#: view:trial.balance.webkit:0 #: code:addons/account_financial_report_webkit/report/trial_balance.py:49 +#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_trial_balance_menu_webkit +#: view:trial.balance.webkit:0 #, python-format msgid "Trial Balance" msgstr "" @@ -465,6 +447,25 @@ msgstr "" msgid "Dates : " msgstr "" +#. module: account_financial_report_webkit +#: field:account.common.balance.report,comp0_period_to:0 +#: field:account.common.balance.report,comp1_period_to:0 +#: field:account.common.balance.report,comp2_period_to:0 +#: field:account.common.balance.report,period_to:0 +#: field:general.ledger.webkit,period_to:0 +#: field:open.invoices.webkit,period_to:0 +#: field:partner.balance.webkit,comp0_period_to:0 +#: field:partner.balance.webkit,comp1_period_to:0 +#: field:partner.balance.webkit,comp2_period_to:0 +#: field:partner.balance.webkit,period_to:0 +#: field:partners.ledger.webkit,period_to:0 +#: field:trial.balance.webkit,comp0_period_to:0 +#: field:trial.balance.webkit,comp1_period_to:0 +#: field:trial.balance.webkit,comp2_period_to:0 +#: field:trial.balance.webkit,period_to:0 +msgid "End Period" +msgstr "" + #. module: account_financial_report_webkit #: model:ir.model,name:account_financial_report_webkit.model_account_common_balance_report msgid "Common Balance Report" @@ -480,13 +481,19 @@ msgid "Accounts Filter" msgstr "" #. module: account_financial_report_webkit -#: field:account.common.balance.report,chart_account_id:0 -#: field:general.ledger.webkit,chart_account_id:0 -#: field:open.invoices.webkit,chart_account_id:0 -#: field:partner.balance.webkit,chart_account_id:0 -#: field:partners.ledger.webkit,chart_account_id:0 -#: field:trial.balance.webkit,chart_account_id:0 -msgid "Chart of account" +#: selection:account.common.balance.report,comp0_filter:0 +#: selection:account.common.balance.report,comp1_filter:0 +#: selection:account.common.balance.report,comp2_filter:0 +#: selection:account.common.balance.report,filter:0 +#: selection:partner.balance.webkit,comp0_filter:0 +#: selection:partner.balance.webkit,comp1_filter:0 +#: selection:partner.balance.webkit,comp2_filter:0 +#: selection:partner.balance.webkit,filter:0 +#: selection:trial.balance.webkit,comp0_filter:0 +#: selection:trial.balance.webkit,comp1_filter:0 +#: selection:trial.balance.webkit,comp2_filter:0 +#: selection:trial.balance.webkit,filter:0 +msgid "Opening Only" msgstr "" #. module: account_financial_report_webkit @@ -513,6 +520,16 @@ msgstr "" msgid "With movements" msgstr "" +#. module: account_financial_report_webkit +#: constraint:account.common.balance.report:0 +#: constraint:general.ledger.webkit:0 +#: constraint:open.invoices.webkit:0 +#: constraint:partner.balance.webkit:0 +#: constraint:partners.ledger.webkit:0 +#: constraint:trial.balance.webkit:0 +msgid "The fiscalyear, periods or chart of account chosen have to belong to the same company." +msgstr "" + #. module: account_financial_report_webkit #: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:109 #: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:124 @@ -533,26 +550,27 @@ msgstr "" #: code:addons/account_financial_report_webkit/report/open_invoices.py:63 #: code:addons/account_financial_report_webkit/report/partner_balance.py:63 #: code:addons/account_financial_report_webkit/report/partners_ledger.py:64 -#: code:addons/account_financial_report_webkit/report/profit_loss.py:71 +#: code:addons/account_financial_report_webkit/report/profit_loss.py:68 #: code:addons/account_financial_report_webkit/report/trial_balance.py:64 -#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:67 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:68 #, python-format msgid "of" msgstr "" #. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/common_reports.py:73 #: selection:open.invoices.webkit,result_selection:0 #: selection:partner.balance.webkit,result_selection:0 #: selection:partners.ledger.webkit,result_selection:0 -#: code:addons/account_financial_report_webkit/report/common_reports.py:71 #, python-format msgid "Payable Accounts" msgstr "" #. module: account_financial_report_webkit #: code:addons/account_financial_report_webkit/report/open_invoices.py:48 +#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_open_invoices_menu_webkit #: model:ir.actions.report.xml,name:account_financial_report_webkit.account_report_open_invoices_webkit -#: model:ir.model,name:account_financial_report_webkit.model_account_report_open_invoices_webkit +#: model:ir.model,name:account_financial_report_webkit.model_open_invoices_webkit #, python-format msgid "Open Invoices Report" msgstr "" @@ -563,24 +581,31 @@ msgid "Centralized" msgstr "" #. module: account_financial_report_webkit -#: field:account.common.balance.report,display_account:0 #: field:general.ledger.webkit,display_account:0 -#: field:partner.balance.webkit,display_account:0 -#: field:trial.balance.webkit,display_account:0 msgid "Display accounts" msgstr "" #. module: account_financial_report_webkit -#: view:account.move.line:0 -msgid "Narration" +#: constraint:account.account:0 +msgid "Configuration Error! \n" +"You can not define children to an account with internal type different of \"View\"! " msgstr "" #. module: account_financial_report_webkit +#: field:account.common.balance.report,comp0_date_from:0 +#: field:account.common.balance.report,comp1_date_from:0 +#: field:account.common.balance.report,comp2_date_from:0 #: field:account.common.balance.report,date_from:0 #: field:general.ledger.webkit,date_from:0 #: field:open.invoices.webkit,date_from:0 +#: field:partner.balance.webkit,comp0_date_from:0 +#: field:partner.balance.webkit,comp1_date_from:0 +#: field:partner.balance.webkit,comp2_date_from:0 #: field:partner.balance.webkit,date_from:0 #: field:partners.ledger.webkit,date_from:0 +#: field:trial.balance.webkit,comp0_date_from:0 +#: field:trial.balance.webkit,comp1_date_from:0 +#: field:trial.balance.webkit,comp2_date_from:0 #: field:trial.balance.webkit,date_from:0 msgid "Start Date" msgstr "" @@ -600,7 +625,7 @@ msgid "GENERAL LEDGER" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/wizard/profit_loss_wizard.py:131 +#: code:addons/account_financial_report_webkit/wizard/profit_loss_wizard.py:129 #, python-format msgid "Level %s" msgstr "" @@ -634,6 +659,13 @@ msgstr "" msgid "Balance C%s" msgstr "" +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:95 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:108 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:104 +msgid "Entry" +msgstr "" + #. module: account_financial_report_webkit #: field:account.move.line,last_rec_date:0 msgid "Last reconciliation date" @@ -647,8 +679,9 @@ msgid "Filter on partner" msgstr "" #. module: account_financial_report_webkit -#: view:general.ledger.webkit:0 #: code:addons/account_financial_report_webkit/report/general_ledger.py:47 +#: view:general.ledger.webkit:0 +#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_general_ledger_menu_webkit #, python-format msgid "General Ledger" msgstr "" @@ -669,6 +702,11 @@ msgstr "" msgid "PARTNER BALANCE" msgstr "" +#. module: account_financial_report_webkit +#: constraint:account.move.line:0 +msgid "Company must be the same for its related account and period." +msgstr "" + #. module: account_financial_report_webkit #: help:open.invoices.webkit,partner_ids:0 #: help:partner.balance.webkit,partner_ids:0 @@ -677,21 +715,30 @@ msgid "Only selected partners will be printed. Leave empty to print all partners msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:167 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:165 #, python-format msgid "Webkit Report template not found !" msgstr "" #. module: account_financial_report_webkit +#: selection:account.common.balance.report,comp0_filter:0 +#: selection:account.common.balance.report,comp1_filter:0 +#: selection:account.common.balance.report,comp2_filter:0 #: selection:account.common.balance.report,filter:0 +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:91 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:104 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:100 #: selection:general.ledger.webkit,filter:0 #: selection:open.invoices.webkit,filter:0 +#: selection:partner.balance.webkit,comp0_filter:0 +#: selection:partner.balance.webkit,comp1_filter:0 +#: selection:partner.balance.webkit,comp2_filter:0 #: selection:partner.balance.webkit,filter:0 #: selection:partners.ledger.webkit,filter:0 +#: selection:trial.balance.webkit,comp0_filter:0 +#: selection:trial.balance.webkit,comp1_filter:0 +#: selection:trial.balance.webkit,comp2_filter:0 #: selection:trial.balance.webkit,filter:0 -#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:91 -#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:104 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:100 msgid "Date" msgstr "" @@ -702,12 +749,18 @@ msgstr "" #. module: account_financial_report_webkit #: constraint:account.move.line:0 -msgid "Company must be same for its related account and period." +msgid "You can not create journal items on an account of type view." +msgstr "" + +#. module: account_financial_report_webkit +#: view:account.move.line:0 +msgid "Internal Note" msgstr "" #. module: account_financial_report_webkit #: constraint:account.common.balance.report:0 #: constraint:general.ledger.webkit:0 +#: constraint:open.invoices.webkit:0 #: constraint:partner.balance.webkit:0 #: constraint:partners.ledger.webkit:0 #: constraint:trial.balance.webkit:0 @@ -730,19 +783,19 @@ msgid "The code of the account must be unique per company !" msgstr "" #. module: account_financial_report_webkit +#: model:ir.ui.menu,name:account_financial_report_webkit.menu_account_open_invoices #: view:open.invoices.webkit:0 -#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_open_invoices_menu_webkit msgid "Open Invoices" msgstr "" #. module: account_financial_report_webkit #: selection:account.common.balance.report,target_move:0 +#: code:addons/account_financial_report_webkit/report/common_reports.py:82 #: selection:general.ledger.webkit,target_move:0 #: selection:open.invoices.webkit,target_move:0 #: selection:partner.balance.webkit,target_move:0 #: selection:partners.ledger.webkit,target_move:0 #: selection:trial.balance.webkit,target_move:0 -#: code:addons/account_financial_report_webkit/report/common_reports.py:80 #, python-format msgid "All Posted Entries" msgstr "" @@ -751,21 +804,16 @@ msgstr "" #: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:87 #: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:84 #: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:97 -#: code:addons/account_financial_report_webkit/wizard/balance_common.py:156 +#: code:addons/account_financial_report_webkit/wizard/balance_common.py:144 #, python-format msgid "Comparison %s" msgstr "" #. module: account_financial_report_webkit -#: selection:account.common.balance.report,display_account:0 -#: selection:general.ledger.webkit,display_account:0 -#: selection:partner.balance.webkit,display_account:0 -#: selection:trial.balance.webkit,display_account:0 -#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:61 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:75 -#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:73 -#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:86 -msgid "All" +#: code:addons/account_financial_report_webkit/report/open_invoices.py:102 +#: code:addons/account_financial_report_webkit/report/partners_ledger.py:102 +#, python-format +msgid "No accounts to print." msgstr "" #. module: account_financial_report_webkit @@ -839,14 +887,15 @@ msgid "Filter by date : no opening balance will be displayed. (opening balance c msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/common_reports.py:313 -#, python-format -msgid "No period found" +#: constraint:account.account:0 +msgid "Configuration Error! \n" +"You can not select an account type with a deferral method different of \"Unreconciled\" for accounts with internal type \"Payable/Receivable\"! " msgstr "" #. module: account_financial_report_webkit -#: view:partner.balance.webkit:0 #: code:addons/account_financial_report_webkit/report/partner_balance.py:47 +#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_partner_balance_menu_webkit +#: view:partner.balance.webkit:0 #, python-format msgid "Partner Balance" msgstr "" @@ -874,24 +923,35 @@ msgid "Dates Filter" msgstr "" #. module: account_financial_report_webkit -#: field:account.common.balance.report,fiscalyear_id:0 -#: field:general.ledger.webkit,fiscalyear_id:0 -#: field:open.invoices.webkit,fiscalyear_id:0 -#: field:partner.balance.webkit,fiscalyear_id:0 -#: field:partners.ledger.webkit,fiscalyear_id:0 -#: field:trial.balance.webkit,fiscalyear_id:0 -msgid "Fiscal year" +#: constraint:account.move.line:0 +msgid "You can not create journal items on closed account." msgstr "" #. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/common_reports.py:64 +#: selection:general.ledger.webkit,display_account:0 +#, python-format +msgid "With transactions or non zero balance" +msgstr "" + +#. module: account_financial_report_webkit +#: selection:account.common.balance.report,comp0_filter:0 +#: selection:account.common.balance.report,comp1_filter:0 +#: selection:account.common.balance.report,comp2_filter:0 #: selection:account.common.balance.report,filter:0 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:45 +#: code:addons/account_financial_report_webkit/wizard/balance_common.py:156 #: selection:general.ledger.webkit,filter:0 #: selection:open.invoices.webkit,filter:0 +#: selection:partner.balance.webkit,comp0_filter:0 +#: selection:partner.balance.webkit,comp1_filter:0 +#: selection:partner.balance.webkit,comp2_filter:0 #: selection:partner.balance.webkit,filter:0 #: selection:partners.ledger.webkit,filter:0 +#: selection:trial.balance.webkit,comp0_filter:0 +#: selection:trial.balance.webkit,comp1_filter:0 +#: selection:trial.balance.webkit,comp2_filter:0 #: selection:trial.balance.webkit,filter:0 -#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:45 -#: code:addons/account_financial_report_webkit/wizard/balance_common.py:168 #, python-format msgid "Periods" msgstr "" @@ -921,11 +981,16 @@ msgid "Unsuported filter" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/common_reports.py:60 +#: code:addons/account_financial_report_webkit/report/common_reports.py:62 #, python-format msgid "All accounts" msgstr "" +#. module: account_financial_report_webkit +#: constraint:account.move.line:0 +msgid "The selected account of your Journal Entry forces to provide a secondary currency. You should remove the secondary currency on the account or select a multi-currency view on the journal." +msgstr "" + #. module: account_financial_report_webkit #: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:93 #: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:106 @@ -939,23 +1004,11 @@ msgstr "" msgid "No valid filter" msgstr "" -#. module: account_financial_report_webkit -#: model:ir.ui.menu,name:account_financial_report_webkit.menu_account_open_invoices -msgid "Open Invoices" -msgstr "" - #. module: account_financial_report_webkit #: view:open.invoices.webkit:0 msgid "Clearance Analysis Options" msgstr "" -#. module: account_financial_report_webkit -#: selection:account.common.balance.report,filter:0 -#: selection:partner.balance.webkit,filter:0 -#: selection:trial.balance.webkit,filter:0 -msgid "Opening Only" -msgstr "" - #. module: account_financial_report_webkit #: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:97 #: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:110 @@ -983,18 +1036,24 @@ msgid "This report allows you to print or generate a pdf of your general ledger msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/profit_loss.py:42 +#: code:addons/account_financial_report_webkit/report/profit_loss.py:39 #, python-format msgid "PROFIT AND LOSS" msgstr "" #. module: account_financial_report_webkit +#: field:account.common.balance.report,chart_account_id:0 #: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:27 #: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:31 #: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:40 #: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:28 #: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:39 #: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:52 +#: field:general.ledger.webkit,chart_account_id:0 +#: field:open.invoices.webkit,chart_account_id:0 +#: field:partner.balance.webkit,chart_account_id:0 +#: field:partners.ledger.webkit,chart_account_id:0 +#: field:trial.balance.webkit,chart_account_id:0 msgid "Chart of Account" msgstr "" @@ -1007,17 +1066,17 @@ msgstr "" #. module: account_financial_report_webkit #: field:account.common.balance.report,target_move:0 -#: field:general.ledger.webkit,target_move:0 -#: field:open.invoices.webkit,target_move:0 -#: field:partner.balance.webkit,target_move:0 -#: field:partners.ledger.webkit,target_move:0 -#: field:trial.balance.webkit,target_move:0 #: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:37 #: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:42 #: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:51 #: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:38 #: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:49 #: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:62 +#: field:general.ledger.webkit,target_move:0 +#: field:open.invoices.webkit,target_move:0 +#: field:partner.balance.webkit,target_move:0 +#: field:partners.ledger.webkit,target_move:0 +#: field:trial.balance.webkit,target_move:0 msgid "Target Moves" msgstr "" @@ -1032,22 +1091,50 @@ msgid "From:" msgstr "" #. module: account_financial_report_webkit +#: field:account.common.balance.report,comp0_date_to:0 +#: field:account.common.balance.report,comp1_date_to:0 +#: field:account.common.balance.report,comp2_date_to:0 #: field:account.common.balance.report,date_to:0 #: field:general.ledger.webkit,date_to:0 #: field:open.invoices.webkit,date_to:0 +#: field:partner.balance.webkit,comp0_date_to:0 +#: field:partner.balance.webkit,comp1_date_to:0 +#: field:partner.balance.webkit,comp2_date_to:0 #: field:partner.balance.webkit,date_to:0 #: field:partners.ledger.webkit,date_to:0 +#: field:trial.balance.webkit,comp0_date_to:0 +#: field:trial.balance.webkit,comp1_date_to:0 +#: field:trial.balance.webkit,comp2_date_to:0 #: field:trial.balance.webkit,date_to:0 msgid "End Date" msgstr "" +#. module: account_financial_report_webkit +#: field:account.common.balance.report,comp0_period_from:0 +#: field:account.common.balance.report,comp1_period_from:0 +#: field:account.common.balance.report,comp2_period_from:0 +#: field:account.common.balance.report,period_from:0 +#: field:general.ledger.webkit,period_from:0 +#: field:open.invoices.webkit,period_from:0 +#: field:partner.balance.webkit,comp0_period_from:0 +#: field:partner.balance.webkit,comp1_period_from:0 +#: field:partner.balance.webkit,comp2_period_from:0 +#: field:partner.balance.webkit,period_from:0 +#: field:partners.ledger.webkit,period_from:0 +#: field:trial.balance.webkit,comp0_period_from:0 +#: field:trial.balance.webkit,comp1_period_from:0 +#: field:trial.balance.webkit,comp2_period_from:0 +#: field:trial.balance.webkit,period_from:0 +msgid "Start Period" +msgstr "" + #. module: account_financial_report_webkit #: field:open.invoices.webkit,until_date:0 msgid "Clearance date" msgstr "" #. module: account_financial_report_webkit -#: model:ir.model,name:account_financial_report_webkit.model_account_report_partners_ledger_webkit +#: model:ir.model,name:account_financial_report_webkit.model_partners_ledger_webkit msgid "Partner Ledger Report" msgstr "" @@ -1059,12 +1146,36 @@ msgid "Partners Filters" msgstr "" #. module: account_financial_report_webkit +#: selection:account.common.balance.report,comp0_filter:0 +#: field:account.common.balance.report,comp0_fiscalyear_id:0 +#: selection:account.common.balance.report,comp1_filter:0 +#: field:account.common.balance.report,comp1_fiscalyear_id:0 +#: selection:account.common.balance.report,comp2_filter:0 +#: field:account.common.balance.report,comp2_fiscalyear_id:0 +#: field:account.common.balance.report,fiscalyear_id:0 #: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:28 #: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:32 #: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:41 #: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:29 #: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:40 #: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:53 +#: field:general.ledger.webkit,fiscalyear_id:0 +#: field:open.invoices.webkit,fiscalyear_id:0 +#: selection:partner.balance.webkit,comp0_filter:0 +#: field:partner.balance.webkit,comp0_fiscalyear_id:0 +#: selection:partner.balance.webkit,comp1_filter:0 +#: field:partner.balance.webkit,comp1_fiscalyear_id:0 +#: selection:partner.balance.webkit,comp2_filter:0 +#: field:partner.balance.webkit,comp2_fiscalyear_id:0 +#: field:partner.balance.webkit,fiscalyear_id:0 +#: field:partners.ledger.webkit,fiscalyear_id:0 +#: selection:trial.balance.webkit,comp0_filter:0 +#: field:trial.balance.webkit,comp0_fiscalyear_id:0 +#: selection:trial.balance.webkit,comp1_filter:0 +#: field:trial.balance.webkit,comp1_fiscalyear_id:0 +#: selection:trial.balance.webkit,comp2_filter:0 +#: field:trial.balance.webkit,comp2_fiscalyear_id:0 +#: field:trial.balance.webkit,fiscalyear_id:0 msgid "Fiscal Year" msgstr "" @@ -1075,10 +1186,16 @@ msgid "Yes" msgstr "" #. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:95 -#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:108 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:104 -msgid "Entry" +#: selection:account.common.balance.report,comp0_filter:0 +#: selection:account.common.balance.report,comp1_filter:0 +#: selection:account.common.balance.report,comp2_filter:0 +#: selection:partner.balance.webkit,comp0_filter:0 +#: selection:partner.balance.webkit,comp1_filter:0 +#: selection:partner.balance.webkit,comp2_filter:0 +#: selection:trial.balance.webkit,comp0_filter:0 +#: selection:trial.balance.webkit,comp1_filter:0 +#: selection:trial.balance.webkit,comp2_filter:0 +msgid "No Comparison" msgstr "" #. module: account_financial_report_webkit @@ -1086,9 +1203,9 @@ msgstr "" #: code:addons/account_financial_report_webkit/report/open_invoices.py:63 #: code:addons/account_financial_report_webkit/report/partner_balance.py:63 #: code:addons/account_financial_report_webkit/report/partners_ledger.py:64 -#: code:addons/account_financial_report_webkit/report/profit_loss.py:71 +#: code:addons/account_financial_report_webkit/report/profit_loss.py:68 #: code:addons/account_financial_report_webkit/report/trial_balance.py:64 -#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:67 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:68 #, python-format msgid "Page" msgstr "" @@ -1099,14 +1216,19 @@ msgid "Partners Filter" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/open_invoices.py:102 -#: code:addons/account_financial_report_webkit/report/partners_ledger.py:102 -#, python-format -msgid "No accounts to print." +#: selection:account.common.balance.report,display_account:0 +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:61 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:75 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:73 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:86 +#: selection:general.ledger.webkit,display_account:0 +#: selection:partner.balance.webkit,display_account:0 +#: selection:trial.balance.webkit,display_account:0 +msgid "All" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/profit_loss.py:49 +#: code:addons/account_financial_report_webkit/report/profit_loss.py:46 #, python-format msgid "Profit and Loss" msgstr "" @@ -1125,19 +1247,19 @@ msgstr "" #. module: account_financial_report_webkit #: code:addons/account_financial_report_webkit/report/partners_ledger.py:41 -#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:57 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:58 #, python-format msgid "PARTNER LEDGER" msgstr "" #. module: account_financial_report_webkit #: selection:account.common.balance.report,target_move:0 +#: code:addons/account_financial_report_webkit/report/common_reports.py:84 #: selection:general.ledger.webkit,target_move:0 #: selection:open.invoices.webkit,target_move:0 #: selection:partner.balance.webkit,target_move:0 #: selection:partners.ledger.webkit,target_move:0 #: selection:trial.balance.webkit,target_move:0 -#: code:addons/account_financial_report_webkit/report/common_reports.py:82 #, python-format msgid "All Entries" msgstr "" @@ -1148,7 +1270,15 @@ msgid "Wrong credit or debit value in accounting entry !" msgstr "" #. module: account_financial_report_webkit -#: constraint:account.move.line:0 -msgid "You can not create move line on view account." +#: field:account.common.balance.report,comp0_filter:0 +#: field:account.common.balance.report,comp1_filter:0 +#: field:account.common.balance.report,comp2_filter:0 +#: field:partner.balance.webkit,comp0_filter:0 +#: field:partner.balance.webkit,comp1_filter:0 +#: field:partner.balance.webkit,comp2_filter:0 +#: field:trial.balance.webkit,comp0_filter:0 +#: field:trial.balance.webkit,comp1_filter:0 +#: field:trial.balance.webkit,comp2_filter:0 +msgid "Compare By" msgstr "" diff --git a/account_financial_report_webkit/i18n/de.po b/account_financial_report_webkit/i18n/de.po new file mode 100644 index 00000000..71187b43 --- /dev/null +++ b/account_financial_report_webkit/i18n/de.po @@ -0,0 +1,1162 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_financial_report_webkit +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 6.0.3\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2012-01-20 09:03+0000\n" +"PO-Revision-Date: 2012-05-03 15:58+0100\n" +"Last-Translator: Thomas Winteler \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: \n" + +#. module: account_financial_report_webkit +#: field:account.common.balance.report,account_ids:0 +#: field:account.report.general.ledger.webkit,account_ids:0 +#: field:account.report.partner.balance.webkit,account_ids:0 +#: field:account.report.trial.balance.webkit,account_ids:0 +msgid "Filter on accounts" +msgstr "Konto Filter" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/common_report_header_webkit.py:424 +#, python-format +msgid "Please set a valid time filter" +msgstr "Bitte einen gülitgen Zeit Filter setzen" + +#. module: account_financial_report_webkit +#: view:account.report.general.ledger.webkit:0 +#: view:account.report.open.invoices.webkit:0 +#: view:account.report.partners.ledger.webkit:0 +msgid "Layout Options" +msgstr "Layout Optionen" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:203 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:223 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:253 +msgid "Cumulated Balance on Account" +msgstr "Kumulierter Konto Saldo" + +#. module: account_financial_report_webkit +#: field:account.report.general.ledger.webkit,centralize:0 +msgid "Activate Centralization" +msgstr "Aktive Zentralisierung" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:154 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:161 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:120 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:127 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:135 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:142 +msgid "Balance %s" +msgstr "Saldo %s" + +#. module: account_financial_report_webkit +#: view:account.move.line:0 +msgid "Misc." +msgstr "Div." + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:92 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:102 +msgid "Periods Filter:" +msgstr "Filter Perioden:" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:172 +#, python-format +msgid "No header defined for this Webkit report!" +msgstr "Kein Header für diesen Webkit Bericht definiert!" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/account_report_open_invoices.py:162 +#, python-format +msgid "Filter has to be in filter date, period, or none" +msgstr "Der Filter muss Datum, Periode oder nichts beinhalten" + +#. module: account_financial_report_webkit +#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_trial_balance_menu_webkit +#: model:ir.actions.report.xml,name:account_financial_report_webkit.account_report_trial_balance_webkit +msgid "Trial Balance Webkit" +msgstr "Bilanz" + +#. module: account_financial_report_webkit +#: constraint:account.account:0 +msgid "" +"Configuration Error! \n" +"You cannot define children to an account with internal type different of \"View\"! " +msgstr "" +"Konfigurations Fehler! \n" +"Ein Konto mit einem anderen Typ als \"Ansicht\" können keine Konten zugeweisen werden!s" + +#. module: account_financial_report_webkit +#: view:account.report.partner.balance.webkit:0 +msgid "This report is an analysis done by a partner, It is a PDF report containing one line per partner representing the cumulative credit balance" +msgstr "Dieser Bericht ist eine Analyse eines Partners. Es ist eine PDF Bericht, welcher ein Partner pro Linie mit zusammengefasstem Saldo enthält" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:138 +msgid "Account / Partner Name" +msgstr "Konto / Partner Name" + +#. module: account_financial_report_webkit +#: field:account.common.balance.report,journal_ids:0 +#: field:account.report.general.ledger.webkit,journal_ids:0 +#: field:account.report.open.invoices.webkit,journal_ids:0 +#: field:account.report.partner.balance.webkit,journal_ids:0 +#: field:account.report.partners.ledger.webkit,journal_ids:0 +#: field:account.report.trial.balance.webkit,journal_ids:0 +msgid "Journals" +msgstr "Journale" + +#. module: account_financial_report_webkit +#: help:account.report.general.ledger.webkit,amount_currency:0 +#: help:account.report.open.invoices.webkit,amount_currency:0 +#: help:account.report.partners.ledger.webkit,amount_currency:0 +msgid "It adds the currency column" +msgstr "Dies fügt die Währungs Spalte hingzu" + +#. module: account_financial_report_webkit +#: selection:account.report.open.invoices.webkit,result_selection:0 +#: selection:account.report.partner.balance.webkit,result_selection:0 +#: selection:account.report.partners.ledger.webkit,result_selection:0 +#: code:addons/account_financial_report_webkit/report/common_report_header_webkit.py:73 +#, python-format +msgid "Receivable and Payable Accounts" +msgstr "Konten für Forderungen und Verbindlichkeiten" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:104 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:119 +#: model:ir.model,name:account_financial_report_webkit.model_account_account +msgid "Account" +msgstr "Konto" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/account_report_trial_balance.py:42 +#, python-format +msgid "TRIAL BALANCE" +msgstr "BILANZ" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:118 +msgid "Due Date" +msgstr "Fälligkeits Datum" + +#. module: account_financial_report_webkit +#: view:account.report.general.ledger.webkit:0 +#: view:account.report.open.invoices.webkit:0 +#: view:account.report.partner.balance.webkit:0 +#: view:account.report.partners.ledger.webkit:0 +#: view:account.report.trial.balance.webkit:0 +msgid "Print only" +msgstr "Nur drucken" + +#. module: account_financial_report_webkit +#: constraint:account.move.line:0 +msgid "You can not create move line on closed account." +msgstr "Es können keine Kontobewegungen mit geschlossenen Konten erstellt werden" + +#. module: account_financial_report_webkit +#: model:ir.model,name:account_financial_report_webkit.model_account_report_partner_balance_webkit +msgid "Partner Balance Report" +msgstr "Partner Saldenliste" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:221 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:230 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:247 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:258 +#, python-format +msgid "Webkit render" +msgstr "Webkit rendering" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:167 +#, python-format +msgid "Error!" +msgstr "Fehler!" + +#. module: account_financial_report_webkit +#: model:ir.model,name:account_financial_report_webkit.model_account_report_trial_balance_webkit +msgid "Trial Balance Report" +msgstr "Bilanz Bericht" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:117 +msgid "Code" +msgstr "Nummer" + +#. module: account_financial_report_webkit +#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_partners_ledger_menu_webkit +#: model:ir.actions.report.xml,name:account_financial_report_webkit.account_report_partners_ledger_webkit +msgid "Partner Ledger Webkit" +msgstr "Partner Kontoauszug Webkit" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:192 +msgid "Unallocated" +msgstr "Nicht zugewiesen" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:116 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:112 +msgid "Rec." +msgstr "Ausgleich" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:123 +#, python-format +msgid "Webkit raise an error" +msgstr "Webkit Fehler" + +#. module: account_financial_report_webkit +#: selection:account.report.open.invoices.webkit,result_selection:0 +#: selection:account.report.partner.balance.webkit,result_selection:0 +#: selection:account.report.partners.ledger.webkit,result_selection:0 +#: code:addons/account_financial_report_webkit/report/common_report_header_webkit.py:69 +#, python-format +msgid "Receivable Accounts" +msgstr "Konten Forderungen" + +#. module: account_financial_report_webkit +#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_general_ledger_menu_webkit +#: model:ir.actions.report.xml,name:account_financial_report_webkit.account_report_general_ledger_webkit +msgid "General Ledger Webkit" +msgstr "Umsätze nach Konten und Perioden" + +#. module: account_financial_report_webkit +#: field:account.common.balance.report,period_from:0 +#: field:account.report.general.ledger.webkit,period_from:0 +#: field:account.report.open.invoices.webkit,period_from:0 +#: field:account.report.partner.balance.webkit,period_from:0 +#: field:account.report.partners.ledger.webkit,period_from:0 +#: field:account.report.trial.balance.webkit,period_from:0 +msgid "Start period" +msgstr "Start Periode" + +#. module: account_financial_report_webkit +#: model:ir.model,name:account_financial_report_webkit.model_account_report_open_transactions_webkit +msgid "Open Transactions Report" +msgstr "Bereicht offener Transaktionen" + +#. module: account_financial_report_webkit +#: constraint:account.account:0 +msgid "Error ! You can not create recursive accounts." +msgstr "Fehler ! Es können keine rekursiven Konten erstellt werden." + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:33 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:37 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:46 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:34 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:58 +msgid "Periods Filter" +msgstr "Filter Perioden" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:38 +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:139 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:52 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:142 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:39 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:153 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:50 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:108 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:63 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:123 +msgid "Initial Balance" +msgstr "Start Saldo" + +#. module: account_financial_report_webkit +#: field:account.common.balance.report,period_to:0 +#: field:account.report.general.ledger.webkit,period_to:0 +#: field:account.report.open.invoices.webkit,period_to:0 +#: field:account.report.partner.balance.webkit,period_to:0 +#: field:account.report.partners.ledger.webkit,period_to:0 +#: field:account.report.trial.balance.webkit,period_to:0 +msgid "End period" +msgstr "End Periode" + +#. module: account_financial_report_webkit +#: model:ir.model,name:account_financial_report_webkit.model_account_report_general_ledger_webkit +msgid "General Ledger Report" +msgstr "Umsätze nach Konten und Perioden" + +#. module: account_financial_report_webkit +#: constraint:account.report.open.invoices.webkit:0 +msgid "Clearance date must be the very last date of the last period or later." +msgstr "Das Fälligkeitsdatum muss das letzte Datum in der Periode oder später sein." + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:48 +msgid "Displayed Accounts" +msgstr "Angezeigte Konten" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:99 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:112 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:108 +msgid "Partner" +msgstr "Partner" + +#. module: account_financial_report_webkit +#: help:account.common.balance.report,chart_account_id:0 +#: help:account.report.general.ledger.webkit,chart_account_id:0 +#: help:account.report.open.invoices.webkit,chart_account_id:0 +#: help:account.report.partner.balance.webkit,chart_account_id:0 +#: help:account.report.partners.ledger.webkit,chart_account_id:0 +#: help:account.report.trial.balance.webkit,chart_account_id:0 +msgid "Select Charts of Accounts" +msgstr "Kontenplan wählen" + +#. module: account_financial_report_webkit +#: field:account.common.balance.report,filter:0 +#: field:account.report.general.ledger.webkit,filter:0 +#: field:account.report.open.invoices.webkit,filter:0 +#: field:account.report.partner.balance.webkit,filter:0 +#: field:account.report.partners.ledger.webkit,filter:0 +#: field:account.report.trial.balance.webkit,filter:0 +msgid "Filter by" +msgstr "Filter nach" + +#. module: account_financial_report_webkit +#: view:account.report.partners.ledger.webkit:0 +#: code:addons/account_financial_report_webkit/report/account_report_partners_ledger.py:48 +#, python-format +msgid "Partner Ledger" +msgstr "Partner Kontoauszug" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:114 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:129 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:123 +msgid "Curr." +msgstr "Whg." + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:101 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:114 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:110 +msgid "Label" +msgstr "Bezeichnung" + +#. module: account_financial_report_webkit +#: help:account.common.balance.report,account_ids:0 +#: help:account.report.general.ledger.webkit,account_ids:0 +#: help:account.report.partner.balance.webkit,account_ids:0 +#: help:account.report.trial.balance.webkit,account_ids:0 +msgid "Only selected accounts will be printed. Leave empty to print all accounts." +msgstr "Nur ausgewählte Konten werden gedruckt. Leer lassen um alle Konten zu drucken." + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:105 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:120 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:145 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:114 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:111 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:126 +msgid "Debit" +msgstr "Soll" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:173 +#, python-format +msgid "Please set a header in company settings" +msgstr "Bitte einen Header in den Unternehmens Einstellungen setzen" + +#. module: account_financial_report_webkit +#: view:account.report.general.ledger.webkit:0 +#: view:account.report.open.invoices.webkit:0 +#: view:account.report.partner.balance.webkit:0 +#: view:account.report.partners.ledger.webkit:0 +#: view:account.report.trial.balance.webkit:0 +msgid "Time Filters" +msgstr "Zeit Filter" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:188 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:219 +msgid "Cumulated Balance on Partner" +msgstr "Kumulierter Saldo für Partner" + +#. module: account_financial_report_webkit +#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_partner_balance_menu_webkit +#: model:ir.actions.report.xml,name:account_financial_report_webkit.account_report_partner_balance_webkit +msgid "Partner Balance Webkit" +msgstr "Partner Saldenliste Webkit" + +#. module: account_financial_report_webkit +#: help:account.report.open.invoices.webkit,until_date:0 +msgid "" +"The clearance date is essentially a tool used for debtors provisionning calculation.\n" +"\n" +"By default, this date is equal to the the end date (ie: 31/12/2011 if you select fy 2011).\n" +"\n" +"By amending the clearance date, you will be, for instance, able to answer the question : 'based on my last year end debtors open invoices, which invoices are still unpaid today (today is my clearance date)?'\n" +msgstr "" +"Das Fälligkeitsdatum dient zur Berechnung der Debitoren.\n" +"\n" +"Standardmässig ist dieses Datum das selbe wie das End Datum (Beispiel: 31.12.2011 falls das Geschäftsjahr 2011 gewählt ist).\n" +"\n" +"Beispiel: Basierend auf dem letzten Geschäftsjahr und den offenen Rechnungen, welche Rechnungen sind immer noch offen bis zum heutigen Tag (wobei der heutige Tag das Fälligkeitsdatum ist)?\n" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:40 +msgid "Clearance Date" +msgstr "Fälligkeitsdatum" + +#. module: account_financial_report_webkit +#: selection:account.report.general.ledger.webkit,display_account:0 +#: code:addons/account_financial_report_webkit/report/common_report_header_webkit.py:62 +#, python-format +msgid "With transactions or non zero balance" +msgstr "Mit Transaktionen oder Salden ungleich Null" + +#. module: account_financial_report_webkit +#: view:account.report.partners.ledger.webkit:0 +msgid "This report allows you to print or generate a pdf of your partner ledger with details of all your payable/receivable account" +msgstr "Dieser Bericht erstellt ein PDF der Partner Übersicht mit Details über Kredit/Debit Konten" + +#. module: account_financial_report_webkit +#: selection:account.common.balance.report,display_account:0 +#: selection:account.report.partner.balance.webkit,display_account:0 +#: selection:account.report.trial.balance.webkit,display_account:0 +msgid "With balance is not equal to 0" +msgstr "Mit Saldo ungleich 0" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:94 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:104 +msgid "Fiscal Year :" +msgstr "Geschäftsjahr :" + +#. module: account_financial_report_webkit +#: view:account.report.open.invoices.webkit:0 +msgid "This report allows you to print or generate a pdf of your open invoices per partner with details of all your payable/receivable account. Exclude full reconciled journal items." +msgstr "Dieser Bericht erstellt ein PDF der offenen Rechnungen per Partner mit Details über Kredit/Debit Konten. Alle ausgeglichenen Buchungen sind ausgeschlossen." + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/common_report_header_webkit.py:416 +#, python-format +msgid "Must be in include_opening, exclude_opening" +msgstr "Zwingend für Öffnung inklusive/exklusive" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:43 +#: code:addons/account_financial_report_webkit/wizard/account_report_balance_common.py:163 +#, python-format +msgid "Dates" +msgstr "Datum" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:136 +msgid "Code / Ref" +msgstr "Code / Ref" + +#. module: account_financial_report_webkit +#: view:account.report.trial.balance.webkit:0 +#: code:addons/account_financial_report_webkit/report/account_report_trial_balance.py:49 +#, python-format +msgid "Trial Balance" +msgstr "Bilanz" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:87 +msgid "Dates : " +msgstr "Datum : " + +#. module: account_financial_report_webkit +#: model:ir.model,name:account_financial_report_webkit.model_account_common_balance_report +msgid "Common Balance Report" +msgstr "Standard Saldo Bericht" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:36 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:41 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:49 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:37 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:61 +msgid "Accounts Filter" +msgstr "Konto Filter" + +#. module: account_financial_report_webkit +#: field:account.common.balance.report,chart_account_id:0 +#: field:account.report.general.ledger.webkit,chart_account_id:0 +#: field:account.report.open.invoices.webkit,chart_account_id:0 +#: field:account.report.partner.balance.webkit,chart_account_id:0 +#: field:account.report.partners.ledger.webkit,chart_account_id:0 +#: field:account.report.trial.balance.webkit,chart_account_id:0 +msgid "Chart of account" +msgstr "Kontoplan" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:65 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:60 +msgid "Custom Filter" +msgstr "Benutzerdefinierter Filter" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:90 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:100 +msgid "Dates Filter:" +msgstr "Datums Filter:" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:91 +msgid "Fiscal Year : " +msgstr "Geschäftsjahr:" + +#. module: account_financial_report_webkit +#: selection:account.common.balance.report,display_account:0 +#: selection:account.report.partner.balance.webkit,display_account:0 +#: selection:account.report.trial.balance.webkit,display_account:0 +msgid "With movements" +msgstr "Mit Bewegungen" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:109 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:124 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:118 +msgid "Cumul. Bal." +msgstr "Kumul. Saldo" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:22 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:35 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:23 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:47 +msgid "Computed" +msgstr "Berechnet" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/account_report_general_ledger.py:64 +#: code:addons/account_financial_report_webkit/report/account_report_open_invoices.py:63 +#: code:addons/account_financial_report_webkit/report/account_report_partner_balance.py:63 +#: code:addons/account_financial_report_webkit/report/account_report_partners_ledger.py:64 +#: code:addons/account_financial_report_webkit/report/account_report_profit_loss.py:71 +#: code:addons/account_financial_report_webkit/report/account_report_trial_balance.py:64 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:67 +#, python-format +msgid "of" +msgstr "von" + +#. module: account_financial_report_webkit +#: selection:account.report.open.invoices.webkit,result_selection:0 +#: selection:account.report.partner.balance.webkit,result_selection:0 +#: selection:account.report.partners.ledger.webkit,result_selection:0 +#: code:addons/account_financial_report_webkit/report/common_report_header_webkit.py:71 +#, python-format +msgid "Payable Accounts" +msgstr "Kreditoren Konten" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/account_report_open_invoices.py:48 +#: model:ir.actions.report.xml,name:account_financial_report_webkit.account_report_open_invoices_webkit +#: model:ir.model,name:account_financial_report_webkit.model_account_report_open_invoices_webkit +#, python-format +msgid "Open Invoices Report" +msgstr "Bericht offener Rechnungen" + +#. module: account_financial_report_webkit +#: field:account.account,centralized:0 +msgid "Centralized" +msgstr "Zentralisiert" + +#. module: account_financial_report_webkit +#: field:account.common.balance.report,display_account:0 +#: field:account.report.general.ledger.webkit,display_account:0 +#: field:account.report.partner.balance.webkit,display_account:0 +#: field:account.report.trial.balance.webkit,display_account:0 +msgid "Display accounts" +msgstr "Konten anzeigen" + +#. module: account_financial_report_webkit +#: view:account.move.line:0 +msgid "Narration" +msgstr "Erzählung" + +#. module: account_financial_report_webkit +#: field:account.common.balance.report,date_from:0 +#: field:account.report.general.ledger.webkit,date_from:0 +#: field:account.report.open.invoices.webkit,date_from:0 +#: field:account.report.partner.balance.webkit,date_from:0 +#: field:account.report.partners.ledger.webkit,date_from:0 +#: field:account.report.trial.balance.webkit,date_from:0 +msgid "Start Date" +msgstr "Start Datum" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:22 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:35 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:23 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:47 +msgid "Opening Entries" +msgstr "Eröffnungs-Einträge" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/account_report_general_ledger.py:40 +#, python-format +msgid "GENERAL LEDGER" +msgstr "UMSÄTZE NACH KONTEN UND PERIODEN" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/wizard/account_report_profit_loss_wizard.py:131 +#, python-format +msgid "Level %s" +msgstr "Ebene %s" + +#. module: account_financial_report_webkit +#: help:account.account,centralized:0 +msgid "If flagged, no details will be displayed in the General Ledger report (the webkit one only), only centralized amounts per period." +msgstr "Falls markiert, werden keine Details im Bericht der Standard Buchhaltung ausgegeben (nur webkit), nur zentralisierte Beträge der Periode." + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:22 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:35 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:23 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:77 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:94 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:47 +msgid "No" +msgstr "Nein" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:97 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:94 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:107 +msgid "Initial Balance:" +msgstr "Start Saldo:" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:163 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:129 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:144 +msgid "Balance C%s" +msgstr "Saldo C%s" + +#. module: account_financial_report_webkit +#: field:account.move.line,last_rec_date:0 +msgid "Last reconciliation date" +msgstr "Letztes abgestimmtes Datum" + +#. module: account_financial_report_webkit +#: field:account.report.open.invoices.webkit,partner_ids:0 +#: field:account.report.partner.balance.webkit,partner_ids:0 +#: field:account.report.partners.ledger.webkit,partner_ids:0 +msgid "Filter on partner" +msgstr "Filter für Partner" + +#. module: account_financial_report_webkit +#: view:account.report.general.ledger.webkit:0 +#: code:addons/account_financial_report_webkit/report/account_report_general_ledger.py:47 +#, python-format +msgid "General Ledger" +msgstr "Umsätze nach Konten und Perioden" + +#. module: account_financial_report_webkit +#: view:account.report.trial.balance.webkit:0 +msgid "This report allows you to print or generate a pdf of your trial balance allowing you to quickly check the balance of each of your accounts in a single report" +msgstr "Dieser Bericht erstellt ein PDF der Bilanz zur Überprüfung der Konten in einem einzelnen Bericht" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:89 +msgid "Periods : " +msgstr "Perioden :" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/account_report_partner_balance.py:40 +#, python-format +msgid "PARTNER BALANCE" +msgstr "PARTNER SALDO" + +#. module: account_financial_report_webkit +#: help:account.report.open.invoices.webkit,partner_ids:0 +#: help:account.report.partner.balance.webkit,partner_ids:0 +#: help:account.report.partners.ledger.webkit,partner_ids:0 +msgid "Only selected partners will be printed. Leave empty to print all partners." +msgstr "Nur ausgewählte Partner werden gedruckt. Leer lassen um alle Partner zu drucken." + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:167 +#, python-format +msgid "Webkit Report template not found !" +msgstr "Webkit Bericht Vorlage nicht gefunden !" + +#. module: account_financial_report_webkit +#: selection:account.common.balance.report,filter:0 +#: selection:account.report.general.ledger.webkit,filter:0 +#: selection:account.report.open.invoices.webkit,filter:0 +#: selection:account.report.partner.balance.webkit,filter:0 +#: selection:account.report.partners.ledger.webkit,filter:0 +#: selection:account.report.trial.balance.webkit,filter:0 +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:91 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:104 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:100 +msgid "Date" +msgstr "Datum" + +#. module: account_financial_report_webkit +#: help:account.report.general.ledger.webkit,centralize:0 +msgid "Uncheck to display all the details of centralized accounts." +msgstr "Deaktivieren zur Ansicht aller Details der zentralisierten Konten." + +#. module: account_financial_report_webkit +#: constraint:account.move.line:0 +msgid "Company must be same for its related account and period." +msgstr "Die Firma muss die selbe sein, wie die dazugehörigen Konten und Perioden." + +#. module: account_financial_report_webkit +#: constraint:account.common.balance.report:0 +#: constraint:account.report.general.ledger.webkit:0 +#: constraint:account.report.partner.balance.webkit:0 +#: constraint:account.report.partners.ledger.webkit:0 +#: constraint:account.report.trial.balance.webkit:0 +msgid "When no Fiscal year is selected, you must choose to filter by periods or by date." +msgstr "Wenn kein Geschäftsjahr gewählt ist, muss nach Periode oder Datum gefiltert werden." + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:50 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:55 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:64 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:51 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:62 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:75 +msgid "To:" +msgstr "An:" + +#. module: account_financial_report_webkit +#: sql_constraint:account.account:0 +msgid "The code of the account must be unique per company !" +msgstr "Die Kurzbezeichnung des Kontos muss einmalig sein pro Firma !" + +#. module: account_financial_report_webkit +#: view:account.report.open.invoices.webkit:0 +#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_open_invoices_menu_webkit +msgid "Open Invoices" +msgstr "Offene Rechnungen" + +#. module: account_financial_report_webkit +#: selection:account.common.balance.report,target_move:0 +#: selection:account.report.general.ledger.webkit,target_move:0 +#: selection:account.report.open.invoices.webkit,target_move:0 +#: selection:account.report.partner.balance.webkit,target_move:0 +#: selection:account.report.partners.ledger.webkit,target_move:0 +#: selection:account.report.trial.balance.webkit,target_move:0 +#: code:addons/account_financial_report_webkit/report/common_report_header_webkit.py:80 +#, python-format +msgid "All Posted Entries" +msgstr "Alle gebuchten Einträge" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:87 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:84 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:97 +#: code:addons/account_financial_report_webkit/wizard/account_report_balance_common.py:156 +#, python-format +msgid "Comparison %s" +msgstr "Vergleich %s" + +#. module: account_financial_report_webkit +#: selection:account.common.balance.report,display_account:0 +#: selection:account.report.general.ledger.webkit,display_account:0 +#: selection:account.report.partner.balance.webkit,display_account:0 +#: selection:account.report.trial.balance.webkit,display_account:0 +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:61 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:75 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:73 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:86 +msgid "All" +msgstr "Alle" + +#. module: account_financial_report_webkit +#: help:account.common.balance.report,fiscalyear_id:0 +#: help:account.report.general.ledger.webkit,fiscalyear_id:0 +#: help:account.report.open.invoices.webkit,fiscalyear_id:0 +#: help:account.report.partner.balance.webkit,fiscalyear_id:0 +#: help:account.report.partners.ledger.webkit,fiscalyear_id:0 +#: help:account.report.trial.balance.webkit,fiscalyear_id:0 +msgid "Keep empty for all open fiscal year" +msgstr "Leer lassen für alle offenen Geschäftsjahre" + +#. module: account_financial_report_webkit +#: help:account.move.line,last_rec_date:0 +msgid "the date of the last reconciliation (full or partial) account move line" +msgstr "das Datum der letzten ausgeglichenen (voll oder teilweise) Konto Bewegung" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:107 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:122 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:147 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:116 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:113 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:128 +msgid "Credit" +msgstr "Kredit" + +#. module: account_financial_report_webkit +#: selection:account.common.balance.report,filter:0 +#: selection:account.report.general.ledger.webkit,filter:0 +#: selection:account.report.open.invoices.webkit,filter:0 +#: selection:account.report.partner.balance.webkit,filter:0 +#: selection:account.report.partners.ledger.webkit,filter:0 +#: selection:account.report.trial.balance.webkit,filter:0 +msgid "No Filters" +msgstr "Keine Filter" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/account_report_open_invoices.py:102 +#: code:addons/account_financial_report_webkit/report/account_report_partners_ledger.py:102 +#, python-format +msgid "Error" +msgstr "Fehler" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:152 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:118 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:133 +msgid "Balance" +msgstr "Saldo" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:103 +msgid "Counter part" +msgstr "Gegenkonto" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:168 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:134 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:149 +msgid "% Difference" +msgstr "% Unterschied" + +#. module: account_financial_report_webkit +#: help:account.common.balance.report,filter:0 +#: help:account.report.open.invoices.webkit,filter:0 +#: help:account.report.partner.balance.webkit,filter:0 +#: help:account.report.partners.ledger.webkit,filter:0 +#: help:account.report.trial.balance.webkit,filter:0 +msgid "Filter by date : no opening balance will be displayed. (opening balance can only be calculated based on period to be correct)." +msgstr "Filter nach Datum : keine offenen Salden werden angezeigt. (offene Salden können nur berechnet werden, wenn die Periode korrekt ist)." + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/common_report_header_webkit.py:313 +#, python-format +msgid "No period found" +msgstr "Keine Periode gefunden" + +#. module: account_financial_report_webkit +#: view:account.report.partner.balance.webkit:0 +#: code:addons/account_financial_report_webkit/report/account_report_partner_balance.py:47 +#, python-format +msgid "Partner Balance" +msgstr "Partner Saldo" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/account_report_general_ledger.py:146 +#, python-format +msgid "Centralized Entries" +msgstr "Zentralisierte Einträge" + +#. module: account_financial_report_webkit +#: view:account.report.general.ledger.webkit:0 +#: view:account.report.partner.balance.webkit:0 +#: view:account.report.trial.balance.webkit:0 +msgid "Accounts Filters" +msgstr "Konto Filter" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:31 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:35 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:44 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:32 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:56 +msgid "Dates Filter" +msgstr "Datums Filter" + +#. module: account_financial_report_webkit +#: field:account.common.balance.report,fiscalyear_id:0 +#: field:account.report.general.ledger.webkit,fiscalyear_id:0 +#: field:account.report.open.invoices.webkit,fiscalyear_id:0 +#: field:account.report.partner.balance.webkit,fiscalyear_id:0 +#: field:account.report.partners.ledger.webkit,fiscalyear_id:0 +#: field:account.report.trial.balance.webkit,fiscalyear_id:0 +msgid "Fiscal year" +msgstr "Geschäftsjahr" + +#. module: account_financial_report_webkit +#: selection:account.common.balance.report,filter:0 +#: selection:account.report.general.ledger.webkit,filter:0 +#: selection:account.report.open.invoices.webkit,filter:0 +#: selection:account.report.partner.balance.webkit,filter:0 +#: selection:account.report.partners.ledger.webkit,filter:0 +#: selection:account.report.trial.balance.webkit,filter:0 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:45 +#: code:addons/account_financial_report_webkit/wizard/account_report_balance_common.py:168 +#, python-format +msgid "Periods" +msgstr "Perioden" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:112 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:127 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:121 +msgid "Curr. Balance" +msgstr "Aktu. Saldo" + +#. module: account_financial_report_webkit +#: model:ir.model,name:account_financial_report_webkit.model_account_move_line +msgid "Journal Items" +msgstr "Journal Einträge" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/common_report_header_webkit.py:416 +#, python-format +msgid "Invalid query mode" +msgstr "Falscher Abfrage Modus" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/account_report_open_invoices.py:161 +#, python-format +msgid "Unsuported filter" +msgstr "Nicht unterstützter Filter" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/common_report_header_webkit.py:60 +#, python-format +msgid "All accounts" +msgstr "Alle Konten" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:93 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:106 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:102 +msgid "Period" +msgstr "Periode" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/common_report_header_webkit.py:424 +#, python-format +msgid "No valid filter" +msgstr "Kein gültiger Filter" + +#. module: account_financial_report_webkit +#: model:ir.ui.menu,name:account_financial_report_webkit.menu_account_open_invoices +msgid "Open Invoices (Webkit)" +msgstr "Offene Rechnungen" + +#. module: account_financial_report_webkit +#: view:account.report.open.invoices.webkit:0 +msgid "Clearance Analysis Options" +msgstr "Fälligkeit Analyse Optionen" + +#. module: account_financial_report_webkit +#: selection:account.common.balance.report,filter:0 +#: selection:account.report.partner.balance.webkit,filter:0 +#: selection:account.report.trial.balance.webkit,filter:0 +msgid "Opening Only" +msgstr "Nur Eröffnungen" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:97 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:110 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:106 +msgid "Journal" +msgstr "Journal" + +#. module: account_financial_report_webkit +#: field:account.report.general.ledger.webkit,amount_currency:0 +#: field:account.report.open.invoices.webkit,amount_currency:0 +#: field:account.report.partners.ledger.webkit,amount_currency:0 +msgid "With Currency" +msgstr "Mit Währung" + +#. module: account_financial_report_webkit +#: field:account.report.open.invoices.webkit,result_selection:0 +#: field:account.report.partner.balance.webkit,result_selection:0 +#: field:account.report.partners.ledger.webkit,result_selection:0 +msgid "Partner's" +msgstr "Partner" + +#. module: account_financial_report_webkit +#: view:account.report.general.ledger.webkit:0 +msgid "This report allows you to print or generate a pdf of your general ledger with details of all your account journals" +msgstr "Dieser Bericht erstellt ein PDF vom Hauptbuch mit Details aller Konto Journale" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/account_report_profit_loss.py:42 +#, python-format +msgid "PROFIT AND LOSS" +msgstr "GEWINN UND VERLUST" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:27 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:31 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:40 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:28 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:39 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:52 +msgid "Chart of Account" +msgstr "Kontenplan" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:167 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:133 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:148 +msgid "Difference" +msgstr "Unterschied" + +#. module: account_financial_report_webkit +#: field:account.common.balance.report,target_move:0 +#: field:account.report.general.ledger.webkit,target_move:0 +#: field:account.report.open.invoices.webkit,target_move:0 +#: field:account.report.partner.balance.webkit,target_move:0 +#: field:account.report.partners.ledger.webkit,target_move:0 +#: field:account.report.trial.balance.webkit,target_move:0 +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:37 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:42 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:51 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:38 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:49 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:62 +msgid "Target Moves" +msgstr "Bewegungen" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:44 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:49 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:58 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:45 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:56 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:69 +msgid "From:" +msgstr "Von:" + +#. module: account_financial_report_webkit +#: field:account.common.balance.report,date_to:0 +#: field:account.report.general.ledger.webkit,date_to:0 +#: field:account.report.open.invoices.webkit,date_to:0 +#: field:account.report.partner.balance.webkit,date_to:0 +#: field:account.report.partners.ledger.webkit,date_to:0 +#: field:account.report.trial.balance.webkit,date_to:0 +msgid "End Date" +msgstr "End Datum" + +#. module: account_financial_report_webkit +#: field:account.report.open.invoices.webkit,until_date:0 +msgid "Clearance date" +msgstr "Fälligkeits Datum" + +#. module: account_financial_report_webkit +#: model:ir.model,name:account_financial_report_webkit.model_account_report_partners_ledger_webkit +msgid "Partner Ledger Report" +msgstr "Partner Kontoauszug" + +#. module: account_financial_report_webkit +#: view:account.report.open.invoices.webkit:0 +#: view:account.report.partner.balance.webkit:0 +#: view:account.report.partners.ledger.webkit:0 +msgid "Partners Filters" +msgstr "Partner Filter" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:28 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:32 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:41 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:29 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:40 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:53 +msgid "Fiscal Year" +msgstr "Geschäftsjahr" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:77 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:94 +msgid "Yes" +msgstr "Ja" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:95 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:108 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:104 +msgid "Entry" +msgstr "Eintrag" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/account_report_general_ledger.py:64 +#: code:addons/account_financial_report_webkit/report/account_report_open_invoices.py:63 +#: code:addons/account_financial_report_webkit/report/account_report_partner_balance.py:63 +#: code:addons/account_financial_report_webkit/report/account_report_partners_ledger.py:64 +#: code:addons/account_financial_report_webkit/report/account_report_profit_loss.py:71 +#: code:addons/account_financial_report_webkit/report/account_report_trial_balance.py:64 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:67 +#, python-format +msgid "Page" +msgstr "Seite" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:50 +msgid "Partners Filter" +msgstr "Partner Filter" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/account_report_open_invoices.py:102 +#: code:addons/account_financial_report_webkit/report/account_report_partners_ledger.py:102 +#, python-format +msgid "No accounts to print." +msgstr "Keine Konten zum drucken." + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/account_report_profit_loss.py:49 +#, python-format +msgid "Profit and Loss" +msgstr "Gewinn und Verlust" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:99 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:95 +msgid "No Partner" +msgstr "Kein Partner" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/account_report_open_invoices.py:41 +#, python-format +msgid "OPEN INVOICES REPORT" +msgstr "BERICHT OFFENE RECHNUNGEN" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/account_report_partners_ledger.py:41 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:57 +#, python-format +msgid "PARTNER LEDGER" +msgstr "PARTNER KONTOAUSZUG" + +#. module: account_financial_report_webkit +#: selection:account.common.balance.report,target_move:0 +#: selection:account.report.general.ledger.webkit,target_move:0 +#: selection:account.report.open.invoices.webkit,target_move:0 +#: selection:account.report.partner.balance.webkit,target_move:0 +#: selection:account.report.partners.ledger.webkit,target_move:0 +#: selection:account.report.trial.balance.webkit,target_move:0 +#: code:addons/account_financial_report_webkit/report/common_report_header_webkit.py:82 +#, python-format +msgid "All Entries" +msgstr "Alle Einträge" + +#. module: account_financial_report_webkit +#: sql_constraint:account.move.line:0 +msgid "Wrong credit or debit value in accounting entry !" +msgstr "Falscher Kredit oder Debit Wert im Buchungseintrag !" + +#. module: account_financial_report_webkit +#: constraint:account.move.line:0 +msgid "You can not create move line on view account." +msgstr "Keine Bewegungen für Konten mit Typ Ansicht erlaubt." + diff --git a/account_financial_report_webkit/report/open_invoices.py b/account_financial_report_webkit/report/open_invoices.py index 90b9b676..118d321c 100644 --- a/account_financial_report_webkit/report/open_invoices.py +++ b/account_financial_report_webkit/report/open_invoices.py @@ -22,14 +22,26 @@ import pooler from collections import defaultdict from report import report_sxw -from osv import osv -from tools.translate import _ from datetime import datetime +from itertools import groupby +from operator import itemgetter +from mako.template import Template + +from tools.translate import _ +from openerp.osv import osv from common_partner_reports import CommonPartnersReportHeaderWebkit from webkit_parser_header_fix import HeaderFooterTextWebKitParser +from openerp.addons.report_webkit import report_helper +import addons +def get_mako_template(obj, *args): + template_path = addons.get_module_resource(*args) + return Template(filename=template_path, input_encoding='utf-8') + +report_helper.WebKitHelper.get_mako_template = get_mako_template + class PartnersOpenInvoicesWebkit(report_sxw.rml_parse, CommonPartnersReportHeaderWebkit): def __init__(self, cursor, uid, name, context): @@ -65,6 +77,18 @@ class PartnersOpenInvoicesWebkit(report_sxw.rml_parse, CommonPartnersReportHeade ], }) + + def _group_lines_by_currency(self, account_br): + account_br.grouped_ledger_lines = {} + if not account_br.ledger_lines: + return + for part_id, plane_lines in account_br.ledger_lines.items(): + account_br.grouped_ledger_lines[part_id] = [] + plane_lines.sort(key=itemgetter('currency_code')) + for curr, lines in groupby(plane_lines, key=itemgetter('currency_code')): + tmp = [x for x in lines] + account_br.grouped_ledger_lines[part_id].append((curr, tmp)) #I want to reiter many times + def set_context(self, objects, data, ids, report_type=None): """Populate a ledger_lines attribute on each browse record that will be used by mako template""" @@ -84,6 +108,7 @@ class PartnersOpenInvoicesWebkit(report_sxw.rml_parse, CommonPartnersReportHeade result_selection = self._get_form_param('result_selection', data) date_until = self._get_form_param('until_date', data) chart_account = self._get_chart_account_id_br(data) + group_by_currency = self._get_form_param('group_by_currency', data) if main_filter == 'filter_no' and fiscalyear: start_period = self.get_first_fiscalyear_period(fiscalyear) @@ -129,6 +154,8 @@ class PartnersOpenInvoicesWebkit(report_sxw.rml_parse, CommonPartnersReportHeade account.partners_order = self._order_partners(ledg_lines_pids, init_bal_lines_pids) account.ledger_lines = ledger_lines_memoizer.get(account.id, {}) + if group_by_currency: + self._group_lines_by_currency(account) objects.append(account) self.localcontext.update({ diff --git a/account_financial_report_webkit/report/templates/account_report_open_invoices.mako b/account_financial_report_webkit/report/templates/account_report_open_invoices.mako index ebc4ecd4..ffe102dc 100644 --- a/account_financial_report_webkit/report/templates/account_report_open_invoices.mako +++ b/account_financial_report_webkit/report/templates/account_report_open_invoices.mako @@ -1,4 +1,5 @@ - + - <%! - def amount(text): - return text.replace('-', '‑') # replace by a non-breaking hyphen (it will not word-wrap between hyphen and numbers) - %> - + + <% import addons %> + <% template1 = helper.get_mako_template('account_financial_report_webkit','report', 'templates', 'open_invoices_inclusion.mako.html') %> + <% context.lookup.put_template('open_invoices_inclusion.mako.html', template1) %> + <% template2 = helper.get_mako_template('account_financial_report_webkit','report', 'templates', 'grouped_by_curr_open_invoices_inclusion.mako.html') %> + <% context.lookup.put_template('grouped_by_curr_open_invoices_inclusion.mako.html', template2) %> <%setLang(user.context_lang)%>
@@ -70,181 +72,13 @@
${ display_target_move(data) }
- - %for account in objects: - %if account.ledger_lines: - <% - if not account.partners_order: - continue - account_total_debit = 0.0 - account_total_credit = 0.0 - account_balance_cumul = 0.0 - account_balance_cumul_curr = 0.0 - %> - - - - %for partner_name, p_id, p_ref, p_name in account.partners_order: - <% - total_debit = 0.0 - total_credit = 0.0 - cumul_balance = 0.0 - cumul_balance_curr = 0.0 - - part_cumul_balance = 0.0 - part_cumul_balance_curr = 0.0 - %> -
- -
-
- ## date -
${_('Date')}
- ## period -
${_('Period')}
- ## move -
${_('Entry')}
- ## journal -
${_('Journal')}
- ## partner -
${_('Partner')}
- ## label -
${_('Label')}
- ## reconcile -
${_('Rec.')}
- ## maturity -
${_('Due Date')}
- ## debit -
${_('Debit')}
- ## credit -
${_('Credit')}
- ## balance cumulated -
${_('Cumul. Bal.')}
- %if amount_currency(data): - ## currency balance -
${_('Curr. Balance')}
- ## curency code -
${_('Curr.')}
- %endif -
-
-
- <% - total_debit = 0.0 - total_credit = 0.0 - %> - - %for line in account.ledger_lines.get(p_id, []): - <% - total_debit += line.get('debit') or 0.0 - total_credit += line.get('credit') or 0.0 - - label_elements = [line.get('lname') or ''] - if line.get('invoice_number'): - label_elements.append("(%s)" % (line['invoice_number'],)) - label = ' '.join(label_elements) - %> -
- ## date -
${formatLang(line.get('ldate') or '', date=True)}
- ## period -
${line.get('period_code') or ''}
- ## move -
${line.get('move_name') or ''}
- ## journal -
${line.get('jcode') or ''}
- ## partner -
${line.get('partner_name') or ''}
- ## label -
${label}
- ## reconcile -
${line.get('rec_name') or ''}
- ## maturity date -
${formatLang(line.get('date_maturity') or '', date=True)}
- ## debit -
${formatLang(line.get('debit') or 0.0) | amount }
- ## credit -
${formatLang(line.get('credit') or 0.0) | amount }
- ## balance cumulated - <% cumul_balance += line.get('balance') or 0.0 %> -
${formatLang(cumul_balance) | amount }
- %if amount_currency(data): - ## currency balance -
${formatLang(line.get('amount_currency') or 0.0) | amount }
- ## curency code -
${line.get('currency_code') or ''}
- %endif -
- %endfor -
- ## date -
- ## period -
- ## move -
- ## journal -
- ## partner -
- ## label -
${_('Cumulated Balance on Partner')}
- ## reconcile -
- ## maturity date -
- ## debit -
${formatLang(total_debit) | amount }
- ## credit -
${formatLang(total_credit) | amount }
- ## balance cumulated -
${formatLang(cumul_balance) | amount }
- %if amount_currency(data): - %if account.currency_id: - ## currency balance -
${formatLang(cumul_balance_curr) | amount }
- %else: -
${ u'-' }
- %endif - ## curency code -
${ account.currency_id.name if account.currency_id else u'' }
- %endif -
-
-
- <% - account_total_debit += total_debit - account_total_credit += total_credit - account_balance_cumul += cumul_balance - account_balance_cumul_curr += cumul_balance_curr - %> - %endfor -
-
-
${account.code} - ${account.name}
- ## label -
${_("Cumulated Balance on Account")}
- ## debit -
${ formatLang(account_total_debit) | amount }
- ## credit -
${ formatLang(account_total_credit) | amount }
- ## balance cumulated -
${ formatLang(account_balance_cumul) | amount }
- %if amount_currency(data): - ## currency balance cumulated - %if account.currency_id: -
${ formatLang(account_balance_cumul_curr) | amount }
- %else: -
${ u'-' }
- %endif - ## curency code -
${ account.currency_id.name if account.currency_id else u'' }
- %endif -
-
- + %for acc in objects: + %if hasattr(acc, 'grouped_ledger_lines'): + <% fl = formatLang %> + <%include file="grouped_by_curr_open_invoices_inclusion.mako.html" args="account=acc,formatLang=fl"/> + %else: + <% fl = formatLang %> + <%include file="open_invoices_inclusion.mako.html" args="account=acc,formatLang=fl"/> %endif %endfor diff --git a/account_financial_report_webkit/report/templates/grouped_by_curr_open_invoices_inclusion.mako.html b/account_financial_report_webkit/report/templates/grouped_by_curr_open_invoices_inclusion.mako.html new file mode 100644 index 00000000..57ada841 --- /dev/null +++ b/account_financial_report_webkit/report/templates/grouped_by_curr_open_invoices_inclusion.mako.html @@ -0,0 +1,166 @@ +<%page args="account, formatLang" /> +%if account.grouped_ledger_lines and account.partners_order: + <% + account_total_debit = 0.0 + account_total_credit = 0.0 + account_balance_cumul = 0.0 + account_balance_cumul_curr = 0.0 + %> + %for partner_name, p_id, p_ref, p_name in account.partners_order: + + + + + %for curr, grouped_lines in account.grouped_ledger_lines.get(p_id, []): + <% + total_debit = 0.0 + total_credit = 0.0 + cumul_balance = 0.0 + cumul_balance_curr = 0.0 + + part_cumul_balance = 0.0 + part_cumul_balance_curr = 0.0 + %> +
+ +
+
+ ## date +
${_('Date')}
+ ## period +
${_('Period')}
+ ## move +
${_('Entry')}
+ ## journal +
${_('Journal')}
+ ## label +
${_('Label')}
+ ## reconcile +
${_('Rec.')}
+ ## maturity +
${_('Due Date')}
+ ## debit +
${_('Debit')}
+ ## credit +
${_('Credit')}
+ ## balance cumulated +
${_('Cumul. Bal.')}
+ ## currency balance +
${_('Curr. Balance')}
+ ## curency code +
${_('Curr.')}
+
+
+
+ <% + total_debit = 0.0 + total_credit = 0.0 + %> + <%! + def amount(text): + return text.replace('-', '‑') # replace by a non-breaking hyphen (it will not word-wrap between hyphen and numbers) + %> + %for line in grouped_lines: + <% + total_debit += line.get('debit') or 0.0 + total_credit += line.get('credit') or 0.0 + + label_elements = [line.get('lname') or ''] + if line.get('invoice_number'): + label_elements.append("(%s)" % (line['invoice_number'],)) + label = ' '.join(label_elements) + %> +
+ ## date +
${formatLang(line.get('ldate') or '', date=True)}
+ ## period +
${line.get('period_code') or ''}
+ ## move +
${line.get('move_name') or ''}
+ ## journal +
${line.get('jcode') or ''}
+ ## label +
${label}
+ ## reconcile +
${line.get('rec_name') or ''}
+ ## maturity date +
${formatLang(line.get('date_maturity') or '', date=True)}
+ ## debit +
${formatLang(line.get('debit') or 0.0) | amount }
+ ## credit +
${formatLang(line.get('credit') or 0.0) | amount }
+ ## balance cumulated + <% cumul_balance += line.get('balance') or 0.0 %> +
${formatLang(cumul_balance) | amount }
+ ## currency balance +
${formatLang(line.get('amount_currency') or 0.0) | amount }
+ ## curency code +
${line.get('currency_code') or ''}
+
+ %endfor +
+ ## date +
+ ## period +
+ ## move +
+ ## journal +
+ ## label +
${_('Cumulated Balance on Partner')}
+ ## reconcile +
+ ## maturity date +
+ ## debit +
${formatLang(total_debit) | amount }
+ ## credit +
${formatLang(total_credit) | amount }
+ ## balance cumulated +
${formatLang(cumul_balance) | amount }
+ %if account.currency_id: + ## currency balance +
${formatLang(cumul_balance_curr) | amount }
+ %else: +
${ u'-' }
+ %endif + ## curency code +
${ account.currency_id.name if account.currency_id else u'' }
+
+
+
+ <% + account_total_debit += total_debit + account_total_credit += total_credit + account_balance_cumul += cumul_balance + account_balance_cumul_curr += cumul_balance_curr + %> + %endfor +%endfor +
+
+
${account.code} - ${account.name}
+ ## label +
${_("Cumulated Balance on Account")}
+ ## debit +
${ formatLang(account_total_debit) | amount }
+ ## credit +
${ formatLang(account_total_credit) | amount }
+ ## balance cumulated +
${ formatLang(account_balance_cumul) | amount }
+ ## currency balance cumulated + %if account.currency_id: +
${ formatLang(account_balance_cumul_curr) | amount }
+ %else: +
${ u'-' }
+ %endif + ## curency code +
${ account.currency_id.name if account.currency_id else u'' }
+
+
+ +%endif diff --git a/account_financial_report_webkit/report/templates/open_invoices_inclusion.mako.html b/account_financial_report_webkit/report/templates/open_invoices_inclusion.mako.html new file mode 100644 index 00000000..2e8ab482 --- /dev/null +++ b/account_financial_report_webkit/report/templates/open_invoices_inclusion.mako.html @@ -0,0 +1,176 @@ +<%page args="account, formatLang" /> +%if account.ledger_lines and account.partners_order: + <% + account_total_debit = 0.0 + account_total_credit = 0.0 + account_balance_cumul = 0.0 + account_balance_cumul_curr = 0.0 + %> + + + + %for partner_name, p_id, p_ref, p_name in account.partners_order: + <% + total_debit = 0.0 + total_credit = 0.0 + cumul_balance = 0.0 + cumul_balance_curr = 0.0 + + part_cumul_balance = 0.0 + part_cumul_balance_curr = 0.0 + %> +
+ +
+
+ ## date +
${_('Date')}
+ ## period +
${_('Period')}
+ ## move +
${_('Entry')}
+ ## journal +
${_('Journal')}
+ ## partner +
${_('Partner')}
+ ## label +
${_('Label')}
+ ## reconcile +
${_('Rec.')}
+ ## maturity +
${_('Due Date')}
+ ## debit +
${_('Debit')}
+ ## credit +
${_('Credit')}
+ ## balance cumulated +
${_('Cumul. Bal.')}
+ %if amount_currency(data): + ## currency balance +
${_('Curr. Balance')}
+ ## curency code +
${_('Curr.')}
+ %endif +
+
+
+ <% + total_debit = 0.0 + total_credit = 0.0 + %> + <%! + def amount(text): + return text.replace('-', '‑') # replace by a non-breaking hyphen (it will not word-wrap between hyphen and numbers) + %> + %for line in account.ledger_lines.get(p_id, []): + <% + total_debit += line.get('debit') or 0.0 + total_credit += line.get('credit') or 0.0 + + label_elements = [line.get('lname') or ''] + if line.get('invoice_number'): + label_elements.append("(%s)" % (line['invoice_number'],)) + label = ' '.join(label_elements) + %> +
+ ## date +
${formatLang(line.get('ldate') or '', date=True)}
+ ## period +
${line.get('period_code') or ''}
+ ## move +
${line.get('move_name') or ''}
+ ## journal +
${line.get('jcode') or ''}
+ ## partner +
${line.get('partner_name') or ''}
+ ## label +
${label}
+ ## reconcile +
${line.get('rec_name') or ''}
+ ## maturity date +
${formatLang(line.get('date_maturity') or '', date=True)}
+ ## debit +
${formatLang(line.get('debit') or 0.0) | amount }
+ ## credit +
${formatLang(line.get('credit') or 0.0) | amount }
+ ## balance cumulated + <% cumul_balance += line.get('balance') or 0.0 %> +
${formatLang(cumul_balance) | amount }
+ %if amount_currency(data): + ## currency balance +
${formatLang(line.get('amount_currency') or 0.0) | amount }
+ ## curency code +
${line.get('currency_code') or ''}
+ %endif +
+ %endfor +
+ ## date +
+ ## period +
+ ## move +
+ ## journal +
+ ## partner +
+ ## label +
${_('Cumulated Balance on Partner')}
+ ## reconcile +
+ ## maturity date +
+ ## debit +
${formatLang(total_debit) | amount }
+ ## credit +
${formatLang(total_credit) | amount }
+ ## balance cumulated +
${formatLang(cumul_balance) | amount }
+ %if amount_currency(data): + %if account.currency_id: + ## currency balance +
${formatLang(cumul_balance_curr) | amount }
+ %else: +
${ u'-' }
+ %endif + ## curency code +
${ account.currency_id.name if account.currency_id else u'' }
+ %endif +
+
+
+ <% + account_total_debit += total_debit + account_total_credit += total_credit + account_balance_cumul += cumul_balance + account_balance_cumul_curr += cumul_balance_curr + %> + %endfor +
+
+
${account.code} - ${account.name}
+ ## label +
${_("Cumulated Balance on Account")}
+ ## debit +
${ formatLang(account_total_debit) | amount }
+ ## credit +
${ formatLang(account_total_credit) | amount }
+ ## balance cumulated +
${ formatLang(account_balance_cumul) | amount }
+ %if amount_currency(data): + ## currency balance cumulated + %if account.currency_id: +
${ formatLang(account_balance_cumul_curr) | amount }
+ %else: +
${ u'-' }
+ %endif + ## curency code +
${ account.currency_id.name if account.currency_id else u'' }
+ %endif +
+
+ +%endif \ No newline at end of file diff --git a/account_financial_report_webkit/wizard/open_invoices_wizard.py b/account_financial_report_webkit/wizard/open_invoices_wizard.py index 115541bb..30284a19 100644 --- a/account_financial_report_webkit/wizard/open_invoices_wizard.py +++ b/account_financial_report_webkit/wizard/open_invoices_wizard.py @@ -29,6 +29,7 @@ class AccountReportOpenInvoicesWizard(osv.osv_memory): _description = "Open Invoices Report" _columns = { + 'group_by_currency':fields.boolean('Group Partner by currency'), 'until_date': fields.date("Clearance date", required=True, help="""The clearance date is essentially a tool used for debtors provisionning calculation. @@ -36,9 +37,7 @@ class AccountReportOpenInvoicesWizard(osv.osv_memory): By default, this date is equal to the the end date (ie: 31/12/2011 if you select fy 2011). By amending the clearance date, you will be, for instance, able to answer the question : 'based on my last year end debtors open invoices, which invoices are still unpaid today (today is my clearance date)?' -"""), - - } +""")} def _check_until_date(self, cr, uid, ids, context=None): def get_key_id(obj, field): @@ -111,7 +110,7 @@ By amending the clearance date, you will be, for instance, able to answer the qu if context is None: context = {} vals = self.read(cr, uid, ids, - ['until_date',], + ['until_date', 'group_by_currency'], context=context)[0] data['form'].update(vals) return data diff --git a/account_financial_report_webkit/wizard/open_invoices_wizard_view.xml b/account_financial_report_webkit/wizard/open_invoices_wizard_view.xml index 1b1c1fa2..aa1dfad2 100644 --- a/account_financial_report_webkit/wizard/open_invoices_wizard_view.xml +++ b/account_financial_report_webkit/wizard/open_invoices_wizard_view.xml @@ -31,6 +31,7 @@ + From 66fdd87ddaa3100748bb260c5627fe28a8935840 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 8 Jun 2012 11:41:24 +0200 Subject: [PATCH 04/28] [BCK] improve done in v5 for 'commissaire aux comptes' (lp:c2c-addons/6.1 rev 24.1.12) --- .../report/common_partner_reports.py | 2 +- .../report/templates/account_report_general_ledger.mako | 8 +++++++- .../report/templates/account_report_partner_balance.mako | 8 ++++---- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/account_financial_report_webkit/report/common_partner_reports.py b/account_financial_report_webkit/report/common_partner_reports.py index 5ebd36c3..a6c2d8d8 100644 --- a/account_financial_report_webkit/report/common_partner_reports.py +++ b/account_financial_report_webkit/report/common_partner_reports.py @@ -238,7 +238,7 @@ class CommonPartnersReportHeaderWebkit(CommonReportHeaderWebkit): if existing_partner_ids: # We may use orm here as the performance optimization is not that big sql = ("SELECT name|| ' ' ||CASE WHEN ref IS NOT NULL THEN '('||ref||')' ELSE '' END, id, ref, name" - " FROM res_partner WHERE id IN %s ORDER BY name, ref") + " FROM res_partner WHERE id IN %s ORDER BY LOWER(name), ref") self.cursor.execute(sql, (tuple(set(existing_partner_ids)),)) res = self.cursor.fetchall() diff --git a/account_financial_report_webkit/report/templates/account_report_general_ledger.mako b/account_financial_report_webkit/report/templates/account_report_general_ledger.mako index df819cb4..3f5e59e7 100644 --- a/account_financial_report_webkit/report/templates/account_report_general_ledger.mako +++ b/account_financial_report_webkit/report/templates/account_report_general_ledger.mako @@ -95,10 +95,12 @@
${_('Entry')}
## journal
${_('Journal')}
+ ## account code +
${_('Account')}
## partner
${_('Partner')}
## label -
${_('Label')}
+
${_('Label')}
## counterpart
${_('Counter part')}
## debit @@ -133,6 +135,8 @@
## journal
+ ## account code +
## partner
## label @@ -175,6 +179,8 @@
${line.get('move_name') or ''}
## journal
${line.get('jcode') or ''}
+ ## journal +
${account.code}
## partner
${line.get('partner_name') or ''}
## label diff --git a/account_financial_report_webkit/report/templates/account_report_partner_balance.mako b/account_financial_report_webkit/report/templates/account_report_partner_balance.mako index 31b18fca..32e5ccc9 100644 --- a/account_financial_report_webkit/report/templates/account_report_partner_balance.mako +++ b/account_financial_report_webkit/report/templates/account_report_partner_balance.mako @@ -132,10 +132,10 @@
- ## code -
${_('Code / Ref')}
## account name
${_('Account / Partner Name')}
+ ## code +
${_('Code / Ref')}
%if comparison_mode == 'no_comparison': %if initial_balance_mode: ## initial balance @@ -229,10 +229,10 @@
- ## code -
${current_account.code}
## account name
${current_account.name}
+ ## code +
${current_account.code}
%if comparison_mode == 'no_comparison': %if initial_balance_mode: ## opening balance From 3f6fec4de38c0b0ed554be6d28abd31f4d1bc358 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 8 Jun 2012 11:43:57 +0200 Subject: [PATCH 05/28] =?UTF-8?q?[fix]=C2=A0in=20comment=20(lp:c2c-addons/?= =?UTF-8?q?6.1=20=20rev=2024.1.13)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../report/templates/account_report_general_ledger.mako | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/account_financial_report_webkit/report/templates/account_report_general_ledger.mako b/account_financial_report_webkit/report/templates/account_report_general_ledger.mako index 3f5e59e7..6ed7b4a5 100644 --- a/account_financial_report_webkit/report/templates/account_report_general_ledger.mako +++ b/account_financial_report_webkit/report/templates/account_report_general_ledger.mako @@ -179,7 +179,7 @@
${line.get('move_name') or ''}
## journal
${line.get('jcode') or ''}
- ## journal + ## account code
${account.code}
## partner
${line.get('partner_name') or ''}
From 41da0a30dd07ef99f24223bbea8ce4a619a8e2af Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 8 Jun 2012 14:52:51 +0200 Subject: [PATCH 06/28] [FIX] order in partner balance (lp:c2c-addons/6.1 rev 24.1.14) --- .../report/templates/account_report_partner_balance.mako | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/account_financial_report_webkit/report/templates/account_report_partner_balance.mako b/account_financial_report_webkit/report/templates/account_report_partner_balance.mako index 32e5ccc9..89112c34 100644 --- a/account_financial_report_webkit/report/templates/account_report_partner_balance.mako +++ b/account_financial_report_webkit/report/templates/account_report_partner_balance.mako @@ -188,8 +188,8 @@ total_balance += partner.get('balance', 0.0) %>
-
${partner_ref if partner_ref else ''}
${partner_name if partner_name else _('Unallocated') }
+
${partner_ref if partner_ref else ''}
%if comparison_mode == 'no_comparison': %if initial_balance_mode:
${formatLang(partner.get('init_balance', 0.0)) | amount}
From 57a8a1c27ee4a700e53e3acc0031878bf2b9838b Mon Sep 17 00:00:00 2001 From: "Guewen Baconnier @ Camptocamp" Date: Fri, 30 Mar 2012 14:55:19 +0200 Subject: [PATCH 07/28] [FIX] Alexis de Lattre @ Akretion fix: Missing logger definition in account_financial_report_webkit (lp:c2c-addons/6.1 rev 37) --- .../account_move_line_view.xml | 4 +- .../i18n/account_financial_report_webkit.pot | 428 ++++++------------ .../report/common_partner_reports.py | 2 +- .../report/open_invoices.py | 31 +- .../account_report_general_ledger.mako | 8 +- .../account_report_open_invoices.mako | 196 +++++++- .../account_report_partner_balance.mako | 10 +- .../wizard/open_invoices_wizard.py | 7 +- .../wizard/open_invoices_wizard_view.xml | 1 - 9 files changed, 345 insertions(+), 342 deletions(-) diff --git a/account_financial_report_webkit/account_move_line_view.xml b/account_financial_report_webkit/account_move_line_view.xml index a99a8e9d..969a3824 100644 --- a/account_financial_report_webkit/account_move_line_view.xml +++ b/account_financial_report_webkit/account_move_line_view.xml @@ -10,7 +10,7 @@ form - + @@ -20,4 +20,4 @@ - + \ No newline at end of file diff --git a/account_financial_report_webkit/i18n/account_financial_report_webkit.pot b/account_financial_report_webkit/i18n/account_financial_report_webkit.pot index 9d23983d..394aa4e7 100644 --- a/account_financial_report_webkit/i18n/account_financial_report_webkit.pot +++ b/account_financial_report_webkit/i18n/account_financial_report_webkit.pot @@ -4,10 +4,10 @@ # msgid "" msgstr "" -"Project-Id-Version: OpenERP Server 6.1\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-05-07 07:02+0000\n" -"PO-Revision-Date: 2012-05-07 07:02+0000\n" +"Project-Id-Version: OpenERP Server 6.0.3\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2012-01-20 09:03+0000\n" +"PO-Revision-Date: 2012-01-20 09:03+0000\n" "Last-Translator: <>\n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -38,8 +38,8 @@ msgstr "" #. module: account_financial_report_webkit #: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:203 -#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:228 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:258 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:223 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:253 msgid "Cumulated Balance on Account" msgstr "" @@ -70,7 +70,7 @@ msgid "Periods Filter:" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:170 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:172 #, python-format msgid "No header defined for this Webkit report!" msgstr "" @@ -82,18 +82,15 @@ msgid "Filter has to be in filter date, period, or none" msgstr "" #. module: account_financial_report_webkit +#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_trial_balance_menu_webkit #: model:ir.actions.report.xml,name:account_financial_report_webkit.account_report_trial_balance_webkit msgid "Trial Balance Webkit" msgstr "" #. module: account_financial_report_webkit -#: field:account.common.balance.report,company_id:0 -#: field:general.ledger.webkit,company_id:0 -#: field:open.invoices.webkit,company_id:0 -#: field:partner.balance.webkit,company_id:0 -#: field:partners.ledger.webkit,company_id:0 -#: field:trial.balance.webkit,company_id:0 -msgid "Company" +#: constraint:account.account:0 +msgid "Configuration Error! \n" +"You cannot define children to an account with internal type different of \"View\"! " msgstr "" #. module: account_financial_report_webkit @@ -124,10 +121,10 @@ msgid "It adds the currency column" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/common_reports.py:75 #: selection:open.invoices.webkit,result_selection:0 #: selection:partner.balance.webkit,result_selection:0 #: selection:partners.ledger.webkit,result_selection:0 +#: code:addons/account_financial_report_webkit/report/common_reports.py:73 #, python-format msgid "Receivable and Payable Accounts" msgstr "" @@ -160,26 +157,32 @@ msgid "Print only" msgstr "" #. module: account_financial_report_webkit -#: model:ir.model,name:account_financial_report_webkit.model_partner_balance_webkit +#: constraint:account.move.line:0 +msgid "You can not create move line on closed account." +msgstr "" + +#. module: account_financial_report_webkit +#: model:ir.model,name:account_financial_report_webkit.model_account_report_partner_balance_webkit msgid "Partner Balance Report" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:194 -#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:205 -#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:220 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:221 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:230 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:247 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:258 #, python-format msgid "Webkit render" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:165 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:167 #, python-format msgid "Error!" msgstr "" #. module: account_financial_report_webkit -#: model:ir.model,name:account_financial_report_webkit.model_trial_balance_webkit +#: model:ir.model,name:account_financial_report_webkit.model_account_report_trial_balance_webkit msgid "Trial Balance Report" msgstr "" @@ -189,20 +192,20 @@ msgid "Code" msgstr "" #. module: account_financial_report_webkit +#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_partners_ledger_menu_webkit #: model:ir.actions.report.xml,name:account_financial_report_webkit.account_report_partners_ledger_webkit msgid "Partner Ledger Webkit" msgstr "" #. module: account_financial_report_webkit -#: field:account.common.balance.report,display_account:0 -#: field:partner.balance.webkit,display_account:0 -#: field:trial.balance.webkit,display_account:0 -msgid "Display Accounts" +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:192 +msgid "Unallocated" msgstr "" #. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:192 -msgid "Unallocated" +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:116 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:112 +msgid "Rec." msgstr "" #. module: account_financial_report_webkit @@ -212,23 +215,33 @@ msgid "Webkit raise an error" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/common_reports.py:71 #: selection:open.invoices.webkit,result_selection:0 #: selection:partner.balance.webkit,result_selection:0 #: selection:partners.ledger.webkit,result_selection:0 +#: code:addons/account_financial_report_webkit/report/common_reports.py:69 #, python-format msgid "Receivable Accounts" msgstr "" #. module: account_financial_report_webkit +#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_general_ledger_menu_webkit #: model:ir.actions.report.xml,name:account_financial_report_webkit.account_report_general_ledger_webkit msgid "General Ledger Webkit" msgstr "" #. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:116 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:112 -msgid "Rec." +#: field:account.common.balance.report,period_from:0 +#: field:general.ledger.webkit,period_from:0 +#: field:open.invoices.webkit,period_from:0 +#: field:partner.balance.webkit,period_from:0 +#: field:partners.ledger.webkit,period_from:0 +#: field:trial.balance.webkit,period_from:0 +msgid "Start period" +msgstr "" + +#. module: account_financial_report_webkit +#: model:ir.model,name:account_financial_report_webkit.model_account_report_open_transactions_webkit +msgid "Open Transactions Report" msgstr "" #. module: account_financial_report_webkit @@ -245,12 +258,6 @@ msgstr "" msgid "Periods Filter" msgstr "" -#. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/common_reports.py:313 -#, python-format -msgid "No period found" -msgstr "" - #. module: account_financial_report_webkit #: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:38 #: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:139 @@ -266,12 +273,17 @@ msgid "Initial Balance" msgstr "" #. module: account_financial_report_webkit -#: constraint:account.move.line:0 -msgid "The date of your Journal Entry is not in the defined period! You should change the date or remove this constraint from the journal." +#: field:account.common.balance.report,period_to:0 +#: field:general.ledger.webkit,period_to:0 +#: field:open.invoices.webkit,period_to:0 +#: field:partner.balance.webkit,period_to:0 +#: field:partners.ledger.webkit,period_to:0 +#: field:trial.balance.webkit,period_to:0 +msgid "End period" msgstr "" #. module: account_financial_report_webkit -#: model:ir.model,name:account_financial_report_webkit.model_general_ledger_webkit +#: model:ir.model,name:account_financial_report_webkit.model_account_report_general_ledger_webkit msgid "General Ledger Report" msgstr "" @@ -313,9 +325,8 @@ msgid "Filter by" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/partners_ledger.py:48 -#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_partners_ledger_menu_webkit #: view:partners.ledger.webkit:0 +#: code:addons/account_financial_report_webkit/report/partners_ledger.py:48 #, python-format msgid "Partner Ledger" msgstr "" @@ -353,7 +364,7 @@ msgid "Debit" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:171 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:173 #, python-format msgid "Please set a header in company settings" msgstr "" @@ -368,12 +379,13 @@ msgid "Time Filters" msgstr "" #. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:193 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:224 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:188 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:219 msgid "Cumulated Balance on Partner" msgstr "" #. module: account_financial_report_webkit +#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_partner_balance_menu_webkit #: model:ir.actions.report.xml,name:account_financial_report_webkit.account_report_partner_balance_webkit msgid "Partner Balance Webkit" msgstr "" @@ -393,6 +405,13 @@ msgstr "" msgid "Clearance Date" msgstr "" +#. module: account_financial_report_webkit +#: selection:general.ledger.webkit,display_account:0 +#: code:addons/account_financial_report_webkit/report/common_reports.py:62 +#, python-format +msgid "With transactions or non zero balance" +msgstr "" + #. module: account_financial_report_webkit #: view:partners.ledger.webkit:0 msgid "This report allows you to print or generate a pdf of your partner ledger with details of all your payable/receivable account" @@ -424,7 +443,7 @@ msgstr "" #. module: account_financial_report_webkit #: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:43 -#: code:addons/account_financial_report_webkit/wizard/balance_common.py:151 +#: code:addons/account_financial_report_webkit/wizard/balance_common.py:163 #, python-format msgid "Dates" msgstr "" @@ -435,9 +454,8 @@ msgid "Code / Ref" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/trial_balance.py:49 -#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_trial_balance_menu_webkit #: view:trial.balance.webkit:0 +#: code:addons/account_financial_report_webkit/report/trial_balance.py:49 #, python-format msgid "Trial Balance" msgstr "" @@ -447,25 +465,6 @@ msgstr "" msgid "Dates : " msgstr "" -#. module: account_financial_report_webkit -#: field:account.common.balance.report,comp0_period_to:0 -#: field:account.common.balance.report,comp1_period_to:0 -#: field:account.common.balance.report,comp2_period_to:0 -#: field:account.common.balance.report,period_to:0 -#: field:general.ledger.webkit,period_to:0 -#: field:open.invoices.webkit,period_to:0 -#: field:partner.balance.webkit,comp0_period_to:0 -#: field:partner.balance.webkit,comp1_period_to:0 -#: field:partner.balance.webkit,comp2_period_to:0 -#: field:partner.balance.webkit,period_to:0 -#: field:partners.ledger.webkit,period_to:0 -#: field:trial.balance.webkit,comp0_period_to:0 -#: field:trial.balance.webkit,comp1_period_to:0 -#: field:trial.balance.webkit,comp2_period_to:0 -#: field:trial.balance.webkit,period_to:0 -msgid "End Period" -msgstr "" - #. module: account_financial_report_webkit #: model:ir.model,name:account_financial_report_webkit.model_account_common_balance_report msgid "Common Balance Report" @@ -481,19 +480,13 @@ msgid "Accounts Filter" msgstr "" #. module: account_financial_report_webkit -#: selection:account.common.balance.report,comp0_filter:0 -#: selection:account.common.balance.report,comp1_filter:0 -#: selection:account.common.balance.report,comp2_filter:0 -#: selection:account.common.balance.report,filter:0 -#: selection:partner.balance.webkit,comp0_filter:0 -#: selection:partner.balance.webkit,comp1_filter:0 -#: selection:partner.balance.webkit,comp2_filter:0 -#: selection:partner.balance.webkit,filter:0 -#: selection:trial.balance.webkit,comp0_filter:0 -#: selection:trial.balance.webkit,comp1_filter:0 -#: selection:trial.balance.webkit,comp2_filter:0 -#: selection:trial.balance.webkit,filter:0 -msgid "Opening Only" +#: field:account.common.balance.report,chart_account_id:0 +#: field:general.ledger.webkit,chart_account_id:0 +#: field:open.invoices.webkit,chart_account_id:0 +#: field:partner.balance.webkit,chart_account_id:0 +#: field:partners.ledger.webkit,chart_account_id:0 +#: field:trial.balance.webkit,chart_account_id:0 +msgid "Chart of account" msgstr "" #. module: account_financial_report_webkit @@ -520,16 +513,6 @@ msgstr "" msgid "With movements" msgstr "" -#. module: account_financial_report_webkit -#: constraint:account.common.balance.report:0 -#: constraint:general.ledger.webkit:0 -#: constraint:open.invoices.webkit:0 -#: constraint:partner.balance.webkit:0 -#: constraint:partners.ledger.webkit:0 -#: constraint:trial.balance.webkit:0 -msgid "The fiscalyear, periods or chart of account chosen have to belong to the same company." -msgstr "" - #. module: account_financial_report_webkit #: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:109 #: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:124 @@ -550,27 +533,26 @@ msgstr "" #: code:addons/account_financial_report_webkit/report/open_invoices.py:63 #: code:addons/account_financial_report_webkit/report/partner_balance.py:63 #: code:addons/account_financial_report_webkit/report/partners_ledger.py:64 -#: code:addons/account_financial_report_webkit/report/profit_loss.py:68 +#: code:addons/account_financial_report_webkit/report/profit_loss.py:71 #: code:addons/account_financial_report_webkit/report/trial_balance.py:64 -#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:68 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:67 #, python-format msgid "of" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/common_reports.py:73 #: selection:open.invoices.webkit,result_selection:0 #: selection:partner.balance.webkit,result_selection:0 #: selection:partners.ledger.webkit,result_selection:0 +#: code:addons/account_financial_report_webkit/report/common_reports.py:71 #, python-format msgid "Payable Accounts" msgstr "" #. module: account_financial_report_webkit #: code:addons/account_financial_report_webkit/report/open_invoices.py:48 -#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_open_invoices_menu_webkit #: model:ir.actions.report.xml,name:account_financial_report_webkit.account_report_open_invoices_webkit -#: model:ir.model,name:account_financial_report_webkit.model_open_invoices_webkit +#: model:ir.model,name:account_financial_report_webkit.model_account_report_open_invoices_webkit #, python-format msgid "Open Invoices Report" msgstr "" @@ -581,31 +563,24 @@ msgid "Centralized" msgstr "" #. module: account_financial_report_webkit +#: field:account.common.balance.report,display_account:0 #: field:general.ledger.webkit,display_account:0 +#: field:partner.balance.webkit,display_account:0 +#: field:trial.balance.webkit,display_account:0 msgid "Display accounts" msgstr "" #. module: account_financial_report_webkit -#: constraint:account.account:0 -msgid "Configuration Error! \n" -"You can not define children to an account with internal type different of \"View\"! " +#: view:account.move.line:0 +msgid "Narration" msgstr "" #. module: account_financial_report_webkit -#: field:account.common.balance.report,comp0_date_from:0 -#: field:account.common.balance.report,comp1_date_from:0 -#: field:account.common.balance.report,comp2_date_from:0 #: field:account.common.balance.report,date_from:0 #: field:general.ledger.webkit,date_from:0 #: field:open.invoices.webkit,date_from:0 -#: field:partner.balance.webkit,comp0_date_from:0 -#: field:partner.balance.webkit,comp1_date_from:0 -#: field:partner.balance.webkit,comp2_date_from:0 #: field:partner.balance.webkit,date_from:0 #: field:partners.ledger.webkit,date_from:0 -#: field:trial.balance.webkit,comp0_date_from:0 -#: field:trial.balance.webkit,comp1_date_from:0 -#: field:trial.balance.webkit,comp2_date_from:0 #: field:trial.balance.webkit,date_from:0 msgid "Start Date" msgstr "" @@ -625,7 +600,7 @@ msgid "GENERAL LEDGER" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/wizard/profit_loss_wizard.py:129 +#: code:addons/account_financial_report_webkit/wizard/profit_loss_wizard.py:131 #, python-format msgid "Level %s" msgstr "" @@ -659,13 +634,6 @@ msgstr "" msgid "Balance C%s" msgstr "" -#. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:95 -#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:108 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:104 -msgid "Entry" -msgstr "" - #. module: account_financial_report_webkit #: field:account.move.line,last_rec_date:0 msgid "Last reconciliation date" @@ -679,9 +647,8 @@ msgid "Filter on partner" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/general_ledger.py:47 #: view:general.ledger.webkit:0 -#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_general_ledger_menu_webkit +#: code:addons/account_financial_report_webkit/report/general_ledger.py:47 #, python-format msgid "General Ledger" msgstr "" @@ -702,11 +669,6 @@ msgstr "" msgid "PARTNER BALANCE" msgstr "" -#. module: account_financial_report_webkit -#: constraint:account.move.line:0 -msgid "Company must be the same for its related account and period." -msgstr "" - #. module: account_financial_report_webkit #: help:open.invoices.webkit,partner_ids:0 #: help:partner.balance.webkit,partner_ids:0 @@ -715,30 +677,21 @@ msgid "Only selected partners will be printed. Leave empty to print all partners msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:165 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:167 #, python-format msgid "Webkit Report template not found !" msgstr "" #. module: account_financial_report_webkit -#: selection:account.common.balance.report,comp0_filter:0 -#: selection:account.common.balance.report,comp1_filter:0 -#: selection:account.common.balance.report,comp2_filter:0 #: selection:account.common.balance.report,filter:0 -#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:91 -#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:104 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:100 #: selection:general.ledger.webkit,filter:0 #: selection:open.invoices.webkit,filter:0 -#: selection:partner.balance.webkit,comp0_filter:0 -#: selection:partner.balance.webkit,comp1_filter:0 -#: selection:partner.balance.webkit,comp2_filter:0 #: selection:partner.balance.webkit,filter:0 #: selection:partners.ledger.webkit,filter:0 -#: selection:trial.balance.webkit,comp0_filter:0 -#: selection:trial.balance.webkit,comp1_filter:0 -#: selection:trial.balance.webkit,comp2_filter:0 #: selection:trial.balance.webkit,filter:0 +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:91 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:104 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:100 msgid "Date" msgstr "" @@ -749,18 +702,12 @@ msgstr "" #. module: account_financial_report_webkit #: constraint:account.move.line:0 -msgid "You can not create journal items on an account of type view." -msgstr "" - -#. module: account_financial_report_webkit -#: view:account.move.line:0 -msgid "Internal Note" +msgid "Company must be same for its related account and period." msgstr "" #. module: account_financial_report_webkit #: constraint:account.common.balance.report:0 #: constraint:general.ledger.webkit:0 -#: constraint:open.invoices.webkit:0 #: constraint:partner.balance.webkit:0 #: constraint:partners.ledger.webkit:0 #: constraint:trial.balance.webkit:0 @@ -783,19 +730,19 @@ msgid "The code of the account must be unique per company !" msgstr "" #. module: account_financial_report_webkit -#: model:ir.ui.menu,name:account_financial_report_webkit.menu_account_open_invoices #: view:open.invoices.webkit:0 +#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_open_invoices_menu_webkit msgid "Open Invoices" msgstr "" #. module: account_financial_report_webkit #: selection:account.common.balance.report,target_move:0 -#: code:addons/account_financial_report_webkit/report/common_reports.py:82 #: selection:general.ledger.webkit,target_move:0 #: selection:open.invoices.webkit,target_move:0 #: selection:partner.balance.webkit,target_move:0 #: selection:partners.ledger.webkit,target_move:0 #: selection:trial.balance.webkit,target_move:0 +#: code:addons/account_financial_report_webkit/report/common_reports.py:80 #, python-format msgid "All Posted Entries" msgstr "" @@ -804,16 +751,21 @@ msgstr "" #: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:87 #: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:84 #: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:97 -#: code:addons/account_financial_report_webkit/wizard/balance_common.py:144 +#: code:addons/account_financial_report_webkit/wizard/balance_common.py:156 #, python-format msgid "Comparison %s" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/open_invoices.py:102 -#: code:addons/account_financial_report_webkit/report/partners_ledger.py:102 -#, python-format -msgid "No accounts to print." +#: selection:account.common.balance.report,display_account:0 +#: selection:general.ledger.webkit,display_account:0 +#: selection:partner.balance.webkit,display_account:0 +#: selection:trial.balance.webkit,display_account:0 +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:61 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:75 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:73 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:86 +msgid "All" msgstr "" #. module: account_financial_report_webkit @@ -887,15 +839,14 @@ msgid "Filter by date : no opening balance will be displayed. (opening balance c msgstr "" #. module: account_financial_report_webkit -#: constraint:account.account:0 -msgid "Configuration Error! \n" -"You can not select an account type with a deferral method different of \"Unreconciled\" for accounts with internal type \"Payable/Receivable\"! " +#: code:addons/account_financial_report_webkit/report/common_reports.py:313 +#, python-format +msgid "No period found" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/partner_balance.py:47 -#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_partner_balance_menu_webkit #: view:partner.balance.webkit:0 +#: code:addons/account_financial_report_webkit/report/partner_balance.py:47 #, python-format msgid "Partner Balance" msgstr "" @@ -923,35 +874,24 @@ msgid "Dates Filter" msgstr "" #. module: account_financial_report_webkit -#: constraint:account.move.line:0 -msgid "You can not create journal items on closed account." -msgstr "" - -#. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/common_reports.py:64 -#: selection:general.ledger.webkit,display_account:0 -#, python-format -msgid "With transactions or non zero balance" +#: field:account.common.balance.report,fiscalyear_id:0 +#: field:general.ledger.webkit,fiscalyear_id:0 +#: field:open.invoices.webkit,fiscalyear_id:0 +#: field:partner.balance.webkit,fiscalyear_id:0 +#: field:partners.ledger.webkit,fiscalyear_id:0 +#: field:trial.balance.webkit,fiscalyear_id:0 +msgid "Fiscal year" msgstr "" #. module: account_financial_report_webkit -#: selection:account.common.balance.report,comp0_filter:0 -#: selection:account.common.balance.report,comp1_filter:0 -#: selection:account.common.balance.report,comp2_filter:0 #: selection:account.common.balance.report,filter:0 -#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:45 -#: code:addons/account_financial_report_webkit/wizard/balance_common.py:156 #: selection:general.ledger.webkit,filter:0 #: selection:open.invoices.webkit,filter:0 -#: selection:partner.balance.webkit,comp0_filter:0 -#: selection:partner.balance.webkit,comp1_filter:0 -#: selection:partner.balance.webkit,comp2_filter:0 #: selection:partner.balance.webkit,filter:0 #: selection:partners.ledger.webkit,filter:0 -#: selection:trial.balance.webkit,comp0_filter:0 -#: selection:trial.balance.webkit,comp1_filter:0 -#: selection:trial.balance.webkit,comp2_filter:0 #: selection:trial.balance.webkit,filter:0 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:45 +#: code:addons/account_financial_report_webkit/wizard/balance_common.py:168 #, python-format msgid "Periods" msgstr "" @@ -981,16 +921,11 @@ msgid "Unsuported filter" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/common_reports.py:62 +#: code:addons/account_financial_report_webkit/report/common_reports.py:60 #, python-format msgid "All accounts" msgstr "" -#. module: account_financial_report_webkit -#: constraint:account.move.line:0 -msgid "The selected account of your Journal Entry forces to provide a secondary currency. You should remove the secondary currency on the account or select a multi-currency view on the journal." -msgstr "" - #. module: account_financial_report_webkit #: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:93 #: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:106 @@ -1004,11 +939,23 @@ msgstr "" msgid "No valid filter" msgstr "" +#. module: account_financial_report_webkit +#: model:ir.ui.menu,name:account_financial_report_webkit.menu_account_open_invoices +msgid "Open Invoices" +msgstr "" + #. module: account_financial_report_webkit #: view:open.invoices.webkit:0 msgid "Clearance Analysis Options" msgstr "" +#. module: account_financial_report_webkit +#: selection:account.common.balance.report,filter:0 +#: selection:partner.balance.webkit,filter:0 +#: selection:trial.balance.webkit,filter:0 +msgid "Opening Only" +msgstr "" + #. module: account_financial_report_webkit #: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:97 #: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:110 @@ -1036,24 +983,18 @@ msgid "This report allows you to print or generate a pdf of your general ledger msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/profit_loss.py:39 +#: code:addons/account_financial_report_webkit/report/profit_loss.py:42 #, python-format msgid "PROFIT AND LOSS" msgstr "" #. module: account_financial_report_webkit -#: field:account.common.balance.report,chart_account_id:0 #: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:27 #: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:31 #: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:40 #: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:28 #: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:39 #: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:52 -#: field:general.ledger.webkit,chart_account_id:0 -#: field:open.invoices.webkit,chart_account_id:0 -#: field:partner.balance.webkit,chart_account_id:0 -#: field:partners.ledger.webkit,chart_account_id:0 -#: field:trial.balance.webkit,chart_account_id:0 msgid "Chart of Account" msgstr "" @@ -1066,17 +1007,17 @@ msgstr "" #. module: account_financial_report_webkit #: field:account.common.balance.report,target_move:0 +#: field:general.ledger.webkit,target_move:0 +#: field:open.invoices.webkit,target_move:0 +#: field:partner.balance.webkit,target_move:0 +#: field:partners.ledger.webkit,target_move:0 +#: field:trial.balance.webkit,target_move:0 #: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:37 #: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:42 #: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:51 #: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:38 #: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:49 #: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:62 -#: field:general.ledger.webkit,target_move:0 -#: field:open.invoices.webkit,target_move:0 -#: field:partner.balance.webkit,target_move:0 -#: field:partners.ledger.webkit,target_move:0 -#: field:trial.balance.webkit,target_move:0 msgid "Target Moves" msgstr "" @@ -1091,50 +1032,22 @@ msgid "From:" msgstr "" #. module: account_financial_report_webkit -#: field:account.common.balance.report,comp0_date_to:0 -#: field:account.common.balance.report,comp1_date_to:0 -#: field:account.common.balance.report,comp2_date_to:0 #: field:account.common.balance.report,date_to:0 #: field:general.ledger.webkit,date_to:0 #: field:open.invoices.webkit,date_to:0 -#: field:partner.balance.webkit,comp0_date_to:0 -#: field:partner.balance.webkit,comp1_date_to:0 -#: field:partner.balance.webkit,comp2_date_to:0 #: field:partner.balance.webkit,date_to:0 #: field:partners.ledger.webkit,date_to:0 -#: field:trial.balance.webkit,comp0_date_to:0 -#: field:trial.balance.webkit,comp1_date_to:0 -#: field:trial.balance.webkit,comp2_date_to:0 #: field:trial.balance.webkit,date_to:0 msgid "End Date" msgstr "" -#. module: account_financial_report_webkit -#: field:account.common.balance.report,comp0_period_from:0 -#: field:account.common.balance.report,comp1_period_from:0 -#: field:account.common.balance.report,comp2_period_from:0 -#: field:account.common.balance.report,period_from:0 -#: field:general.ledger.webkit,period_from:0 -#: field:open.invoices.webkit,period_from:0 -#: field:partner.balance.webkit,comp0_period_from:0 -#: field:partner.balance.webkit,comp1_period_from:0 -#: field:partner.balance.webkit,comp2_period_from:0 -#: field:partner.balance.webkit,period_from:0 -#: field:partners.ledger.webkit,period_from:0 -#: field:trial.balance.webkit,comp0_period_from:0 -#: field:trial.balance.webkit,comp1_period_from:0 -#: field:trial.balance.webkit,comp2_period_from:0 -#: field:trial.balance.webkit,period_from:0 -msgid "Start Period" -msgstr "" - #. module: account_financial_report_webkit #: field:open.invoices.webkit,until_date:0 msgid "Clearance date" msgstr "" #. module: account_financial_report_webkit -#: model:ir.model,name:account_financial_report_webkit.model_partners_ledger_webkit +#: model:ir.model,name:account_financial_report_webkit.model_account_report_partners_ledger_webkit msgid "Partner Ledger Report" msgstr "" @@ -1146,36 +1059,12 @@ msgid "Partners Filters" msgstr "" #. module: account_financial_report_webkit -#: selection:account.common.balance.report,comp0_filter:0 -#: field:account.common.balance.report,comp0_fiscalyear_id:0 -#: selection:account.common.balance.report,comp1_filter:0 -#: field:account.common.balance.report,comp1_fiscalyear_id:0 -#: selection:account.common.balance.report,comp2_filter:0 -#: field:account.common.balance.report,comp2_fiscalyear_id:0 -#: field:account.common.balance.report,fiscalyear_id:0 #: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:28 #: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:32 #: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:41 #: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:29 #: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:40 #: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:53 -#: field:general.ledger.webkit,fiscalyear_id:0 -#: field:open.invoices.webkit,fiscalyear_id:0 -#: selection:partner.balance.webkit,comp0_filter:0 -#: field:partner.balance.webkit,comp0_fiscalyear_id:0 -#: selection:partner.balance.webkit,comp1_filter:0 -#: field:partner.balance.webkit,comp1_fiscalyear_id:0 -#: selection:partner.balance.webkit,comp2_filter:0 -#: field:partner.balance.webkit,comp2_fiscalyear_id:0 -#: field:partner.balance.webkit,fiscalyear_id:0 -#: field:partners.ledger.webkit,fiscalyear_id:0 -#: selection:trial.balance.webkit,comp0_filter:0 -#: field:trial.balance.webkit,comp0_fiscalyear_id:0 -#: selection:trial.balance.webkit,comp1_filter:0 -#: field:trial.balance.webkit,comp1_fiscalyear_id:0 -#: selection:trial.balance.webkit,comp2_filter:0 -#: field:trial.balance.webkit,comp2_fiscalyear_id:0 -#: field:trial.balance.webkit,fiscalyear_id:0 msgid "Fiscal Year" msgstr "" @@ -1186,16 +1075,10 @@ msgid "Yes" msgstr "" #. module: account_financial_report_webkit -#: selection:account.common.balance.report,comp0_filter:0 -#: selection:account.common.balance.report,comp1_filter:0 -#: selection:account.common.balance.report,comp2_filter:0 -#: selection:partner.balance.webkit,comp0_filter:0 -#: selection:partner.balance.webkit,comp1_filter:0 -#: selection:partner.balance.webkit,comp2_filter:0 -#: selection:trial.balance.webkit,comp0_filter:0 -#: selection:trial.balance.webkit,comp1_filter:0 -#: selection:trial.balance.webkit,comp2_filter:0 -msgid "No Comparison" +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:95 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:108 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:104 +msgid "Entry" msgstr "" #. module: account_financial_report_webkit @@ -1203,9 +1086,9 @@ msgstr "" #: code:addons/account_financial_report_webkit/report/open_invoices.py:63 #: code:addons/account_financial_report_webkit/report/partner_balance.py:63 #: code:addons/account_financial_report_webkit/report/partners_ledger.py:64 -#: code:addons/account_financial_report_webkit/report/profit_loss.py:68 +#: code:addons/account_financial_report_webkit/report/profit_loss.py:71 #: code:addons/account_financial_report_webkit/report/trial_balance.py:64 -#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:68 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:67 #, python-format msgid "Page" msgstr "" @@ -1216,19 +1099,14 @@ msgid "Partners Filter" msgstr "" #. module: account_financial_report_webkit -#: selection:account.common.balance.report,display_account:0 -#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:61 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:75 -#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:73 -#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:86 -#: selection:general.ledger.webkit,display_account:0 -#: selection:partner.balance.webkit,display_account:0 -#: selection:trial.balance.webkit,display_account:0 -msgid "All" +#: code:addons/account_financial_report_webkit/report/open_invoices.py:102 +#: code:addons/account_financial_report_webkit/report/partners_ledger.py:102 +#, python-format +msgid "No accounts to print." msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/profit_loss.py:46 +#: code:addons/account_financial_report_webkit/report/profit_loss.py:49 #, python-format msgid "Profit and Loss" msgstr "" @@ -1247,19 +1125,19 @@ msgstr "" #. module: account_financial_report_webkit #: code:addons/account_financial_report_webkit/report/partners_ledger.py:41 -#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:58 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:57 #, python-format msgid "PARTNER LEDGER" msgstr "" #. module: account_financial_report_webkit #: selection:account.common.balance.report,target_move:0 -#: code:addons/account_financial_report_webkit/report/common_reports.py:84 #: selection:general.ledger.webkit,target_move:0 #: selection:open.invoices.webkit,target_move:0 #: selection:partner.balance.webkit,target_move:0 #: selection:partners.ledger.webkit,target_move:0 #: selection:trial.balance.webkit,target_move:0 +#: code:addons/account_financial_report_webkit/report/common_reports.py:82 #, python-format msgid "All Entries" msgstr "" @@ -1270,15 +1148,7 @@ msgid "Wrong credit or debit value in accounting entry !" msgstr "" #. module: account_financial_report_webkit -#: field:account.common.balance.report,comp0_filter:0 -#: field:account.common.balance.report,comp1_filter:0 -#: field:account.common.balance.report,comp2_filter:0 -#: field:partner.balance.webkit,comp0_filter:0 -#: field:partner.balance.webkit,comp1_filter:0 -#: field:partner.balance.webkit,comp2_filter:0 -#: field:trial.balance.webkit,comp0_filter:0 -#: field:trial.balance.webkit,comp1_filter:0 -#: field:trial.balance.webkit,comp2_filter:0 -msgid "Compare By" +#: constraint:account.move.line:0 +msgid "You can not create move line on view account." msgstr "" diff --git a/account_financial_report_webkit/report/common_partner_reports.py b/account_financial_report_webkit/report/common_partner_reports.py index a6c2d8d8..5ebd36c3 100644 --- a/account_financial_report_webkit/report/common_partner_reports.py +++ b/account_financial_report_webkit/report/common_partner_reports.py @@ -238,7 +238,7 @@ class CommonPartnersReportHeaderWebkit(CommonReportHeaderWebkit): if existing_partner_ids: # We may use orm here as the performance optimization is not that big sql = ("SELECT name|| ' ' ||CASE WHEN ref IS NOT NULL THEN '('||ref||')' ELSE '' END, id, ref, name" - " FROM res_partner WHERE id IN %s ORDER BY LOWER(name), ref") + " FROM res_partner WHERE id IN %s ORDER BY name, ref") self.cursor.execute(sql, (tuple(set(existing_partner_ids)),)) res = self.cursor.fetchall() diff --git a/account_financial_report_webkit/report/open_invoices.py b/account_financial_report_webkit/report/open_invoices.py index 118d321c..90b9b676 100644 --- a/account_financial_report_webkit/report/open_invoices.py +++ b/account_financial_report_webkit/report/open_invoices.py @@ -22,26 +22,14 @@ import pooler from collections import defaultdict from report import report_sxw -from datetime import datetime -from itertools import groupby -from operator import itemgetter -from mako.template import Template - +from osv import osv from tools.translate import _ +from datetime import datetime -from openerp.osv import osv from common_partner_reports import CommonPartnersReportHeaderWebkit from webkit_parser_header_fix import HeaderFooterTextWebKitParser -from openerp.addons.report_webkit import report_helper -import addons -def get_mako_template(obj, *args): - template_path = addons.get_module_resource(*args) - return Template(filename=template_path, input_encoding='utf-8') - -report_helper.WebKitHelper.get_mako_template = get_mako_template - class PartnersOpenInvoicesWebkit(report_sxw.rml_parse, CommonPartnersReportHeaderWebkit): def __init__(self, cursor, uid, name, context): @@ -77,18 +65,6 @@ class PartnersOpenInvoicesWebkit(report_sxw.rml_parse, CommonPartnersReportHeade ], }) - - def _group_lines_by_currency(self, account_br): - account_br.grouped_ledger_lines = {} - if not account_br.ledger_lines: - return - for part_id, plane_lines in account_br.ledger_lines.items(): - account_br.grouped_ledger_lines[part_id] = [] - plane_lines.sort(key=itemgetter('currency_code')) - for curr, lines in groupby(plane_lines, key=itemgetter('currency_code')): - tmp = [x for x in lines] - account_br.grouped_ledger_lines[part_id].append((curr, tmp)) #I want to reiter many times - def set_context(self, objects, data, ids, report_type=None): """Populate a ledger_lines attribute on each browse record that will be used by mako template""" @@ -108,7 +84,6 @@ class PartnersOpenInvoicesWebkit(report_sxw.rml_parse, CommonPartnersReportHeade result_selection = self._get_form_param('result_selection', data) date_until = self._get_form_param('until_date', data) chart_account = self._get_chart_account_id_br(data) - group_by_currency = self._get_form_param('group_by_currency', data) if main_filter == 'filter_no' and fiscalyear: start_period = self.get_first_fiscalyear_period(fiscalyear) @@ -154,8 +129,6 @@ class PartnersOpenInvoicesWebkit(report_sxw.rml_parse, CommonPartnersReportHeade account.partners_order = self._order_partners(ledg_lines_pids, init_bal_lines_pids) account.ledger_lines = ledger_lines_memoizer.get(account.id, {}) - if group_by_currency: - self._group_lines_by_currency(account) objects.append(account) self.localcontext.update({ diff --git a/account_financial_report_webkit/report/templates/account_report_general_ledger.mako b/account_financial_report_webkit/report/templates/account_report_general_ledger.mako index 6ed7b4a5..df819cb4 100644 --- a/account_financial_report_webkit/report/templates/account_report_general_ledger.mako +++ b/account_financial_report_webkit/report/templates/account_report_general_ledger.mako @@ -95,12 +95,10 @@
${_('Entry')}
## journal
${_('Journal')}
- ## account code -
${_('Account')}
## partner
${_('Partner')}
## label -
${_('Label')}
+
${_('Label')}
## counterpart
${_('Counter part')}
## debit @@ -135,8 +133,6 @@
## journal
- ## account code -
## partner
## label @@ -179,8 +175,6 @@
${line.get('move_name') or ''}
## journal
${line.get('jcode') or ''}
- ## account code -
${account.code}
## partner
${line.get('partner_name') or ''}
## label diff --git a/account_financial_report_webkit/report/templates/account_report_open_invoices.mako b/account_financial_report_webkit/report/templates/account_report_open_invoices.mako index ffe102dc..ebc4ecd4 100644 --- a/account_financial_report_webkit/report/templates/account_report_open_invoices.mako +++ b/account_financial_report_webkit/report/templates/account_report_open_invoices.mako @@ -1,5 +1,4 @@ - + - - <% import addons %> - <% template1 = helper.get_mako_template('account_financial_report_webkit','report', 'templates', 'open_invoices_inclusion.mako.html') %> - <% context.lookup.put_template('open_invoices_inclusion.mako.html', template1) %> - <% template2 = helper.get_mako_template('account_financial_report_webkit','report', 'templates', 'grouped_by_curr_open_invoices_inclusion.mako.html') %> - <% context.lookup.put_template('grouped_by_curr_open_invoices_inclusion.mako.html', template2) %> + <%! + def amount(text): + return text.replace('-', '‑') # replace by a non-breaking hyphen (it will not word-wrap between hyphen and numbers) + %> + <%setLang(user.context_lang)%>
@@ -72,13 +70,181 @@
${ display_target_move(data) }
- %for acc in objects: - %if hasattr(acc, 'grouped_ledger_lines'): - <% fl = formatLang %> - <%include file="grouped_by_curr_open_invoices_inclusion.mako.html" args="account=acc,formatLang=fl"/> - %else: - <% fl = formatLang %> - <%include file="open_invoices_inclusion.mako.html" args="account=acc,formatLang=fl"/> + + %for account in objects: + %if account.ledger_lines: + <% + if not account.partners_order: + continue + account_total_debit = 0.0 + account_total_credit = 0.0 + account_balance_cumul = 0.0 + account_balance_cumul_curr = 0.0 + %> + + + + %for partner_name, p_id, p_ref, p_name in account.partners_order: + <% + total_debit = 0.0 + total_credit = 0.0 + cumul_balance = 0.0 + cumul_balance_curr = 0.0 + + part_cumul_balance = 0.0 + part_cumul_balance_curr = 0.0 + %> +
+ +
+
+ ## date +
${_('Date')}
+ ## period +
${_('Period')}
+ ## move +
${_('Entry')}
+ ## journal +
${_('Journal')}
+ ## partner +
${_('Partner')}
+ ## label +
${_('Label')}
+ ## reconcile +
${_('Rec.')}
+ ## maturity +
${_('Due Date')}
+ ## debit +
${_('Debit')}
+ ## credit +
${_('Credit')}
+ ## balance cumulated +
${_('Cumul. Bal.')}
+ %if amount_currency(data): + ## currency balance +
${_('Curr. Balance')}
+ ## curency code +
${_('Curr.')}
+ %endif +
+
+
+ <% + total_debit = 0.0 + total_credit = 0.0 + %> + + %for line in account.ledger_lines.get(p_id, []): + <% + total_debit += line.get('debit') or 0.0 + total_credit += line.get('credit') or 0.0 + + label_elements = [line.get('lname') or ''] + if line.get('invoice_number'): + label_elements.append("(%s)" % (line['invoice_number'],)) + label = ' '.join(label_elements) + %> +
+ ## date +
${formatLang(line.get('ldate') or '', date=True)}
+ ## period +
${line.get('period_code') or ''}
+ ## move +
${line.get('move_name') or ''}
+ ## journal +
${line.get('jcode') or ''}
+ ## partner +
${line.get('partner_name') or ''}
+ ## label +
${label}
+ ## reconcile +
${line.get('rec_name') or ''}
+ ## maturity date +
${formatLang(line.get('date_maturity') or '', date=True)}
+ ## debit +
${formatLang(line.get('debit') or 0.0) | amount }
+ ## credit +
${formatLang(line.get('credit') or 0.0) | amount }
+ ## balance cumulated + <% cumul_balance += line.get('balance') or 0.0 %> +
${formatLang(cumul_balance) | amount }
+ %if amount_currency(data): + ## currency balance +
${formatLang(line.get('amount_currency') or 0.0) | amount }
+ ## curency code +
${line.get('currency_code') or ''}
+ %endif +
+ %endfor +
+ ## date +
+ ## period +
+ ## move +
+ ## journal +
+ ## partner +
+ ## label +
${_('Cumulated Balance on Partner')}
+ ## reconcile +
+ ## maturity date +
+ ## debit +
${formatLang(total_debit) | amount }
+ ## credit +
${formatLang(total_credit) | amount }
+ ## balance cumulated +
${formatLang(cumul_balance) | amount }
+ %if amount_currency(data): + %if account.currency_id: + ## currency balance +
${formatLang(cumul_balance_curr) | amount }
+ %else: +
${ u'-' }
+ %endif + ## curency code +
${ account.currency_id.name if account.currency_id else u'' }
+ %endif +
+
+
+ <% + account_total_debit += total_debit + account_total_credit += total_credit + account_balance_cumul += cumul_balance + account_balance_cumul_curr += cumul_balance_curr + %> + %endfor +
+
+
${account.code} - ${account.name}
+ ## label +
${_("Cumulated Balance on Account")}
+ ## debit +
${ formatLang(account_total_debit) | amount }
+ ## credit +
${ formatLang(account_total_credit) | amount }
+ ## balance cumulated +
${ formatLang(account_balance_cumul) | amount }
+ %if amount_currency(data): + ## currency balance cumulated + %if account.currency_id: +
${ formatLang(account_balance_cumul_curr) | amount }
+ %else: +
${ u'-' }
+ %endif + ## curency code +
${ account.currency_id.name if account.currency_id else u'' }
+ %endif +
+
+
%endif %endfor diff --git a/account_financial_report_webkit/report/templates/account_report_partner_balance.mako b/account_financial_report_webkit/report/templates/account_report_partner_balance.mako index 89112c34..31b18fca 100644 --- a/account_financial_report_webkit/report/templates/account_report_partner_balance.mako +++ b/account_financial_report_webkit/report/templates/account_report_partner_balance.mako @@ -132,10 +132,10 @@
- ## account name -
${_('Account / Partner Name')}
## code
${_('Code / Ref')}
+ ## account name +
${_('Account / Partner Name')}
%if comparison_mode == 'no_comparison': %if initial_balance_mode: ## initial balance @@ -188,8 +188,8 @@ total_balance += partner.get('balance', 0.0) %>
-
${partner_name if partner_name else _('Unallocated') }
${partner_ref if partner_ref else ''}
+
${partner_name if partner_name else _('Unallocated') }
%if comparison_mode == 'no_comparison': %if initial_balance_mode:
${formatLang(partner.get('init_balance', 0.0)) | amount}
@@ -229,10 +229,10 @@
- ## account name -
${current_account.name}
## code
${current_account.code}
+ ## account name +
${current_account.name}
%if comparison_mode == 'no_comparison': %if initial_balance_mode: ## opening balance diff --git a/account_financial_report_webkit/wizard/open_invoices_wizard.py b/account_financial_report_webkit/wizard/open_invoices_wizard.py index 30284a19..115541bb 100644 --- a/account_financial_report_webkit/wizard/open_invoices_wizard.py +++ b/account_financial_report_webkit/wizard/open_invoices_wizard.py @@ -29,7 +29,6 @@ class AccountReportOpenInvoicesWizard(osv.osv_memory): _description = "Open Invoices Report" _columns = { - 'group_by_currency':fields.boolean('Group Partner by currency'), 'until_date': fields.date("Clearance date", required=True, help="""The clearance date is essentially a tool used for debtors provisionning calculation. @@ -37,7 +36,9 @@ class AccountReportOpenInvoicesWizard(osv.osv_memory): By default, this date is equal to the the end date (ie: 31/12/2011 if you select fy 2011). By amending the clearance date, you will be, for instance, able to answer the question : 'based on my last year end debtors open invoices, which invoices are still unpaid today (today is my clearance date)?' -""")} +"""), + + } def _check_until_date(self, cr, uid, ids, context=None): def get_key_id(obj, field): @@ -110,7 +111,7 @@ By amending the clearance date, you will be, for instance, able to answer the qu if context is None: context = {} vals = self.read(cr, uid, ids, - ['until_date', 'group_by_currency'], + ['until_date',], context=context)[0] data['form'].update(vals) return data diff --git a/account_financial_report_webkit/wizard/open_invoices_wizard_view.xml b/account_financial_report_webkit/wizard/open_invoices_wizard_view.xml index aa1dfad2..1b1c1fa2 100644 --- a/account_financial_report_webkit/wizard/open_invoices_wizard_view.xml +++ b/account_financial_report_webkit/wizard/open_invoices_wizard_view.xml @@ -31,7 +31,6 @@ - From 1f576cb7104595bf35d141c507aa98512a93aa5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20V=C3=A1squez?= Date: Mon, 16 Apr 2012 10:02:14 -0600 Subject: [PATCH 08/28] [FIX] lp 983196: bad inherit for account.move.line view (lp:c2c-addons/6.1 rev 44.1.1) --- account_financial_report_webkit/account_move_line_view.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/account_financial_report_webkit/account_move_line_view.xml b/account_financial_report_webkit/account_move_line_view.xml index 969a3824..a99a8e9d 100644 --- a/account_financial_report_webkit/account_move_line_view.xml +++ b/account_financial_report_webkit/account_move_line_view.xml @@ -10,7 +10,7 @@ form - + @@ -20,4 +20,4 @@ - \ No newline at end of file + From e0e0d3f03139c89c145bfa4c665118e8ecb5cc51 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 24 Apr 2012 11:09:46 +0200 Subject: [PATCH 09/28] [ADD] grouped by partner and currencies on open invoices (lp:c2c-addons/6.1 rev 50) --- .../report/open_invoices.py | 31 ++- .../account_report_open_invoices.mako | 196 ++---------------- .../wizard/open_invoices_wizard.py | 7 +- .../wizard/open_invoices_wizard_view.xml | 1 + 4 files changed, 48 insertions(+), 187 deletions(-) diff --git a/account_financial_report_webkit/report/open_invoices.py b/account_financial_report_webkit/report/open_invoices.py index 90b9b676..118d321c 100644 --- a/account_financial_report_webkit/report/open_invoices.py +++ b/account_financial_report_webkit/report/open_invoices.py @@ -22,14 +22,26 @@ import pooler from collections import defaultdict from report import report_sxw -from osv import osv -from tools.translate import _ from datetime import datetime +from itertools import groupby +from operator import itemgetter +from mako.template import Template + +from tools.translate import _ +from openerp.osv import osv from common_partner_reports import CommonPartnersReportHeaderWebkit from webkit_parser_header_fix import HeaderFooterTextWebKitParser +from openerp.addons.report_webkit import report_helper +import addons +def get_mako_template(obj, *args): + template_path = addons.get_module_resource(*args) + return Template(filename=template_path, input_encoding='utf-8') + +report_helper.WebKitHelper.get_mako_template = get_mako_template + class PartnersOpenInvoicesWebkit(report_sxw.rml_parse, CommonPartnersReportHeaderWebkit): def __init__(self, cursor, uid, name, context): @@ -65,6 +77,18 @@ class PartnersOpenInvoicesWebkit(report_sxw.rml_parse, CommonPartnersReportHeade ], }) + + def _group_lines_by_currency(self, account_br): + account_br.grouped_ledger_lines = {} + if not account_br.ledger_lines: + return + for part_id, plane_lines in account_br.ledger_lines.items(): + account_br.grouped_ledger_lines[part_id] = [] + plane_lines.sort(key=itemgetter('currency_code')) + for curr, lines in groupby(plane_lines, key=itemgetter('currency_code')): + tmp = [x for x in lines] + account_br.grouped_ledger_lines[part_id].append((curr, tmp)) #I want to reiter many times + def set_context(self, objects, data, ids, report_type=None): """Populate a ledger_lines attribute on each browse record that will be used by mako template""" @@ -84,6 +108,7 @@ class PartnersOpenInvoicesWebkit(report_sxw.rml_parse, CommonPartnersReportHeade result_selection = self._get_form_param('result_selection', data) date_until = self._get_form_param('until_date', data) chart_account = self._get_chart_account_id_br(data) + group_by_currency = self._get_form_param('group_by_currency', data) if main_filter == 'filter_no' and fiscalyear: start_period = self.get_first_fiscalyear_period(fiscalyear) @@ -129,6 +154,8 @@ class PartnersOpenInvoicesWebkit(report_sxw.rml_parse, CommonPartnersReportHeade account.partners_order = self._order_partners(ledg_lines_pids, init_bal_lines_pids) account.ledger_lines = ledger_lines_memoizer.get(account.id, {}) + if group_by_currency: + self._group_lines_by_currency(account) objects.append(account) self.localcontext.update({ diff --git a/account_financial_report_webkit/report/templates/account_report_open_invoices.mako b/account_financial_report_webkit/report/templates/account_report_open_invoices.mako index ebc4ecd4..ffe102dc 100644 --- a/account_financial_report_webkit/report/templates/account_report_open_invoices.mako +++ b/account_financial_report_webkit/report/templates/account_report_open_invoices.mako @@ -1,4 +1,5 @@ - + - <%! - def amount(text): - return text.replace('-', '‑') # replace by a non-breaking hyphen (it will not word-wrap between hyphen and numbers) - %> - + + <% import addons %> + <% template1 = helper.get_mako_template('account_financial_report_webkit','report', 'templates', 'open_invoices_inclusion.mako.html') %> + <% context.lookup.put_template('open_invoices_inclusion.mako.html', template1) %> + <% template2 = helper.get_mako_template('account_financial_report_webkit','report', 'templates', 'grouped_by_curr_open_invoices_inclusion.mako.html') %> + <% context.lookup.put_template('grouped_by_curr_open_invoices_inclusion.mako.html', template2) %> <%setLang(user.context_lang)%>
@@ -70,181 +72,13 @@
${ display_target_move(data) }
- - %for account in objects: - %if account.ledger_lines: - <% - if not account.partners_order: - continue - account_total_debit = 0.0 - account_total_credit = 0.0 - account_balance_cumul = 0.0 - account_balance_cumul_curr = 0.0 - %> - - - - %for partner_name, p_id, p_ref, p_name in account.partners_order: - <% - total_debit = 0.0 - total_credit = 0.0 - cumul_balance = 0.0 - cumul_balance_curr = 0.0 - - part_cumul_balance = 0.0 - part_cumul_balance_curr = 0.0 - %> -
- -
-
- ## date -
${_('Date')}
- ## period -
${_('Period')}
- ## move -
${_('Entry')}
- ## journal -
${_('Journal')}
- ## partner -
${_('Partner')}
- ## label -
${_('Label')}
- ## reconcile -
${_('Rec.')}
- ## maturity -
${_('Due Date')}
- ## debit -
${_('Debit')}
- ## credit -
${_('Credit')}
- ## balance cumulated -
${_('Cumul. Bal.')}
- %if amount_currency(data): - ## currency balance -
${_('Curr. Balance')}
- ## curency code -
${_('Curr.')}
- %endif -
-
-
- <% - total_debit = 0.0 - total_credit = 0.0 - %> - - %for line in account.ledger_lines.get(p_id, []): - <% - total_debit += line.get('debit') or 0.0 - total_credit += line.get('credit') or 0.0 - - label_elements = [line.get('lname') or ''] - if line.get('invoice_number'): - label_elements.append("(%s)" % (line['invoice_number'],)) - label = ' '.join(label_elements) - %> -
- ## date -
${formatLang(line.get('ldate') or '', date=True)}
- ## period -
${line.get('period_code') or ''}
- ## move -
${line.get('move_name') or ''}
- ## journal -
${line.get('jcode') or ''}
- ## partner -
${line.get('partner_name') or ''}
- ## label -
${label}
- ## reconcile -
${line.get('rec_name') or ''}
- ## maturity date -
${formatLang(line.get('date_maturity') or '', date=True)}
- ## debit -
${formatLang(line.get('debit') or 0.0) | amount }
- ## credit -
${formatLang(line.get('credit') or 0.0) | amount }
- ## balance cumulated - <% cumul_balance += line.get('balance') or 0.0 %> -
${formatLang(cumul_balance) | amount }
- %if amount_currency(data): - ## currency balance -
${formatLang(line.get('amount_currency') or 0.0) | amount }
- ## curency code -
${line.get('currency_code') or ''}
- %endif -
- %endfor -
- ## date -
- ## period -
- ## move -
- ## journal -
- ## partner -
- ## label -
${_('Cumulated Balance on Partner')}
- ## reconcile -
- ## maturity date -
- ## debit -
${formatLang(total_debit) | amount }
- ## credit -
${formatLang(total_credit) | amount }
- ## balance cumulated -
${formatLang(cumul_balance) | amount }
- %if amount_currency(data): - %if account.currency_id: - ## currency balance -
${formatLang(cumul_balance_curr) | amount }
- %else: -
${ u'-' }
- %endif - ## curency code -
${ account.currency_id.name if account.currency_id else u'' }
- %endif -
-
-
- <% - account_total_debit += total_debit - account_total_credit += total_credit - account_balance_cumul += cumul_balance - account_balance_cumul_curr += cumul_balance_curr - %> - %endfor -
-
-
${account.code} - ${account.name}
- ## label -
${_("Cumulated Balance on Account")}
- ## debit -
${ formatLang(account_total_debit) | amount }
- ## credit -
${ formatLang(account_total_credit) | amount }
- ## balance cumulated -
${ formatLang(account_balance_cumul) | amount }
- %if amount_currency(data): - ## currency balance cumulated - %if account.currency_id: -
${ formatLang(account_balance_cumul_curr) | amount }
- %else: -
${ u'-' }
- %endif - ## curency code -
${ account.currency_id.name if account.currency_id else u'' }
- %endif -
-
-
+ %for acc in objects: + %if hasattr(acc, 'grouped_ledger_lines'): + <% fl = formatLang %> + <%include file="grouped_by_curr_open_invoices_inclusion.mako.html" args="account=acc,formatLang=fl"/> + %else: + <% fl = formatLang %> + <%include file="open_invoices_inclusion.mako.html" args="account=acc,formatLang=fl"/> %endif %endfor diff --git a/account_financial_report_webkit/wizard/open_invoices_wizard.py b/account_financial_report_webkit/wizard/open_invoices_wizard.py index 115541bb..30284a19 100644 --- a/account_financial_report_webkit/wizard/open_invoices_wizard.py +++ b/account_financial_report_webkit/wizard/open_invoices_wizard.py @@ -29,6 +29,7 @@ class AccountReportOpenInvoicesWizard(osv.osv_memory): _description = "Open Invoices Report" _columns = { + 'group_by_currency':fields.boolean('Group Partner by currency'), 'until_date': fields.date("Clearance date", required=True, help="""The clearance date is essentially a tool used for debtors provisionning calculation. @@ -36,9 +37,7 @@ class AccountReportOpenInvoicesWizard(osv.osv_memory): By default, this date is equal to the the end date (ie: 31/12/2011 if you select fy 2011). By amending the clearance date, you will be, for instance, able to answer the question : 'based on my last year end debtors open invoices, which invoices are still unpaid today (today is my clearance date)?' -"""), - - } +""")} def _check_until_date(self, cr, uid, ids, context=None): def get_key_id(obj, field): @@ -111,7 +110,7 @@ By amending the clearance date, you will be, for instance, able to answer the qu if context is None: context = {} vals = self.read(cr, uid, ids, - ['until_date',], + ['until_date', 'group_by_currency'], context=context)[0] data['form'].update(vals) return data diff --git a/account_financial_report_webkit/wizard/open_invoices_wizard_view.xml b/account_financial_report_webkit/wizard/open_invoices_wizard_view.xml index 1b1c1fa2..aa1dfad2 100644 --- a/account_financial_report_webkit/wizard/open_invoices_wizard_view.xml +++ b/account_financial_report_webkit/wizard/open_invoices_wizard_view.xml @@ -31,6 +31,7 @@ + From acfd547bc294bc912c1e76b4be14b09ab1084066 Mon Sep 17 00:00:00 2001 From: "Guewen Baconnier @ Camptocamp" Date: Mon, 7 May 2012 09:05:55 +0200 Subject: [PATCH 10/28] [IMP] updated pot file (lp:c2c-addons/6.1 rev 52) --- .../i18n/account_financial_report_webkit.pot | 428 ++++++++++++------ 1 file changed, 279 insertions(+), 149 deletions(-) diff --git a/account_financial_report_webkit/i18n/account_financial_report_webkit.pot b/account_financial_report_webkit/i18n/account_financial_report_webkit.pot index 394aa4e7..9d23983d 100644 --- a/account_financial_report_webkit/i18n/account_financial_report_webkit.pot +++ b/account_financial_report_webkit/i18n/account_financial_report_webkit.pot @@ -4,10 +4,10 @@ # msgid "" msgstr "" -"Project-Id-Version: OpenERP Server 6.0.3\n" -"Report-Msgid-Bugs-To: support@openerp.com\n" -"POT-Creation-Date: 2012-01-20 09:03+0000\n" -"PO-Revision-Date: 2012-01-20 09:03+0000\n" +"Project-Id-Version: OpenERP Server 6.1\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-05-07 07:02+0000\n" +"PO-Revision-Date: 2012-05-07 07:02+0000\n" "Last-Translator: <>\n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -38,8 +38,8 @@ msgstr "" #. module: account_financial_report_webkit #: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:203 -#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:223 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:253 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:228 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:258 msgid "Cumulated Balance on Account" msgstr "" @@ -70,7 +70,7 @@ msgid "Periods Filter:" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:172 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:170 #, python-format msgid "No header defined for this Webkit report!" msgstr "" @@ -82,15 +82,18 @@ msgid "Filter has to be in filter date, period, or none" msgstr "" #. module: account_financial_report_webkit -#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_trial_balance_menu_webkit #: model:ir.actions.report.xml,name:account_financial_report_webkit.account_report_trial_balance_webkit msgid "Trial Balance Webkit" msgstr "" #. module: account_financial_report_webkit -#: constraint:account.account:0 -msgid "Configuration Error! \n" -"You cannot define children to an account with internal type different of \"View\"! " +#: field:account.common.balance.report,company_id:0 +#: field:general.ledger.webkit,company_id:0 +#: field:open.invoices.webkit,company_id:0 +#: field:partner.balance.webkit,company_id:0 +#: field:partners.ledger.webkit,company_id:0 +#: field:trial.balance.webkit,company_id:0 +msgid "Company" msgstr "" #. module: account_financial_report_webkit @@ -121,10 +124,10 @@ msgid "It adds the currency column" msgstr "" #. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/common_reports.py:75 #: selection:open.invoices.webkit,result_selection:0 #: selection:partner.balance.webkit,result_selection:0 #: selection:partners.ledger.webkit,result_selection:0 -#: code:addons/account_financial_report_webkit/report/common_reports.py:73 #, python-format msgid "Receivable and Payable Accounts" msgstr "" @@ -157,32 +160,26 @@ msgid "Print only" msgstr "" #. module: account_financial_report_webkit -#: constraint:account.move.line:0 -msgid "You can not create move line on closed account." -msgstr "" - -#. module: account_financial_report_webkit -#: model:ir.model,name:account_financial_report_webkit.model_account_report_partner_balance_webkit +#: model:ir.model,name:account_financial_report_webkit.model_partner_balance_webkit msgid "Partner Balance Report" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:221 -#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:230 -#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:247 -#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:258 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:194 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:205 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:220 #, python-format msgid "Webkit render" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:167 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:165 #, python-format msgid "Error!" msgstr "" #. module: account_financial_report_webkit -#: model:ir.model,name:account_financial_report_webkit.model_account_report_trial_balance_webkit +#: model:ir.model,name:account_financial_report_webkit.model_trial_balance_webkit msgid "Trial Balance Report" msgstr "" @@ -192,20 +189,20 @@ msgid "Code" msgstr "" #. module: account_financial_report_webkit -#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_partners_ledger_menu_webkit #: model:ir.actions.report.xml,name:account_financial_report_webkit.account_report_partners_ledger_webkit msgid "Partner Ledger Webkit" msgstr "" #. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:192 -msgid "Unallocated" +#: field:account.common.balance.report,display_account:0 +#: field:partner.balance.webkit,display_account:0 +#: field:trial.balance.webkit,display_account:0 +msgid "Display Accounts" msgstr "" #. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:116 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:112 -msgid "Rec." +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:192 +msgid "Unallocated" msgstr "" #. module: account_financial_report_webkit @@ -215,33 +212,23 @@ msgid "Webkit raise an error" msgstr "" #. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/common_reports.py:71 #: selection:open.invoices.webkit,result_selection:0 #: selection:partner.balance.webkit,result_selection:0 #: selection:partners.ledger.webkit,result_selection:0 -#: code:addons/account_financial_report_webkit/report/common_reports.py:69 #, python-format msgid "Receivable Accounts" msgstr "" #. module: account_financial_report_webkit -#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_general_ledger_menu_webkit #: model:ir.actions.report.xml,name:account_financial_report_webkit.account_report_general_ledger_webkit msgid "General Ledger Webkit" msgstr "" #. module: account_financial_report_webkit -#: field:account.common.balance.report,period_from:0 -#: field:general.ledger.webkit,period_from:0 -#: field:open.invoices.webkit,period_from:0 -#: field:partner.balance.webkit,period_from:0 -#: field:partners.ledger.webkit,period_from:0 -#: field:trial.balance.webkit,period_from:0 -msgid "Start period" -msgstr "" - -#. module: account_financial_report_webkit -#: model:ir.model,name:account_financial_report_webkit.model_account_report_open_transactions_webkit -msgid "Open Transactions Report" +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:116 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:112 +msgid "Rec." msgstr "" #. module: account_financial_report_webkit @@ -258,6 +245,12 @@ msgstr "" msgid "Periods Filter" msgstr "" +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/common_reports.py:313 +#, python-format +msgid "No period found" +msgstr "" + #. module: account_financial_report_webkit #: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:38 #: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:139 @@ -273,17 +266,12 @@ msgid "Initial Balance" msgstr "" #. module: account_financial_report_webkit -#: field:account.common.balance.report,period_to:0 -#: field:general.ledger.webkit,period_to:0 -#: field:open.invoices.webkit,period_to:0 -#: field:partner.balance.webkit,period_to:0 -#: field:partners.ledger.webkit,period_to:0 -#: field:trial.balance.webkit,period_to:0 -msgid "End period" +#: constraint:account.move.line:0 +msgid "The date of your Journal Entry is not in the defined period! You should change the date or remove this constraint from the journal." msgstr "" #. module: account_financial_report_webkit -#: model:ir.model,name:account_financial_report_webkit.model_account_report_general_ledger_webkit +#: model:ir.model,name:account_financial_report_webkit.model_general_ledger_webkit msgid "General Ledger Report" msgstr "" @@ -325,8 +313,9 @@ msgid "Filter by" msgstr "" #. module: account_financial_report_webkit -#: view:partners.ledger.webkit:0 #: code:addons/account_financial_report_webkit/report/partners_ledger.py:48 +#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_partners_ledger_menu_webkit +#: view:partners.ledger.webkit:0 #, python-format msgid "Partner Ledger" msgstr "" @@ -364,7 +353,7 @@ msgid "Debit" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:173 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:171 #, python-format msgid "Please set a header in company settings" msgstr "" @@ -379,13 +368,12 @@ msgid "Time Filters" msgstr "" #. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:188 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:219 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:193 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:224 msgid "Cumulated Balance on Partner" msgstr "" #. module: account_financial_report_webkit -#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_partner_balance_menu_webkit #: model:ir.actions.report.xml,name:account_financial_report_webkit.account_report_partner_balance_webkit msgid "Partner Balance Webkit" msgstr "" @@ -405,13 +393,6 @@ msgstr "" msgid "Clearance Date" msgstr "" -#. module: account_financial_report_webkit -#: selection:general.ledger.webkit,display_account:0 -#: code:addons/account_financial_report_webkit/report/common_reports.py:62 -#, python-format -msgid "With transactions or non zero balance" -msgstr "" - #. module: account_financial_report_webkit #: view:partners.ledger.webkit:0 msgid "This report allows you to print or generate a pdf of your partner ledger with details of all your payable/receivable account" @@ -443,7 +424,7 @@ msgstr "" #. module: account_financial_report_webkit #: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:43 -#: code:addons/account_financial_report_webkit/wizard/balance_common.py:163 +#: code:addons/account_financial_report_webkit/wizard/balance_common.py:151 #, python-format msgid "Dates" msgstr "" @@ -454,8 +435,9 @@ msgid "Code / Ref" msgstr "" #. module: account_financial_report_webkit -#: view:trial.balance.webkit:0 #: code:addons/account_financial_report_webkit/report/trial_balance.py:49 +#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_trial_balance_menu_webkit +#: view:trial.balance.webkit:0 #, python-format msgid "Trial Balance" msgstr "" @@ -465,6 +447,25 @@ msgstr "" msgid "Dates : " msgstr "" +#. module: account_financial_report_webkit +#: field:account.common.balance.report,comp0_period_to:0 +#: field:account.common.balance.report,comp1_period_to:0 +#: field:account.common.balance.report,comp2_period_to:0 +#: field:account.common.balance.report,period_to:0 +#: field:general.ledger.webkit,period_to:0 +#: field:open.invoices.webkit,period_to:0 +#: field:partner.balance.webkit,comp0_period_to:0 +#: field:partner.balance.webkit,comp1_period_to:0 +#: field:partner.balance.webkit,comp2_period_to:0 +#: field:partner.balance.webkit,period_to:0 +#: field:partners.ledger.webkit,period_to:0 +#: field:trial.balance.webkit,comp0_period_to:0 +#: field:trial.balance.webkit,comp1_period_to:0 +#: field:trial.balance.webkit,comp2_period_to:0 +#: field:trial.balance.webkit,period_to:0 +msgid "End Period" +msgstr "" + #. module: account_financial_report_webkit #: model:ir.model,name:account_financial_report_webkit.model_account_common_balance_report msgid "Common Balance Report" @@ -480,13 +481,19 @@ msgid "Accounts Filter" msgstr "" #. module: account_financial_report_webkit -#: field:account.common.balance.report,chart_account_id:0 -#: field:general.ledger.webkit,chart_account_id:0 -#: field:open.invoices.webkit,chart_account_id:0 -#: field:partner.balance.webkit,chart_account_id:0 -#: field:partners.ledger.webkit,chart_account_id:0 -#: field:trial.balance.webkit,chart_account_id:0 -msgid "Chart of account" +#: selection:account.common.balance.report,comp0_filter:0 +#: selection:account.common.balance.report,comp1_filter:0 +#: selection:account.common.balance.report,comp2_filter:0 +#: selection:account.common.balance.report,filter:0 +#: selection:partner.balance.webkit,comp0_filter:0 +#: selection:partner.balance.webkit,comp1_filter:0 +#: selection:partner.balance.webkit,comp2_filter:0 +#: selection:partner.balance.webkit,filter:0 +#: selection:trial.balance.webkit,comp0_filter:0 +#: selection:trial.balance.webkit,comp1_filter:0 +#: selection:trial.balance.webkit,comp2_filter:0 +#: selection:trial.balance.webkit,filter:0 +msgid "Opening Only" msgstr "" #. module: account_financial_report_webkit @@ -513,6 +520,16 @@ msgstr "" msgid "With movements" msgstr "" +#. module: account_financial_report_webkit +#: constraint:account.common.balance.report:0 +#: constraint:general.ledger.webkit:0 +#: constraint:open.invoices.webkit:0 +#: constraint:partner.balance.webkit:0 +#: constraint:partners.ledger.webkit:0 +#: constraint:trial.balance.webkit:0 +msgid "The fiscalyear, periods or chart of account chosen have to belong to the same company." +msgstr "" + #. module: account_financial_report_webkit #: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:109 #: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:124 @@ -533,26 +550,27 @@ msgstr "" #: code:addons/account_financial_report_webkit/report/open_invoices.py:63 #: code:addons/account_financial_report_webkit/report/partner_balance.py:63 #: code:addons/account_financial_report_webkit/report/partners_ledger.py:64 -#: code:addons/account_financial_report_webkit/report/profit_loss.py:71 +#: code:addons/account_financial_report_webkit/report/profit_loss.py:68 #: code:addons/account_financial_report_webkit/report/trial_balance.py:64 -#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:67 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:68 #, python-format msgid "of" msgstr "" #. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/common_reports.py:73 #: selection:open.invoices.webkit,result_selection:0 #: selection:partner.balance.webkit,result_selection:0 #: selection:partners.ledger.webkit,result_selection:0 -#: code:addons/account_financial_report_webkit/report/common_reports.py:71 #, python-format msgid "Payable Accounts" msgstr "" #. module: account_financial_report_webkit #: code:addons/account_financial_report_webkit/report/open_invoices.py:48 +#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_open_invoices_menu_webkit #: model:ir.actions.report.xml,name:account_financial_report_webkit.account_report_open_invoices_webkit -#: model:ir.model,name:account_financial_report_webkit.model_account_report_open_invoices_webkit +#: model:ir.model,name:account_financial_report_webkit.model_open_invoices_webkit #, python-format msgid "Open Invoices Report" msgstr "" @@ -563,24 +581,31 @@ msgid "Centralized" msgstr "" #. module: account_financial_report_webkit -#: field:account.common.balance.report,display_account:0 #: field:general.ledger.webkit,display_account:0 -#: field:partner.balance.webkit,display_account:0 -#: field:trial.balance.webkit,display_account:0 msgid "Display accounts" msgstr "" #. module: account_financial_report_webkit -#: view:account.move.line:0 -msgid "Narration" +#: constraint:account.account:0 +msgid "Configuration Error! \n" +"You can not define children to an account with internal type different of \"View\"! " msgstr "" #. module: account_financial_report_webkit +#: field:account.common.balance.report,comp0_date_from:0 +#: field:account.common.balance.report,comp1_date_from:0 +#: field:account.common.balance.report,comp2_date_from:0 #: field:account.common.balance.report,date_from:0 #: field:general.ledger.webkit,date_from:0 #: field:open.invoices.webkit,date_from:0 +#: field:partner.balance.webkit,comp0_date_from:0 +#: field:partner.balance.webkit,comp1_date_from:0 +#: field:partner.balance.webkit,comp2_date_from:0 #: field:partner.balance.webkit,date_from:0 #: field:partners.ledger.webkit,date_from:0 +#: field:trial.balance.webkit,comp0_date_from:0 +#: field:trial.balance.webkit,comp1_date_from:0 +#: field:trial.balance.webkit,comp2_date_from:0 #: field:trial.balance.webkit,date_from:0 msgid "Start Date" msgstr "" @@ -600,7 +625,7 @@ msgid "GENERAL LEDGER" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/wizard/profit_loss_wizard.py:131 +#: code:addons/account_financial_report_webkit/wizard/profit_loss_wizard.py:129 #, python-format msgid "Level %s" msgstr "" @@ -634,6 +659,13 @@ msgstr "" msgid "Balance C%s" msgstr "" +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:95 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:108 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:104 +msgid "Entry" +msgstr "" + #. module: account_financial_report_webkit #: field:account.move.line,last_rec_date:0 msgid "Last reconciliation date" @@ -647,8 +679,9 @@ msgid "Filter on partner" msgstr "" #. module: account_financial_report_webkit -#: view:general.ledger.webkit:0 #: code:addons/account_financial_report_webkit/report/general_ledger.py:47 +#: view:general.ledger.webkit:0 +#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_general_ledger_menu_webkit #, python-format msgid "General Ledger" msgstr "" @@ -669,6 +702,11 @@ msgstr "" msgid "PARTNER BALANCE" msgstr "" +#. module: account_financial_report_webkit +#: constraint:account.move.line:0 +msgid "Company must be the same for its related account and period." +msgstr "" + #. module: account_financial_report_webkit #: help:open.invoices.webkit,partner_ids:0 #: help:partner.balance.webkit,partner_ids:0 @@ -677,21 +715,30 @@ msgid "Only selected partners will be printed. Leave empty to print all partners msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:167 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:165 #, python-format msgid "Webkit Report template not found !" msgstr "" #. module: account_financial_report_webkit +#: selection:account.common.balance.report,comp0_filter:0 +#: selection:account.common.balance.report,comp1_filter:0 +#: selection:account.common.balance.report,comp2_filter:0 #: selection:account.common.balance.report,filter:0 +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:91 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:104 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:100 #: selection:general.ledger.webkit,filter:0 #: selection:open.invoices.webkit,filter:0 +#: selection:partner.balance.webkit,comp0_filter:0 +#: selection:partner.balance.webkit,comp1_filter:0 +#: selection:partner.balance.webkit,comp2_filter:0 #: selection:partner.balance.webkit,filter:0 #: selection:partners.ledger.webkit,filter:0 +#: selection:trial.balance.webkit,comp0_filter:0 +#: selection:trial.balance.webkit,comp1_filter:0 +#: selection:trial.balance.webkit,comp2_filter:0 #: selection:trial.balance.webkit,filter:0 -#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:91 -#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:104 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:100 msgid "Date" msgstr "" @@ -702,12 +749,18 @@ msgstr "" #. module: account_financial_report_webkit #: constraint:account.move.line:0 -msgid "Company must be same for its related account and period." +msgid "You can not create journal items on an account of type view." +msgstr "" + +#. module: account_financial_report_webkit +#: view:account.move.line:0 +msgid "Internal Note" msgstr "" #. module: account_financial_report_webkit #: constraint:account.common.balance.report:0 #: constraint:general.ledger.webkit:0 +#: constraint:open.invoices.webkit:0 #: constraint:partner.balance.webkit:0 #: constraint:partners.ledger.webkit:0 #: constraint:trial.balance.webkit:0 @@ -730,19 +783,19 @@ msgid "The code of the account must be unique per company !" msgstr "" #. module: account_financial_report_webkit +#: model:ir.ui.menu,name:account_financial_report_webkit.menu_account_open_invoices #: view:open.invoices.webkit:0 -#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_open_invoices_menu_webkit msgid "Open Invoices" msgstr "" #. module: account_financial_report_webkit #: selection:account.common.balance.report,target_move:0 +#: code:addons/account_financial_report_webkit/report/common_reports.py:82 #: selection:general.ledger.webkit,target_move:0 #: selection:open.invoices.webkit,target_move:0 #: selection:partner.balance.webkit,target_move:0 #: selection:partners.ledger.webkit,target_move:0 #: selection:trial.balance.webkit,target_move:0 -#: code:addons/account_financial_report_webkit/report/common_reports.py:80 #, python-format msgid "All Posted Entries" msgstr "" @@ -751,21 +804,16 @@ msgstr "" #: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:87 #: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:84 #: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:97 -#: code:addons/account_financial_report_webkit/wizard/balance_common.py:156 +#: code:addons/account_financial_report_webkit/wizard/balance_common.py:144 #, python-format msgid "Comparison %s" msgstr "" #. module: account_financial_report_webkit -#: selection:account.common.balance.report,display_account:0 -#: selection:general.ledger.webkit,display_account:0 -#: selection:partner.balance.webkit,display_account:0 -#: selection:trial.balance.webkit,display_account:0 -#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:61 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:75 -#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:73 -#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:86 -msgid "All" +#: code:addons/account_financial_report_webkit/report/open_invoices.py:102 +#: code:addons/account_financial_report_webkit/report/partners_ledger.py:102 +#, python-format +msgid "No accounts to print." msgstr "" #. module: account_financial_report_webkit @@ -839,14 +887,15 @@ msgid "Filter by date : no opening balance will be displayed. (opening balance c msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/common_reports.py:313 -#, python-format -msgid "No period found" +#: constraint:account.account:0 +msgid "Configuration Error! \n" +"You can not select an account type with a deferral method different of \"Unreconciled\" for accounts with internal type \"Payable/Receivable\"! " msgstr "" #. module: account_financial_report_webkit -#: view:partner.balance.webkit:0 #: code:addons/account_financial_report_webkit/report/partner_balance.py:47 +#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_partner_balance_menu_webkit +#: view:partner.balance.webkit:0 #, python-format msgid "Partner Balance" msgstr "" @@ -874,24 +923,35 @@ msgid "Dates Filter" msgstr "" #. module: account_financial_report_webkit -#: field:account.common.balance.report,fiscalyear_id:0 -#: field:general.ledger.webkit,fiscalyear_id:0 -#: field:open.invoices.webkit,fiscalyear_id:0 -#: field:partner.balance.webkit,fiscalyear_id:0 -#: field:partners.ledger.webkit,fiscalyear_id:0 -#: field:trial.balance.webkit,fiscalyear_id:0 -msgid "Fiscal year" +#: constraint:account.move.line:0 +msgid "You can not create journal items on closed account." msgstr "" #. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/common_reports.py:64 +#: selection:general.ledger.webkit,display_account:0 +#, python-format +msgid "With transactions or non zero balance" +msgstr "" + +#. module: account_financial_report_webkit +#: selection:account.common.balance.report,comp0_filter:0 +#: selection:account.common.balance.report,comp1_filter:0 +#: selection:account.common.balance.report,comp2_filter:0 #: selection:account.common.balance.report,filter:0 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:45 +#: code:addons/account_financial_report_webkit/wizard/balance_common.py:156 #: selection:general.ledger.webkit,filter:0 #: selection:open.invoices.webkit,filter:0 +#: selection:partner.balance.webkit,comp0_filter:0 +#: selection:partner.balance.webkit,comp1_filter:0 +#: selection:partner.balance.webkit,comp2_filter:0 #: selection:partner.balance.webkit,filter:0 #: selection:partners.ledger.webkit,filter:0 +#: selection:trial.balance.webkit,comp0_filter:0 +#: selection:trial.balance.webkit,comp1_filter:0 +#: selection:trial.balance.webkit,comp2_filter:0 #: selection:trial.balance.webkit,filter:0 -#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:45 -#: code:addons/account_financial_report_webkit/wizard/balance_common.py:168 #, python-format msgid "Periods" msgstr "" @@ -921,11 +981,16 @@ msgid "Unsuported filter" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/common_reports.py:60 +#: code:addons/account_financial_report_webkit/report/common_reports.py:62 #, python-format msgid "All accounts" msgstr "" +#. module: account_financial_report_webkit +#: constraint:account.move.line:0 +msgid "The selected account of your Journal Entry forces to provide a secondary currency. You should remove the secondary currency on the account or select a multi-currency view on the journal." +msgstr "" + #. module: account_financial_report_webkit #: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:93 #: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:106 @@ -939,23 +1004,11 @@ msgstr "" msgid "No valid filter" msgstr "" -#. module: account_financial_report_webkit -#: model:ir.ui.menu,name:account_financial_report_webkit.menu_account_open_invoices -msgid "Open Invoices" -msgstr "" - #. module: account_financial_report_webkit #: view:open.invoices.webkit:0 msgid "Clearance Analysis Options" msgstr "" -#. module: account_financial_report_webkit -#: selection:account.common.balance.report,filter:0 -#: selection:partner.balance.webkit,filter:0 -#: selection:trial.balance.webkit,filter:0 -msgid "Opening Only" -msgstr "" - #. module: account_financial_report_webkit #: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:97 #: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:110 @@ -983,18 +1036,24 @@ msgid "This report allows you to print or generate a pdf of your general ledger msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/profit_loss.py:42 +#: code:addons/account_financial_report_webkit/report/profit_loss.py:39 #, python-format msgid "PROFIT AND LOSS" msgstr "" #. module: account_financial_report_webkit +#: field:account.common.balance.report,chart_account_id:0 #: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:27 #: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:31 #: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:40 #: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:28 #: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:39 #: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:52 +#: field:general.ledger.webkit,chart_account_id:0 +#: field:open.invoices.webkit,chart_account_id:0 +#: field:partner.balance.webkit,chart_account_id:0 +#: field:partners.ledger.webkit,chart_account_id:0 +#: field:trial.balance.webkit,chart_account_id:0 msgid "Chart of Account" msgstr "" @@ -1007,17 +1066,17 @@ msgstr "" #. module: account_financial_report_webkit #: field:account.common.balance.report,target_move:0 -#: field:general.ledger.webkit,target_move:0 -#: field:open.invoices.webkit,target_move:0 -#: field:partner.balance.webkit,target_move:0 -#: field:partners.ledger.webkit,target_move:0 -#: field:trial.balance.webkit,target_move:0 #: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:37 #: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:42 #: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:51 #: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:38 #: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:49 #: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:62 +#: field:general.ledger.webkit,target_move:0 +#: field:open.invoices.webkit,target_move:0 +#: field:partner.balance.webkit,target_move:0 +#: field:partners.ledger.webkit,target_move:0 +#: field:trial.balance.webkit,target_move:0 msgid "Target Moves" msgstr "" @@ -1032,22 +1091,50 @@ msgid "From:" msgstr "" #. module: account_financial_report_webkit +#: field:account.common.balance.report,comp0_date_to:0 +#: field:account.common.balance.report,comp1_date_to:0 +#: field:account.common.balance.report,comp2_date_to:0 #: field:account.common.balance.report,date_to:0 #: field:general.ledger.webkit,date_to:0 #: field:open.invoices.webkit,date_to:0 +#: field:partner.balance.webkit,comp0_date_to:0 +#: field:partner.balance.webkit,comp1_date_to:0 +#: field:partner.balance.webkit,comp2_date_to:0 #: field:partner.balance.webkit,date_to:0 #: field:partners.ledger.webkit,date_to:0 +#: field:trial.balance.webkit,comp0_date_to:0 +#: field:trial.balance.webkit,comp1_date_to:0 +#: field:trial.balance.webkit,comp2_date_to:0 #: field:trial.balance.webkit,date_to:0 msgid "End Date" msgstr "" +#. module: account_financial_report_webkit +#: field:account.common.balance.report,comp0_period_from:0 +#: field:account.common.balance.report,comp1_period_from:0 +#: field:account.common.balance.report,comp2_period_from:0 +#: field:account.common.balance.report,period_from:0 +#: field:general.ledger.webkit,period_from:0 +#: field:open.invoices.webkit,period_from:0 +#: field:partner.balance.webkit,comp0_period_from:0 +#: field:partner.balance.webkit,comp1_period_from:0 +#: field:partner.balance.webkit,comp2_period_from:0 +#: field:partner.balance.webkit,period_from:0 +#: field:partners.ledger.webkit,period_from:0 +#: field:trial.balance.webkit,comp0_period_from:0 +#: field:trial.balance.webkit,comp1_period_from:0 +#: field:trial.balance.webkit,comp2_period_from:0 +#: field:trial.balance.webkit,period_from:0 +msgid "Start Period" +msgstr "" + #. module: account_financial_report_webkit #: field:open.invoices.webkit,until_date:0 msgid "Clearance date" msgstr "" #. module: account_financial_report_webkit -#: model:ir.model,name:account_financial_report_webkit.model_account_report_partners_ledger_webkit +#: model:ir.model,name:account_financial_report_webkit.model_partners_ledger_webkit msgid "Partner Ledger Report" msgstr "" @@ -1059,12 +1146,36 @@ msgid "Partners Filters" msgstr "" #. module: account_financial_report_webkit +#: selection:account.common.balance.report,comp0_filter:0 +#: field:account.common.balance.report,comp0_fiscalyear_id:0 +#: selection:account.common.balance.report,comp1_filter:0 +#: field:account.common.balance.report,comp1_fiscalyear_id:0 +#: selection:account.common.balance.report,comp2_filter:0 +#: field:account.common.balance.report,comp2_fiscalyear_id:0 +#: field:account.common.balance.report,fiscalyear_id:0 #: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:28 #: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:32 #: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:41 #: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:29 #: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:40 #: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:53 +#: field:general.ledger.webkit,fiscalyear_id:0 +#: field:open.invoices.webkit,fiscalyear_id:0 +#: selection:partner.balance.webkit,comp0_filter:0 +#: field:partner.balance.webkit,comp0_fiscalyear_id:0 +#: selection:partner.balance.webkit,comp1_filter:0 +#: field:partner.balance.webkit,comp1_fiscalyear_id:0 +#: selection:partner.balance.webkit,comp2_filter:0 +#: field:partner.balance.webkit,comp2_fiscalyear_id:0 +#: field:partner.balance.webkit,fiscalyear_id:0 +#: field:partners.ledger.webkit,fiscalyear_id:0 +#: selection:trial.balance.webkit,comp0_filter:0 +#: field:trial.balance.webkit,comp0_fiscalyear_id:0 +#: selection:trial.balance.webkit,comp1_filter:0 +#: field:trial.balance.webkit,comp1_fiscalyear_id:0 +#: selection:trial.balance.webkit,comp2_filter:0 +#: field:trial.balance.webkit,comp2_fiscalyear_id:0 +#: field:trial.balance.webkit,fiscalyear_id:0 msgid "Fiscal Year" msgstr "" @@ -1075,10 +1186,16 @@ msgid "Yes" msgstr "" #. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:95 -#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:108 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:104 -msgid "Entry" +#: selection:account.common.balance.report,comp0_filter:0 +#: selection:account.common.balance.report,comp1_filter:0 +#: selection:account.common.balance.report,comp2_filter:0 +#: selection:partner.balance.webkit,comp0_filter:0 +#: selection:partner.balance.webkit,comp1_filter:0 +#: selection:partner.balance.webkit,comp2_filter:0 +#: selection:trial.balance.webkit,comp0_filter:0 +#: selection:trial.balance.webkit,comp1_filter:0 +#: selection:trial.balance.webkit,comp2_filter:0 +msgid "No Comparison" msgstr "" #. module: account_financial_report_webkit @@ -1086,9 +1203,9 @@ msgstr "" #: code:addons/account_financial_report_webkit/report/open_invoices.py:63 #: code:addons/account_financial_report_webkit/report/partner_balance.py:63 #: code:addons/account_financial_report_webkit/report/partners_ledger.py:64 -#: code:addons/account_financial_report_webkit/report/profit_loss.py:71 +#: code:addons/account_financial_report_webkit/report/profit_loss.py:68 #: code:addons/account_financial_report_webkit/report/trial_balance.py:64 -#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:67 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:68 #, python-format msgid "Page" msgstr "" @@ -1099,14 +1216,19 @@ msgid "Partners Filter" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/open_invoices.py:102 -#: code:addons/account_financial_report_webkit/report/partners_ledger.py:102 -#, python-format -msgid "No accounts to print." +#: selection:account.common.balance.report,display_account:0 +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:61 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:75 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:73 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:86 +#: selection:general.ledger.webkit,display_account:0 +#: selection:partner.balance.webkit,display_account:0 +#: selection:trial.balance.webkit,display_account:0 +msgid "All" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/profit_loss.py:49 +#: code:addons/account_financial_report_webkit/report/profit_loss.py:46 #, python-format msgid "Profit and Loss" msgstr "" @@ -1125,19 +1247,19 @@ msgstr "" #. module: account_financial_report_webkit #: code:addons/account_financial_report_webkit/report/partners_ledger.py:41 -#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:57 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:58 #, python-format msgid "PARTNER LEDGER" msgstr "" #. module: account_financial_report_webkit #: selection:account.common.balance.report,target_move:0 +#: code:addons/account_financial_report_webkit/report/common_reports.py:84 #: selection:general.ledger.webkit,target_move:0 #: selection:open.invoices.webkit,target_move:0 #: selection:partner.balance.webkit,target_move:0 #: selection:partners.ledger.webkit,target_move:0 #: selection:trial.balance.webkit,target_move:0 -#: code:addons/account_financial_report_webkit/report/common_reports.py:82 #, python-format msgid "All Entries" msgstr "" @@ -1148,7 +1270,15 @@ msgid "Wrong credit or debit value in accounting entry !" msgstr "" #. module: account_financial_report_webkit -#: constraint:account.move.line:0 -msgid "You can not create move line on view account." +#: field:account.common.balance.report,comp0_filter:0 +#: field:account.common.balance.report,comp1_filter:0 +#: field:account.common.balance.report,comp2_filter:0 +#: field:partner.balance.webkit,comp0_filter:0 +#: field:partner.balance.webkit,comp1_filter:0 +#: field:partner.balance.webkit,comp2_filter:0 +#: field:trial.balance.webkit,comp0_filter:0 +#: field:trial.balance.webkit,comp1_filter:0 +#: field:trial.balance.webkit,comp2_filter:0 +msgid "Compare By" msgstr "" From bf7315decfe01f15b06435a0058c1b3cf1f19bb2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=ABl=20Grand-Guillaume?= Date: Wed, 20 Jun 2012 16:10:01 +0200 Subject: [PATCH 11/28] [MRG] Add all the bank statement improvements that we made. This is mostly based on : account_statement_ext -> provide profile per bank statement, remove period, choose to use balance check or not,... account_statement_base_completion -> provide a completion rule system to fullfill the bank statement (partner, account,...) account_statement_base_import -> provide a base to create your own file parser for each bank/office and link it to a profile account_statement_transactionid_completion and account_statement_transactionid_import to use the transaction ID recorded in th SO account_advanced_reconcile -> An advanced way to setup reconciliation rules on every account account_financial_report_webkit -> some little fixes (lp:c2c-addons/6.1 rev 63) --- .../report/common_partner_reports.py | 2 +- .../templates/account_report_general_ledger.mako | 8 +++++++- .../templates/account_report_partner_balance.mako | 10 +++++----- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/account_financial_report_webkit/report/common_partner_reports.py b/account_financial_report_webkit/report/common_partner_reports.py index 5ebd36c3..a6c2d8d8 100644 --- a/account_financial_report_webkit/report/common_partner_reports.py +++ b/account_financial_report_webkit/report/common_partner_reports.py @@ -238,7 +238,7 @@ class CommonPartnersReportHeaderWebkit(CommonReportHeaderWebkit): if existing_partner_ids: # We may use orm here as the performance optimization is not that big sql = ("SELECT name|| ' ' ||CASE WHEN ref IS NOT NULL THEN '('||ref||')' ELSE '' END, id, ref, name" - " FROM res_partner WHERE id IN %s ORDER BY name, ref") + " FROM res_partner WHERE id IN %s ORDER BY LOWER(name), ref") self.cursor.execute(sql, (tuple(set(existing_partner_ids)),)) res = self.cursor.fetchall() diff --git a/account_financial_report_webkit/report/templates/account_report_general_ledger.mako b/account_financial_report_webkit/report/templates/account_report_general_ledger.mako index df819cb4..6ed7b4a5 100644 --- a/account_financial_report_webkit/report/templates/account_report_general_ledger.mako +++ b/account_financial_report_webkit/report/templates/account_report_general_ledger.mako @@ -95,10 +95,12 @@
${_('Entry')}
## journal
${_('Journal')}
+ ## account code +
${_('Account')}
## partner
${_('Partner')}
## label -
${_('Label')}
+
${_('Label')}
## counterpart
${_('Counter part')}
## debit @@ -133,6 +135,8 @@
## journal
+ ## account code +
## partner
## label @@ -175,6 +179,8 @@
${line.get('move_name') or ''}
## journal
${line.get('jcode') or ''}
+ ## account code +
${account.code}
## partner
${line.get('partner_name') or ''}
## label diff --git a/account_financial_report_webkit/report/templates/account_report_partner_balance.mako b/account_financial_report_webkit/report/templates/account_report_partner_balance.mako index 31b18fca..89112c34 100644 --- a/account_financial_report_webkit/report/templates/account_report_partner_balance.mako +++ b/account_financial_report_webkit/report/templates/account_report_partner_balance.mako @@ -132,10 +132,10 @@
- ## code -
${_('Code / Ref')}
## account name
${_('Account / Partner Name')}
+ ## code +
${_('Code / Ref')}
%if comparison_mode == 'no_comparison': %if initial_balance_mode: ## initial balance @@ -188,8 +188,8 @@ total_balance += partner.get('balance', 0.0) %>
-
${partner_ref if partner_ref else ''}
${partner_name if partner_name else _('Unallocated') }
+
${partner_ref if partner_ref else ''}
%if comparison_mode == 'no_comparison': %if initial_balance_mode:
${formatLang(partner.get('init_balance', 0.0)) | amount}
@@ -229,10 +229,10 @@
- ## code -
${current_account.code}
## account name
${current_account.name}
+ ## code +
${current_account.code}
%if comparison_mode == 'no_comparison': %if initial_balance_mode: ## opening balance From c07b44f620ccbed824e8dc60dfc7acb723bf0415 Mon Sep 17 00:00:00 2001 From: "Guewen Baconnier @ Camptocamp" Date: Tue, 17 Jul 2012 10:17:30 +0200 Subject: [PATCH 12/28] [IMP] More german translated terms by Thomas Winteler (Win-Soft) (lp:c2c-addons/6.1 rev 75) --- account_financial_report_webkit/i18n/de.po | 78 +++++++++++++++++++++- 1 file changed, 77 insertions(+), 1 deletion(-) diff --git a/account_financial_report_webkit/i18n/de.po b/account_financial_report_webkit/i18n/de.po index 71187b43..43b29dd8 100644 --- a/account_financial_report_webkit/i18n/de.po +++ b/account_financial_report_webkit/i18n/de.po @@ -512,7 +512,7 @@ msgstr "Datums Filter:" #. module: account_financial_report_webkit #: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:91 msgid "Fiscal Year : " -msgstr "Geschäftsjahr:" +msgstr "Geschäftsjahr :" #. module: account_financial_report_webkit #: selection:account.common.balance.report,display_account:0 @@ -1160,3 +1160,79 @@ msgstr "Falscher Kredit oder Debit Wert im Buchungseintrag !" msgid "You can not create move line on view account." msgstr "Keine Bewegungen für Konten mit Typ Ansicht erlaubt." +#. module: account_financial_report_webkit +#: field:account.report.trial.balance.webkit,comp0_filter:0 +#: field:account.report.trial.balance.webkit,comp1_filter:0 +#: field:account.report.trial.balance.webkit,comp2_filter:0 +msgid "Compare By" +msgstr "Vergleich nach" + +#. module: account_financial_report_webkit +#: field:account.report.trial.balance.webkit,comp0_filter:0 +#: field:account.report.trial.balance.webkit,comp1_filter:0 +#: field:account.report.trial.balance.webkit,comp2_filter:0 +msgid "No Comparsion" +msgstr "Kein Vergleich" + +#. module: account_financial_report_webkit +#: field:account.report.trial.balance.webkit,comp0_filter:0 +#: field:account.report.trial.balance.webkit,comp1_filter:0 +#: field:account.report.trial.balance.webkit,comp2_filter:0 +msgid "Fiscal Year" +msgstr "Geschäftsjahr" + +#. module: account_financial_report_webkit +#: field:account.report.trial.balance.webkit,comp0_filter:0 +#: field:account.report.trial.balance.webkit,comp1_filter:0 +#: field:account.report.trial.balance.webkit,comp2_filter:0 +msgid "Date" +msgstr "Datum" + +#. module: account_financial_report_webkit +#: field:account.report.trial.balance.webkit,comp0_filter:0 +#: field:account.report.trial.balance.webkit,comp1_filter:0 +#: field:account.report.trial.balance.webkit,comp2_filter:0 +msgid "Periods" +msgstr "Perioden" + +#. module: account_financial_report_webkit +#: field:account.report.trial.balance.webkit,comp0_filter:0 +#: field:account.report.trial.balance.webkit,comp1_filter:0 +#: field:account.report.trial.balance.webkit,comp2_filter:0 +msgid "Opening Only" +msgstr "Nur Eröffnung" + +#. module: account_financial_report_webkit +#: field:account.report.trial.balance.webkit,comp0_fiscalyear_id:0 +#: field:account.report.trial.balance.webkit,comp1_fiscalyear_id:0 +#: field:account.report.trial.balance.webkit,comp2_fiscalyear_id:0 +msgid "Fiscal Year : " +msgstr "Geschäftsjahr :" + +#. module: account_financial_report_webkit +#: field:account.report.trial.balance.webkit,comp0_date_from:0 +#: field:account.report.trial.balance.webkit,comp1_date_from:0 +#: field:account.report.trial.balance.webkit,comp2_date_from:0 +msgid "Start Date" +msgstr "Start Datum" + +#. module: account_financial_report_webkit +#: field:account.report.trial.balance.webkit,comp0_date_to:0 +#: field:account.report.trial.balance.webkit,comp1_date_to:0 +#: field:account.report.trial.balance.webkit,comp2_date_to:0 +msgid "End Date" +msgstr "End Datum" + +#. module: account_financial_report_webkit +#: field:account.report.trial.balance.webkit,comp0_period_from:0 +#: field:account.report.trial.balance.webkit,comp1_period_from:0 +#: field:account.report.trial.balance.webkit,comp2_period_from:0 +msgid "Start Period" +msgstr "Start Periode" + +#. module: account_financial_report_webkit +#: field:account.report.trial.balance.webkit,comp0_period_to:0 +#: field:account.report.trial.balance.webkit,comp1_period_to:0 +#: field:account.report.trial.balance.webkit,comp2_period_to:0 +msgid "End Period" +msgstr "End Periode" From a53dbee185ac72f7b3d397c4cea393a2e1d04bf1 Mon Sep 17 00:00:00 2001 From: "Alexandre Fayolle @ camptocamp" Date: Tue, 24 Jul 2012 16:19:50 +0200 Subject: [PATCH 13/28] [FIX] fix issue lp:1003563, by backporting the code fixing lp:1003819 in openobject-addons (lp:c2c-addons/6.1 rev 75.1.1) --- .../report/webkit_parser_header_fix.py | 43 ++++++++++++------- 1 file changed, 27 insertions(+), 16 deletions(-) diff --git a/account_financial_report_webkit/report/webkit_parser_header_fix.py b/account_financial_report_webkit/report/webkit_parser_header_fix.py index cc2bb997..da186ee0 100644 --- a/account_financial_report_webkit/report/webkit_parser_header_fix.py +++ b/account_financial_report_webkit/report/webkit_parser_header_fix.py @@ -80,7 +80,7 @@ class HeaderFooterTextWebKitParser(webkit_report.WebKitParser): tmp_dir = tempfile.gettempdir() out_filename = tempfile.mktemp(suffix=".pdf", prefix="webkit.tmp.") files = [] - file_to_del = [] + file_to_del = [out_filename] if comm_path: command = [comm_path] else: @@ -116,22 +116,33 @@ class HeaderFooterTextWebKitParser(webkit_report.WebKitParser): file_to_del.append(html_file.name) command.append(html_file.name) command.append(out_filename) + stderr_fd, stderr_path = tempfile.mkstemp(text=True) + file_to_del.append(stderr_path) try: - status = subprocess.call(command, stderr=subprocess.PIPE) # ignore stderr - if status : - raise except_osv( - _('Webkit raise an error' ), - status - ) - except Exception: - for f_to_del in file_to_del : - os.unlink(f_to_del) - - pdf = file(out_filename, 'rb').read() - for f_to_del in file_to_del : - os.unlink(f_to_del) - - os.unlink(out_filename) + status = subprocess.call(command, stderr=stderr_fd) + os.close(stderr_fd) # force flush + stderr_fd = None # avoid closing again in finally + fobj = open(stderr_path, 'r') + error_message = fobj.read() + fobj.close() + if not error_message: + error_message = _('No diagnosis message was provided') + else: + error_message = _('The following diagnosis message was provided:\n') + error_message + if status: + raise except_osv(_('Webkit error' ), + _("The command 'wkhtmltopdf' failed with error code = %s. Message: %s") % (status, error_message)) + pdf_file = open(out_filename, 'rb') + pdf = pdf_file.read() + pdf_file.close() + finally: + if stderr_fd is not None: + os.close(stderr_fd) + for f_to_del in file_to_del: + try: + os.unlink(f_to_del) + except (OSError, IOError), exc: + _logger.error('cannot remove file %s: %s', f_to_del, exc) return pdf # override needed to keep the attachments' storing procedure From 9986930135662d672d62893699f0e131387e9cc7 Mon Sep 17 00:00:00 2001 From: "Alexandre Fayolle @ camptocamp" Date: Tue, 31 Jul 2012 16:29:55 +0200 Subject: [PATCH 14/28] [FIX] spelling (lp:c2c-addons/6.1 rev 77) --- .../__openerp__.py | 46 +++++++++++++------ 1 file changed, 32 insertions(+), 14 deletions(-) diff --git a/account_financial_report_webkit/__openerp__.py b/account_financial_report_webkit/__openerp__.py index f3101585..d756e2b3 100644 --- a/account_financial_report_webkit/__openerp__.py +++ b/account_financial_report_webkit/__openerp__.py @@ -34,17 +34,23 @@ This module replace the following standard openerp financial reports : Main improvements per report: * The General ledger: details of all entries posted in your books sorted by account. - - Filter by account in the wizard (no need to go to the Chart of account to do this anymore) or by view account (the report will display all regular children account) ie: you can select all P&L accounts. - - The report will now print only account with movements OR with a balance not null. No more endless report with accounts with no data. (field: display account is hidden) + - Filter by account in the wizard (no need to go to the Chart of account to do this anymore) + or by view account (the report will display all regular children account) ie: you can select all P&L accounts. + - The report will now print only account with movements OR with a balance not null. No more endless + report with accounts with no data. (field: display account is hidden) - initial balance calculation on the fly if no open entry posted - - Thanks to a new checkbox in account form, you will have possibility to centralize any accounts you like. ie: you do not want to see all entries posted under the account ‘VAT on sales’ ; you will only see aggregated amounts by periods. + - Thanks to a new checkbox in account form, you will have possibility to centralize any accounts you like. + Ie: you do not want to see all entries posted under the account ‘VAT on sales’; you will only see aggregated amounts by periods. - Counterpart account displayed for each transaction (3 accounts max.) to ease searching. - - Better ergonomy on the wizard: important information at the top, filters in the middle, options at the bottom or separate tab, more specific filtering on a other tabs. No more unique wizard layout for all financial reports (ie: we have removed the journal tab for the GL report) + - Better ergonomy on the wizard: important information at the top, filters in the middle, options + at the bottom or separate tab, more specific filtering on a other tabs. No more unique wizard layout + for all financial reports (ie: we have removed the journal tab for the GL report) - improved report style * The partner ledger: details of entries relative to payable & receivable accounts posted in your books sorted by account and partner. - Filter by partner now possible - - Now you can see accounts then Partner with subtotals for each account allowing you to check you data with trial balance and partner balance for instance & accounts are ordered the same way than in the Chart of account + - Now you can see accounts then Partner with subtotals for each account allowing you to check you data + with trial balance and partner balance for instance & accounts are ordered the same way than in the Chart of account - period have been added (date only is uncompleted since date can be outside period) - Reconciliation code added - subtotal by account @@ -52,13 +58,15 @@ Main improvements per report: * Open invoice report : other version of the partner ledger showing unreconciled / partially reconcies entries (added on the 20/01/2012) - - Possibility to print unreconciled transactions only at any date in the past (thanks to the brand-new field: last_rec_date which calculated the last move line reconciled date). No more pain to get open invoices at the last closing date. + - Possibility to print unreconciled transactions only at any date in the past (thanks to the brand-new field: + last_rec_date which calculated the last move line reconciled date). No more pain to get open invoices at the last closing date. - no initial balance calculated because the report shows open invoices from previous years. * The Trial balance: list of account with balances - you can either see the column : Initial balance , debit, credit , end balance or compare balances over 4 periods of your choice - You can select the filter opening to get the opening trial balance only - - If you create a extra virtual charts (using consolidated account) of account for your P&L and your balance sheet , you can print your statutory accounts (with comparision over years for ex.) + - If you create a extra virtual charts (using consolidated account) of account for your P&L and your balance sheet, + you can print your statutory accounts (with comparision over years for ex.) - If you compare 2 periods, you will get differences in value and % also * The Partner balance: list of account with balances @@ -66,16 +74,26 @@ Main improvements per report: - alpha sorting (same in partner balance) Limitations: -In order to run properly this module make sure you have installed the librairie ‘wkhtmltopdf’ for the pdf rendering (this library path must be added to you company settings). +In order to run properly this module make sure you have installed the librairie ‘wkhtmltopdf’ +for the pdf rendering (this library path must be added to you company settings). -Initial balances in these reports are based either on opening entry posted in the opening period or calculated on the fly. So make sure, your past accounting opening entries are in a opening period. -Initials balances are not calculated when using date filter (since a date can be outside its logical period and IB could be different by date Vs IB by period) -The opening period is assumed to be the 01.01 of the year with an opening flag and the first period of the year must starts also the 01.01 +Initial balances in these reports are based either on opening entry +posted in the opening period or calculated on the fly. So make sure, +your past accounting opening entries are in a opening period. +Initials balances are not calculated when using date filter (since a +date can be outside its logical period and IB could be different by +date Vs IB by period) The opening period is assumed to be the 01.01 of +the year with an opening flag and the first period of the year must +starts also the 01.01 -Totals for amount in currencies are affective if the partner belong to an account with a secondary currency. +Totals for amount in currencies are affective if the partner belong to +an account with a secondary currency. -html headers and footers are deactivated for these reports because of an issue of wkhtmltopdf : http://code.google.com/p/wkhtmltopdf/issues/detail?id=656 -Instead, the header and footer are created as text with arguments passed to wkhtmltopdf. The texts are defined inside the report classes. +html headers and footers are deactivated for these reports because of +an issue of wkhtmltopdf : +http://code.google.com/p/wkhtmltopdf/issues/detail?id=656 Instead, the +header and footer are created as text with arguments passed to +wkhtmltopdf. The texts are defined inside the report classes. """, 'version': '1.0', From 84d2126d96c590ed45c8dcd9dc8ebd9886f8fbc7 Mon Sep 17 00:00:00 2001 From: "Guewen Baconnier @ Camptocamp" Date: Wed, 29 Aug 2012 14:37:03 +0200 Subject: [PATCH 15/28] [FIX] account_financial_report_webkit: when we print a partner balance in no_comparison mode, we should print all the partners, even if their balance is 0.0, because the initial balance must match with the balance of the previous year (lp:c2c-addons/6.1 rev 80.1.1) --- .../account_report_partner_balance.mako | 27 ++++++++++++++----- 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/account_financial_report_webkit/report/templates/account_report_partner_balance.mako b/account_financial_report_webkit/report/templates/account_report_partner_balance.mako index 89112c34..7d2235f5 100644 --- a/account_financial_report_webkit/report/templates/account_report_partner_balance.mako +++ b/account_financial_report_webkit/report/templates/account_report_partner_balance.mako @@ -27,6 +27,9 @@ <%! def amount(text): return text.replace('-', '‑') # replace by a non-breaking hyphen (it will not word-wrap between hyphen and numbers) + + def display_line(all_comparison_lines): + return any([line.get('balance') for line in all_comparison_lines]) %> <%setLang(user.context_lang)%> @@ -99,7 +102,6 @@
%endfor - %for current_account in objects: <% partners_order = current_account.partners_order @@ -110,9 +112,13 @@ comparisons = current_account.comparisons - all_comparison_lines = [comp['partners_amounts'][partner_id[1]] for partner_id in partners_order for comp in comparisons] - if not current_account.balance and not any([line.get('balance') for line in all_comparison_lines]): - continue + # in multiple columns mode, we do not want to print accounts without any rows + if comparison_mode in ('single', 'multiple'): + all_comparison_lines = [comp['partners_amounts'][partner_id[1]] + for partner_id in partners_order + for comp in comparisons] + if not display_line(all_comparison_lines): + continue current_partner_amounts = current_account.partners_amounts @@ -178,8 +184,17 @@ <% partner = current_partner_amounts.get(partner_id, {}) - all_comparison_lines = [comp['partners_amounts'][partner_id] for comp in comparisons if comp['partners_amounts'].get(partner_id)] - if not partner.get('balance') and not any([line.get('balance') for line in all_comparison_lines]): + # in single mode, we have to display all the partners + # even if their balance is 0.0 because the initial balance + # should match with the previous year closings + + # in multiple columns mode, we do not want to print partners + # which have a balance at 0.0 in each comparison column + if comparison_mode in ('single', 'multiple'): + all_comparison_lines = [comp['partners_amounts'][partner_id] + for comp in comparisons + if comp['partners_amounts'].get(partner_id)] + if not display_line(all_comparison_lines): continue total_initial_balance += partner.get('init_balance', 0.0) From eaffe7428b4281afc867d0d1fd578af1c3c73ff5 Mon Sep 17 00:00:00 2001 From: "Guewen Baconnier @ Camptocamp" Date: Wed, 29 Aug 2012 14:52:40 +0200 Subject: [PATCH 16/28] [FIX] indentation (thanks the auto-indent in mako files...) (lp:c2c-addons/6.1 rev 80.1.2) --- .../report/templates/account_report_partner_balance.mako | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/account_financial_report_webkit/report/templates/account_report_partner_balance.mako b/account_financial_report_webkit/report/templates/account_report_partner_balance.mako index 7d2235f5..84619d9b 100644 --- a/account_financial_report_webkit/report/templates/account_report_partner_balance.mako +++ b/account_financial_report_webkit/report/templates/account_report_partner_balance.mako @@ -194,8 +194,8 @@ all_comparison_lines = [comp['partners_amounts'][partner_id] for comp in comparisons if comp['partners_amounts'].get(partner_id)] - if not display_line(all_comparison_lines): - continue + if not display_line(all_comparison_lines): + continue total_initial_balance += partner.get('init_balance', 0.0) total_debit += partner.get('debit', 0.0) From f5999b4dbe7ac2420950ca113dbb439f02f459ae Mon Sep 17 00:00:00 2001 From: "Guewen Baconnier @ Camptocamp" Date: Tue, 11 Sep 2012 11:25:15 +0200 Subject: [PATCH 17/28] [IMP] All partners reports: always force the computation of the opening balance. We cannot rely on the OpenERP initial entries for the partners reports. They are not reliable because, for instance, it allows to reconcile entries between different partners. So we never display the initial entries regarding the partners. (lp:c2c-addons/6.1 rev 80.1.3) --- .../report/common_partner_reports.py | 5 +++-- .../report/partner_balance.py | 10 ++++++++++ .../report/partners_ledger.py | 10 ++++++++++ 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/account_financial_report_webkit/report/common_partner_reports.py b/account_financial_report_webkit/report/common_partner_reports.py index a6c2d8d8..13b6ce18 100644 --- a/account_financial_report_webkit/report/common_partner_reports.py +++ b/account_financial_report_webkit/report/common_partner_reports.py @@ -78,8 +78,9 @@ class CommonPartnersReportHeaderWebkit(CommonReportHeaderWebkit): return sql_conditions, search_params - def _get_partners_move_line_ids(self, filter_from, account_id, start, stop, target_move, opening_mode='include_opening', - exclude_reconcile=False, partner_filter=False): + def _get_partners_move_line_ids(self, filter_from, account_id, start, stop, + target_move, opening_mode='exclude_opening', + exclude_reconcile=False, partner_filter=False): final_res = defaultdict(list) diff --git a/account_financial_report_webkit/report/partner_balance.py b/account_financial_report_webkit/report/partner_balance.py index 1e717832..ae560dd7 100644 --- a/account_financial_report_webkit/report/partner_balance.py +++ b/account_financial_report_webkit/report/partner_balance.py @@ -65,6 +65,16 @@ class PartnerBalanceWebkit(report_sxw.rml_parse, CommonPartnerBalanceReportHeade ], }) + def _get_initial_balance_mode(self, start_period): + """ Force computing of initial balance for the partner balance, + because we cannot use the entries generated by + OpenERP in the opening period. + + OpenERP allows to reconcile move lines between different partners, + so the generated entries in the opening period are wrong. + """ + return 'initial_balance' + def set_context(self, objects, data, ids, report_type=None): """Populate a ledger_lines attribute on each browse record that will be used by mako template""" diff --git a/account_financial_report_webkit/report/partners_ledger.py b/account_financial_report_webkit/report/partners_ledger.py index 44b01699..39ba6ca5 100644 --- a/account_financial_report_webkit/report/partners_ledger.py +++ b/account_financial_report_webkit/report/partners_ledger.py @@ -66,6 +66,16 @@ class PartnersLedgerWebkit(report_sxw.rml_parse, CommonPartnersReportHeaderWebki ], }) + def _get_initial_balance_mode(self, start_period): + """ Force computing of initial balance for the partner ledger, + because we cannot use the entries generated by + OpenERP in the opening period. + + OpenERP allows to reconcile move lines between different partners, + so the generated entries in the opening period are wrong. + """ + return 'initial_balance' + def set_context(self, objects, data, ids, report_type=None): """Populate a ledger_lines attribute on each browse record that will be used by mako template""" From f9475a6a3379131a819bd31bc97f2f1584850583 Mon Sep 17 00:00:00 2001 From: "Guewen Baconnier @ Camptocamp" Date: Tue, 11 Sep 2012 14:29:48 +0200 Subject: [PATCH 18/28] [IMP] report templates improvements (lp:c2c-addons/6.1 rev 80.1.4) --- .../report/templates/account_report_partner_balance.mako | 2 +- .../report/templates/account_report_partners_ledger.mako | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/account_financial_report_webkit/report/templates/account_report_partner_balance.mako b/account_financial_report_webkit/report/templates/account_report_partner_balance.mako index 84619d9b..dd3ab367 100644 --- a/account_financial_report_webkit/report/templates/account_report_partner_balance.mako +++ b/account_financial_report_webkit/report/templates/account_report_partner_balance.mako @@ -15,7 +15,7 @@ font-size: 15px; background-color:#F0F0F0; } - + .account_line .act_as_cell { height: 30px; vertical-align: bottom; diff --git a/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako b/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako index b651df3d..9182b7ed 100644 --- a/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako +++ b/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako @@ -79,7 +79,7 @@ %> - + %for partner_name, p_id, p_ref, p_name in account.partners_order: <% total_debit = 0.0 @@ -88,7 +88,7 @@ cumul_balance_curr = 0.0 part_cumul_balance = 0.0 - part_cumul_balance_curr = 0.0 + part_cumul_balance_curr = 0.0 %>
%endfor + %for current_account in objects: <% partners_order = current_account.partners_order @@ -112,13 +110,9 @@ comparisons = current_account.comparisons - # in multiple columns mode, we do not want to print accounts without any rows - if comparison_mode in ('single', 'multiple'): - all_comparison_lines = [comp['partners_amounts'][partner_id[1]] - for partner_id in partners_order - for comp in comparisons] - if not display_line(all_comparison_lines): - continue + all_comparison_lines = [comp['partners_amounts'][partner_id[1]] for partner_id in partners_order for comp in comparisons] + if not current_account.balance and not any([line.get('balance') for line in all_comparison_lines]): + continue current_partner_amounts = current_account.partners_amounts @@ -184,18 +178,9 @@ <% partner = current_partner_amounts.get(partner_id, {}) - # in single mode, we have to display all the partners - # even if their balance is 0.0 because the initial balance - # should match with the previous year closings - - # in multiple columns mode, we do not want to print partners - # which have a balance at 0.0 in each comparison column - if comparison_mode in ('single', 'multiple'): - all_comparison_lines = [comp['partners_amounts'][partner_id] - for comp in comparisons - if comp['partners_amounts'].get(partner_id)] - if not display_line(all_comparison_lines): - continue + all_comparison_lines = [comp['partners_amounts'][partner_id] for comp in comparisons if comp['partners_amounts'].get(partner_id)] + if not partner.get('balance') and not any([line.get('balance') for line in all_comparison_lines]): + continue total_initial_balance += partner.get('init_balance', 0.0) total_debit += partner.get('debit', 0.0) diff --git a/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako b/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako index 9182b7ed..b651df3d 100644 --- a/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako +++ b/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako @@ -79,7 +79,7 @@ %> - + %for partner_name, p_id, p_ref, p_name in account.partners_order: <% total_debit = 0.0 @@ -88,7 +88,7 @@ cumul_balance_curr = 0.0 part_cumul_balance = 0.0 - part_cumul_balance_curr = 0.0 + part_cumul_balance_curr = 0.0 %>
%endfor - %for current_account in objects: <% partners_order = current_account.partners_order @@ -110,9 +112,13 @@ comparisons = current_account.comparisons - all_comparison_lines = [comp['partners_amounts'][partner_id[1]] for partner_id in partners_order for comp in comparisons] - if not current_account.balance and not any([line.get('balance') for line in all_comparison_lines]): - continue + # in multiple columns mode, we do not want to print accounts without any rows + if comparison_mode in ('single', 'multiple'): + all_comparison_lines = [comp['partners_amounts'][partner_id[1]] + for partner_id in partners_order + for comp in comparisons] + if not display_line(all_comparison_lines): + continue current_partner_amounts = current_account.partners_amounts @@ -178,9 +184,18 @@ <% partner = current_partner_amounts.get(partner_id, {}) - all_comparison_lines = [comp['partners_amounts'][partner_id] for comp in comparisons if comp['partners_amounts'].get(partner_id)] - if not partner.get('balance') and not any([line.get('balance') for line in all_comparison_lines]): - continue + # in single mode, we have to display all the partners + # even if their balance is 0.0 because the initial balance + # should match with the previous year closings + + # in multiple columns mode, we do not want to print partners + # which have a balance at 0.0 in each comparison column + if comparison_mode in ('single', 'multiple'): + all_comparison_lines = [comp['partners_amounts'][partner_id] + for comp in comparisons + if comp['partners_amounts'].get(partner_id)] + if not display_line(all_comparison_lines): + continue total_initial_balance += partner.get('init_balance', 0.0) total_debit += partner.get('debit', 0.0) diff --git a/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako b/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako index b651df3d..9182b7ed 100644 --- a/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako +++ b/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako @@ -79,7 +79,7 @@ %> - + %for partner_name, p_id, p_ref, p_name in account.partners_order: <% total_debit = 0.0 @@ -88,7 +88,7 @@ cumul_balance_curr = 0.0 part_cumul_balance = 0.0 - part_cumul_balance_curr = 0.0 + part_cumul_balance_curr = 0.0 %>