From 682184f371dcab222d7f0b686e31779ce431f6db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Agathe=20Moll=C3=A9?= Date: Fri, 4 Sep 2015 16:29:43 -0400 Subject: [PATCH 001/186] [IMP] Improve Aged Partner Balance report - Add a boolean that allow the user to generate an aged partner balance report with invoice details - Allow the user to choose the aging method : from Due Date (default) or Invoice Date --- .../i18n/account_financial_report_webkit.pot | 1775 +++++++++-------- account_financial_report_webkit/i18n/fr.po | 1133 ++++++----- .../report/aged_partner_balance.py | 79 +- .../report/templates/aged_trial_webkit.mako | 96 +- .../wizard/aged_partner_balance_wizard.py | 32 +- .../wizard/aged_partner_balance_wizard.xml | 4 + 6 files changed, 1737 insertions(+), 1382 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 25e9392e..b451862f 100644 --- a/account_financial_report_webkit/i18n/account_financial_report_webkit.pot +++ b/account_financial_report_webkit/i18n/account_financial_report_webkit.pot @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: OpenERP Server 7.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-10-08 11:54+0000\n" -"PO-Revision-Date: 2014-10-08 11:54+0000\n" +"POT-Creation-Date: 2015-09-04 20:19+0000\n" +"PO-Revision-Date: 2015-09-04 20:19+0000\n" "Last-Translator: <>\n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -16,43 +16,42 @@ msgstr "" "Plural-Forms: \n" #. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:175 -#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:135 -#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:150 -msgid "% Difference" +#: view:account.aged.trial.balance.webkit:0 +#: view:open.invoices.webkit:0 +msgid "onchange_date_to(fiscalyear_id, period_to, date_to, until_date)" msgstr "" #. module: account_financial_report_webkit -#: code:_description:0 -#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:104 -#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:83 -#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:105 -#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:120 -#: model:ir.model,name:account_financial_report_webkit.model_account_account -#, python-format -msgid "Account" +#: help:general.ledger.webkit,account_ids:0 +msgid "Only selected accounts will be printed. Leave empty to\n" +" print all accounts." msgstr "" #. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:143 -msgid "Account / Partner Name" +#: 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 -#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:41 -#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:43 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:53 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:38 -#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:62 -#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:59 -msgid "Accounts Filter" +#: code:addons/account_financial_report_webkit/report/common_reports.py:493 +#, python-format +msgid "Please set a valid time filter" msgstr "" #. module: account_financial_report_webkit #: view:general.ledger.webkit:0 -#: view:partner.balance.webkit:0 -#: view:trial.balance.webkit:0 -msgid "Accounts Filters" +#: 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:220 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:267 +msgid "Cumulated Balance on Account" msgstr "" #. module: account_financial_report_webkit @@ -61,316 +60,332 @@ msgid "Activate Centralization" msgstr "" #. module: account_financial_report_webkit -#: view:account.aged.trial.balance.webkit:0 -#: code:addons/account_financial_report_webkit/report/aged_partner_balance.py:80 -#: code:addons/account_financial_report_webkit/report/aged_partner_balance.py:92 -#: model:ir.actions.report.xml,name:account_financial_report_webkit.account_report_aged_trial_blanance_webkit -#, python-format -msgid "Aged Partner Balance" +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:161 +#: 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:121 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:128 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:136 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:143 +msgid "Balance %s" msgstr "" #. module: account_financial_report_webkit -#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_aged_trial_balance_menu_webkit -msgid "Aged partner balance" +#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:33 +msgid "Journal Filter" msgstr "" #. module: account_financial_report_webkit -#: code:_description:0 -#: model:ir.model,name:account_financial_report_webkit.model_account_aged_trial_balance_webkit -#, python-format -msgid "Aged partner balanced" +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:96 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:103 +msgid "Periods 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:66 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:79 -#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:57 -#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:74 -#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:87 -#: selection:general.ledger.webkit,display_account:0 -#: selection:partner.balance.webkit,display_account:0 -#: selection:print.journal.webkit,display_account:0 -#: selection:trial.balance.webkit,display_account:0 -msgid "All" +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:221 +#, python-format +msgid "No header defined for this Webkit report!" msgstr "" #. module: account_financial_report_webkit -#: selection:account.aged.trial.balance.webkit,target_move:0 -#: selection:account.common.balance.report,target_move:0 -#: code:addons/account_financial_report_webkit/report/common_reports.py:94 -#: 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:print.journal.webkit,target_move:0 -#: selection:trial.balance.webkit,target_move:0 -#, python-format -msgid "All Entries" +#: 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 -#: selection:account.aged.trial.balance.webkit,target_move:0 -#: selection:account.common.balance.report,target_move:0 -#: code:addons/account_financial_report_webkit/report/common_reports.py:92 -#: 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:print.journal.webkit,target_move:0 -#: selection:trial.balance.webkit,target_move:0 -#, python-format -msgid "All Posted Entries" +#: 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 -#: code:addons/account_financial_report_webkit/report/common_reports.py:72 -#, python-format -msgid "All accounts" +#: field:account.aged.trial.balance.webkit,company_id:0 +#: 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:print.journal.webkit,company_id:0 +#: field:trial.balance.webkit,company_id:0 +msgid "Company" msgstr "" #. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:159 -#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:119 -#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:134 -msgid "Balance" +#: selection:account.aged.trial.balance.webkit,aging_method:0 +#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:71 +msgid "Invoice Date" msgstr "" #. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:161 -#: 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:121 -#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:128 -#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:136 -#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:143 -msgid "Balance %s" +#: view:account.aged.trial.balance.webkit:0 +msgid "This report list partner open balances and indicate when payment is (or was) supposed to be completed" msgstr "" #. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:170 -#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:130 -#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:145 -msgid "Balance C%s" +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:222 +#, python-format +msgid "Please set a header in company settings." msgstr "" #. module: account_financial_report_webkit -#: field:account.account,centralized:0 -msgid "Centralized" +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:143 +msgid "Account / Partner Name" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/general_ledger.py:166 +#: field:account.aged.trial.balance.webkit,journal_ids:0 +#: field:account.common.balance.report,journal_ids:0 +#: code:addons/account_financial_report_webkit/report/print_journal.py:58 +#: field:general.ledger.webkit,journal_ids:0 +#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_print_journal_menu_webkit +#: model:ir.actions.report.xml,name:account_financial_report_webkit.account_report_print_journal_webkit +#: field:open.invoices.webkit,journal_ids:0 +#: field:partner.balance.webkit,journal_ids:0 +#: field:partners.ledger.webkit,journal_ids:0 +#: view:print.journal.webkit:0 +#: field:print.journal.webkit,journal_ids:0 +#: field:trial.balance.webkit,journal_ids:0 #, python-format -msgid "Centralized Entries" +msgid "Journals" msgstr "" #. module: account_financial_report_webkit -#: field:account.aged.trial.balance.webkit,chart_account_id:0 -#: field:account.common.balance.report,chart_account_id:0 -#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:32 -#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:33 -#: 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:29 -#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:24 -#: 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 -#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:49 -#: 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:print.journal.webkit,chart_account_id:0 -#: field:trial.balance.webkit,chart_account_id:0 -msgid "Chart of Account" +#: help:account.aged.trial.balance.webkit,amount_currency:0 +#: help:general.ledger.webkit,amount_currency:0 +#: help:open.invoices.webkit,amount_currency:0 +#: help:partners.ledger.webkit,amount_currency:0 +#: help:print.journal.webkit,amount_currency:0 +msgid "It adds the currency column" msgstr "" #. module: account_financial_report_webkit -#: view:account.aged.trial.balance.webkit:0 -#: view:open.invoices.webkit:0 -msgid "Clearance Analysis Options" +#: selection:account.aged.trial.balance.webkit,result_selection:0 +#: code:addons/account_financial_report_webkit/report/common_reports.py:85 +#: selection:open.invoices.webkit,result_selection:0 +#: selection:partner.balance.webkit,result_selection:0 +#: selection:partners.ledger.webkit,result_selection:0 +#, python-format +msgid "Receivable and Payable Accounts" msgstr "" #. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:42 -#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:58 -msgid "Clearance Date" +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:104 +#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:83 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:105 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:120 +#: model:ir.model,name:account_financial_report_webkit.model_account_account +msgid "Account" msgstr "" #. module: account_financial_report_webkit -#: field:account.aged.trial.balance.webkit,until_date:0 -#: field:open.invoices.webkit,until_date:0 -msgid "Clearance date" +#: code:addons/account_financial_report_webkit/report/trial_balance.py:47 +#, python-format +msgid "TRIAL BALANCE" msgstr "" #. module: account_financial_report_webkit -#: constraint:account.aged.trial.balance.webkit:0 -#: constraint:open.invoices.webkit:0 -msgid "Clearance date must be the very last date of the last period or later." +#: selection:account.aged.trial.balance.webkit,aging_method:0 +#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:85 +#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:69 +msgid "Due Date" msgstr "" #. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:118 -msgid "Code" +#: view:account.aged.trial.balance.webkit:0 +#: 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 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:145 -msgid "Code / Ref" +#: model:ir.model,name:account_financial_report_webkit.model_partner_balance_webkit +msgid "Partner Balance Report" msgstr "" #. module: account_financial_report_webkit -#: code:_description:0 -#: model:ir.model,name:account_financial_report_webkit.model_account_common_balance_report +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:246 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:257 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:273 #, python-format -msgid "Common Balance Report" +msgid "Webkit render" msgstr "" #. module: account_financial_report_webkit -#: field:account.aged.trial.balance.webkit,company_id:0 -#: 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:print.journal.webkit,company_id:0 -#: field:trial.balance.webkit,company_id:0 -msgid "Company" +#: code:addons/account_financial_report_webkit/report/aged_partner_balance.py:53 +#, python-format +msgid "Overdue ≤ %s d." 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" +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:216 +#, python-format +msgid "Error!" msgstr "" #. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:91 -#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:85 -#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:98 -#: code:addons/account_financial_report_webkit/wizard/balance_common.py:173 +#: model:ir.model,name:account_financial_report_webkit.model_trial_balance_webkit +msgid "Trial Balance Report" +msgstr "" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/partners_ledger.py:54 +#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_partners_ledger_menu_webkit +#: view:partners.ledger.webkit:0 #, python-format -msgid "Comparison %s" +msgid "Partner Ledger" msgstr "" #. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:23 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:39 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:24 -#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:48 -msgid "Computed" +#: 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_general_ledger.mako:112 -msgid "Counter part" +#: field:account.common.balance.report,display_account:0 +#: field:partner.balance.webkit,display_account:0 +#: field:print.journal.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_general_ledger.mako:116 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:154 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:119 -#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:93 -#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:114 -#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:129 -msgid "Credit" +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:207 +msgid "Unallocated" msgstr "" #. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:118 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:121 -msgid "Cumul. Bal." +#: selection:account.aged.trial.balance.webkit,result_selection:0 +#: code:addons/account_financial_report_webkit/report/common_reports.py:81 +#: selection:open.invoices.webkit,result_selection:0 +#: selection:partner.balance.webkit,result_selection:0 +#: selection:partners.ledger.webkit,result_selection:0 +#, python-format +msgid "Receivable Accounts" msgstr "" #. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:220 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:267 -msgid "Cumulated Balance on Account" +#: 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_partners_ledger.mako:233 -msgid "Cumulated Balance on Partner" +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:115 +msgid "Rec." msgstr "" #. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:123 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:126 -#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:98 -msgid "Curr." +#: help:account.aged.trial.balance.webkit,filter:0 +#: 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 computed based on period to be correct)." msgstr "" #. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:121 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:124 -#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:96 -msgid "Curr. Balance" +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:108 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:111 +msgid "Reference" msgstr "" #. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:67 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:61 -#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:83 -msgid "Custom Filter" +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:38 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:39 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:50 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:35 +#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:30 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:59 +#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:56 +msgid "Periods Filter" msgstr "" #. module: account_financial_report_webkit -#: selection:account.aged.trial.balance.webkit,filter:0 -#: 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:96 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:101 -#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:79 -#: 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:print.journal.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 "Date" +#: help:account.aged.trial.balance.webkit,detailed_by_invoice:0 +msgid "Provide an aged partner balance report with invoice details" msgstr "" #. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:44 -#: code:addons/account_financial_report_webkit/wizard/balance_common.py:203 +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:43 +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:152 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:56 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:149 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:40 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:158 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:51 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:109 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:64 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:124 +msgid "Initial Balance" +msgstr "" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:167 #, python-format -msgid "Dates" +msgid "The command 'wkhtmltopdf' failed with error code = %s. Message: %s" msgstr "" #. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:88 -msgid "Dates : " +#: model:ir.model,name:account_financial_report_webkit.model_general_ledger_webkit +msgid "General Ledger 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:37 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:48 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:33 -#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:28 -#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:57 -#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:53 -msgid "Dates Filter" +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:166 +#, python-format +msgid "Webkit error" 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:101 -msgid "Dates Filter:" +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:49 +msgid "Displayed Accounts" +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:106 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:109 +#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:87 +#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:109 +msgid "Partner" +msgstr "" + +#. module: account_financial_report_webkit +#: help:account.aged.trial.balance.webkit,chart_account_id:0 +#: 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:print.journal.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.aged.trial.balance.webkit,filter:0 +#: 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:print.journal.webkit,filter:0 +#: field:trial.balance.webkit,filter:0 +msgid "Filter by" +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:123 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:126 +#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:98 +msgid "Curr." +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:110 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:113 +#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:89 +msgid "Label" msgstr "" #. module: account_financial_report_webkit @@ -384,365 +399,362 @@ msgid "Debit" msgstr "" #. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:174 -#: 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" +#: view:account.aged.trial.balance.webkit:0 +#: 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 -#: field:account.common.balance.report,display_account:0 -#: field:partner.balance.webkit,display_account:0 -#: field:print.journal.webkit,display_account:0 -#: field:trial.balance.webkit,display_account:0 -msgid "Display Accounts" +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:233 +msgid "Cumulated Balance on Partner" msgstr "" #. module: account_financial_report_webkit -#: field:general.ledger.webkit,display_account:0 -msgid "Display accounts" +#: help:account.common.balance.report,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_profit_loss.mako:49 -msgid "Displayed Accounts" +#: code:addons/account_financial_report_webkit/report/common_reports.py:396 +#, python-format +msgid "No opening period found to compute the opening balances.\n" +"You have to configure a period on the first of January with the special flag." msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/aged_partner_balance.py:52 +#: 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 +#: code:addons/account_financial_report_webkit/report/aged_partner_balance.py:54 #, python-format -msgid "Due" +msgid "Older" msgstr "" #. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:85 -msgid "Due Date" +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:42 +#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:59 +msgid "Clearance Date" msgstr "" #. module: account_financial_report_webkit -#: field:account.aged.trial.balance.webkit,date_to:0 -#: 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:print.journal.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" +#: 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 -#: field:account.aged.trial.balance.webkit,period_to:0 -#: 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:print.journal.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" +#: selection:account.common.balance.report,display_account:0 +#: selection:partner.balance.webkit,display_account:0 +#: selection:print.journal.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_general_ledger.mako:100 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:105 -#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:81 -msgid "Entry" +#: view:account.aged.trial.balance.webkit:0 +#: 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 "[('fiscalyear_id', '=', fiscalyear_id), ('special', '=', False)]" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/common_reports.py:395 -#: code:addons/account_financial_report_webkit/report/open_invoices.py:136 -#: code:addons/account_financial_report_webkit/report/partners_ledger.py:119 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:98 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:105 +msgid "Fiscal Year :" +msgstr "" + +#. module: account_financial_report_webkit +#: view:account.aged.trial.balance.webkit:0 +#: code:addons/account_financial_report_webkit/report/aged_partner_balance.py:80 +#: code:addons/account_financial_report_webkit/report/aged_partner_balance.py:92 +#: model:ir.actions.report.xml,name:account_financial_report_webkit.account_report_aged_trial_blanance_webkit #, python-format -msgid "Error" +msgid "Aged Partner Balance" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:216 +#: code:addons/account_financial_report_webkit/report/common_reports.py:482 #, python-format -msgid "Error!" +msgid "Must be in include_opening, exclude_opening" msgstr "" #. module: account_financial_report_webkit -#: field:account.aged.trial.balance.webkit,filter:0 -#: 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:print.journal.webkit,filter:0 -#: field:trial.balance.webkit,filter:0 -msgid "Filter by" +#: view:account.aged.trial.balance.webkit:0 +#: 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 "True" msgstr "" #. module: account_financial_report_webkit -#: help:account.aged.trial.balance.webkit,filter:0 -#: 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 computed based on period to be correct)." +#: field:account.aged.trial.balance.webkit,aging_method:0 +msgid "Aged from" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/open_invoices.py:203 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:44 +#: code:addons/account_financial_report_webkit/wizard/balance_common.py:204 #, python-format -msgid "Filter has to be in filter date, period, or none" +msgid "Dates" msgstr "" #. 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" +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:145 +msgid "Code / Ref" msgstr "" #. module: account_financial_report_webkit -#: field:account.aged.trial.balance.webkit,partner_ids:0 -#: 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" +#: code:addons/account_financial_report_webkit/report/trial_balance.py:56 +#: 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 "" #. module: account_financial_report_webkit -#: field:account.aged.trial.balance.webkit,fiscalyear_id:0 -#: 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:33 -#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:34 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:45 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:30 -#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:25 -#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:41 -#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:54 -#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:50 -#: 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 -#: field:print.journal.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" +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:88 +msgid "Dates : " msgstr "" #. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:98 -#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:105 -msgid "Fiscal Year :" +#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_aged_trial_balance_menu_webkit +msgid "Aged partner balance" msgstr "" #. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:92 -msgid "Fiscal Year : " +#: field:account.aged.trial.balance.webkit,period_to:0 +#: 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:print.journal.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 -#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:49 -#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:51 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:62 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:46 -#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:40 -#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:57 -#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:70 -#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:67 -msgid "From:" +#: model:ir.model,name:account_financial_report_webkit.model_account_common_balance_report +msgid "Common Balance Report" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/general_ledger.py:44 -#, python-format -msgid "GENERAL LEDGER" +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:41 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:43 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:53 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:38 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:62 +#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:60 +msgid "Accounts Filter" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/general_ledger.py:52 -#: 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" +#: 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 -#: code:_description:0 -#: model:ir.model,name:account_financial_report_webkit.model_general_ledger_webkit +#: code:addons/account_financial_report_webkit/report/print_journal.py:49 #, python-format -msgid "General Ledger Report" +msgid "JOURNALS" msgstr "" #. module: account_financial_report_webkit -#: model:ir.actions.report.xml,name:account_financial_report_webkit.account_report_general_ledger_webkit -msgid "General Ledger Webkit" +#: model:ir.model,name:account_financial_report_webkit.model_print_journal_webkit +msgid "Journals Report" msgstr "" #. module: account_financial_report_webkit -#: field:account.aged.trial.balance.webkit,group_by_currency:0 -#: field:open.invoices.webkit,group_by_currency:0 -msgid "Group Partner by currency" +#: 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:101 +msgid "Dates Filter:" 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." +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:92 +msgid "Fiscal Year : " msgstr "" #. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:43 -#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:152 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:56 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:149 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:40 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:158 -#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:51 -#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:109 -#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:64 -#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:124 -msgid "Initial Balance" +#: selection:account.common.balance.report,display_account:0 +#: selection:partner.balance.webkit,display_account:0 +#: selection:print.journal.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_partner_balance.mako:101 -#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:95 -#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:108 -msgid "Initial Balance:" +#: view:account.aged.trial.balance.webkit:0 +#: view:open.invoices.webkit:0 +msgid "onchange_period_to(fiscalyear_id, period_to, date_to, until_date)" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/common_reports.py:481 -#, python-format -msgid "Invalid query mode" +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:118 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:121 +msgid "Cumul. Bal." msgstr "" #. module: account_financial_report_webkit -#: help:account.aged.trial.balance.webkit,amount_currency:0 -#: help:general.ledger.webkit,amount_currency:0 -#: help:open.invoices.webkit,amount_currency:0 -#: help:partners.ledger.webkit,amount_currency:0 -#: help:print.journal.webkit,amount_currency:0 -msgid "It adds the currency column" +#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:117 +msgid "balance" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/print_journal.py:49 -#, python-format -msgid "JOURNALS" +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:23 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:39 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:24 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:48 +msgid "Computed" msgstr "" #. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:102 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:107 -msgid "Journal" -msgstr "" - -#. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:33 -msgid "Journal Filter" +#: code:addons/account_financial_report_webkit/report/aged_partner_balance.py:102 +#: code:addons/account_financial_report_webkit/report/general_ledger.py:70 +#: code:addons/account_financial_report_webkit/report/open_invoices.py:83 +#: code:addons/account_financial_report_webkit/report/partner_balance.py:71 +#: code:addons/account_financial_report_webkit/report/partners_ledger.py:71 +#: code:addons/account_financial_report_webkit/report/print_journal.py:75 +#: code:addons/account_financial_report_webkit/report/trial_balance.py:71 +#, python-format +msgid "of" msgstr "" #. module: account_financial_report_webkit -#: code:_description:0 -#: model:ir.model,name:account_financial_report_webkit.model_account_move_line +#: selection:account.aged.trial.balance.webkit,result_selection:0 +#: code:addons/account_financial_report_webkit/report/common_reports.py:83 +#: selection:open.invoices.webkit,result_selection:0 +#: selection:partner.balance.webkit,result_selection:0 +#: selection:partners.ledger.webkit,result_selection:0 #, python-format -msgid "Journal Items" +msgid "Payable Accounts" msgstr "" #. module: account_financial_report_webkit -#: field:account.aged.trial.balance.webkit,journal_ids:0 -#: field:account.common.balance.report,journal_ids:0 -#: code:addons/account_financial_report_webkit/report/print_journal.py:58 -#: field:general.ledger.webkit,journal_ids:0 -#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_print_journal_menu_webkit -#: model:ir.actions.report.xml,name:account_financial_report_webkit.account_report_print_journal_webkit -#: field:open.invoices.webkit,journal_ids:0 -#: field:partner.balance.webkit,journal_ids:0 -#: field:partners.ledger.webkit,journal_ids:0 -#: view:print.journal.webkit:0 -#: field:print.journal.webkit,journal_ids:0 -#: field:trial.balance.webkit,journal_ids:0 +#: code:addons/account_financial_report_webkit/report/open_invoices.py:67 +#: 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 #, python-format -msgid "Journals" +msgid "Open Invoices Report" msgstr "" #. module: account_financial_report_webkit -#: code:_description:0 -#: model:ir.model,name:account_financial_report_webkit.model_print_journal_webkit +#: field:account.account,centralized:0 +msgid "Centralized" +msgstr "" + +#. module: account_financial_report_webkit +#: field:general.ledger.webkit,display_account:0 +msgid "Display accounts" +msgstr "" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/partner_balance.py:44 #, python-format -msgid "Journals Report" +msgid "PARTNER BALANCE" msgstr "" #. module: account_financial_report_webkit -#: help:account.aged.trial.balance.webkit,fiscalyear_id:0 -#: 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:print.journal.webkit,fiscalyear_id:0 -#: help:trial.balance.webkit,fiscalyear_id:0 -msgid "Keep empty for all open fiscal year" +#: field:account.aged.trial.balance.webkit,date_from:0 +#: 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:print.journal.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 "" #. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:110 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:113 -#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:89 -msgid "Label" +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:23 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:39 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:24 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:48 +msgid "Opening Entries" msgstr "" #. module: account_financial_report_webkit -#: field:account.move.line,last_rec_date:0 -msgid "Last reconciliation date" +#: constraint:print.journal.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 -#: view:general.ledger.webkit:0 -#: view:open.invoices.webkit:0 -#: view:partners.ledger.webkit:0 -msgid "Layout Options" +#: code:addons/account_financial_report_webkit/report/general_ledger.py:44 +#, python-format +msgid "GENERAL LEDGER" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/common_reports.py:482 +#: selection:account.aged.trial.balance.webkit,target_move:0 +#: selection:account.common.balance.report,target_move:0 +#: code:addons/account_financial_report_webkit/report/common_reports.py:94 +#: 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:print.journal.webkit,target_move:0 +#: selection:trial.balance.webkit,target_move:0 #, python-format -msgid "Must be in include_opening, exclude_opening" +msgid "All Entries" +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/aged_trial_webkit.mako:200 +msgid "Percents" +msgstr "" + +#. module: account_financial_report_webkit +#: field:account.aged.trial.balance.webkit,group_by_currency:0 +#: field:open.invoices.webkit,group_by_currency:0 +msgid "Group Partner by currency" msgstr "" #. module: account_financial_report_webkit @@ -756,101 +768,84 @@ msgid "No" 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" -msgstr "" - -#. module: account_financial_report_webkit -#: selection:account.aged.trial.balance.webkit,filter:0 -#: 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:print.journal.webkit,filter:0 -#: selection:trial.balance.webkit,filter:0 -msgid "No Filters" +#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:111 +msgid "code" msgstr "" #. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:96 -msgid "No Partner" +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:101 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:95 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:108 +msgid "Initial Balance:" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/open_invoices.py:136 -#: code:addons/account_financial_report_webkit/report/partners_ledger.py:119 +#: code:addons/account_financial_report_webkit/report/aged_partner_balance.py:52 #, python-format -msgid "No accounts to print." +msgid "Due" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:160 -#, python-format -msgid "No diagnosis message was provided" +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:170 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:130 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:145 +msgid "Balance C%s" 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/open_invoices.py:202 #, python-format -msgid "No header defined for this Webkit report!" +msgid "Filter has to be in filter date, period, or none" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/common_reports.py:396 -#, python-format -msgid "No opening period found to compute the opening balances.\n" -"You have to configure a period on the first of January with the special flag." +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:100 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:105 +#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:81 +msgid "Entry" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/common_reports.py:351 -#, python-format -msgid "No period found" +#: field:account.move.line,last_rec_date:0 +msgid "Last reconciliation date" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/common_reports.py:493 -#, python-format -msgid "No valid filter" +#: field:account.aged.trial.balance.webkit,partner_ids:0 +#: 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 -#: code:addons/account_financial_report_webkit/report/open_invoices.py:57 +#: code:addons/account_financial_report_webkit/report/general_ledger.py:52 +#: view:general.ledger.webkit:0 +#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_general_ledger_menu_webkit #, python-format -msgid "OPEN INVOICES REPORT" +msgid "General Ledger" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/aged_partner_balance.py:54 -#, python-format -msgid "Older" +#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:51 +msgid "Aged From" msgstr "" #. module: account_financial_report_webkit -#: help:general.ledger.webkit,account_ids:0 -msgid "Only selected accounts will be printed. Leave empty to\n" -" print all accounts." +#: 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 -#: help:account.common.balance.report,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." +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:90 +msgid "Periods : " msgstr "" #. module: account_financial_report_webkit -#: help:partner.balance.webkit,partner_ids:0 -msgid "Only selected partners will be printed. Leave empty to print all partners." +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:67 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:61 +#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:91 +msgid "Custom Filter" msgstr "" #. module: account_financial_report_webkit @@ -861,163 +856,225 @@ msgid "Only selected partners will be printed. Leave empty to print all partners msgstr "" #. module: account_financial_report_webkit -#: model:ir.ui.menu,name:account_financial_report_webkit.menu_account_open_invoices +#: view:account.aged.trial.balance.webkit:0 #: view:open.invoices.webkit:0 -msgid "Open Invoices" +msgid "onchange_fiscalyear(fiscalyear_id, period_to, date_to, until_date)" msgstr "" #. module: account_financial_report_webkit -#: code:_description:0 -#: code:addons/account_financial_report_webkit/report/open_invoices.py:67 -#: 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 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:216 #, python-format -msgid "Open Invoices Report" -msgstr "" - -#. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:23 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:39 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:24 -#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:48 -msgid "Opening Entries" +msgid "Webkit Report template not found !" msgstr "" #. module: account_financial_report_webkit +#: selection:account.aged.trial.balance.webkit,filter:0 #: 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:96 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:101 +#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:79 +#: 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:print.journal.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" +msgid "Date" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/aged_partner_balance.py:53 -#, python-format -msgid "Overdue ≤ %s d." +#: help:general.ledger.webkit,centralize:0 +msgid "Uncheck to display all the details of centralized accounts." msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/partner_balance.py:44 -#, python-format -msgid "PARTNER BALANCE" -msgstr "" - +#: constraint:account.aged.trial.balance.webkit:0 +#: constraint:open.invoices.webkit:0 +#: constraint:partners.ledger.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 -#: code:addons/account_financial_report_webkit/report/partners_ledger.py:44 -#, python-format -msgid "PARTNER LEDGER" +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:55 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:57 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:68 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:52 +#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:46 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:63 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:76 +#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:81 +msgid "To:" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/aged_partner_balance.py:102 -#: code:addons/account_financial_report_webkit/report/general_ledger.py:70 -#: code:addons/account_financial_report_webkit/report/open_invoices.py:83 -#: code:addons/account_financial_report_webkit/report/partner_balance.py:71 -#: code:addons/account_financial_report_webkit/report/partners_ledger.py:71 -#: code:addons/account_financial_report_webkit/report/print_journal.py:75 -#: code:addons/account_financial_report_webkit/report/trial_balance.py:71 -#, python-format -msgid "Page" +#: 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 -#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:106 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:109 -#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:87 -#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:101 -msgid "Partner" +#: model:ir.ui.menu,name:account_financial_report_webkit.menu_account_open_invoices +#: view:open.invoices.webkit:0 +msgid "Open Invoices" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/partner_balance.py:54 -#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_partner_balance_menu_webkit -#: view:partner.balance.webkit:0 +#: selection:account.aged.trial.balance.webkit,target_move:0 +#: selection:account.common.balance.report,target_move:0 +#: code:addons/account_financial_report_webkit/report/common_reports.py:92 +#: 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:print.journal.webkit,target_move:0 +#: selection:trial.balance.webkit,target_move:0 #, python-format -msgid "Partner Balance" +msgid "All Posted Entries" msgstr "" #. module: account_financial_report_webkit -#: code:_description:0 -#: model:ir.model,name:account_financial_report_webkit.model_partner_balance_webkit +#: field:account.aged.trial.balance.webkit,until_date:0 +#: field:open.invoices.webkit,until_date:0 +msgid "Clearance date" +msgstr "" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/open_invoices.py:136 +#: code:addons/account_financial_report_webkit/report/partners_ledger.py:119 #, python-format -msgid "Partner Balance Report" +msgid "No accounts to print." msgstr "" #. module: account_financial_report_webkit -#: model:ir.actions.report.xml,name:account_financial_report_webkit.account_report_partner_balance_webkit -msgid "Partner Balance Webkit" +#: help:account.aged.trial.balance.webkit,fiscalyear_id:0 +#: 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:print.journal.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 -#: code:addons/account_financial_report_webkit/report/partners_ledger.py:54 -#: 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" +#: view:print.journal.webkit:0 +msgid "This report allows you to print or generate a pdf of your print journal with details of all your account journals" msgstr "" #. module: account_financial_report_webkit -#: code:_description:0 -#: model:ir.model,name:account_financial_report_webkit.model_partners_ledger_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:116 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:154 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:119 +#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:93 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:114 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:129 +msgid "Credit" +msgstr "" + +#. module: account_financial_report_webkit +#: selection:account.aged.trial.balance.webkit,filter:0 +#: 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:print.journal.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/common_reports.py:395 +#: code:addons/account_financial_report_webkit/report/open_invoices.py:136 +#: code:addons/account_financial_report_webkit/report/partners_ledger.py:119 #, python-format -msgid "Partner Ledger Report" +msgid "Error" msgstr "" #. module: account_financial_report_webkit -#: model:ir.actions.report.xml,name:account_financial_report_webkit.account_report_partners_ledger_webkit -msgid "Partner Ledger Webkit" +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:159 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:119 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:134 +msgid "Balance" msgstr "" #. module: account_financial_report_webkit -#: field:account.aged.trial.balance.webkit,result_selection:0 -#: field:open.invoices.webkit,result_selection:0 -#: field:partner.balance.webkit,result_selection:0 -#: field:partners.ledger.webkit,result_selection:0 -msgid "Partner's" +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:112 +msgid "Counter part" msgstr "" #. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:54 -msgid "Partners Filter" +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:175 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:135 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:150 +msgid "% Difference" msgstr "" #. module: account_financial_report_webkit -#: view:account.aged.trial.balance.webkit:0 -#: view:open.invoices.webkit:0 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:118 +msgid "Code" +msgstr "" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/common_reports.py:351 +#, python-format +msgid "No period found" +msgstr "" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/partner_balance.py:54 +#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_partner_balance_menu_webkit #: view:partner.balance.webkit:0 -#: view:partners.ledger.webkit:0 -msgid "Partners Filters" +#, python-format +msgid "Partner Balance" msgstr "" #. module: account_financial_report_webkit -#: selection:account.aged.trial.balance.webkit,result_selection:0 -#: code:addons/account_financial_report_webkit/report/common_reports.py:83 -#: 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/general_ledger.py:165 #, python-format -msgid "Payable Accounts" +msgid "Centralized Entries" msgstr "" #. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:141 -msgid "Percents" +#: 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:98 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:103 -msgid "Period" +#: 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:37 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:48 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:33 +#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:28 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:57 +#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:54 +msgid "Dates Filter" +msgstr "" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/common_reports.py:74 +#: selection:general.ledger.webkit,display_account:0 +#, python-format +msgid "With transactions or non zero balance" msgstr "" #. module: account_financial_report_webkit @@ -1027,7 +1084,7 @@ msgstr "" #: 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:46 -#: code:addons/account_financial_report_webkit/wizard/balance_common.py:223 +#: code:addons/account_financial_report_webkit/wizard/balance_common.py:224 #: selection:general.ledger.webkit,filter:0 #: selection:open.invoices.webkit,filter:0 #: selection:partner.balance.webkit,comp0_filter:0 @@ -1046,179 +1103,128 @@ msgid "Periods" msgstr "" #. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:90 -msgid "Periods : " +#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:114 +msgid "Invoice" 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_open_invoices.mako:39 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:50 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:35 -#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:30 -#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:59 -#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:55 -msgid "Periods Filter" +#: 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 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:96 -#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:103 -msgid "Periods Filter:" +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:121 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:124 +#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:96 +msgid "Curr. Balance" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:222 +#: 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:481 #, python-format -msgid "Please set a header in company settings." +msgid "Invalid query mode" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/common_reports.py:493 +#: code:addons/account_financial_report_webkit/report/open_invoices.py:201 #, python-format -msgid "Please set a valid time filter" +msgid "Unsuported filter" msgstr "" #. module: account_financial_report_webkit -#: view:account.aged.trial.balance.webkit:0 -#: 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" +#: code:addons/account_financial_report_webkit/report/common_reports.py:72 +#, python-format +msgid "All accounts" msgstr "" #. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:115 -msgid "Rec." +#: help:partner.balance.webkit,partner_ids:0 +msgid "Only selected partners will be printed. Leave empty to print all partners." msgstr "" #. module: account_financial_report_webkit -#: selection:account.aged.trial.balance.webkit,result_selection:0 -#: code:addons/account_financial_report_webkit/report/common_reports.py:81 -#: selection:open.invoices.webkit,result_selection:0 -#: selection:partner.balance.webkit,result_selection:0 -#: selection:partners.ledger.webkit,result_selection:0 -#, python-format -msgid "Receivable Accounts" +#: help:account.aged.trial.balance.webkit,until_date:0 +#: help:open.invoices.webkit,until_date:0 +msgid "The clearance date is essentially a tool used for debtors\n" +" provisionning calculation.\n" +"\n" +"By default, this date is equal to the the end date (ie: 31/12/2011 if you\n" +"select fy 2011).\n" +"\n" +"By amending the clearance date, you will be, for instance, able to answer the\n" +"question : 'based on my last year end debtors open invoices, which invoices\n" +"are still unpaid today (today is my clearance date)?'\n" +"" msgstr "" #. module: account_financial_report_webkit -#: selection:account.aged.trial.balance.webkit,result_selection:0 -#: code:addons/account_financial_report_webkit/report/common_reports.py:85 -#: 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/webkit_parser_header_fix.py:160 #, python-format -msgid "Receivable and Payable Accounts" +msgid "No diagnosis message was provided" msgstr "" #. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:108 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:111 -msgid "Reference" +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:98 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:103 +msgid "Period" msgstr "" #. module: account_financial_report_webkit -#: help:account.aged.trial.balance.webkit,chart_account_id:0 -#: 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:print.journal.webkit,chart_account_id:0 -#: help:trial.balance.webkit,chart_account_id:0 -msgid "Select Charts of Accounts" +#: code:addons/account_financial_report_webkit/report/common_reports.py:493 +#, python-format +msgid "No valid filter" msgstr "" #. module: account_financial_report_webkit -#: field:account.aged.trial.balance.webkit,date_from:0 -#: 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:print.journal.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" +#: constraint:account.aged.trial.balance.webkit:0 +#: 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 -#: field:account.aged.trial.balance.webkit,period_from:0 -#: 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:print.journal.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" +#: view:partner.balance.webkit:0 +#: view:trial.balance.webkit:0 +msgid "{'required': [('filter', '=', 'filter_opening')]}" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/trial_balance.py:47 -#, python-format -msgid "TRIAL BALANCE" +#: view:account.aged.trial.balance.webkit:0 +#: view:open.invoices.webkit:0 +msgid "Clearance Analysis Options" msgstr "" #. module: account_financial_report_webkit -#: field:account.aged.trial.balance.webkit,target_move:0 -#: field:account.common.balance.report,target_move:0 -#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:42 -#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:44 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:55 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:39 -#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:34 -#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:50 -#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:63 -#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:60 -#: 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:print.journal.webkit,target_move:0 -#: field:trial.balance.webkit,target_move:0 -msgid "Target Moves" +#: model:ir.model,name:account_financial_report_webkit.model_account_aged_trial_balance_webkit +msgid "Aged partner balanced" msgstr "" #. module: account_financial_report_webkit -#: help:account.aged.trial.balance.webkit,until_date:0 -#: help:open.invoices.webkit,until_date:0 -msgid "" +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:102 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:107 +msgid "Journal" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:167 -#, python-format -msgid "The command 'wkhtmltopdf' failed with error code = %s. Message: %s" +#: field:account.aged.trial.balance.webkit,amount_currency:0 +#: field:general.ledger.webkit,amount_currency:0 +#: field:open.invoices.webkit,amount_currency:0 +#: field:partners.ledger.webkit,amount_currency:0 +#: field:print.journal.webkit,amount_currency:0 +msgid "With Currency" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:162 -#, python-format -msgid "The following diagnosis message was provided:\n" -"" +#: field:account.aged.trial.balance.webkit,result_selection:0 +#: 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 @@ -1226,244 +1232,259 @@ msgid "This report allows you to print or generate a pdf of your general ledger 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 -#: 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 -#: view:print.journal.webkit:0 -msgid "This report allows you to print or generate a pdf of your print journal with details of all your account journals" -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 -#: 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" +#: field:account.aged.trial.balance.webkit,chart_account_id:0 +#: field:account.common.balance.report,chart_account_id:0 +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:32 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:33 +#: 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:29 +#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:24 +#: 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 +#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:49 +#: 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:print.journal.webkit,chart_account_id:0 +#: field:trial.balance.webkit,chart_account_id:0 +msgid "Chart of Account" msgstr "" #. module: account_financial_report_webkit -#: view:account.aged.trial.balance.webkit:0 -msgid "This report list partner open balances and indicate when payment is (or was) supposed to be completed" +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:174 +#: 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 -#: view:account.aged.trial.balance.webkit:0 -#: 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" +#: field:account.aged.trial.balance.webkit,target_move:0 +#: field:account.common.balance.report,target_move:0 +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:42 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:44 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:55 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:39 +#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:34 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:50 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:63 +#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:61 +#: 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:print.journal.webkit,target_move:0 +#: field:trial.balance.webkit,target_move:0 +msgid "Target Moves" msgstr "" #. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:55 -#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:57 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:68 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:52 -#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:46 -#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:63 -#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:76 -#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:73 -msgid "To:" +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:49 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:51 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:62 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:46 +#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:40 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:57 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:70 +#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:75 +msgid "From:" msgstr "" #. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:132 -msgid "Total" +#: field:account.aged.trial.balance.webkit,date_to:0 +#: 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:print.journal.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 -#: code:addons/account_financial_report_webkit/report/trial_balance.py:56 -#: 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" +#: field:account.aged.trial.balance.webkit,period_from:0 +#: 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:print.journal.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 -#: code:_description:0 -#: model:ir.model,name:account_financial_report_webkit.model_trial_balance_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:91 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:85 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:98 +#: code:addons/account_financial_report_webkit/wizard/balance_common.py:174 #, python-format -msgid "Trial Balance Report" +msgid "Comparison %s" msgstr "" #. module: account_financial_report_webkit -#: model:ir.actions.report.xml,name:account_financial_report_webkit.account_report_trial_balance_webkit -msgid "Trial Balance Webkit" +#: model:ir.model,name:account_financial_report_webkit.model_partners_ledger_webkit +msgid "Partner Ledger Report" msgstr "" #. module: account_financial_report_webkit #: view:account.aged.trial.balance.webkit:0 -#: 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 "True" -msgstr "" - -#. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:207 -msgid "Unallocated" -msgstr "" - -#. module: account_financial_report_webkit -#: help:general.ledger.webkit,centralize:0 -msgid "Uncheck to display all the details of centralized accounts." +msgid "Partners Filters" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/open_invoices.py:202 -#, python-format -msgid "Unsuported filter" +#: field:account.aged.trial.balance.webkit,fiscalyear_id:0 +#: 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:33 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:34 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:45 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:30 +#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:25 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:41 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:54 +#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:50 +#: 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 +#: field:print.journal.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 "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:216 -#, python-format -msgid "Webkit Report template not found !" +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:78 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:95 +msgid "Yes" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:166 -#, python-format -msgid "Webkit error" +#: field:account.aged.trial.balance.webkit,detailed_by_invoice:0 +msgid "Detailed by Invoice" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:246 -#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:257 -#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:273 +#: code:addons/account_financial_report_webkit/report/aged_partner_balance.py:102 +#: code:addons/account_financial_report_webkit/report/general_ledger.py:70 +#: code:addons/account_financial_report_webkit/report/open_invoices.py:83 +#: code:addons/account_financial_report_webkit/report/partner_balance.py:71 +#: code:addons/account_financial_report_webkit/report/partners_ledger.py:71 +#: code:addons/account_financial_report_webkit/report/print_journal.py:75 +#: code:addons/account_financial_report_webkit/report/trial_balance.py:71 #, python-format -msgid "Webkit render" -msgstr "" - -#. module: account_financial_report_webkit -#: constraint:print.journal.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 -#: constraint:account.common.balance.report:0 -#: constraint:general.ledger.webkit:0 -#: constraint:partner.balance.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 -#: constraint:account.aged.trial.balance.webkit:0 -#: constraint:open.invoices.webkit:0 -#: constraint:partners.ledger.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 -#: field:account.aged.trial.balance.webkit,amount_currency:0 -#: field:general.ledger.webkit,amount_currency:0 -#: field:open.invoices.webkit,amount_currency:0 -#: field:partners.ledger.webkit,amount_currency:0 -#: field:print.journal.webkit,amount_currency:0 -msgid "With Currency" +msgid "Page" msgstr "" #. module: account_financial_report_webkit -#: selection:account.common.balance.report,display_account:0 -#: selection:partner.balance.webkit,display_account:0 -#: selection:print.journal.webkit,display_account:0 -#: selection:trial.balance.webkit,display_account:0 -msgid "With balance is not equal to 0" +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:54 +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:66 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:79 +#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:57 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:74 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:87 +#: selection:general.ledger.webkit,display_account:0 #: selection:partner.balance.webkit,display_account:0 #: selection:print.journal.webkit,display_account:0 #: selection:trial.balance.webkit,display_account:0 -msgid "With movements" -msgstr "" - -#. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/common_reports.py:74 -#: selection:general.ledger.webkit,display_account:0 -#, python-format -msgid "With transactions or non zero balance" -msgstr "" - -#. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:78 -#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:95 -msgid "Yes" +msgid "All" msgstr "" #. module: account_financial_report_webkit -#: view:account.aged.trial.balance.webkit:0 -#: 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 "[('fiscalyear_id', '=', fiscalyear_id), ('special', '=', False)]" -msgstr "" - -#. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:105 -msgid "balance" +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/aged_trial_webkit.mako:103 -msgid "code" +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:96 +msgid "No Partner" msgstr "" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/aged_partner_balance.py:102 -#: code:addons/account_financial_report_webkit/report/general_ledger.py:70 -#: code:addons/account_financial_report_webkit/report/open_invoices.py:83 -#: code:addons/account_financial_report_webkit/report/partner_balance.py:71 -#: code:addons/account_financial_report_webkit/report/partners_ledger.py:71 -#: code:addons/account_financial_report_webkit/report/print_journal.py:75 -#: code:addons/account_financial_report_webkit/report/trial_balance.py:71 +#: code:addons/account_financial_report_webkit/report/open_invoices.py:57 #, python-format -msgid "of" +msgid "OPEN INVOICES REPORT" msgstr "" #. module: account_financial_report_webkit -#: view:account.aged.trial.balance.webkit:0 -#: view:open.invoices.webkit:0 -msgid "onchange_date_to(fiscalyear_id, period_to, date_to, until_date)" +#: code:addons/account_financial_report_webkit/report/partners_ledger.py:44 +#, python-format +msgid "PARTNER LEDGER" msgstr "" #. module: account_financial_report_webkit -#: view:account.aged.trial.balance.webkit:0 -#: view:open.invoices.webkit:0 -msgid "onchange_fiscalyear(fiscalyear_id, period_to, date_to, until_date)" +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:162 +#, python-format +msgid "The following diagnosis message was provided:\n" +"" msgstr "" #. module: account_financial_report_webkit -#: view:account.aged.trial.balance.webkit:0 -#: view:open.invoices.webkit:0 -msgid "onchange_period_to(fiscalyear_id, period_to, date_to, until_date)" +#: constraint:account.common.balance.report:0 +#: constraint:general.ledger.webkit:0 +#: constraint:partner.balance.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 -#: help:account.move.line,last_rec_date:0 -msgid "the date of the last reconciliation (full or partial) account move line" +#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:188 +msgid "Total" msgstr "" #. module: account_financial_report_webkit -#: view:partner.balance.webkit:0 -#: view:trial.balance.webkit:0 -msgid "{'required': [('filter', '=', 'filter_opening')]}" +#: 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/fr.po b/account_financial_report_webkit/i18n/fr.po index f676d139..9e208959 100644 --- a/account_financial_report_webkit/i18n/fr.po +++ b/account_financial_report_webkit/i18n/fr.po @@ -1,21 +1,35 @@ # Translation of OpenERP Server. # This file contains the translation of the following modules: -# * account_financial_report_webkit +# * account_financial_report_webkit # msgid "" msgstr "" "Project-Id-Version: OpenERP Server 7.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-05-07 07:02+0000\n" -"PO-Revision-Date: 2014-02-01 04:48+0000\n" -"Last-Translator: Joël Grand-Guillaume @ camptocamp " -"\n" +"POT-Creation-Date: 2015-09-04 20:19+0000\n" +"PO-Revision-Date: 2015-09-04 16:22-0500\n" +"Last-Translator: Agathe Mollé \n" "Language-Team: \n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2014-06-19 06:33+0000\n" -"X-Generator: Launchpad (build 17048)\n" +"X-Generator: Poedit 1.5.4\n" + +#. module: account_financial_report_webkit +#: view:account.aged.trial.balance.webkit:0 view:open.invoices.webkit:0 +msgid "onchange_date_to(fiscalyear_id, period_to, date_to, until_date)" +msgstr "" + +#. module: account_financial_report_webkit +#: help:general.ledger.webkit,account_ids:0 +msgid "" +"Only selected accounts will be printed. Leave empty to\n" +" print all accounts." +msgstr "" +"Seuls les comptes sélectionnés seront imprimés. Laisser vide pour les " +"imprimer tous." #. module: account_financial_report_webkit #: field:account.common.balance.report,account_ids:0 @@ -26,22 +40,20 @@ msgid "Filter on accounts" msgstr "Filtre par compte" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/common_reports.py:424 +#: code:addons/account_financial_report_webkit/report/common_reports.py:493 #, 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: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: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_general_ledger.mako:220 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:267 msgid "Cumulated Balance on Account" msgstr "Solde cumulé" @@ -51,37 +63,40 @@ 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 +#: 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:121 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:128 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:136 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:143 msgid "Balance %s" msgstr "Solde %s" #. module: account_financial_report_webkit -#: view:account.move.line:0 -msgid "Misc." -msgstr "" +#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:33 +msgid "Journal Filter" +msgstr "Filtre de journal" #. 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 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:96 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:103 msgid "Periods Filter:" -msgstr "Filtre par période:" +msgstr "Filtre par période :" #. 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:221 #, python-format msgid "No header defined for this Webkit report!" -msgstr "Pas d'en-tête défini pour ce rapport Webkit!" +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" +#: help:account.move.line,last_rec_date:0 +msgid "" +"the date of the last reconciliation (full or partial) " +"account move line" +msgstr "" +"Date du lettrage le plus récent (total ou partiel) c'est à dire du dernier " +"paiement" #. module: account_financial_report_webkit #: model:ir.actions.report.xml,name:account_financial_report_webkit.account_report_trial_balance_webkit @@ -89,46 +104,71 @@ msgid "Trial Balance Webkit" msgstr "Balance des comptes" #. module: account_financial_report_webkit +#: field:account.aged.trial.balance.webkit,company_id:0 #: 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:print.journal.webkit,company_id:0 #: field:trial.balance.webkit,company_id:0 msgid "Company" -msgstr "Company" +msgstr "Société" #. module: account_financial_report_webkit -#: view:partner.balance.webkit:0 +#: selection:account.aged.trial.balance.webkit,aging_method:0 +#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:71 +msgid "Invoice Date" +msgstr "Date de facture" + +#. module: account_financial_report_webkit +#: view:account.aged.trial.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." +"This report list partner open balances and indicate when payment is (or was) " +"supposed to be completed" +msgstr "" +"Ce rapport liste les balances ouvertes des partenaires et indique quand le " +"paiement doit (ou devait) être complété" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:222 +#, 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 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:138 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:143 msgid "Account / Partner Name" msgstr "Compte / Partenaire" #. module: account_financial_report_webkit +#: field:account.aged.trial.balance.webkit,journal_ids:0 #: field:account.common.balance.report,journal_ids:0 +#: code:addons/account_financial_report_webkit/report/print_journal.py:58 #: field:general.ledger.webkit,journal_ids:0 +#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_print_journal_menu_webkit +#: model:ir.actions.report.xml,name:account_financial_report_webkit.account_report_print_journal_webkit #: field:open.invoices.webkit,journal_ids:0 #: field:partner.balance.webkit,journal_ids:0 -#: field:partners.ledger.webkit,journal_ids:0 +#: field:partners.ledger.webkit,journal_ids:0 view:print.journal.webkit:0 +#: field:print.journal.webkit,journal_ids:0 #: field:trial.balance.webkit,journal_ids:0 +#, python-format msgid "Journals" msgstr "Journaux" #. module: account_financial_report_webkit +#: help:account.aged.trial.balance.webkit,amount_currency:0 #: help:general.ledger.webkit,amount_currency:0 #: help:open.invoices.webkit,amount_currency:0 #: help:partners.ledger.webkit,amount_currency:0 +#: help:print.journal.webkit,amount_currency:0 msgid "It adds the currency column" msgstr "Ajoute la colonne devise" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/common_reports.py:75 +#: selection:account.aged.trial.balance.webkit,result_selection:0 +#: code:addons/account_financial_report_webkit/report/common_reports.py:85 #: selection:open.invoices.webkit,result_selection:0 #: selection:partner.balance.webkit,result_selection:0 #: selection:partners.ledger.webkit,result_selection:0 @@ -137,47 +177,55 @@ 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 +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:104 +#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:83 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:105 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:120 #: 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 +#: code:addons/account_financial_report_webkit/report/trial_balance.py:47 #, 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 +#: selection:account.aged.trial.balance.webkit,aging_method:0 +#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:85 +#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:69 msgid "Due Date" -msgstr "Due Date" +msgstr "Éché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 +#: view:account.aged.trial.balance.webkit:0 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:" +msgstr "Filter sur :" #. module: account_financial_report_webkit #: model:ir.model,name:account_financial_report_webkit.model_partner_balance_webkit msgid "Partner Balance Report" -msgstr "Partner Balance Report" +msgstr "Rapport de balance des tiers" #. 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:246 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:257 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:273 #, 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:165 +#: code:addons/account_financial_report_webkit/report/aged_partner_balance.py:53 +#, python-format +msgid "Overdue ≤ %s d." +msgstr "Retard ≤ %s j." + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:216 #, python-format msgid "Error!" msgstr "Erreur!" @@ -188,9 +236,12 @@ msgid "Trial Balance Report" msgstr "Balance générale" #. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:117 -msgid "Code" -msgstr "Code" +#: code:addons/account_financial_report_webkit/report/partners_ledger.py:54 +#: 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 "Livre des tiers" #. module: account_financial_report_webkit #: model:ir.actions.report.xml,name:account_financial_report_webkit.account_report_partners_ledger_webkit @@ -200,23 +251,19 @@ msgstr "Livre des tiers" #. module: account_financial_report_webkit #: field:account.common.balance.report,display_account:0 #: field:partner.balance.webkit,display_account:0 +#: field:print.journal.webkit,display_account:0 #: field:trial.balance.webkit,display_account:0 msgid "Display Accounts" msgstr "Display Accounts" #. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:192 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:207 msgid "Unallocated" msgstr "Non-alloué" #. 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 -#: code:addons/account_financial_report_webkit/report/common_reports.py:71 +#: selection:account.aged.trial.balance.webkit,result_selection:0 +#: code:addons/account_financial_report_webkit/report/common_reports.py:81 #: selection:open.invoices.webkit,result_selection:0 #: selection:partner.balance.webkit,result_selection:0 #: selection:partners.ledger.webkit,result_selection:0 @@ -230,51 +277,66 @@ msgid "General Ledger Webkit" msgstr "Grand Livre des comptes" #. 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 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:115 msgid "Rec." msgstr "Let." #. module: account_financial_report_webkit -#: constraint:account.account:0 -msgid "Error ! You can not create recursive accounts." +#: help:account.aged.trial.balance.webkit,filter:0 +#: 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 computed based on period to be correct)." msgstr "" +"Filtrer par date : aucune balance ouverte ne sera affichée. (une balance " +"ouverte ne peut être calculée qu'à partir de la période pour être correcte)" #. 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 +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:108 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:111 +msgid "Reference" +msgstr "Référence" + +#. 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_open_invoices.mako:39 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:50 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:35 +#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:30 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:59 +#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:56 msgid "Periods Filter" msgstr "Filtre par 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" +#: help:account.aged.trial.balance.webkit,detailed_by_invoice:0 +msgid "Provide an aged partner balance report with invoice details" +msgstr "Génère une balance âgée des tiers avec les détails par facture" #. 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 +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:43 +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:152 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:56 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:149 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:40 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:158 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:51 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:109 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:64 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:124 msgid "Initial Balance" msgstr "Solde à nouveau" #. module: account_financial_report_webkit -#: constraint:account.move.line:0 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:167 +#, python-format 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." +"The command 'wkhtmltopdf' failed with error " +"code = %s. Message: %s" msgstr "" +"La commande 'wkhtmltopdf' a échoué avec le code d'erreur = %s. Message : %s" #. module: account_financial_report_webkit #: model:ir.model,name:account_financial_report_webkit.model_general_ledger_webkit @@ -282,139 +344,117 @@ msgid "General Ledger Report" msgstr "Grand livre" #. 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." +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:166 +#, python-format +msgid "Webkit error" +msgstr "Erreur Webkit" #. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:48 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:49 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 +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:106 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:109 +#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:87 +#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:109 msgid "Partner" msgstr "Partenaire" #. module: account_financial_report_webkit +#: help:account.aged.trial.balance.webkit,chart_account_id:0 #: 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:print.journal.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.aged.trial.balance.webkit,filter:0 #: 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 +#: 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:print.journal.webkit,filter:0 field:trial.balance.webkit,filter:0 msgid "Filter by" msgstr "Filtrer par" #. 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 -#, 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 +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:123 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:126 +#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:98 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 +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:110 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:113 +#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:89 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 +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:114 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:152 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:117 +#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:91 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:112 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:127 msgid "Debit" msgstr "Débit" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:171 -#, 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 +#: view:account.aged.trial.balance.webkit:0 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: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_partners_ledger.mako:233 msgid "Cumulated Balance on Partner" msgstr "Totaux" +#. module: account_financial_report_webkit +#: help:account.common.balance.report,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 sélectionnés seront imprimés. Laisser vide pour les " +"imprimer tous." + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/common_reports.py:396 +#, python-format +msgid "" +"No opening period found to compute the opening balances.\n" +"You have to configure a period on the first of January with the special flag." +msgstr "" +"Aucune période ouverte trouvée pour calculer les balances ouvertes.\n" +"Vous devez configurer une période pour le premier Janvier avec l'étiquette " +"adéquate." + #. module: account_financial_report_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" +#: code:addons/account_financial_report_webkit/report/aged_partner_balance.py:54 +#, python-format +msgid "Older" +msgstr "Retard supérieur" #. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:40 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:42 +#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:59 msgid "Clearance Date" msgstr "Date d'apurement" @@ -430,46 +470,65 @@ msgstr "" #. module: account_financial_report_webkit #: selection:account.common.balance.report,display_account:0 #: selection:partner.balance.webkit,display_account:0 +#: selection:print.journal.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 +#: view:account.aged.trial.balance.webkit:0 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 "[('fiscalyear_id', '=', fiscalyear_id), ('special', '=', False)]" +msgstr "" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:98 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:105 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" +#: view:account.aged.trial.balance.webkit:0 +#: code:addons/account_financial_report_webkit/report/aged_partner_balance.py:80 +#: code:addons/account_financial_report_webkit/report/aged_partner_balance.py:92 +#: model:ir.actions.report.xml,name:account_financial_report_webkit.account_report_aged_trial_blanance_webkit +#, python-format +msgid "Aged Partner Balance" +msgstr "Balance âgée des tiers" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/common_reports.py:416 +#: code:addons/account_financial_report_webkit/report/common_reports.py:482 #, 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:151 +#: view:account.aged.trial.balance.webkit:0 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 "True" +msgstr "Vrai" + +#. module: account_financial_report_webkit +#: field:account.aged.trial.balance.webkit,aging_method:0 +msgid "Aged from" +msgstr "Âge à partir de" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:44 +#: code:addons/account_financial_report_webkit/wizard/balance_common.py:204 #, 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 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:145 msgid "Code / Ref" msgstr "Compte / Réf." #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/trial_balance.py:49 +#: code:addons/account_financial_report_webkit/report/trial_balance.py:56 #: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_trial_balance_menu_webkit #: view:trial.balance.webkit:0 #, python-format @@ -477,11 +536,17 @@ 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 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:88 msgid "Dates : " msgstr "Dates : " #. module: account_financial_report_webkit +#: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_aged_trial_balance_menu_webkit +msgid "Aged partner balance" +msgstr "Balance âgée des tiers" + +#. module: account_financial_report_webkit +#: field:account.aged.trial.balance.webkit,period_to:0 #: 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 @@ -493,12 +558,13 @@ msgstr "Dates : " #: field:partner.balance.webkit,comp2_period_to:0 #: field:partner.balance.webkit,period_to:0 #: field:partners.ledger.webkit,period_to:0 +#: field:print.journal.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 "End Period" +msgstr "Période de fin" #. module: account_financial_report_webkit #: model:ir.model,name:account_financial_report_webkit.model_account_common_balance_report @@ -506,11 +572,12 @@ 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 +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:41 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:43 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:53 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:38 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:62 +#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:60 msgid "Accounts Filter" msgstr "Filtre par compte" @@ -531,70 +598,74 @@ msgid "Opening Only" msgstr "Balance d'ouverture" #. 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é" +#: code:addons/account_financial_report_webkit/report/print_journal.py:49 +#, python-format +msgid "JOURNALS" +msgstr "JOURNAUX" #. 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 +#: model:ir.model,name:account_financial_report_webkit.model_print_journal_webkit +msgid "Journals Report" +msgstr "Rapport des journaux" + +#. 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:101 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 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:92 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:print.journal.webkit,display_account:0 #: selection:trial.balance.webkit,display_account:0 msgid "With movements" msgstr "Mouvementé" #. 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." +#: view:account.aged.trial.balance.webkit:0 view:open.invoices.webkit:0 +msgid "onchange_period_to(fiscalyear_id, period_to, date_to, until_date)" 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 +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:118 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:121 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 +#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:117 +msgid "balance" +msgstr "Solde" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:23 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:39 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:24 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:48 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:68 -#: 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/aged_partner_balance.py:102 +#: code:addons/account_financial_report_webkit/report/general_ledger.py:70 +#: code:addons/account_financial_report_webkit/report/open_invoices.py:83 +#: code:addons/account_financial_report_webkit/report/partner_balance.py:71 +#: code:addons/account_financial_report_webkit/report/partners_ledger.py:71 +#: code:addons/account_financial_report_webkit/report/print_journal.py:75 +#: code:addons/account_financial_report_webkit/report/trial_balance.py:71 #, python-format msgid "of" msgstr "de" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/common_reports.py:73 +#: selection:account.aged.trial.balance.webkit,result_selection:0 +#: code:addons/account_financial_report_webkit/report/common_reports.py:83 #: selection:open.invoices.webkit,result_selection:0 #: selection:partner.balance.webkit,result_selection:0 #: selection:partners.ledger.webkit,result_selection:0 @@ -603,7 +674,7 @@ msgid "Payable Accounts" msgstr "Comptes fournisseur" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/open_invoices.py:48 +#: code:addons/account_financial_report_webkit/report/open_invoices.py:67 #: 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 @@ -622,14 +693,13 @@ msgid "Display accounts" msgstr "Comptes affichés" #. 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\"! " -msgstr "" +#: code:addons/account_financial_report_webkit/report/partner_balance.py:44 +#, python-format +msgid "PARTNER BALANCE" +msgstr "BALANCE DES TIERS" #. module: account_financial_report_webkit +#: field:account.aged.trial.balance.webkit,date_from:0 #: 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 @@ -641,6 +711,7 @@ msgstr "" #: field:partner.balance.webkit,comp2_date_from:0 #: field:partner.balance.webkit,date_from:0 #: field:partners.ledger.webkit,date_from:0 +#: field:print.journal.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 @@ -649,24 +720,41 @@ 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 +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:23 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:39 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:24 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:48 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 +#: constraint:print.journal.webkit:0 +msgid "" +"When no Fiscal year is selected, you must " +"choose to filter by periods or by date." +msgstr "" +"Lorsqu'aucun exercice comptable n'est sélectionné, vous devez choisir de " +"filtrer par périodes ou par dates." + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/general_ledger.py:44 #, 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:129 +#: selection:account.aged.trial.balance.webkit,target_move:0 +#: selection:account.common.balance.report,target_move:0 +#: code:addons/account_financial_report_webkit/report/common_reports.py:94 +#: 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:print.journal.webkit,target_move:0 +#: selection:trial.balance.webkit,target_move:0 #, python-format -msgid "Level %s" -msgstr "" +msgid "All Entries" +msgstr "Ecritures validées + brouillon" #. module: account_financial_report_webkit #: help:account.account,centralized:0 @@ -676,33 +764,63 @@ msgid "" 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 +#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:200 +msgid "Percents" +msgstr "Pourcentages" + +#. module: account_financial_report_webkit +#: field:account.aged.trial.balance.webkit,group_by_currency:0 +#: field:open.invoices.webkit,group_by_currency:0 +msgid "Group Partner by currency" +msgstr "Regrouper les partenaires par devise" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:23 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:39 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:24 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:78 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:95 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:48 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 +#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:111 +msgid "code" +msgstr "Code" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:101 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:95 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:108 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 +#: code:addons/account_financial_report_webkit/report/aged_partner_balance.py:52 +#, python-format +msgid "Due" +msgstr "En attente" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:170 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:130 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:145 msgid "Balance C%s" msgstr "Solde C%s" #. 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 +#: code:addons/account_financial_report_webkit/report/open_invoices.py:202 +#, 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 +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:100 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:105 +#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:81 msgid "Entry" msgstr "Ecriture" @@ -712,6 +830,7 @@ msgid "Last reconciliation date" msgstr "Last reconciliation date" #. module: account_financial_report_webkit +#: field:account.aged.trial.balance.webkit,partner_ids:0 #: field:open.invoices.webkit,partner_ids:0 #: field:partner.balance.webkit,partner_ids:0 #: field:partners.ledger.webkit,partner_ids:0 @@ -719,13 +838,18 @@ msgid "Filter on partner" msgstr "Filtre sur partenaire" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/general_ledger.py:47 +#: code:addons/account_financial_report_webkit/report/general_ledger.py:52 #: 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 "Grand livre des comptes" +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:51 +msgid "Aged From" +msgstr "Âge à partir de" + #. module: account_financial_report_webkit #: view:trial.balance.webkit:0 msgid "" @@ -737,24 +861,20 @@ msgstr "" "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 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:90 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 -#: constraint:account.move.line:0 -msgid "Company must be the same for its related account and period." -msgstr "" +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:67 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:61 +#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:91 +msgid "Custom Filter" +msgstr "Filtre personalisé" #. module: account_financial_report_webkit +#: help:account.aged.trial.balance.webkit,partner_ids:0 #: 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." @@ -763,19 +883,25 @@ msgstr "" "tous." #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:165 +#: view:account.aged.trial.balance.webkit:0 view:open.invoices.webkit:0 +msgid "onchange_fiscalyear(fiscalyear_id, period_to, date_to, until_date)" +msgstr "" + +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:216 #, python-format msgid "Webkit Report template not found !" msgstr "Webkit Report template not found !" #. module: account_financial_report_webkit +#: selection:account.aged.trial.balance.webkit,filter:0 #: 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 +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:96 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:101 +#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:79 #: selection:general.ledger.webkit,filter:0 #: selection:open.invoices.webkit,filter:0 #: selection:partner.balance.webkit,comp0_filter:0 @@ -783,6 +909,7 @@ msgstr "Webkit Report template not found !" #: selection:partner.balance.webkit,comp2_filter:0 #: selection:partner.balance.webkit,filter:0 #: selection:partners.ledger.webkit,filter:0 +#: selection:print.journal.webkit,filter:0 #: selection:trial.balance.webkit,comp0_filter:0 #: selection:trial.balance.webkit,comp1_filter:0 #: selection:trial.balance.webkit,comp2_filter:0 @@ -796,43 +923,39 @@ 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 "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 +#: constraint:account.aged.trial.balance.webkit:0 +#: constraint:open.invoices.webkit:0 constraint:partners.ledger.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 +"Lorsqu'aucun exercice comptable n'est sélectionné, vous devez choisir de " +"filtrer par périodes ou par dates." + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:55 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:57 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:68 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:52 +#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:46 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:63 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:76 +#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:81 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 "" +#: 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 "Pas de comparaison" #. module: account_financial_report_webkit #: model:ir.ui.menu,name:account_financial_report_webkit.menu_account_open_invoices @@ -841,118 +964,115 @@ msgid "Open Invoices" msgstr "Etat des factures ouvertes" #. module: account_financial_report_webkit +#: selection:account.aged.trial.balance.webkit,target_move:0 #: selection:account.common.balance.report,target_move:0 -#: code:addons/account_financial_report_webkit/report/common_reports.py:82 +#: code:addons/account_financial_report_webkit/report/common_reports.py:92 #: 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:print.journal.webkit,target_move:0 #: selection:trial.balance.webkit,target_move:0 #, 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:144 -#, python-format -msgid "Comparison %s" -msgstr "Comparaison %s" +#: field:account.aged.trial.balance.webkit,until_date:0 +#: field:open.invoices.webkit,until_date:0 +msgid "Clearance date" +msgstr "Date d'apurement" #. 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 +#: code:addons/account_financial_report_webkit/report/open_invoices.py:136 +#: code:addons/account_financial_report_webkit/report/partners_ledger.py:119 #, python-format msgid "No accounts to print." msgstr "Aucun compte à imprimer" #. module: account_financial_report_webkit +#: help:account.aged.trial.balance.webkit,fiscalyear_id:0 #: 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:print.journal.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 +#: view:print.journal.webkit:0 msgid "" -"the date of the last reconciliation (full or partial) account move line" +"This report allows you to print or generate a pdf of your print journal with " +"details of all your account journals" msgstr "" -"Date du léttrage le plus récent (total ou partiel) c'est à dire du dernier " -"paiement" +"Ce rapport vous permet d'imprimer ou de générer un pdf de votre journal avec " +"les détails de tous les journeaux des comptes." #. 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 +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:116 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:154 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:119 +#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:93 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:114 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:129 msgid "Credit" msgstr "Crédit" #. module: account_financial_report_webkit +#: selection:account.aged.trial.balance.webkit,filter:0 #: 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:print.journal.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 +#: code:addons/account_financial_report_webkit/report/common_reports.py:395 +#: code:addons/account_financial_report_webkit/report/open_invoices.py:136 +#: code:addons/account_financial_report_webkit/report/partners_ledger.py:119 #, 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 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:159 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:119 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:134 msgid "Balance" msgstr "Solde" #. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:103 +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:112 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 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:175 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:135 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:150 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 "" +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:118 +msgid "Code" +msgstr "Code" #. 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\"! " -msgstr "" +#: code:addons/account_financial_report_webkit/report/common_reports.py:351 +#, python-format +msgid "No period found" +msgstr "Pas de période trouvée" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/partner_balance.py:47 +#: code:addons/account_financial_report_webkit/report/partner_balance.py:54 #: model:ir.actions.act_window,name:account_financial_report_webkit.action_account_partner_balance_menu_webkit #: view:partner.balance.webkit:0 #, python-format @@ -960,53 +1080,51 @@ msgid "Partner Balance" msgstr "Balance des tiers" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/general_ledger.py:146 +#: code:addons/account_financial_report_webkit/report/general_ledger.py:165 #, 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: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 +#: 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:37 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:48 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:33 +#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:28 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:57 +#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:54 msgid "Dates Filter" msgstr "Filtre par date" #. 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 +#: code:addons/account_financial_report_webkit/report/common_reports.py:74 #: selection:general.ledger.webkit,display_account:0 #, 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 +#: selection:account.aged.trial.balance.webkit,filter:0 #: 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 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:46 +#: code:addons/account_financial_report_webkit/wizard/balance_common.py:224 #: 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:partners.ledger.webkit,filter:0 view:print.journal.webkit:0 +#: selection:print.journal.webkit,filter:0 #: selection:trial.balance.webkit,comp0_filter:0 #: selection:trial.balance.webkit,comp1_filter:0 #: selection:trial.balance.webkit,comp2_filter:0 @@ -1016,9 +1134,24 @@ 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 +#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:114 +msgid "Invoice" +msgstr "Facture" + +#. 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 +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:121 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:124 +#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:96 msgid "Curr. Balance" msgstr "Solde Devise" @@ -1028,64 +1161,117 @@ msgid "Journal Items" msgstr "Écritures comptables" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/common_reports.py:416 +#: code:addons/account_financial_report_webkit/report/common_reports.py:481 #, 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 +#: code:addons/account_financial_report_webkit/report/open_invoices.py:201 #, python-format msgid "Unsuported filter" msgstr "Filter non supporté" #. 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:72 #, python-format msgid "All accounts" msgstr "Tout les comptes" #. module: account_financial_report_webkit -#: constraint:account.move.line:0 +#: help:partner.balance.webkit,partner_ids:0 +msgid "" +"Only selected partners will be printed. Leave empty to " +"print all partners." +msgstr "" +"Sélectionnez les partenaires à imprimer ou laissez vide pour les imprimer " +"tous." + +#. module: account_financial_report_webkit +#: help:account.aged.trial.balance.webkit,until_date:0 +#: help:open.invoices.webkit,until_date: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." +"The clearance date is essentially a tool used for debtors\n" +" provisionning calculation.\n" +"\n" +"By default, this date is equal to the the end date (ie: 31/12/2011 if you\n" +"select fy 2011).\n" +"\n" +"By amending the clearance date, you will be, for instance, able to answer " +"the\n" +"question : 'based on my last year end debtors open invoices, which invoices\n" +"are still unpaid today (today is my clearance date)?'\n" msgstr "" +"La date d'apurement est une aide pour le calcul 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 +#: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:160 +#, python-format +msgid "No diagnosis message was provided" +msgstr "Aucun message de diagnostic n'a été fourni" #. 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 +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:98 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:103 msgid "Period" msgstr "Periode" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/common_reports.py:424 +#: code:addons/account_financial_report_webkit/report/common_reports.py:493 #, python-format msgid "No valid filter" msgstr "Pas de filtre valide" #. module: account_financial_report_webkit -#: view:open.invoices.webkit:0 +#: constraint:account.aged.trial.balance.webkit:0 +#: 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 +#: view:partner.balance.webkit:0 view:trial.balance.webkit:0 +msgid "{'required': [('filter', '=', 'filter_opening')]}" +msgstr "" + +#. module: account_financial_report_webkit +#: view:account.aged.trial.balance.webkit:0 view:open.invoices.webkit:0 msgid "Clearance Analysis Options" msgstr "Option d'analyse d'apurement de compte tiers" #. 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 +#: model:ir.model,name:account_financial_report_webkit.model_account_aged_trial_balance_webkit +msgid "Aged partner balanced" +msgstr "Balance âgée des tiers" + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:102 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:107 msgid "Journal" msgstr "Journal" #. module: account_financial_report_webkit +#: field:account.aged.trial.balance.webkit,amount_currency:0 #: field:general.ledger.webkit,amount_currency:0 #: field:open.invoices.webkit,amount_currency:0 #: field:partners.ledger.webkit,amount_currency:0 +#: field:print.journal.webkit,amount_currency:0 msgid "With Currency" msgstr "Avec devise" #. module: account_financial_report_webkit +#: field:account.aged.trial.balance.webkit,result_selection:0 #: field:open.invoices.webkit,result_selection:0 #: field:partner.balance.webkit,result_selection:0 #: field:partners.ledger.webkit,result_selection:0 @@ -1102,72 +1288,76 @@ msgstr "" "(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:39 -#, python-format -msgid "PROFIT AND LOSS" -msgstr "" - -#. module: account_financial_report_webkit +#: field:account.aged.trial.balance.webkit,chart_account_id:0 #: 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 +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:32 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:33 +#: 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:29 +#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:24 +#: 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 +#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:49 #: 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:print.journal.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_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 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:174 +#: 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 +#: field:account.aged.trial.balance.webkit,target_move:0 #: field:account.common.balance.report,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 +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:42 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:44 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:55 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:39 +#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:34 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:50 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:63 +#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:61 #: 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:print.journal.webkit,target_move:0 #: field:trial.balance.webkit,target_move:0 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 +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:49 +#: report:addons/account_financial_report_webkit/report/templates/account_report_open_invoices.mako:51 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:62 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:46 +#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:40 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:57 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:70 +#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:75 msgid "From:" msgstr "Depuis:" #. module: account_financial_report_webkit +#: field:account.aged.trial.balance.webkit,date_to:0 #: 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: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:partners.ledger.webkit,date_to:0 field:print.journal.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 @@ -1176,6 +1366,7 @@ msgid "End Date" msgstr "Date Fin" #. module: account_financial_report_webkit +#: field:account.aged.trial.balance.webkit,period_from:0 #: 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 @@ -1187,17 +1378,22 @@ msgstr "Date Fin" #: field:partner.balance.webkit,comp2_period_from:0 #: field:partner.balance.webkit,period_from:0 #: field:partners.ledger.webkit,period_from:0 +#: field:print.journal.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 "Start Period" +msgstr "Période de début" #. module: account_financial_report_webkit -#: field:open.invoices.webkit,until_date:0 -msgid "Clearance date" -msgstr "Date d'apurement" +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:91 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:85 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:98 +#: code:addons/account_financial_report_webkit/wizard/balance_common.py:174 +#, python-format +msgid "Comparison %s" +msgstr "Comparaison %s" #. module: account_financial_report_webkit #: model:ir.model,name:account_financial_report_webkit.model_partners_ledger_webkit @@ -1205,13 +1401,13 @@ 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 +#: view:account.aged.trial.balance.webkit:0 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 +#: field:account.aged.trial.balance.webkit,fiscalyear_id:0 #: 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 @@ -1219,12 +1415,14 @@ msgstr "Filtre Partenaire" #: 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 +#: 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:34 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:45 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:30 +#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:25 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:41 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:54 +#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:50 #: field:general.ledger.webkit,fiscalyear_id:0 #: field:open.invoices.webkit,fiscalyear_id:0 #: selection:partner.balance.webkit,comp0_filter:0 @@ -1235,6 +1433,7 @@ msgstr "Filtre Partenaire" #: field:partner.balance.webkit,comp2_fiscalyear_id:0 #: field:partner.balance.webkit,fiscalyear_id:0 #: field:partners.ledger.webkit,fiscalyear_id:0 +#: field:print.journal.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 @@ -1246,94 +1445,92 @@ 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 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:78 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:95 msgid "Yes" msgstr "Oui" #. 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" -msgstr "No Comparison" +#: field:account.aged.trial.balance.webkit,detailed_by_invoice:0 +msgid "Detailed by Invoice" +msgstr "Détaillé par facture" #. 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:68 -#: 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/aged_partner_balance.py:102 +#: code:addons/account_financial_report_webkit/report/general_ledger.py:70 +#: code:addons/account_financial_report_webkit/report/open_invoices.py:83 +#: code:addons/account_financial_report_webkit/report/partner_balance.py:71 +#: code:addons/account_financial_report_webkit/report/partners_ledger.py:71 +#: code:addons/account_financial_report_webkit/report/print_journal.py:75 +#: code:addons/account_financial_report_webkit/report/trial_balance.py:71 #, 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 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:54 msgid "Partners Filter" msgstr "Filtre Partenaire" #. 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 +#: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:66 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:79 +#: report:addons/account_financial_report_webkit/report/templates/account_report_print_journal.mako:57 +#: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:74 +#: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:87 #: selection:general.ledger.webkit,display_account:0 #: selection:partner.balance.webkit,display_account:0 +#: selection:print.journal.webkit,display_account:0 #: selection:trial.balance.webkit,display_account:0 msgid "All" msgstr "Tous" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/profit_loss.py:46 -#, python-format -msgid "Profit and Loss" -msgstr "" +#: 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_open_invoices.mako:99 -#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:95 +#: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:96 msgid "No Partner" msgstr "Pas de partenaire" #. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/open_invoices.py:41 +#: code:addons/account_financial_report_webkit/report/open_invoices.py:57 #, 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:58 +#: code:addons/account_financial_report_webkit/report/partners_ledger.py:44 #, python-format msgid "PARTNER LEDGER" msgstr "LIVRE DES TIERS" #. 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/webkit_parser_header_fix.py:162 #, python-format -msgid "All Entries" -msgstr "Ecritures validées + brouillon" +msgid "The following diagnosis message was provided:\n" +msgstr "Le message de diagnostic suivant a été fourni :\n" #. module: account_financial_report_webkit -#: sql_constraint:account.move.line:0 -msgid "Wrong credit or debit value in accounting entry !" +#: constraint:account.common.balance.report:0 +#: constraint:general.ledger.webkit:0 constraint:partner.balance.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 "" +"Lorsqu'aucun exercice comptable n'est sélectionné, vous devez choisir de " +"filtrer par périodes ou par dates." + +#. module: account_financial_report_webkit +#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:188 +msgid "Total" +msgstr "Total" #. module: account_financial_report_webkit #: field:account.common.balance.report,comp0_filter:0 @@ -1346,4 +1543,4 @@ msgstr "" #: field:trial.balance.webkit,comp1_filter:0 #: field:trial.balance.webkit,comp2_filter:0 msgid "Compare By" -msgstr "Compare By" +msgstr "Comparer Par" diff --git a/account_financial_report_webkit/report/aged_partner_balance.py b/account_financial_report_webkit/report/aged_partner_balance.py index 721b787e..5056828c 100644 --- a/account_financial_report_webkit/report/aged_partner_balance.py +++ b/account_financial_report_webkit/report/aged_partner_balance.py @@ -113,7 +113,8 @@ class AccountAgedTrialBalanceWebkit(PartnersOpenInvoicesWebkit): return RANGES_TITLES def set_context(self, objects, data, ids, report_type=None): - """Populate aged_lines, aged_balance, aged_percents attributes + """Populate aged_lines, aged_lines_by_invoice, aged_balance, + aged_percents attributes on each account browse record that will be used by mako template The browse record are store in :attr:`objects` @@ -134,17 +135,23 @@ class AccountAgedTrialBalanceWebkit(PartnersOpenInvoicesWebkit): ids, report_type=report_type ) - + self.localcontext.update({ + 'aging_method': data['form']['aging_method'] + }) for acc in self.objects: acc.aged_lines = {} + acc.aged_lines_by_invoice = {} acc.agged_totals = {} acc.agged_percents = {} for part_id, partner_lines in acc.ledger_lines.items(): - aged_lines = self.compute_aged_lines(part_id, - partner_lines, - data) - if aged_lines: - acc.aged_lines[part_id] = aged_lines + partner_aged_lines, invoice_aged_lines = \ + self.compute_aged_lines(part_id, + partner_lines, + data) + if partner_aged_lines: + acc.aged_lines[part_id] = partner_aged_lines + if data['form']['detailed_by_invoice']: + acc.aged_lines_by_invoice[part_id] = invoice_aged_lines acc.aged_totals = totals = self.compute_totals( acc.aged_lines.values()) acc.aged_percents = self.compute_percents(totals) @@ -161,26 +168,58 @@ class AccountAgedTrialBalanceWebkit(PartnersOpenInvoicesWebkit): :param ledger_lines: generated by parent :class:`.open_invoices.PartnersOpenInvoicesWebkit` - :returns: dict of computed aged lines + :returns: + - dict of computed aged lines eg {'balance': 1000.0, - 'aged_lines': {(90, 120): 0.0, ...} - + 'aged_lines': {(90, 120): 0.0, ...} + } + - dict of computed aged lines by invoice + eg {'SAJ/2015/003': {'balance: 700.0 + 'aged_lines': {(90, 120): 0.0, ...}, + 'SAJ/2015/004': {'balance: 300.0 + 'aged_lines': {(90, 120): 300.0, ...}, + } """ + detailed_by_invoice = data['form']['detailed_by_invoice'] + aging_method = data['form']['aging_method'] + lines_to_age = self.filter_lines(partner_id, ledger_lines) - res = {} + res_by_partner = {} + res_by_invoice = {} end_date = self._get_end_date(data) - aged_lines = dict.fromkeys(RANGES, 0.0) + partner_aged_lines = dict.fromkeys(RANGES, 0.0) reconcile_lookup = self.get_reconcile_count_lookup(lines_to_age) - res['aged_lines'] = aged_lines + res_by_partner['aged_lines'] = partner_aged_lines + for line in lines_to_age: compute_method = self.get_compute_method(reconcile_lookup, partner_id, - line) + line, + aging_method) delay = compute_method(line, end_date, ledger_lines) classification = self.classify_line(partner_id, delay) - aged_lines[classification] += line['debit'] - line['credit'] - self.compute_balance(res, aged_lines) - return res + amount = line['debit'] - line['credit'] + partner_aged_lines[classification] += amount + + # Populate the aged_lines_by_invoice dictionary if the option has + # been chosen in the wizard + if detailed_by_invoice: + invoice = line['invoice_number'] + if invoice not in res_by_invoice: + res_by_invoice[invoice] = { + 'aged_lines': dict.fromkeys(RANGES, 0.0), + } + res_by_invoice[invoice][ + 'aged_lines'][classification] += amount + + if detailed_by_invoice: + for invoice in res_by_invoice: + self.compute_balance( + res_by_invoice[invoice], + res_by_invoice[invoice]['aged_lines'] + ) + self.compute_balance(res_by_partner, partner_aged_lines) + return res_by_partner, res_by_invoice def _get_end_date(self, data): """Retrieve end date to be used to compute delay. @@ -286,7 +325,8 @@ class AccountAgedTrialBalanceWebkit(PartnersOpenInvoicesWebkit): reference_line, end_date) - def get_compute_method(self, reconcile_lookup, partner_id, line): + def get_compute_method(self, reconcile_lookup, partner_id, line, + aging_method): """Get the function that should compute the delay for a given line :param reconcile_lookup: dict of reconcile group by id and count @@ -300,7 +340,8 @@ class AccountAgedTrialBalanceWebkit(PartnersOpenInvoicesWebkit): """ if reconcile_lookup.get(line['rec_id'], 0.0) > 1: return self.compute_delay_from_partial_rec - elif line['jtype'] in INV_TYPE and line.get('date_maturity'): + elif line['jtype'] in INV_TYPE and line.get('date_maturity') \ + and aging_method == 'due_date': return self.compute_delay_from_maturity else: return self.compute_delay_from_date diff --git a/account_financial_report_webkit/report/templates/aged_trial_webkit.mako b/account_financial_report_webkit/report/templates/aged_trial_webkit.mako index 930ca77c..cfb55463 100644 --- a/account_financial_report_webkit/report/templates/aged_trial_webkit.mako +++ b/account_financial_report_webkit/report/templates/aged_trial_webkit.mako @@ -48,6 +48,7 @@
${_('Chart of Account')}
${_('Fiscal Year')}
+
${_('Aged From')}
%if filter_form(data) == 'filter_date': ${_('Dates Filter')} @@ -63,6 +64,13 @@
${ chart_account.name }
${ fiscalyear.name if fiscalyear else '-' }
+
+ %if aging_method == 'due_date': + ${_('Due Date')} + %else: + ${_('Invoice Date')} + %endif +
${_('From:')} %if filter_form(data) == 'filter_date': @@ -101,6 +109,10 @@
${_('Partner')}
## code
${_('code')}
+ ## invoice for detailed reports + %if acc.aged_lines_by_invoice: +
${_('Invoice')}
+ %endif ## balance
${_('balance')}
## Classifications @@ -110,27 +122,74 @@
- %for partner_name, p_id, p_ref, p_name in acc.partners_order: - %if acc.aged_lines.get(p_id): -
- <%line = acc.aged_lines[p_id]%> - <%percents = acc.aged_percents%> - <%totals = acc.aged_totals%> -
${partner_name}
-
${p_ref or ''}
+ %if not acc.aged_lines_by_invoice: + %for partner_name, p_id, p_ref, p_name in acc.partners_order: + %if acc.aged_lines.get(p_id): +
+ <%line = acc.aged_lines[p_id]%> + <%percents = acc.aged_percents%> + <%totals = acc.aged_totals%> +
${partner_name}
+
${p_ref or ''}
-
${formatLang(line.get('balance') or 0.0) | amount}
- %for classif in ranges: -
- ${formatLang(line['aged_lines'][classif] or 0.0) | amount} -
- %endfor -
- %endif - %endfor +
${formatLang(line.get('balance') or 0.0) | amount}
+ %for classif in ranges: +
+ ${formatLang(line['aged_lines'][classif] or 0.0) | amount} +
+ %endfor +
+ %endif + %endfor + %else: + %for partner_name, p_id, p_ref, p_name in acc.partners_order: + %if acc.aged_lines.get(p_id): +
+ <%line = acc.aged_lines[p_id]%> + <%percents = acc.aged_percents%> + <%totals = acc.aged_totals%> +
${partner_name}
+
${p_ref or ''}
+
+
+ %for classif in ranges: +
+ %endfor +
+ %for invoice in acc.aged_lines_by_invoice[p_id]: + <%invoice_line = acc.aged_lines_by_invoice[p_id][invoice]%> +
+
+
+
${invoice}
+
${formatLang(invoice_line.get('balance') or 0.0) | amount}
+ %for classif in ranges: +
+ ${formatLang(invoice_line['aged_lines'][classif] or 0.0) | amount} +
+ %endfor +
+ %endfor +
+
+
+
Total
+
${formatLang(line.get('balance') or 0.0) | amount}
+ %for classif in ranges: +
+ ${formatLang(line['aged_lines'][classif] or 0.0) | amount} +
+ %endfor +
+ %endif + %endfor + %endif
${_('Total')}
+ %if acc.aged_lines_by_invoice: +
+ %endif
${formatLang(totals['balance']) | amount}
%for classif in ranges:
${formatLang(totals[classif]) | amount}
@@ -140,6 +199,9 @@
${_('Percents')}
+ %if acc.aged_lines_by_invoice: +
+ %endif
%for classif in ranges:
${formatLang(percents[classif]) | amount}%
diff --git a/account_financial_report_webkit/wizard/aged_partner_balance_wizard.py b/account_financial_report_webkit/wizard/aged_partner_balance_wizard.py index a3126489..91751684 100644 --- a/account_financial_report_webkit/wizard/aged_partner_balance_wizard.py +++ b/account_financial_report_webkit/wizard/aged_partner_balance_wizard.py @@ -18,7 +18,7 @@ # along with this program. If not, see . # ############################################################################## -from openerp.osv import orm +from openerp.osv import orm, fields class AccountAgedTrialBalance(orm.TransientModel): @@ -31,6 +31,36 @@ class AccountAgedTrialBalance(orm.TransientModel): _name = "account.aged.trial.balance.webkit" _description = "Aged partner balanced" + _columns = { + 'detailed_by_invoice': fields.boolean( + "Detailed by Invoice", + help="Provide an aged partner balance report with invoice " + "details" + ), + 'aging_method': fields.selection( + [('due_date', 'Due Date'), + ('invoice_date', 'Invoice Date')], + 'Aged from', + required=True + ), + } + + _defaults = { + 'aging_method': 'due_date', + } + + def pre_print_report(self, cr, uid, ids, data, context=None): + data = super(AccountAgedTrialBalance, self).pre_print_report( + cr, uid, ids, data, 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, + ['detailed_by_invoice', + 'aging_method'], + context=context)[0] + data['form'].update(vals) + return data + def _print_report(self, cr, uid, ids, data, context=None): # we update form with display account value data = self.pre_print_report(cr, uid, ids, data, context=context) diff --git a/account_financial_report_webkit/wizard/aged_partner_balance_wizard.xml b/account_financial_report_webkit/wizard/aged_partner_balance_wizard.xml index 2d0d7273..9baa5e73 100644 --- a/account_financial_report_webkit/wizard/aged_partner_balance_wizard.xml +++ b/account_financial_report_webkit/wizard/aged_partner_balance_wizard.xml @@ -18,9 +18,13 @@ 4 + + + + From d441b259be8a8b59c6c72b71d9aee0607b2e7c82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Agathe=20Moll=C3=A9?= Date: Fri, 11 Sep 2015 15:47:14 -0400 Subject: [PATCH 002/186] [FIX] Change aged partner balance column names --- .../i18n/account_financial_report_webkit.pot | 40 ++++++--------- account_financial_report_webkit/i18n/fr.po | 49 ++++++++++--------- .../report/aged_partner_balance.py | 4 +- .../report/templates/aged_trial_webkit.mako | 4 +- 4 files changed, 45 insertions(+), 52 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 b451862f..f65bb7eb 100644 --- a/account_financial_report_webkit/i18n/account_financial_report_webkit.pot +++ b/account_financial_report_webkit/i18n/account_financial_report_webkit.pot @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: OpenERP Server 7.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-09-04 20:19+0000\n" -"PO-Revision-Date: 2015-09-04 20:19+0000\n" +"POT-Creation-Date: 2015-09-11 19:21+0000\n" +"PO-Revision-Date: 2015-09-11 19:21+0000\n" "Last-Translator: <>\n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -211,12 +211,6 @@ msgstr "" msgid "Webkit render" msgstr "" -#. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/aged_partner_balance.py:53 -#, python-format -msgid "Overdue ≤ %s d." -msgstr "" - #. module: account_financial_report_webkit #: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:216 #, python-format @@ -627,11 +621,6 @@ msgstr "" msgid "Cumul. Bal." msgstr "" -#. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:117 -msgid "balance" -msgstr "" - #. module: account_financial_report_webkit #: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:23 #: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:39 @@ -767,11 +756,6 @@ msgstr "" msgid "No" msgstr "" -#. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:111 -msgid "code" -msgstr "" - #. module: account_financial_report_webkit #: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:101 #: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:95 @@ -779,12 +763,6 @@ msgstr "" msgid "Initial Balance:" msgstr "" -#. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/aged_partner_balance.py:52 -#, python-format -msgid "Due" -msgstr "" - #. module: account_financial_report_webkit #: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:170 #: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:130 @@ -1012,6 +990,7 @@ msgstr "" #: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:159 #: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:119 #: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:134 +#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:117 msgid "Balance" msgstr "" @@ -1029,6 +1008,7 @@ msgstr "" #. module: account_financial_report_webkit #: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:118 +#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:111 msgid "Code" msgstr "" @@ -1142,6 +1122,12 @@ msgstr "" msgid "All accounts" msgstr "" +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/aged_partner_balance.py:52 +#, python-format +msgid "Current" +msgstr "" + #. module: account_financial_report_webkit #: help:partner.balance.webkit,partner_ids:0 msgid "Only selected partners will be printed. Leave empty to print all partners." @@ -1439,6 +1425,12 @@ msgstr "" 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 +#: code:addons/account_financial_report_webkit/report/aged_partner_balance.py:53 +#, python-format +msgid "Age ≤ %s d." +msgstr "" + #. module: account_financial_report_webkit #: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:96 msgid "No Partner" diff --git a/account_financial_report_webkit/i18n/fr.po b/account_financial_report_webkit/i18n/fr.po index 9e208959..071af222 100644 --- a/account_financial_report_webkit/i18n/fr.po +++ b/account_financial_report_webkit/i18n/fr.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: OpenERP Server 7.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-09-04 20:19+0000\n" -"PO-Revision-Date: 2015-09-04 16:22-0500\n" +"POT-Creation-Date: 2015-09-11 19:21+0000\n" +"PO-Revision-Date: 2015-09-11 15:27-0500\n" "Last-Translator: Agathe Mollé \n" "Language-Team: \n" "Language: fr\n" @@ -218,12 +218,6 @@ msgstr "Rapport de balance des tiers" msgid "Webkit render" msgstr "Rendu Webkit" -#. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/aged_partner_balance.py:53 -#, python-format -msgid "Overdue ≤ %s d." -msgstr "Retard ≤ %s j." - #. module: account_financial_report_webkit #: code:addons/account_financial_report_webkit/report/webkit_parser_header_fix.py:216 #, python-format @@ -638,11 +632,6 @@ msgstr "" msgid "Cumul. Bal." msgstr "Solde Cumul." -#. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:117 -msgid "balance" -msgstr "Solde" - #. module: account_financial_report_webkit #: report:addons/account_financial_report_webkit/report/templates/account_report_general_ledger.mako:23 #: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:39 @@ -784,11 +773,6 @@ msgstr "Regrouper les partenaires par devise" msgid "No" msgstr "Non" -#. module: account_financial_report_webkit -#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:111 -msgid "code" -msgstr "Code" - #. module: account_financial_report_webkit #: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:101 #: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:95 @@ -796,12 +780,6 @@ msgstr "Code" msgid "Initial Balance:" msgstr "Solde à nouveau:" -#. module: account_financial_report_webkit -#: code:addons/account_financial_report_webkit/report/aged_partner_balance.py:52 -#, python-format -msgid "Due" -msgstr "En attente" - #. module: account_financial_report_webkit #: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:170 #: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:130 @@ -1045,6 +1023,7 @@ msgstr "Erreur" #: report:addons/account_financial_report_webkit/report/templates/account_report_partner_balance.mako:159 #: report:addons/account_financial_report_webkit/report/templates/account_report_profit_loss.mako:119 #: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:134 +#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:117 msgid "Balance" msgstr "Solde" @@ -1062,6 +1041,7 @@ msgstr "% Différence" #. module: account_financial_report_webkit #: report:addons/account_financial_report_webkit/report/templates/account_report_trial_balance.mako:118 +#: report:addons/account_financial_report_webkit/report/templates/aged_trial_webkit.mako:111 msgid "Code" msgstr "Code" @@ -1178,6 +1158,12 @@ msgstr "Filter non supporté" msgid "All accounts" msgstr "Tout les comptes" +#. module: account_financial_report_webkit +#: code:addons/account_financial_report_webkit/report/aged_partner_balance.py:52 +#, python-format +msgid "Current" +msgstr "Courant" + #. module: account_financial_report_webkit #: help:partner.balance.webkit,partner_ids:0 msgid "" @@ -1493,6 +1479,12 @@ msgid "" "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 +#: code:addons/account_financial_report_webkit/report/aged_partner_balance.py:53 +#, python-format +msgid "Age ≤ %s d." +msgstr "Âge ≤ %s j." + #. module: account_financial_report_webkit #: report:addons/account_financial_report_webkit/report/templates/account_report_partners_ledger.mako:96 msgid "No Partner" @@ -1544,3 +1536,12 @@ msgstr "Total" #: field:trial.balance.webkit,comp2_filter:0 msgid "Compare By" msgstr "Comparer Par" + +#~ msgid "balance" +#~ msgstr "Solde" + +#~ msgid "code" +#~ msgstr "Code" + +#~ msgid "Due" +#~ msgstr "En attente" diff --git a/account_financial_report_webkit/report/aged_partner_balance.py b/account_financial_report_webkit/report/aged_partner_balance.py index 5056828c..fa0110b3 100644 --- a/account_financial_report_webkit/report/aged_partner_balance.py +++ b/account_financial_report_webkit/report/aged_partner_balance.py @@ -49,8 +49,8 @@ RANGES = make_ranges(120, 30) def make_ranges_titles(): """Generates title to be used by mako""" - titles = [_('Due')] - titles += [_(u'Overdue ≤ %s d.') % x[1] for x in RANGES[1:-1]] + titles = [_('Current')] + titles += [_(u'Age ≤ %s d.') % x[1] for x in RANGES[1:-1]] titles.append(_('Older')) return titles diff --git a/account_financial_report_webkit/report/templates/aged_trial_webkit.mako b/account_financial_report_webkit/report/templates/aged_trial_webkit.mako index cfb55463..3ce44c32 100644 --- a/account_financial_report_webkit/report/templates/aged_trial_webkit.mako +++ b/account_financial_report_webkit/report/templates/aged_trial_webkit.mako @@ -108,13 +108,13 @@ ## partner
${_('Partner')}
## code -
${_('code')}
+
${_('Code')}
## invoice for detailed reports %if acc.aged_lines_by_invoice:
${_('Invoice')}
%endif ## balance -
${_('balance')}
+
${_('Balance')}
## Classifications %for title in ranges_titles:
${title}
From c4a557f4d1e28284e1040fa9d8e0caee79fed965 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Bidoul?= Date: Fri, 18 Jul 2014 16:44:17 +0200 Subject: [PATCH 003/186] [ADD] mis_builder: a module to build "Management Information System"-style reports Such reports combine accounting and operational data. This initial commit is a first proof-of-concept prototype. --- mis_builder/__init__.py | 24 ++ mis_builder/__openerp__.py | 53 +++ mis_builder/models/__init__.py | 24 ++ mis_builder/models/mis_builder.py | 466 ++++++++++++++++++++++ mis_builder/security/ir.model.access.csv | 1 + mis_builder/static/src/img/icon.png | Bin 0 -> 3464 bytes mis_builder/static/src/js/mis_builder.js | 26 ++ mis_builder/static/src/xml/mis_widget.xml | 18 + mis_builder/views/mis_builder.xml | 158 ++++++++ 9 files changed, 770 insertions(+) create mode 100644 mis_builder/__init__.py create mode 100644 mis_builder/__openerp__.py create mode 100644 mis_builder/models/__init__.py create mode 100644 mis_builder/models/mis_builder.py create mode 100644 mis_builder/security/ir.model.access.csv create mode 100644 mis_builder/static/src/img/icon.png create mode 100644 mis_builder/static/src/js/mis_builder.js create mode 100644 mis_builder/static/src/xml/mis_widget.xml create mode 100644 mis_builder/views/mis_builder.xml diff --git a/mis_builder/__init__.py b/mis_builder/__init__.py new file mode 100644 index 00000000..db1c497e --- /dev/null +++ b/mis_builder/__init__.py @@ -0,0 +1,24 @@ +#============================================================================== +# = +# mis_builder module for OpenERP, Management Information System Builder +# Copyright (C) 2014 ACSONE SA/NV () +# = +# This file is a part of mis_builder +# = +# mis_builder is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License v3 or later +# as published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# = +# mis_builder 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 v3 or later for more details. +# = +# You should have received a copy of the GNU Affero General Public License +# v3 or later along with this program. +# If not, see . +# = +#============================================================================== + +import models diff --git a/mis_builder/__openerp__.py b/mis_builder/__openerp__.py new file mode 100644 index 00000000..097d261c --- /dev/null +++ b/mis_builder/__openerp__.py @@ -0,0 +1,53 @@ +#============================================================================== +# = +# mis_builder module for OpenERP, Management Information System Builder +# Copyright (C) 2014 ACSONE SA/NV () +# = +# This file is a part of mis_builder +# = +# mis_builder is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License v3 or later +# as published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# = +# mis_builder 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 v3 or later for more details. +# = +# You should have received a copy of the GNU Affero General Public License +# v3 or later along with this program. +# If not, see . +# = +#============================================================================== +{ + 'name': 'mis builder', + 'version': '0.1', + 'category': 'Reporting', + 'description': """ + Management Information System Builder + """, + 'author': 'ACSONE SA/NV', + 'website': 'http://acsone.eu', + 'depends': ['account'], + 'data': [ + 'views/mis_builder.xml', + ], + 'test': [ + ], + 'demo': [ + ], + 'js': [ + 'static/src/js/*.js' + ], + 'qweb': [ + 'static/src/xml/*.xml' + ], + 'css': [ + 'static/src/css/*.css' + ], + 'installable': True, + 'application': True, + 'auto_install': False, + 'license': 'AGPL-3', +} diff --git a/mis_builder/models/__init__.py b/mis_builder/models/__init__.py new file mode 100644 index 00000000..4d7f1bd5 --- /dev/null +++ b/mis_builder/models/__init__.py @@ -0,0 +1,24 @@ +#============================================================================== +# = +# mis_builder module for OpenERP, Management Information System Builder +# Copyright (C) 2014 ACSONE SA/NV () +# = +# This file is a part of mis_builder +# = +# mis_builder is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License v3 or later +# as published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# = +# mis_builder 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 v3 or later for more details. +# = +# You should have received a copy of the GNU Affero General Public License +# v3 or later along with this program. +# If not, see . +# = +#============================================================================== + +import mis_builder diff --git a/mis_builder/models/mis_builder.py b/mis_builder/models/mis_builder.py new file mode 100644 index 00000000..8d5a0f6e --- /dev/null +++ b/mis_builder/models/mis_builder.py @@ -0,0 +1,466 @@ +# vim: set fileencoding=utf-8 : +#============================================================================== +# = +# mis_builder module for OpenERP, Management Information System Builder +# Copyright (C) 2014 ACSONE SA/NV () +# = +# This file is a part of mis_builder +# = +# mis_builder is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License v3 or later +# as published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# = +# mis_builder 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 v3 or later for more details. +# = +# You should have received a copy of the GNU Affero General Public License +# v3 or later along with this program. +# If not, see . +# = +#============================================================================== + +from datetime import datetime, timedelta +from dateutil import parser +import traceback +from lxml import etree + +from openerp.osv import orm, fields +from openerp.tools.safe_eval import safe_eval +from openerp.tools.translate import _ +from openerp import tools + + +class AutoStruct(object): + + def __init__(self, **kwargs): + for k, v in kwargs.items(): + setattr(self, k, v) + + +def _get_selection_label(selection, value): + for v, l in selection: + if v == value: + return l + return '' + + +class mis_report_kpi(orm.Model): + """ A KPI is an element of a MIS report. + + In addition to a name and description, it has an expression + to compute it based on queries defined in the MIS report. + It also has various informations defining how to render it + (numeric or percentage or a string, a suffix, divider) and + how to render comparison of two values of the KPI. + KPI are ordered inside the MIS report, as some KPI expressions + can depend on other KPI that need to be computed before. + """ + + _name = 'mis.report.kpi' + + _columns = { + 'name': fields.char(size=32, required=True, + string='Name'), + 'description': fields.char(required=True, + string='Description', + translate=True), + 'expression': fields.char(required=True, + string='Expression'), + 'type': fields.selection([('num', _('Numeric')), + ('pct', _('Percentage')), + ('str', _('String'))], + required=True, + string='Type'), + 'divider': fields.selection([('1e-6', _('µ')), + ('1e-3', _('m')), + ('1e3', _('k')), + ('1e6', _('M'))], + string='Factor'), + 'dp': fields.integer(string='Rounding'), + 'suffix': fields.char(size=16, string='Unit'), + 'compare_method': fields.selection([('diff', _('Difference')), + ('pct', _('Percentage')), + ('none', _('None'))], + required=True, + string='Comparison Method'), + 'sequence': fields.integer(string='Sequence'), + 'report_id': fields.many2one('mis.report', string='Report'), + } + + _defaults = { + 'type': 'num', + 'divider': '1', + 'dp': 0, + 'compare_method': 'pct', + } + + _order = 'sequence' + + # TODO: constraint to check name is a valid python identifier + # TODO: onchange type pct -> force comparison method = diff + # TODO: onchange type str -> divider, dp, suffix, compare_method read only + + def _render(self, kpi, value): + """ render a KPI value as a unicode string, ready for display """ + if kpi.type == 'num': + return self._render_num(value, + kpi.divider, kpi.dp, kpi.suffix) + elif kpi.type == 'pct': + return self._render_num(value, + 100, kpi.dp, '%') + else: + return unicode(value) + + def _render_comparison(self, kpi, value, base_value): + """ render the comparison of two KPI values, ready for display """ + if value is None or base_value is None: + return '' + if kpi.type == 'pct': + return self._render_num(value - base_value, + 0.01, kpi.dp, _('pp'), + sign='+') + elif kpi.type == 'num': + if kpi.compare_method == 'diff': + return self._render_num(value - base_value, + kpi.divider, kpi.dp, kpi.suffix, + sign='+') + elif kpi.compare_method == 'pct' and base_value != 0: + return self._render_num(value / base_value - base_value, + 0.01, kpi.dp, '%', + sign='+') + return '' + + def _render_num(self, value, divider, dp, suffix, sign='-'): + divider_label = _get_selection_label( + self._columns['divider'].selection, divider) + fmt = '{:%s,.%df}%s%s' % (sign, dp, divider_label, suffix or '') + value = round(value / float(divider or 1), dp) or 0 + return fmt.format(value) + + +class mis_report_query(orm.Model): + """ A query to fetch data for a MIS report. + + A query works on a model and has a domain and list of fields to fetch. + At runtime, the domain is expanded with a "and" on the date/datetime field. + """ + + _name = 'mis.report.query' + + _columns = { + 'name': fields.char(size=32, required=True, + string='Name'), + 'model_id': fields.many2one('ir.model', required=True, + string='Model'), + 'field_ids': fields.many2many('ir.model.fields', required=True, + string='Fields to fetch'), + 'date_field': fields.many2one('ir.model.fields', required=True, + string='Date field', + domain=[('ttype', 'in', ('date', 'datetime'))]), + 'domain': fields.char(string='Domain'), + 'report_id': fields.many2one('mis.report', string='Report'), + } + + _order = 'name' + + +class mis_report(orm.Model): + """ A MIS report template (without period information) + + The MIS report holds: + * an implicit query fetching allow the account balances; + for each account, the balance is stored in a variable named + bal_{code} where {code} is the account code + * a list of explicit queries; the result of each query is + stored in a variable with same name as a query, containing as list + of data structures populated with attributes for each fields to fetch + * a list of KPI to be evaluated based on the variables resulting + from the balance and queries + """ + + _name = 'mis.report' + + _columns = { + 'name': fields.char(size=32, required=True, + string='Name', translate=True), + 'description': fields.char(required=False, + string='Description', translate=True), + 'query_ids': fields.one2many('mis.report.query', 'report_id', + string='Queries'), + 'kpi_ids': fields.one2many('mis.report.kpi', 'report_id', + string='KPI\'s'), + } + + +class mis_report_instance_period(orm.Model): + """ A MIS report instance has the logic to compute + a report template for a give date period. + + Periods have a duration (day, week, fiscal period) and + are defined as an offset relative to a pivot date. + """ + + def _get_dates(self, cr, uid, ids, field_names, arg, context=None): + if isinstance(ids, (int, long)): + ids = [ids] + res = {} + for c in self.browse(cr, uid, ids, context=context): + d = parser.parse(c.report_instance_id.pivot_date) + if c.type == 'd': + date_from = d + timedelta(days=c.offset) + date_to = date_from + timedelta(days=c.duration - 1) + date_from = date_from.strftime(tools.DEFAULT_SERVER_DATE_FORMAT) + date_to = date_to.strftime(tools.DEFAULT_SERVER_DATE_FORMAT) + period_ids = None + elif c.type == 'w': + date_from = d - timedelta(d.weekday()) + date_from = date_from + timedelta(days=c.offset * 7) + date_to = date_from + timedelta(days=(7 * c.duration) - 1) + date_from = date_from.strftime(tools.DEFAULT_SERVER_DATE_FORMAT) + date_to = date_to.strftime(tools.DEFAULT_SERVER_DATE_FORMAT) + period_ids = None + elif c.type == 'fp': + # TODO: filter on company_id + # TODO: date! + period_obj = self.pool['account.period'] + all_period_ids = period_obj.search(cr, uid, + [('special', '=', False)], + order='date_start', + context=context) + current_period_ids = period_obj.search(cr, uid, + [('special', '=', False), + ('date_start', '<=', d), + ('date_stop', '>=', d)], + context=context) + if not current_period_ids: + raise orm.except_orm(_("Error!"), + _("No current fiscal period for %s") % d) + p = all_period_ids.index(current_period_ids[0]) + c.offset + if p < 0 or p >= len(all_period_ids): + raise orm.except_orm(_("Error!"), + _("No such fiscal period for %s " + "with offset %d") % (d, c.offset)) + period_ids = all_period_ids[p:p + c.duration] + periods = period_obj.browse(cr, uid, period_ids, + context=context) + date_from = periods[0].date_start + date_to = periods[-1].date_stop + else: + raise orm.except_orm(_("Error!"), + _("Unimplemented period type %s") % + (c.type,)) + res[c.id] = { + 'date_from': date_from, + 'date_to': date_to, + 'period_from': period_ids and period_ids[0], + 'period_to': period_ids and period_ids[-1], + } + return res + + _name = 'mis.report.instance.period' + + _columns = { + 'name': fields.char(size=32, required=True, + string='Name', translate=True), + 'type': fields.selection([('d', _('Day')), + ('w', _('Week')), + ('fp', _('Fiscal Period')), + # ('fy', _('Fiscal Year')) + ], + required=True, + string='Period type'), + 'offset': fields.integer(string='Offset', + help='Offset from current period'), + 'duration': fields.integer(string='Duration', + help='Number of periods'), + 'date_from': fields.function(_get_dates, + type='date', + multi="dates", + string="From"), + 'date_to': fields.function(_get_dates, + type='date', + multi="dates", + string="To"), + 'period_from': fields.function(_get_dates, + type='many2one', obj='account.period', + multi="dates", string="From period"), + 'period_to': fields.function(_get_dates, + type='many2one', obj='account.period', + multi="dates", string="To period"), + 'sequence': fields.integer(string='Sequence'), + 'report_instance_id': fields.many2one('mis.report.instance', + string='Report Instance'), + } + + _defaults = { + 'offset':-1, + 'duration': 1, + } + + _order = 'sequence' + + # TODO: constraint duration >= 1 + + def _fetch_balances(self, cr, uid, c, context=None): + """ fetch the general account balances for the given period + + returns a dictionary {bal_: account.balance} + """ + account_obj = self.pool['account.account'] + + search_ctx = dict(context) + if c.period_from: + search_ctx.update({'period_from': c.period_from, + 'period_to': c.period_to}) + else: + search_ctx.update({'date_from': c.date_from, + 'date_to': c.date_to}) + + # TODO: initial balance? + # TODO: draft or posted? + account_ids = account_obj.search(cr, uid, []) + account_datas = account_obj.read(cr, uid, account_ids, + ['code', 'balance'], + context=search_ctx) + balances = {} + + for account_data in account_datas: + # TODO: normalize code (strip special chars) + # TODO: company_id in key + key = 'bal_' + account_data['code'] + assert key not in balances + balances[key] = account_data['balance'] + + return balances + + def _fetch_queries(self, cr, uid, c, context): + res = {} + + report = c.report_instance_id.report_id + for query in report.query_ids: + obj = self.pool[query.model_id.model] + domain = query.domain and safe_eval(query.domain) or [] + if query.date_field.ttype == 'date': + domain.extend([(query.date_field.name, '>=', c.date_from), + (query.date_field.name, '<=', c.date_to)]) + else: + # TODO: datetime support (convert date to utc midnight) + # datetime_from = utc_midnight(date_from) + # datetime_to = utc_midnight(date_to + 1) + # domain.extend([(query.date_field.name, '>=', datetime_from), + # (query.date_field.name, '<', datetime_to)]) + raise orm.except_orm(_('Error!'), _('Not implemented')) + field_names = [field.name for field in query.field_ids] + obj_ids = obj.search(cr, uid, domain, + context=context) + obj_datas = obj.read(cr, uid, obj_ids, field_names, + context=context) + res[query.name] = [AutoStruct(**d) for d in obj_datas] + + return res + + def _compute(self, cr, uid, c, context=None): + if context is None: + context = {} + + kpi_obj = self.pool['mis.report.kpi'] + + res = {} + + localdict = { + 'registry': self.pool, + 'sum': sum, + 'min': min, + 'max': max, + 'len': len, + 'avg': lambda l: sum(l) / float(len(l)), + } + localdict.update(self._fetch_balances(cr, uid, c, context=context)) + localdict.update(self._fetch_queries(cr, uid, c, context=context)) + + for kpi in c.report_instance_id.report.kpi_ids: + try: + kpi_val = safe_eval(kpi.expression, localdict) + except ZeroDivisionError: + kpi_val = None + kpi_val_rendered = '#DIV/0' + kpi_val_comment = traceback.format_exc() + except: + kpi_val = None + kpi_val_rendered = '#ERR' + kpi_val_comment = traceback.format_exc() + else: + kpi_val_rendered = kpi_obj._render(kpi, kpi_val) + kpi_val_comment = None + + localdict[kpi.name] = kpi_val + + res[kpi.name] = { + 'val': kpi_val, + 'val_r': kpi_val_rendered, + 'val_c': kpi_val_comment, + } + + return res + + +class mis_report_instance(orm.Model): + """ The MIS report instance combines compute and + display a MIS report template for a set of periods """ + + # TODO: mechanism to add comparison columns + + def _get_pivot_date(self, cr, uid, ids, field_name, arg, context=None): + res = {} + for r in self.browse(cr, uid, ids, context=context): + if r.date: + res[r.id] = r.date + else: + res[r.id] = fields.date.context_today(self, cr, uid, + context=context) + return res + + _name = 'mis.report.instance' + + _columns = { + 'name': fields.char(size=32, required=True, + string='Name', translate=True), + 'description': fields.char(required=False, + string='Description', translate=True), + 'date': fields.date(string='Base date', + help='Report base date ' + '(leave empty to use current date)'), + 'pivot_date': fields.function(_get_pivot_date, + type='date', + string="Pivot date"), + 'report_id': fields.many2one('mis.report', + required=True, + string='Report'), + 'period_ids': fields.one2many('mis.report.instance.period', + 'report_instance_id', + required=True, + string='Periods'), + } + + def compute(self, cr, uid, _ids, context=None): + assert isinstance(_ids, (int, long)) + + r = self.browse(cr, uid, _ids, context=context) + + res = {} + + rows = [] + for kpi in r.report_id.kpi_ids: + rows.append(dict(name=kpi.name, + description=kpi.description)) + res['rows'] = rows + + cols = [] + for period in r.period_ids: + col = dict(name=period.name) + res['cols'] = cols + + return res diff --git a/mis_builder/security/ir.model.access.csv b/mis_builder/security/ir.model.access.csv new file mode 100644 index 00000000..8d4ee863 --- /dev/null +++ b/mis_builder/security/ir.model.access.csv @@ -0,0 +1 @@ +"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink" diff --git a/mis_builder/static/src/img/icon.png b/mis_builder/static/src/img/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..833ce9211046568a692f342c1d62fb10e134d4df GIT binary patch literal 3464 zcmV;34R`X1P)uTd^nTfM4c zi!FU>b6k{{s#*t!0Y)AT0#LPOprmP+fYbAb*9e zbxgQGiP^S(fbDuE@N!QNK-@P zh^?p%ssgrT&K1O#|4~~udbSMw1Yme;5byTVl#py*as<^ouw8a_S6@Z)-g>Hk&_{Aj zeWNOe)t0Np7Rb&u;R01`8^m^@N*@#4A9$_j)!5C;5L@uS-gEW}813@GgizTWCw;*8 z5Gs3A1+f8JL0w5~eP3+`RK<-gmt*s1s5;6JROwcm&v~~G3=Ox{;%)CQK>>A#R9TDd z`o!1OR|k;1xBd}qc}!JNTfmkfY<(By6cet6qFicE=oe5Iq6!nBw!9s9z2{4@zi5Oy z2o&*zdD9D@v3zB7oY7AITehv&7ier3$m4EfC|*4N7kyn}FHi&82n?p$YOnXS_rEi| zIf!@1z**r!a_tgJAtV4QFMziA51%|$j5q$3Ww$H5091lpA79n*q5qBU%i=2=N(#A2 zRM`|K-Q_zD8R3C{b3Ygp_d~H(cPJL03Wy`S7G>hSb?61p=D{H7M(36SZx3&-z0SL1 zfK+R3NrDTUPOhzAp^_0^l~4JeKlu&+5Bp9fzA+gLW4A2>!2fdZi-A{q-2%s)QI^M6 zHth4i*+YC)V`(8U+U29NDZyx$?~uY;QLt@!uBth{1|YpZfO|u1dcbTCf+|&81{vNO z{Jfy=tL;)zL??8Sch^8H_1#)LyZUDg0kK^tv30T9G7r@6J9H|MShE!0vnQvWJN`Ef z_+QP$du(+>FUm!tf}%BnH+zO=^?ue0vV?e;i#gZihF(hn(QribF$>v^==y^wIztBeeh?X&kGxql{uMw_L;xPn zf};C@_*o}5o<}o)=WQRjM;&W`m;kAbwI$$yZUd;Okh7XMx9thfh=K_7V=Egyfj7IS zSHNheKdW~`$)HZ<`a~qFm~*An=8T}CJR<_CG^RE#uJ`QjpT+v1gK`AG^JL#S%`M1# znu|C6^voDAKljwFD5%IU0McFl^GcsRJF*9=d`RY)~KKye4_jy=m^5KOlqJ}rsX01BmT)L!$$LtF=zm!;eAga{}jt(?&p%&oX*`KxQpmX$|$GXoV z1kSGb0%1(D4~bM=C@vfG`CeCX^Pw`OvH^MitH9)Rkdk`L~e=9~hu z+nvC{%zBk{r|)a$>jmn7in^rL0j1NP-Jkqw_>skP5Cbw<-}l7vRY9J1q&TUhN5Q$X6Ww2F2($EtLvZ(rs5c&aP;(c^5tH>AC*=RkF z^?x70ySsnxDZrg6g>g3}HUWtY6!7540sp=3<~Zs7e$xAA?+m9Nt--TxAnOJHm)n$u zF9HmIw{|W-K=GEC5={ZOWYgcTL4D(1rQtD-=5qX7};4v)uur_TLwA3 zqo(5YxO9u^QYZG?ydC|=hFgPpJNlV(AehI11nDjx?)8Z{$i)R|SzG#vK=;Vrz*SX$ zA3H;MfT~Rymru3Vd}rL2aS>gbDT8^;yJKL-@a9^)9Rti2nzkwGZb~rP<)^YK-hKL@ zZ=r4TzX}aNgP`w@MExV8au{3wU2Xln+Ohy!E)ivgs(xAQY#J&6U-h>4|9H5qcIGDJ zTv9-`2Qb>{XTi7Pr-8<5_-S_N_+=zY1YUGl*09GOX-#|2GObDXEz`o9hJPww@$t+_eCa3rGnCZ9X%nO~5}ex_ zh_7xaSWA>>#4Nssg6p}$HyVwi6ZV55ax1U|v|o`!M%XxPnO62y0Y=!!@JFn5Dy$L3 zr=rJ2*&J#K_eD)B$7e-MpNK?M_0u39Av|k@jiXW1A`~_l?etT*KGTLv@AY@+nB1V_ zqKxrV&!(X^fK*!$Py2wQgu1(R!u2onhvavs7x09P$rp4?5;`Ua1F!ZxA6wOkh|SZh z{sB;oaF}SsT&*H4sMZ0;5os~PM$9rTjIfbcfE6)c6Oj|DdIaQS5p7hJJ)jjvOZbZH z1CH?HD*8iF*^MxysyB$pvnXw$7Gp<-$E-&_<6y{4Gp`4><6164No!^w$}f_`IaYY^|&p-&WTm-*6JFvJ2R^SwfH zU8YEi-MlQ@Uu_lPn+3tW!)P&9O_j$8hgC(pq7m~EfO*+?v?5jz^m!3hsA7w-K$VYG z=oZ!YGn44uBJudaf>Z|55#$^nIYjF#}*S;Pkjg$-2o zgotGQ>;ptT5By`+bMlHZ35CPX(a5=bC~Uk3ya%j_n&y2dsr>FE1EXF3&r~+We_dQE z`J6ZwFRAa7`xHcfqaqk#W5sOSzsrfqTF}1yz9_k|MC2~ut;~94w`k_uzd|7`(;^fO z=i)mW$tWkwll=>Y!%vBb9gUb?#{nK!Wv>H>r1u3#wbzi^8q8X257-@No7WgE;c-#@ z*fOmv9YCBhHz67^@3u@UcBY2RhoTYd_k{pvnO1u=V)ho%=CxMD)B+Sf7B$U3oji}V zIO_1|lbLIyUB39p0srnZlA!H1dxqO;KZN`{gk*EwD~YE1mBnO;t!lU_zOv!P{I+g2 zTBfO1#Hue6qRFUfF3*5q#3a-bK5RwIi!9Srlz&C!G^*Eu{4~^J)L9V|&Bu0|Wm z@6SL^is&t>nh=o%1>48NiX4wdta&Q>b3tl>t5xMs06rT3EbuETn-cz!1O9(b@AWHV zt|RuiAY3WbgCXvA8sq9?70bprG_!sVj! zMMYPI!r|XWO)HZD7N&;Lh`HQ~n4c-OeeE&LNp56C%qy&jbwkv&0)@O$(=7C&g;vD8 zG8!>2n>yZTXa0rjNSjB}-w#}u+Fg^|I!C@2B-NJhD-PaONAkh?Y5IQ`6JJ$7O + +

Yo!

+ + + + + + + +
+ + +
+ +
+
+ \ No newline at end of file diff --git a/mis_builder/views/mis_builder.xml b/mis_builder/views/mis_builder.xml new file mode 100644 index 00000000..6299c6d2 --- /dev/null +++ b/mis_builder/views/mis_builder.xml @@ -0,0 +1,158 @@ + + + + + + mis.report.view.tree + mis.report + + + + + + + + + + mis.report.view.form + mis.report + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + mis.report.view.action + + mis.report + form + tree,form + + + + + + mis.report.instance.result.view.form + mis.report.instance + + +
+ +
+

+ +

+
+ + + + + +
+
+
+
+ + + mis.report.instance.result.view.action + + mis.report.instance + form + form + new + + + + mis.report.instance.view.tree + mis.report.instance + + + + + + + + + + + mis.report.instance.view.form + mis.report.instance + + +
+ +
+
+
+

+ +

+
+
+
+ + + + + + + + + + + + + + + + + + +
+
+
+
+ + + mis.report.instance.view.action + + mis.report.instance + form + tree,form + + + + +
+
From 9e64b91a081e4a6686e80476cbd3a43830550e2f Mon Sep 17 00:00:00 2001 From: Laetitia Gangloff Date: Fri, 18 Jul 2014 18:52:38 +0200 Subject: [PATCH 004/186] Add the possibility to set the result of report instance in a dashboard --- mis_builder/__init__.py | 1 + mis_builder/__openerp__.py | 1 + mis_builder/models/mis_builder.py | 2 +- mis_builder/static/src/js/mis_builder.js | 38 +++++----- mis_builder/static/src/xml/mis_widget.xml | 2 +- mis_builder/views/mis_builder.xml | 3 +- mis_builder/wizard/__init__.py | 24 ++++++ mis_builder/wizard/__init__.pyc | Bin 0 -> 233 bytes mis_builder/wizard/mis_builder_dashboard.py | 76 +++++++++++++++++++ mis_builder/wizard/mis_builder_dashboard.xml | 33 ++++++++ 10 files changed, 158 insertions(+), 22 deletions(-) create mode 100644 mis_builder/wizard/__init__.py create mode 100644 mis_builder/wizard/__init__.pyc create mode 100644 mis_builder/wizard/mis_builder_dashboard.py create mode 100644 mis_builder/wizard/mis_builder_dashboard.xml diff --git a/mis_builder/__init__.py b/mis_builder/__init__.py index db1c497e..9a73ea2a 100644 --- a/mis_builder/__init__.py +++ b/mis_builder/__init__.py @@ -22,3 +22,4 @@ #============================================================================== import models +from . import wizard diff --git a/mis_builder/__openerp__.py b/mis_builder/__openerp__.py index 097d261c..c119bf12 100644 --- a/mis_builder/__openerp__.py +++ b/mis_builder/__openerp__.py @@ -31,6 +31,7 @@ 'website': 'http://acsone.eu', 'depends': ['account'], 'data': [ + 'wizard/mis_builder_dashboard.xml', 'views/mis_builder.xml', ], 'test': [ diff --git a/mis_builder/models/mis_builder.py b/mis_builder/models/mis_builder.py index 8d5a0f6e..ee7eed07 100644 --- a/mis_builder/models/mis_builder.py +++ b/mis_builder/models/mis_builder.py @@ -460,7 +460,7 @@ class mis_report_instance(orm.Model): cols = [] for period in r.period_ids: - col = dict(name=period.name) + cols.append(dict(name=period.name, description=period.name)) res['cols'] = cols return res diff --git a/mis_builder/static/src/js/mis_builder.js b/mis_builder/static/src/js/mis_builder.js index 570098b6..f6709bf9 100644 --- a/mis_builder/static/src/js/mis_builder.js +++ b/mis_builder/static/src/js/mis_builder.js @@ -1,26 +1,26 @@ openerp.mis_builder = function(instance) { - - instance.mis_builder.MisReport = instance.web.form.FormWidget.extend({ - template: "mis_builder.MisReport", - - init: function() { + + instance.mis_builder.MisReport = instance.web.form.FormWidget.extend({ + template: "mis_builder.MisReport", + + init: function() { this._super.apply(this, arguments); this.mis_report_data = null; - }, - - start: function() { + }, + + start: function() { this._super.apply(this, arguments); - var self = this; + var self = this; new instance.web.Model("mis.report.instance").call( - "compute", - [self.getParent().dataset.context.active_id], - {'context': new instance.web.CompoundContext()} - ).then(function(result){ - self.mis_report_data = result; - self.renderElement(); + "compute", + [self.getParent().dataset.context.active_id], + {'context': new instance.web.CompoundContext()} + ).then(function(result){ + self.mis_report_data = result; + self.renderElement(); }); - }, - }); - - instance.web.form.custom_widgets.add('mis_report', 'instance.mis_builder.MisReport'); + }, + }); + + instance.web.form.custom_widgets.add('mis_report', 'instance.mis_builder.MisReport'); } \ No newline at end of file diff --git a/mis_builder/static/src/xml/mis_widget.xml b/mis_builder/static/src/xml/mis_widget.xml index 796a7ad5..df19ef1b 100644 --- a/mis_builder/static/src/xml/mis_widget.xml +++ b/mis_builder/static/src/xml/mis_widget.xml @@ -4,7 +4,7 @@ - diff --git a/mis_builder/views/mis_builder.xml b/mis_builder/views/mis_builder.xml index 6299c6d2..64978a50 100644 --- a/mis_builder/views/mis_builder.xml +++ b/mis_builder/views/mis_builder.xml @@ -119,7 +119,8 @@
-
diff --git a/mis_builder/wizard/__init__.py b/mis_builder/wizard/__init__.py new file mode 100644 index 00000000..0e48b0b6 --- /dev/null +++ b/mis_builder/wizard/__init__.py @@ -0,0 +1,24 @@ +#============================================================================== +# = +# mis_builder module for OpenERP, Management Information System Builder +# Copyright (C) 2014 ACSONE SA/NV () +# = +# This file is a part of mis_builder +# = +# mis_builder is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License v3 or later +# as published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# = +# mis_builder 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 v3 or later for more details. +# = +# You should have received a copy of the GNU Affero General Public License +# v3 or later along with this program. +# If not, see . +# = +#============================================================================== + +from . import mis_builder_dashboard diff --git a/mis_builder/wizard/__init__.pyc b/mis_builder/wizard/__init__.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ada309ee575c514e83003a5b5cc37c3132ebc17d GIT binary patch literal 233 zcmY+7Q3}E^3_#QEM+E;A1TRp8*$aqx0zaHz{*<~DSLxQ$c8cE6^LPPM*oTJXB_WVk zerD74>RmT5MnQc~73Tz`WMBb024@Bg3#fTX2g3+FBP|G>iSjZSi#kYDvAsAI@WAu0 zL) +# = +# This file is a part of mis_builder +# = +# mis_builder is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License v3 or later +# as published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# = +# mis_builder 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 v3 or later for more details. +# = +# You should have received a copy of the GNU Affero General Public License +# v3 or later along with this program. +# If not, see . +# = +#============================================================================== + +from openerp.osv import orm, fields +from lxml import etree + + +class add_mis_report_instance_dashboard(orm.TransientModel): + _name = "add.mis.report.instance.dashboard.wizard" + + _columns = {'name': fields.char('Name', size=32, required=True), + 'dashboard_id': fields.many2one('ir.actions.act_window', string="Dashboard", required=True, + domain="[('res_model', '=', 'board.board')]"), + } + + def default_get(self, cr, uid, fields, context=None): + if context is None: + context = {} + if context.get('active_id'): + res = super(add_mis_report_instance_dashboard, self).default_get(cr, uid, fields, context=context) + # get report instance name + res['name'] = self.pool['mis.report.instance'].read(cr, uid, context['active_id'], ['name'])['name'] + return res + + def action_add_to_dashboard(self, cr, uid, ids, context=None): + if context is None: + context = {} + assert 'active_id' in context, "active_id missing in context" + wizard_data = self.browse(cr, uid, ids, context=context)[0] + # create the act_window corresponding to this report + view_id = self.pool['ir.model.data'].get_object_reference(cr, uid, 'mis_builder', 'mis_report_instance_result_view_form')[1] + report_result = self.pool['ir.actions.act_window'].create(cr, uid, {'name': 'mis.report.instance.result.view.action.%d' % context['active_id'], + 'res_model': 'mis.report.instance', + 'res_id': context['active_id'], + 'target': 'current', + 'view_mode': 'form', + 'view_id': view_id}) + # add this result in the selected dashboard + last_customization = self.pool['ir.ui.view.custom'].search(cr, uid, [('user_id', '=', uid), + ('ref_id', '=', wizard_data.dashboard_id.view_id.id)], limit=1) + arch = wizard_data.dashboard_id.view_id.arch + if last_customization: + arch = self.pool['ir.ui.view.custom'].read(cr, uid, last_customization[0], ['arch'])['arch'] + new_arch = etree.fromstring(arch) + column = new_arch.xpath("//column")[0] + column.append(etree.Element('action', {'context': str(context), + 'name': str(report_result), + 'string': wizard_data.name, + 'view_mode': 'form'})) + self.pool['ir.ui.view.custom'].create(cr, uid, {'user_id': uid, + 'ref_id': wizard_data.dashboard_id.view_id.id, + 'arch': etree.tostring(new_arch, pretty_print=True)}) + + return {'type': 'ir.actions.act_window_close', } + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/mis_builder/wizard/mis_builder_dashboard.xml b/mis_builder/wizard/mis_builder_dashboard.xml new file mode 100644 index 00000000..99802637 --- /dev/null +++ b/mis_builder/wizard/mis_builder_dashboard.xml @@ -0,0 +1,33 @@ + + + + + + add.mis.report.instance.dashboard.wizard.view + add.mis.report.instance.dashboard.wizard + +
+ + + + +
+
+ +
+
+ + + Add to dashboard + add.mis.report.instance.dashboard.wizard + form + form + + new + + +
+
\ No newline at end of file From 9befa379eabebfe30c88eef6cfe596f153eb618c Mon Sep 17 00:00:00 2001 From: Laetitia Gangloff Date: Mon, 21 Jul 2014 17:40:36 +0200 Subject: [PATCH 005/186] Add demo data. Set computed result. In instance add target_move (all or posted). Add onchange and check function on report --- mis_builder/__openerp__.py | 6 +- mis_builder/models/mis_builder.py | 97 +++++++++++++++---- mis_builder/static/src/xml/mis_widget.xml | 19 +++- mis_builder/tests/mis.report.csv | 2 + mis_builder/tests/mis.report.instance.csv | 2 + .../tests/mis.report.instance.period.csv | 7 ++ mis_builder/tests/mis.report.kpi.csv | 7 ++ mis_builder/tests/mis.report.query.csv | 2 + mis_builder/views/mis_builder.xml | 14 +-- 9 files changed, 126 insertions(+), 30 deletions(-) create mode 100644 mis_builder/tests/mis.report.csv create mode 100644 mis_builder/tests/mis.report.instance.csv create mode 100644 mis_builder/tests/mis.report.instance.period.csv create mode 100644 mis_builder/tests/mis.report.kpi.csv create mode 100644 mis_builder/tests/mis.report.query.csv diff --git a/mis_builder/__openerp__.py b/mis_builder/__openerp__.py index c119bf12..7de33a40 100644 --- a/mis_builder/__openerp__.py +++ b/mis_builder/__openerp__.py @@ -36,7 +36,11 @@ ], 'test': [ ], - 'demo': [ + 'demo': ['tests/mis.report.kpi.csv', + 'tests/mis.report.query.csv', + 'tests/mis.report.csv', + 'tests/mis.report.instance.period.csv', + 'tests/mis.report.instance.csv', ], 'js': [ 'static/src/js/*.js' diff --git a/mis_builder/models/mis_builder.py b/mis_builder/models/mis_builder.py index ee7eed07..3b06fa9a 100644 --- a/mis_builder/models/mis_builder.py +++ b/mis_builder/models/mis_builder.py @@ -26,6 +26,7 @@ from datetime import datetime, timedelta from dateutil import parser import traceback from lxml import etree +import re from openerp.osv import orm, fields from openerp.tools.safe_eval import safe_eval @@ -76,11 +77,12 @@ class mis_report_kpi(orm.Model): string='Type'), 'divider': fields.selection([('1e-6', _('µ')), ('1e-3', _('m')), + ('1', _('1')), ('1e3', _('k')), ('1e6', _('M'))], string='Factor'), 'dp': fields.integer(string='Rounding'), - 'suffix': fields.char(size=16, string='Unit'), + 'suffix': fields.char(size=16, string='Suffix'), 'compare_method': fields.selection([('diff', _('Difference')), ('pct', _('Percentage')), ('none', _('None'))], @@ -99,9 +101,40 @@ class mis_report_kpi(orm.Model): _order = 'sequence' - # TODO: constraint to check name is a valid python identifier - # TODO: onchange type pct -> force comparison method = diff - # TODO: onchange type str -> divider, dp, suffix, compare_method read only + def _check_name(self, cr, uid, ids, context=None): + for record_name in self.read(cr, uid, ids, ['name']): + if not re.match("[_A-Za-z][_a-zA-Z0-9]*$", record_name['name']): + return False + return True + + _constraints = [ + (_check_name, 'The name must be a valid python identifier', ['name']), + ] + + def onchange_name(self, cr, uid, ids, name, context=None): + # check it is a valid python identifier + res = {} + if name and not re.match("[_A-Za-z][_a-zA-Z0-9]*$", name): + res['warning'] = {'title': 'Invalid name', 'message': 'The name must be a valid python identifier'} + return res + + def onchange_description(self, cr, uid, ids, description, context=None): + # construct name from description + clean = lambda varStr: re.sub('\W|^(?=\d)', '_', varStr) + res = {} + if description: + res = {'value': {'name': clean(description)}} + return res + + def onchange_type(self, cr, uid, ids, kpi_type, context=None): + res = {} + if kpi_type == 'pct': + res['value'] = {'compare_method': 'diff'} + elif kpi_type == 'str': + res['value'] = {'compare_method': 'none', + 'divider': '', + 'dp': 0} + return res def _render(self, kpi, value): """ render a KPI value as a unicode string, ready for display """ @@ -207,6 +240,11 @@ class mis_report_instance_period(orm.Model): if isinstance(ids, (int, long)): ids = [ids] res = {} + company_id = context.get('force_company') + if not company_id: + user = self.pool.get('res.users').read(cr, uid, uid, ['company_id'], context=context) + if user['company_id']: + company_id = user['company_id'][0] for c in self.browse(cr, uid, ids, context=context): d = parser.parse(c.report_instance_id.pivot_date) if c.type == 'd': @@ -223,17 +261,17 @@ class mis_report_instance_period(orm.Model): date_to = date_to.strftime(tools.DEFAULT_SERVER_DATE_FORMAT) period_ids = None elif c.type == 'fp': - # TODO: filter on company_id # TODO: date! period_obj = self.pool['account.period'] all_period_ids = period_obj.search(cr, uid, - [('special', '=', False)], + [('special', '=', False), ('company_id', '=', company_id)], order='date_start', context=context) current_period_ids = period_obj.search(cr, uid, [('special', '=', False), ('date_start', '<=', d), - ('date_stop', '>=', d)], + ('date_stop', '>=', d), + ('company_id', '=', company_id)], context=context) if not current_period_ids: raise orm.except_orm(_("Error!"), @@ -264,7 +302,7 @@ class mis_report_instance_period(orm.Model): _columns = { 'name': fields.char(size=32, required=True, - string='Name', translate=True), + string='Description', translate=True), 'type': fields.selection([('d', _('Day')), ('w', _('Week')), ('fp', _('Fiscal Period')), @@ -296,19 +334,23 @@ class mis_report_instance_period(orm.Model): } _defaults = { - 'offset':-1, + 'offset': -1, 'duration': 1, } _order = 'sequence' - # TODO: constraint duration >= 1 + _sql_constraints = [ + ('duration', 'CHECK (duration>0)', 'Wrong duration, it must be positive!') + ] def _fetch_balances(self, cr, uid, c, context=None): """ fetch the general account balances for the given period returns a dictionary {bal_: account.balance} """ + if context is None: + context = {} account_obj = self.pool['account.account'] search_ctx = dict(context) @@ -320,8 +362,12 @@ class mis_report_instance_period(orm.Model): 'date_to': c.date_to}) # TODO: initial balance? - # TODO: draft or posted? - account_ids = account_obj.search(cr, uid, []) + company_id = context.get('force_company') + if not company_id: + user = self.pool.get('res.users').read(cr, uid, uid, ['company_id'], context=context) + if user['company_id']: + company_id = user['company_id'][0] + account_ids = account_obj.search(cr, uid, [('company_id', '=', company_id)], context=context) account_datas = account_obj.read(cr, uid, account_ids, ['code', 'balance'], context=search_ctx) @@ -340,6 +386,11 @@ class mis_report_instance_period(orm.Model): res = {} report = c.report_instance_id.report_id + company_id = context.get('force_company') + if not company_id: + user = self.pool.get('res.users').read(cr, uid, uid, ['company_id'], context=context) + if user['company_id']: + company_id = user['company_id'][0] for query in report.query_ids: obj = self.pool[query.model_id.model] domain = query.domain and safe_eval(query.domain) or [] @@ -353,11 +404,10 @@ class mis_report_instance_period(orm.Model): # domain.extend([(query.date_field.name, '>=', datetime_from), # (query.date_field.name, '<', datetime_to)]) raise orm.except_orm(_('Error!'), _('Not implemented')) + domain.extend([('company_id', '=', company_id)]) field_names = [field.name for field in query.field_ids] - obj_ids = obj.search(cr, uid, domain, - context=context) - obj_datas = obj.read(cr, uid, obj_ids, field_names, - context=context) + obj_ids = obj.search(cr, uid, domain, context=context) + obj_datas = obj.read(cr, uid, obj_ids, field_names, context=context) res[query.name] = [AutoStruct(**d) for d in obj_datas] return res @@ -381,7 +431,7 @@ class mis_report_instance_period(orm.Model): localdict.update(self._fetch_balances(cr, uid, c, context=context)) localdict.update(self._fetch_queries(cr, uid, c, context=context)) - for kpi in c.report_instance_id.report.kpi_ids: + for kpi in c.report_instance_id.report_id.kpi_ids: try: kpi_val = safe_eval(kpi.expression, localdict) except ZeroDivisionError: @@ -443,12 +493,20 @@ class mis_report_instance(orm.Model): 'report_instance_id', required=True, string='Periods'), + #'comparison_column': fields.many2many('mis.report.instance') + 'target_move': fields.selection([('posted', 'All Posted Entries'), + ('all', 'All Entries'), + ], 'Target Moves', required=True), + } + + _defaults = { + 'target_move': 'posted', } def compute(self, cr, uid, _ids, context=None): assert isinstance(_ids, (int, long)) - r = self.browse(cr, uid, _ids, context=context) + context['state'] = r.target_move res = {} @@ -459,8 +517,9 @@ class mis_report_instance(orm.Model): res['rows'] = rows cols = [] + report_instance_period_obj = self.pool.get('mis.report.instance.period') for period in r.period_ids: - cols.append(dict(name=period.name, description=period.name)) + cols.append(dict(name=period.name, values=report_instance_period_obj._compute(cr, uid, period, context=context))) res['cols'] = cols return res diff --git a/mis_builder/static/src/xml/mis_widget.xml b/mis_builder/static/src/xml/mis_widget.xml index df19ef1b..523e6805 100644 --- a/mis_builder/static/src/xml/mis_widget.xml +++ b/mis_builder/static/src/xml/mis_widget.xml @@ -1,17 +1,28 @@ diff --git a/mis_builder/tests/__init__.py b/mis_builder/tests/__init__.py index 17feb6ea..122d55b2 100644 --- a/mis_builder/tests/__init__.py +++ b/mis_builder/tests/__init__.py @@ -30,5 +30,3 @@ fast_suite = [ checks = [ test_mis_builder, ] - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/mis_builder/wizard/mis_builder_dashboard.py b/mis_builder/wizard/mis_builder_dashboard.py index 849e40f2..9daba92e 100644 --- a/mis_builder/wizard/mis_builder_dashboard.py +++ b/mis_builder/wizard/mis_builder_dashboard.py @@ -85,5 +85,3 @@ class add_mis_report_instance_dashboard(orm.TransientModel): 'arch': etree.tostring(new_arch, pretty_print=True)}) return {'type': 'ir.actions.act_window_close', } - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: From 4101adb12506cb5d9feec28c70b3c9c27b1d32ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Bidoul?= Date: Tue, 28 Apr 2015 00:09:28 +0200 Subject: [PATCH 094/186] [IMP] mis_builder: rework periods computation * readability of algorithm * attempt to be correct in presence of multiple companies * attempt to be correct with initial balance computation * handle corner cases for initial balance --- mis_builder/models/aep.py | 135 +++++++++++++++++++++--------- mis_builder/models/mis_builder.py | 4 +- 2 files changed, 96 insertions(+), 43 deletions(-) diff --git a/mis_builder/models/aep.py b/mis_builder/models/aep.py index b09ab729..bc2f4021 100644 --- a/mis_builder/models/aep.py +++ b/mis_builder/models/aep.py @@ -178,48 +178,101 @@ class AccountingExpressionProcessor(object): raise RuntimeError("") # TODO return [('date', '>=', date_start), ('date', '<=', date_end)] - def get_aml_domain_for_periods(self, period_start, period_end, mode): - period_obj = self.env['account.period'] - move_obj = self.env['account.move'] - domain_list = [] - if mode == MODE_VARIATION: - compute_period_ids = period_obj.build_ctx_periods( - period_start.id, - period_end.id) - domain_list.extend([('period_id', 'in', compute_period_ids)]) - else: - period_to = period_end - if mode == MODE_INITIAL: - # Processing to get the first period which isn't special - # before end period - move = move_obj\ - .search([('period_id.special', '=', False), - ('period_id.date_start', '<', - period_to.date_start)], - order="period_id desc", limit=1) - if move.id: - computed_period_to = move.period_id - else: - computed_period_to = period_obj.search( - [('company_id', '=', period_start.company_id.id)], - order='date_start desc', limit=1) - # Change start period to search correctly period from - period_to = computed_period_to - move = move_obj.search( - [('period_id.special', '=', True), - ('period_id.date_start', '<=', - period_to.date_start)], - order="period_id desc", limit=1) - if move.id: - computed_period_from = move.period_id + def _period_has_moves(self, period): + move_model = self.env['account.move'] + return bool(move_model.search([('period_id', '=', period.id)], + limit=1)) + + def _get_previous_opening_period(self, period, company_id): + period_model = self.env['account.period'] + periods = period_model.search( + [('date_start', '<=', period.date_start), + ('special', '=', True), + ('company_id', '=', company_id)], + order="date_start desc", + limit=1) + return periods and periods[0] + + def _get_previous_normal_period(self, period, company_id): + period_model = self.env['account.period'] + periods = period_model.search( + [('date_start', '<', period.date_start), + ('special', '=', False), + ('company_id', '=', company_id)], + order="date_start desc", + limit=1) + return periods and periods[0] + + def _get_first_normal_period(self, company_id): + period_model = self.env['account.period'] + periods = period_model.search( + [('special', '=', False), + ('company_id', '=', company_id)], + order="date_start asc", + limit=1) + return periods and periods[0] + + def _get_period_ids_between(self, period_from, period_to, company_id): + period_model = self.env['account.period'] + periods = period_model.search( + [('date_start', '>=', period_from.date_start), + ('date_stop', '<=', period_to.date_stop), + ('special', '=', False), + ('company_id', '=', company_id)]) + period_ids = [p.id for p in periods] + if period_from.special: + period_ids.append(period_from.id) + return period_ids + + def _get_period_company_ids(self, period_from, period_to): + period_model = self.env['account.period'] + periods = period_model.search( + [('date_start', '>=', period_from.date_start), + ('date_stop', '<=', period_to.date_stop), + ('special', '=', False)]) + return set([p.company_id.id for p in periods]) + + def _get_period_ids_for_mode(self, period_from, period_to, mode): + assert not period_from.special + assert not period_to.special + assert period_from.company_id == period_to.company_id + assert period_from.date_start <= period_to.date_start + period_ids = [] + for company_id in self._get_period_company_ids(period_from, period_to): + if mode == MODE_VARIATION: + period_ids.extend(self._get_period_ids_between( + period_from, period_to, company_id)) else: - computed_period_from = period_obj.search( - [('company_id', '=', period_start.company_id.id)], - order='date_start', limit=1) - compute_period_ids = period_obj.build_ctx_periods( - computed_period_from.id, period_to.id) - domain_list.extend([('period_id', 'in', compute_period_ids)]) - return domain_list + if mode == MODE_INITIAL: + period_to = self._get_previous_normal_period( + period_from, company_id) + # look for opening period with moves + opening_period = self._get_previous_opening_period( + period_from, company_id) + if opening_period and \ + self._period_has_moves(opening_period[0]): + # found opening period with moves + if opening_period.date_start == period_from.date_start and \ + mode == MODE_INITIAL: + # if the opening period has the same start date as + # period_from, the we'll find the initial balance + # in the initial period and that's it + period_ids.append(opening_period[0].id) + continue + period_from = opening_period[0] + else: + # no opening period with moves, + # use very first normal period + period_from = self._get_first_normal_period(company_id) + if period_to: + period_ids.extend(self._get_period_ids_between( + period_from, period_to, company_id)) + return period_ids + + def get_aml_domain_for_periods(self, period_from, period_to, mode): + period_ids = self._get_period_ids_for_mode( + period_from, period_to, mode) + return [('period_id', 'in', period_ids)] def do_queries(self, period_domain, period_domain_i, period_domain_e): aml_model = self.env['account.move.line'] diff --git a/mis_builder/models/mis_builder.py b/mis_builder/models/mis_builder.py index 37586042..73932f15 100644 --- a/mis_builder/models/mis_builder.py +++ b/mis_builder/models/mis_builder.py @@ -412,8 +412,8 @@ class mis_report_instance_period(orm.Model): res[c.id] = { 'date_from': date_from, 'date_to': date_to, - 'period_from': period_ids and period_ids[0], - 'period_to': period_ids and period_ids[-1], + 'period_from': period_ids and period_ids[0] or False, + 'period_to': period_ids and period_ids[-1] or False, } return res From 38d34b95b18df95060b1fe1bc6dd3a7d5c75be1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Bidoul?= Date: Tue, 28 Apr 2015 12:57:31 +0200 Subject: [PATCH 095/186] [IMP] mis_builder: be more precise wrt the root account used This solve issues with empty account selectors in presence of multiple companies. --- mis_builder/models/aep.py | 62 +++++++++++++------------------ mis_builder/models/mis_builder.py | 33 +++++++++++----- mis_builder/views/mis_builder.xml | 1 + 3 files changed, 49 insertions(+), 47 deletions(-) diff --git a/mis_builder/models/aep.py b/mis_builder/models/aep.py index bc2f4021..500174ec 100644 --- a/mis_builder/models/aep.py +++ b/mis_builder/models/aep.py @@ -62,10 +62,9 @@ class AccountingExpressionProcessor(object): # before done_parsing: {(domain, mode): set(account_codes)} # after done_parsing: {(domain, mode): set(account_ids)} self._map_account_ids = defaultdict(set) - self._set_all_accounts = set() # set((domain, mode)) self._account_ids_by_code = defaultdict(set) - def _load_account_codes(self, account_codes, account_domain): + def _load_account_codes(self, account_codes, root_account): account_model = self.env['account.account'] # TODO: account_obj is necessary because _get_children_and_consol # does not work in new API? @@ -75,23 +74,35 @@ class AccountingExpressionProcessor(object): for account_code in account_codes: if account_code in self._account_ids_by_code: continue - if '%' in account_code: + if account_code is None: + # by convention the root account is keyed as + # None in _account_ids_by_code, so it is consistent + # with what _parse_match_object returns for an + # empty list of account codes, ie [None] + exact_codes.add(root_account.code) + elif '%' in account_code: like_codes.add(account_code) else: exact_codes.add(account_code) for account in account_model.\ - search([('code', 'in', list(exact_codes))] + account_domain): + search([('code', 'in', list(exact_codes)), + ('parent_id', 'child_of', root_account.id)]): + if account.code == root_account.code: + code = None + else: + code = account.code if account.type in ('view', 'consolidation'): - self._account_ids_by_code[account.code].update( + self._account_ids_by_code[code].update( account_obj._get_children_and_consol( self.env.cr, self.env.uid, [account.id], self.env.context)) else: - self._account_ids_by_code[account.code].add(account.id) + self._account_ids_by_code[code].add(account.id) for like_code in like_codes: for account in account_model.\ - search([('code', 'like', like_code)] + account_domain): + search([('code', 'like', like_code), + ('parent_id', 'child_of', root_account.id)]): if account.type in ('view', 'consolidation'): self._account_ids_by_code[like_code].update( account_obj._get_children_and_consol( @@ -118,7 +129,7 @@ class AccountingExpressionProcessor(object): if account_codes.strip(): account_codes = [a.strip() for a in account_codes.split(',')] else: - account_codes = None + account_codes = [None] domain = domain or '[]' domain = tuple(safe_eval(domain)) return field, mode, account_codes, domain @@ -132,15 +143,12 @@ class AccountingExpressionProcessor(object): for mo in self.ACC_RE.finditer(expr): _, mode, account_codes, domain = self._parse_match_object(mo) key = (domain, mode) - if account_codes: - self._map_account_ids[key].update(account_codes) - else: - self._set_all_accounts.add(key) + self._map_account_ids[key].update(account_codes) - def done_parsing(self, account_domain): + def done_parsing(self, root_account): # load account codes and replace account codes by account ids in _map for key, account_codes in self._map_account_ids.items(): - self._load_account_codes(account_codes, account_domain) + self._load_account_codes(account_codes, root_account) account_ids = set() for account_code in account_codes: account_ids.update(self._account_ids_by_code[account_code]) @@ -255,7 +263,7 @@ class AccountingExpressionProcessor(object): if opening_period.date_start == period_from.date_start and \ mode == MODE_INITIAL: # if the opening period has the same start date as - # period_from, the we'll find the initial balance + # period_from, then we'll find the initial balance # in the initial period and that's it period_ids.append(opening_period[0].id) continue @@ -296,23 +304,6 @@ class AccountingExpressionProcessor(object): for acc in accs: self._data[key][acc['account_id'][0]] = \ (acc['debit'] or 0.0, acc['credit'] or 0.0) - # fetch sum of debit/credit for expressions with no account - for key in self._set_all_accounts: - domain, mode = key - if mode == MODE_VARIATION: - domain = list(domain) + period_domain - elif mode == MODE_INITIAL: - domain = list(domain) + period_domain_i - elif mode == MODE_END: - domain = list(domain) + period_domain_e - else: - raise RuntimeError("unexpected mode %s" % (mode,)) - accs = aml_model.read_group(domain, - ['debit', 'credit'], - []) - assert len(accs) == 1 - self._data[key][None] = \ - (accs[0]['debit'] or 0.0, accs[0]['credit'] or 0.0) def replace_expr(self, expr): """Replace accounting variables in an expression by their amount. @@ -326,11 +317,8 @@ class AccountingExpressionProcessor(object): key = (domain, mode) account_ids_data = self._data[key] v = 0.0 - for account_code in account_codes or [None]: - if account_code: - account_ids = self._account_ids_by_code[account_code] - else: - account_ids = [None] + for account_code in account_codes: + account_ids = self._account_ids_by_code[account_code] for account_id in account_ids: debit, credit = \ account_ids_data.get(account_id, (0.0, 0.0)) diff --git a/mis_builder/models/mis_builder.py b/mis_builder/models/mis_builder.py index 73932f15..767d40ca 100644 --- a/mis_builder/models/mis_builder.py +++ b/mis_builder/models/mis_builder.py @@ -483,13 +483,12 @@ class mis_report_instance_period(orm.Model): 'Period name should be unique by report'), ] - def drilldown(self, cr, uid, id, expr, context=None): - this = self.browse(cr, uid, id, context=context)[0] + def drilldown(self, cr, uid, _id, expr, context=None): + this = self.browse(cr, uid, _id, context=context)[0] env = Environment(cr, uid, {}) aep = AccountingExpressionProcessor(env) aep.parse_expr(expr) - aep.done_parsing([('company_id', '=', - this.report_instance_id.company_id.id)]) + aep.done_parsing(this.report_instance_id.root_account) domain = aep.get_aml_domain_for_expr(expr) if domain: # TODO: reuse compute_period_domain @@ -680,6 +679,19 @@ class mis_report_instance(orm.Model): context=context) return res + def _get_root_account(self, cr, uid, ids, field_name, arg, context=None): + res = {} + account_obj = self.pool['account.account'] + for r in self.browse(cr, uid, ids, context=context): + account_ids = account_obj.search( + cr, uid, + [('parent_id', '=', False), + ('company_id', '=', r.company_id.id)], + context=context) + if len(account_ids) == 1: + res[r.id] = account_ids[0] + return res + _name = 'mis.report.instance' _columns = { @@ -704,6 +716,9 @@ class mis_report_instance(orm.Model): ('all', 'All Entries'), ], 'Target Moves', required=True), 'company_id': fields.many2one('res.company', 'Company', required=True), + 'root_account': fields.function(_get_root_account, + type='many2one', obj='account.account', + string="Account chart"), } _defaults = { @@ -754,13 +769,11 @@ class mis_report_instance(orm.Model): tools.DEFAULT_SERVER_DATE_FORMAT), tformat) - def compute(self, cr, uid, _ids, context=None): - assert isinstance(_ids, (int, long)) + def compute(self, cr, uid, _id, context=None): + assert isinstance(_id, (int, long)) if context is None: context = {} - r = self.browse(cr, uid, _ids, context=context) - context['state'] = r.target_move - + r = self.browse(cr, uid, _id, context=context) content = OrderedDict() # empty line name for header header = OrderedDict() @@ -773,7 +786,7 @@ class mis_report_instance(orm.Model): content[kpi.name] = {'kpi_name': kpi.description, 'cols': [], 'default_style': ''} - aep.done_parsing([('company_id', '=', r.company_id.id)]) + aep.done_parsing(r.root_account) report_instance_period_obj = self.pool.get( 'mis.report.instance.period') kpi_obj = self.pool.get('mis.report.kpi') diff --git a/mis_builder/views/mis_builder.xml b/mis_builder/views/mis_builder.xml index e4a34ae1..f7e09a83 100644 --- a/mis_builder/views/mis_builder.xml +++ b/mis_builder/views/mis_builder.xml @@ -139,6 +139,7 @@ + From 5bf009765dd2a52322496d85e5f1b52f22d9b778 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Bidoul?= Date: Tue, 28 Apr 2015 15:57:52 +0200 Subject: [PATCH 096/186] [IMP] mis_builder: refactor to compute period only for modes actually used --- mis_builder/models/aep.py | 50 ++++++++++++++++--------------- mis_builder/models/mis_builder.py | 36 +++------------------- 2 files changed, 30 insertions(+), 56 deletions(-) diff --git a/mis_builder/models/aep.py b/mis_builder/models/aep.py index 500174ec..9b77d525 100644 --- a/mis_builder/models/aep.py +++ b/mis_builder/models/aep.py @@ -157,17 +157,15 @@ class AccountingExpressionProcessor(object): def get_aml_domain_for_expr(self, expr): """ Get a domain on account.move.line for an expression. - Only accounting expression in mode 'p' and 'e' are considered. - Prerequisite: done_parsing() must have been invoked. Returns a domain that can be used to search on account.move.line. + To be meaningful, this domain must be extended with a domain + obtained from get_aml_domain_for_dates() """ aml_domains = [] for mo in self.ACC_RE.finditer(expr): - field, mode, account_codes, domain = self._parse_match_object(mo) - if mode == MODE_INITIAL: - continue + field, _, account_codes, domain = self._parse_match_object(mo) aml_domain = list(domain) if account_codes: account_ids = set() @@ -181,11 +179,6 @@ class AccountingExpressionProcessor(object): aml_domains.append(expression.normalize_domain(aml_domain)) return expression.OR(aml_domains) - def get_aml_domain_for_dates(self, date_start, date_end, mode): - if mode != MODE_VARIATION: - raise RuntimeError("") # TODO - return [('date', '>=', date_start), ('date', '<=', date_end)] - def _period_has_moves(self, period): move_model = self.env['account.move'] return bool(move_model.search([('period_id', '=', period.id)], @@ -277,27 +270,36 @@ class AccountingExpressionProcessor(object): period_from, period_to, company_id)) return period_ids - def get_aml_domain_for_periods(self, period_from, period_to, mode): - period_ids = self._get_period_ids_for_mode( - period_from, period_to, mode) - return [('period_id', 'in', period_ids)] + def get_aml_domain_for_dates(self, date_from, date_to, + period_from, period_to, + mode, + target_move): + if period_from and period_to: + period_ids = self._get_period_ids_for_mode( + period_from, period_to, mode) + domain = [('period_id', 'in', period_ids)] + else: + domain = [('date', '>=', date_from), ('date', '<=', date_to)] + if target_move == 'posted': + domain.append(('move_id.state', '=', 'posted')) + return domain - def do_queries(self, period_domain, period_domain_i, period_domain_e): + def do_queries(self, date_from, date_to, period_from, period_to, + target_move): aml_model = self.env['account.move.line'] # {(domain, mode): {account_id: (debit, credit)}} self._data = defaultdict(dict) - # fetch sum of debit/credit, grouped by account_id + domain_by_mode = {} for key in self._map_account_ids: domain, mode = key - if mode == MODE_VARIATION: - domain = list(domain) + period_domain - elif mode == MODE_INITIAL: - domain = list(domain) + period_domain_i - elif mode == MODE_END: - domain = list(domain) + period_domain_e - else: - raise RuntimeError("unexpected mode %s" % (mode,)) + if mode not in domain_by_mode: + domain_by_mode[mode] = \ + self.get_aml_domain_for_dates(date_from, date_to, + period_from, period_to, + mode, target_move) + domain = list(domain) + domain_by_mode[mode] domain.append(('account_id', 'in', self._map_account_ids[key])) + # fetch sum of debit/credit, grouped by account_id accs = aml_model.read_group(domain, ['debit', 'credit', 'account_id'], ['account_id']) diff --git a/mis_builder/models/mis_builder.py b/mis_builder/models/mis_builder.py index 767d40ca..0912eac2 100644 --- a/mis_builder/models/mis_builder.py +++ b/mis_builder/models/mis_builder.py @@ -37,9 +37,6 @@ from openerp.tools.safe_eval import safe_eval from openerp.tools.translate import _ from .aep import AccountingExpressionProcessor -from .aep import MODE_VARIATION -from .aep import MODE_END -from .aep import MODE_INITIAL class AutoStruct(object): @@ -379,7 +376,6 @@ class mis_report_instance_period(orm.Model): all_period_ids = period_obj.search( cr, uid, [('special', '=', False), - '|', ('company_id', '=', False), ('company_id', '=', c.company_id.id)], order='date_start', context=context) @@ -388,7 +384,6 @@ class mis_report_instance_period(orm.Model): [('special', '=', False), ('date_start', '<=', d), ('date_stop', '>=', d), - '|', ('company_id', '=', False), ('company_id', '=', c.company_id.id)], context=context) if not current_period_ids: @@ -527,26 +522,6 @@ class mis_report_instance_period(orm.Model): else: return False - def compute_period_domain(self, cr, uid, period_report, aep, mode, - context=None): - domain = [] - target_move = period_report.report_instance_id.target_move - if target_move == 'posted': - domain.append(('move_id.state', '=', target_move)) - if not period_report.period_from.id or not period_report.period_to.id: - aml_domain = aep\ - .get_aml_domain_for_periods(period_report.date_from, - period_report.date_to, - mode) - domain.extend(aml_domain) - elif period_report.period_from.id and period_report.period_to.id: - aml_domain = aep\ - .get_aml_domain_for_periods(period_report.period_from, - period_report.period_to, - mode) - domain.extend(aml_domain) - return domain - def _fetch_queries(self, cr, uid, c, context): res = {} report = c.report_instance_id.report_id @@ -589,16 +564,13 @@ class mis_report_instance_period(orm.Model): 'len': len, 'avg': lambda l: sum(l) / float(len(l)), } - domain_p = self.compute_period_domain(cr, uid, c, aep, MODE_VARIATION, - context=context) - domain_e = self.compute_period_domain(cr, uid, c, aep, MODE_END, - context=context) - domain_i = self.compute_period_domain(cr, uid, c, aep, MODE_INITIAL, - context=context) - aep.do_queries(domain_p, domain_i, domain_e) localdict.update(self._fetch_queries(cr, uid, c, context=context)) + aep.do_queries(c.date_from, c.date_to, + c.period_from, c.period_to, + c.report_instance_id.target_move) + compute_queue = c.report_instance_id.report_id.kpi_ids recompute_queue = [] while True: From 7e13cddca05b01d01c71f964ffcff7fdcced3afc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Bidoul?= Date: Tue, 28 Apr 2015 16:19:22 +0200 Subject: [PATCH 097/186] [IMP] mis_builder: refactor drilldown to reuse period computation and work for all modes --- mis_builder/models/aep.py | 30 ++++++++++++++++++-------- mis_builder/models/mis_builder.py | 36 +++++++------------------------ 2 files changed, 29 insertions(+), 37 deletions(-) diff --git a/mis_builder/models/aep.py b/mis_builder/models/aep.py index 9b77d525..d181fa02 100644 --- a/mis_builder/models/aep.py +++ b/mis_builder/models/aep.py @@ -154,7 +154,13 @@ class AccountingExpressionProcessor(object): account_ids.update(self._account_ids_by_code[account_code]) self._map_account_ids[key] = list(account_ids) - def get_aml_domain_for_expr(self, expr): + def has_account_var(self, expr): + return bool(self.ACC_RE.match(expr)) + + def get_aml_domain_for_expr(self, expr, + date_from, date_to, + period_from, period_to, + target_move): """ Get a domain on account.move.line for an expression. Prerequisite: done_parsing() must have been invoked. @@ -164,20 +170,26 @@ class AccountingExpressionProcessor(object): obtained from get_aml_domain_for_dates() """ aml_domains = [] + domain_by_mode = {} for mo in self.ACC_RE.finditer(expr): - field, _, account_codes, domain = self._parse_match_object(mo) + field, mode, account_codes, domain = self._parse_match_object(mo) aml_domain = list(domain) - if account_codes: - account_ids = set() - for account_code in account_codes: - account_ids.update(self._account_ids_by_code[account_code]) - aml_domain.append(('account_id', 'in', tuple(account_ids))) + account_ids = set() + for account_code in account_codes: + account_ids.update(self._account_ids_by_code[account_code]) + aml_domain.append(('account_id', 'in', tuple(account_ids))) if field == 'crd': aml_domain.append(('credit', '>', 0)) elif field == 'deb': aml_domain.append(('debit', '>', 0)) aml_domains.append(expression.normalize_domain(aml_domain)) - return expression.OR(aml_domains) + if mode not in domain_by_mode: + domain_by_mode[mode] = \ + self.get_aml_domain_for_dates(date_from, date_to, + period_from, period_to, + mode, target_move) + return expression.OR(aml_domains) + \ + expression.OR(domain_by_mode.values()) def _period_has_moves(self, period): move_model = self.env['account.move'] @@ -282,7 +294,7 @@ class AccountingExpressionProcessor(object): domain = [('date', '>=', date_from), ('date', '<=', date_to)] if target_move == 'posted': domain.append(('move_id.state', '=', 'posted')) - return domain + return expression.normalize_domain(domain) def do_queries(self, date_from, date_to, period_from, period_to, target_move): diff --git a/mis_builder/models/mis_builder.py b/mis_builder/models/mis_builder.py index 0912eac2..04b75b4b 100644 --- a/mis_builder/models/mis_builder.py +++ b/mis_builder/models/mis_builder.py @@ -482,33 +482,13 @@ class mis_report_instance_period(orm.Model): this = self.browse(cr, uid, _id, context=context)[0] env = Environment(cr, uid, {}) aep = AccountingExpressionProcessor(env) - aep.parse_expr(expr) - aep.done_parsing(this.report_instance_id.root_account) - domain = aep.get_aml_domain_for_expr(expr) - if domain: - # TODO: reuse compute_period_domain - # compute date/period - period_ids = [] - date_from = None - date_to = None - period_obj = self.pool['account.period'] - target_move = this.report_instance_id.target_move - if target_move == 'posted': - domain.append(('move_id.state', '=', target_move)) - if this.period_from: - compute_period_ids = period_obj.build_ctx_periods( - cr, uid, this.period_from.id, this.period_to.id) - period_ids.extend(compute_period_ids) - else: - date_from = this.date_from - date_to = this.date_to - if period_ids: - if date_from: - domain.append('|') - domain.append(('period_id', 'in', period_ids)) - if date_from: - domain.extend([('date', '>=', date_from), - ('date', '<=', date_to)]) + if aep.has_account_var(expr): + aep.parse_expr(expr) + aep.done_parsing(this.report_instance_id.root_account) + domain = aep.get_aml_domain_for_expr( + expr, this.date_from, this.date_to, + this.period_from, this.period_to, + this.report_instance_id.target_move) return { 'name': expr + ' - ' + this.name, 'domain': domain, @@ -605,7 +585,7 @@ class mis_report_instance_period(orm.Model): kpi_style = None drilldown = (kpi_val is not None and - bool(aep.get_aml_domain_for_expr(kpi.expression))) + aep.has_account_var(kpi.expression)) res[kpi.name] = { 'val': kpi_val, From a1fd65262cbee1d87b7118ce318797ee83b33821 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Bidoul?= Date: Tue, 28 Apr 2015 18:37:30 +0200 Subject: [PATCH 098/186] [FIX] mis_builder: fix detection of expression with accounting variables --- mis_builder/models/aep.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mis_builder/models/aep.py b/mis_builder/models/aep.py index d181fa02..44bd0829 100644 --- a/mis_builder/models/aep.py +++ b/mis_builder/models/aep.py @@ -155,7 +155,7 @@ class AccountingExpressionProcessor(object): self._map_account_ids[key] = list(account_ids) def has_account_var(self, expr): - return bool(self.ACC_RE.match(expr)) + return bool(self.ACC_RE.search(expr)) def get_aml_domain_for_expr(self, expr, date_from, date_to, From cf254c131fd1444bdcde50e893fa0516d4a52820 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Bidoul?= Date: Wed, 29 Apr 2015 09:00:30 +0200 Subject: [PATCH 099/186] [IMP] mis_builder: query group by --- mis_builder/models/mis_builder.py | 25 ++++++++++++++++++++----- mis_builder/views/mis_builder.xml | 2 ++ 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/mis_builder/models/mis_builder.py b/mis_builder/models/mis_builder.py index 04b75b4b..56f9b964 100644 --- a/mis_builder/models/mis_builder.py +++ b/mis_builder/models/mis_builder.py @@ -261,6 +261,11 @@ class mis_report_query(orm.Model): store={'mis.report.query': (lambda self, cr, uid, ids, c={}: ids, ['field_ids'], 20), }), + 'groupby': fields.boolean(string="Group by"), + 'groupby_field_ids': fields.many2many('ir.model.fields', + 'ir_model_fields_' + 'mis_report_query_groupby_rel', + string='Fields to group by'), 'date_field': fields.many2one('ir.model.fields', required=True, string='Date field', domain=[('ttype', 'in', @@ -521,11 +526,21 @@ class mis_report_instance_period(orm.Model): if obj._columns.get('company_id', False): domain.extend(['|', ('company_id', '=', False), ('company_id', '=', c.company_id.id)]) - field_names = [field.name for field in query.field_ids] - obj_ids = obj.search(cr, uid, domain, context=context) - obj_datas = obj.read( - cr, uid, obj_ids, field_names, context=context) - res[query.name] = [AutoStruct(**d) for d in obj_datas] + field_names = [f.name for f in query.field_ids] + if not query.groupby: + obj_ids = obj.search(cr, uid, domain, context=context) + obj_datas = obj.read( + cr, uid, obj_ids, field_names, context=context) + res[query.name] = [AutoStruct(**d) for d in obj_datas] + else: + groupby_field_names = [f.name for f in query.groupby_field_ids] + obj_datas = obj.read_group( + cr, uid, domain, field_names, groupby_field_names, + context=context) + if groupby_field_names or not obj_datas: + res[query.name] = [AutoStruct(**d) for d in obj_datas] + else: + res[query.name] = AutoStruct(**obj_datas[0]) return res def _compute(self, cr, uid, lang_id, c, aep, context=None): diff --git a/mis_builder/views/mis_builder.xml b/mis_builder/views/mis_builder.xml index f7e09a83..cc6e65f2 100644 --- a/mis_builder/views/mis_builder.xml +++ b/mis_builder/views/mis_builder.xml @@ -36,6 +36,8 @@ + + From 32ce3109bba55d8c57aa8d85cb6ae2ce23c73231 Mon Sep 17 00:00:00 2001 From: "Adrien Peiffer (ACSONE)" Date: Thu, 30 Apr 2015 14:40:10 +0200 Subject: [PATCH 100/186] [IMP] mis_builder: Move menus in Accounting/Configuration/Financial Reports --- mis_builder/views/mis_builder.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mis_builder/views/mis_builder.xml b/mis_builder/views/mis_builder.xml index cc6e65f2..f93e1fcd 100644 --- a/mis_builder/views/mis_builder.xml +++ b/mis_builder/views/mis_builder.xml @@ -71,7 +71,7 @@ tree,form - + Export report instance result @@ -176,7 +176,7 @@ tree,form - + From ff68d74a85180c9462e3dd87c1d7ef9d1bf89d67 Mon Sep 17 00:00:00 2001 From: Laetitia Gangloff Date: Thu, 30 Apr 2015 15:51:06 +0200 Subject: [PATCH 101/186] add help in view, use NameError instead of ValueError --- mis_builder/models/mis_builder.py | 4 ++-- mis_builder/views/mis_builder.xml | 27 +++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/mis_builder/models/mis_builder.py b/mis_builder/models/mis_builder.py index 56f9b964..3e4cf638 100644 --- a/mis_builder/models/mis_builder.py +++ b/mis_builder/models/mis_builder.py @@ -144,7 +144,7 @@ class mis_report_kpi(orm.Model): res = {} if name and not _is_valid_python_var(name): res['warning'] = { - 'title': 'Invalid name', + 'title': 'Invalid name %s' % name, 'message': 'The name must be a valid python identifier'} return res @@ -578,7 +578,7 @@ class mis_report_instance_period(orm.Model): kpi_val = None kpi_val_rendered = '#DIV/0' kpi_val_comment += '\n\n%s' % (traceback.format_exc(),) - except ValueError: + except NameError: recompute_queue.append(kpi) kpi_val = None kpi_val_rendered = '#ERR' diff --git a/mis_builder/views/mis_builder.xml b/mis_builder/views/mis_builder.xml index f93e1fcd..78178295 100644 --- a/mis_builder/views/mis_builder.xml +++ b/mis_builder/views/mis_builder.xml @@ -58,6 +58,33 @@
+ + + + + + From 659d592e6a47aae3bd1ed9967977c921f25d8737 Mon Sep 17 00:00:00 2001 From: "Adrien Peiffer (ACSONE)" Date: Thu, 30 Apr 2015 16:20:45 +0200 Subject: [PATCH 102/186] [FIX] mis builder: Catch exception on ValueError and on NameError --- mis_builder/models/mis_builder.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/mis_builder/models/mis_builder.py b/mis_builder/models/mis_builder.py index 3e4cf638..61c82a69 100644 --- a/mis_builder/models/mis_builder.py +++ b/mis_builder/models/mis_builder.py @@ -29,7 +29,6 @@ import re import traceback import pytz - from openerp.api import Environment from openerp.osv import orm, fields from openerp import tools @@ -578,7 +577,7 @@ class mis_report_instance_period(orm.Model): kpi_val = None kpi_val_rendered = '#DIV/0' kpi_val_comment += '\n\n%s' % (traceback.format_exc(),) - except NameError: + except (NameError, ValueError): recompute_queue.append(kpi) kpi_val = None kpi_val_rendered = '#ERR' From 5325f46793b461053eb78a95b786a1d2f31cb1ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Bidoul?= Date: Fri, 1 May 2015 15:16:07 +0200 Subject: [PATCH 103/186] [IMP] mis_builder: remove unncessary code for managing sequences As far as I can tell this code is no necessary in 8.0 --- mis_builder/models/mis_builder.py | 54 ------------------------------- 1 file changed, 54 deletions(-) diff --git a/mis_builder/models/mis_builder.py b/mis_builder/models/mis_builder.py index 61c82a69..28af3ff0 100644 --- a/mis_builder/models/mis_builder.py +++ b/mis_builder/models/mis_builder.py @@ -320,30 +320,6 @@ class mis_report(orm.Model): # TODO: kpi name cannot be start with query name - def create(self, cr, uid, vals, context=None): - # TODO: explain this - if 'kpi_ids' in vals: - mis_report_kpi_obj = self.pool.get('mis.report.kpi') - for idx, line in enumerate(vals['kpi_ids']): - if line[0] == 0: - line[2]['sequence'] = idx + 1 - else: - mis_report_kpi_obj.write( - cr, uid, [line[1]], {'sequence': idx + 1}, - context=context) - return super(mis_report, self).create(cr, uid, vals, context=context) - - def write(self, cr, uid, ids, vals, context=None): - # TODO: explain this - res = super(mis_report, self).write( - cr, uid, ids, vals, context=context) - mis_report_kpi_obj = self.pool.get('mis.report.kpi') - for report in self.browse(cr, uid, ids, context): - for idx, kpi in enumerate(report.kpi_ids): - mis_report_kpi_obj.write( - cr, uid, [kpi.id], {'sequence': idx + 1}, context=context) - return res - class mis_report_instance_period(orm.Model): @@ -696,36 +672,6 @@ class mis_report_instance(orm.Model): context=c) } - def create(self, cr, uid, vals, context=None): - if not vals: - return context.get('active_id', None) - # TODO: explain this - if 'period_ids' in vals: - mis_report_instance_period_obj = self.pool.get( - 'mis.report.instance.period') - for idx, line in enumerate(vals['period_ids']): - if line[0] == 0: - line[2]['sequence'] = idx + 1 - else: - mis_report_instance_period_obj.write( - cr, uid, [line[1]], {'sequence': idx + 1}, - context=context) - return super(mis_report_instance, self).create(cr, uid, vals, - context=context) - - def write(self, cr, uid, ids, vals, context=None): - # TODO: explain this - res = super(mis_report_instance, self).write( - cr, uid, ids, vals, context=context) - mis_report_instance_period_obj = self.pool.get( - 'mis.report.instance.period') - for instance in self.browse(cr, uid, ids, context): - for idx, period in enumerate(instance.period_ids): - mis_report_instance_period_obj.write( - cr, uid, [period.id], {'sequence': idx + 1}, - context=context) - return res - def _format_date(self, cr, uid, lang_id, date, context=None): # format date following user language tformat = self.pool['res.lang'].read( From ec6a03d182a23c76aa2f6d9a1c1af713d8af785f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Bidoul?= Date: Fri, 1 May 2015 22:44:08 +0200 Subject: [PATCH 104/186] [FIX] mis_builder: do not raise inside function fields --- mis_builder/models/mis_builder.py | 54 ++++++++++++++++--------------- mis_builder/views/mis_builder.xml | 3 +- 2 files changed, 30 insertions(+), 27 deletions(-) diff --git a/mis_builder/models/mis_builder.py b/mis_builder/models/mis_builder.py index 28af3ff0..6cc20ac6 100644 --- a/mis_builder/models/mis_builder.py +++ b/mis_builder/models/mis_builder.py @@ -335,6 +335,10 @@ class mis_report_instance_period(orm.Model): ids = [ids] res = {} for c in self.browse(cr, uid, ids, context=context): + date_from = False + date_to = False + period_ids = None + valid = False d = parser.parse(c.report_instance_id.pivot_date) if c.type == 'd': date_from = d + timedelta(days=c.offset) @@ -342,7 +346,7 @@ class mis_report_instance_period(orm.Model): date_from = date_from.strftime( tools.DEFAULT_SERVER_DATE_FORMAT) date_to = date_to.strftime(tools.DEFAULT_SERVER_DATE_FORMAT) - period_ids = None + valid = True elif c.type == 'w': date_from = d - timedelta(d.weekday()) date_from = date_from + timedelta(days=c.offset * 7) @@ -350,15 +354,9 @@ class mis_report_instance_period(orm.Model): date_from = date_from.strftime( tools.DEFAULT_SERVER_DATE_FORMAT) date_to = date_to.strftime(tools.DEFAULT_SERVER_DATE_FORMAT) - period_ids = None + valid = True elif c.type == 'fp': period_obj = self.pool['account.period'] - all_period_ids = period_obj.search( - cr, uid, - [('special', '=', False), - ('company_id', '=', c.company_id.id)], - order='date_start', - context=context) current_period_ids = period_obj.search( cr, uid, [('special', '=', False), @@ -366,29 +364,28 @@ class mis_report_instance_period(orm.Model): ('date_stop', '>=', d), ('company_id', '=', c.company_id.id)], context=context) - if not current_period_ids: - raise orm.except_orm(_("Error!"), - _("No current fiscal period for %s") - % d) - p = all_period_ids.index(current_period_ids[0]) + c.offset - if p < 0 or p >= len(all_period_ids): - raise orm.except_orm(_("Error!"), - _("No such fiscal period for %s " - "with offset %d") % (d, c.offset)) - period_ids = all_period_ids[p:p + c.duration] - periods = period_obj.browse(cr, uid, period_ids, - context=context) - date_from = periods[0].date_start - date_to = periods[-1].date_stop - else: - raise orm.except_orm(_("Error!"), - _("Unimplemented period type %s") % - (c.type,)) + if current_period_ids: + all_period_ids = period_obj.search( + cr, uid, + [('special', '=', False), + ('company_id', '=', c.company_id.id)], + order='date_start', + context=context) + p = all_period_ids.index(current_period_ids[0]) + c.offset + if p >= 0 and p + c.duration <= len(all_period_ids): + period_ids = all_period_ids[p:p + c.duration] + periods = period_obj.browse(cr, uid, period_ids, + context=context) + date_from = periods[0].date_start + date_to = periods[-1].date_stop + valid = True + res[c.id] = { 'date_from': date_from, 'date_to': date_to, 'period_from': period_ids and period_ids[0] or False, 'period_to': period_ids and period_ids[-1] or False, + 'valid': valid, } return res @@ -422,6 +419,9 @@ class mis_report_instance_period(orm.Model): 'period_to': fields.function(_get_dates, type='many2one', obj='account.period', multi="dates", string="To period"), + 'valid': fields.function(_get_dates, + type='boolean', + multi='dates', string='Valid'), 'sequence': fields.integer(string='Sequence'), 'report_instance_id': fields.many2one('mis.report.instance', string='Report Instance', @@ -712,6 +712,8 @@ class mis_report_instance(orm.Model): cr, uid, [('code', '=', lang)], context=context) for period in r.period_ids: + if not period.valid: + continue # add the column header header['']['cols'].append(dict( name=period.name, diff --git a/mis_builder/views/mis_builder.xml b/mis_builder/views/mis_builder.xml index 78178295..6bbfa709 100644 --- a/mis_builder/views/mis_builder.xml +++ b/mis_builder/views/mis_builder.xml @@ -172,7 +172,7 @@ - + @@ -183,6 +183,7 @@ + From cffcae36ada024eebc126e23bbd8469254581138 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Bidoul?= Date: Fri, 1 May 2015 23:06:31 +0200 Subject: [PATCH 105/186] [IMP] mis_builder: improve documentation a bit --- mis_builder/models/aep.py | 10 +++++----- mis_builder/models/mis_builder.py | 18 ++++++------------ 2 files changed, 11 insertions(+), 17 deletions(-) diff --git a/mis_builder/models/aep.py b/mis_builder/models/aep.py index 44bd0829..04ebaff4 100644 --- a/mis_builder/models/aep.py +++ b/mis_builder/models/aep.py @@ -19,18 +19,18 @@ class AccountingExpressionProcessor(object): * mode is i (initial balance), e (ending balance), p (moves over period) * accounts is a list of accounts, possibly containing % wildcards - * an optional domain on analytic lines allowing filters on eg analytic + * an optional domain on move lines allowing filters on eg analytic accounts or journal Examples: - * bal[70]: balance of moves on account 70 over the period - (it is the same as balp[70]); + * bal[70]: variation of the balance of moves on account 70 + over the period (it is the same as balp[70]); * bali[70,60]: initial balance of accounts 70 and 60; * bale[1%]: balance of accounts starting with 1 at end of period. How to use: * repeatedly invoke parse_expr() for each expression containing - accounting variables as described above; this let the processor + accounting variables as described above; this lets the processor group domains and modes and accounts; * when all expressions have been parsed, invoke done_parsing() to notify the processor that it can prepare to query (mainly @@ -41,7 +41,7 @@ class AccountingExpressionProcessor(object): for the given period. How it works: - * by accumulating the expressions before hand, it ensure to do the + * by accumulating the expressions before hand, it ensures to do the strict minimum number of queries to the database (for each period, one query per domain and mode); * it queries using the orm read_group which reduces to a query with diff --git a/mis_builder/models/mis_builder.py b/mis_builder/models/mis_builder.py index 6cc20ac6..2ea4654a 100644 --- a/mis_builder/models/mis_builder.py +++ b/mis_builder/models/mis_builder.py @@ -73,15 +73,13 @@ def _is_valid_python_var(name): class mis_report_kpi(orm.Model): - """ A KPI is an element of a MIS report. + """ A KPI is an element (ie a line) of a MIS report. In addition to a name and description, it has an expression to compute it based on queries defined in the MIS report. It also has various informations defining how to render it (numeric or percentage or a string, a suffix, divider) and how to render comparison of two values of the KPI. - KPI are ordered inside the MIS report, as some KPI expressions - can depend on other KPI that need to be computed before. """ _name = 'mis.report.kpi' @@ -288,21 +286,17 @@ class mis_report_query(orm.Model): class mis_report(orm.Model): - """ A MIS report template (without period information) The MIS report holds: - * an implicit query fetching all the account balances; - for each account, the balance is stored in a variable named - bal_{code} where {code} is the account code - * an implicit query fetching all the account balances solde; - for each account, the balance solde is stored in a variable named - bals_{code} where {code} is the account code * a list of explicit queries; the result of each query is stored in a variable with same name as a query, containing as list - of data structures populated with attributes for each fields to fetch + of data structures populated with attributes for each fields to fetch; + when queries have the group by flag and no fields to group, it returns + a data structure with the summed fields * a list of KPI to be evaluated based on the variables resulting - from the balance and queries + from the balance and queries (KPI expressions can references queries + and accounting expression - see AccoutingExpressionProcessor) """ _name = 'mis.report' From 2c66fa61aaa17bc62355d2361d6ccd252bcb3243 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Bidoul?= Date: Fri, 1 May 2015 23:33:43 +0200 Subject: [PATCH 106/186] [IMP] mis_builder: improve legend wording --- mis_builder/views/mis_builder.xml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/mis_builder/views/mis_builder.xml b/mis_builder/views/mis_builder.xml index 6bbfa709..c9c87832 100644 --- a/mis_builder/views/mis_builder.xml +++ b/mis_builder/views/mis_builder.xml @@ -60,26 +60,26 @@ - From d910987707030550cfac60280c013447a47fac44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Bidoul?= Date: Sun, 3 May 2015 13:27:28 +0200 Subject: [PATCH 112/186] [FIX] mis_builder: deleting mis.report cascade deletes mis.report.kpi --- mis_builder/models/mis_builder.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mis_builder/models/mis_builder.py b/mis_builder/models/mis_builder.py index cb30408e..0091a787 100644 --- a/mis_builder/models/mis_builder.py +++ b/mis_builder/models/mis_builder.py @@ -114,7 +114,8 @@ class mis_report_kpi(orm.Model): required=True, string='Comparison Method'), 'sequence': fields.integer(string='Sequence'), - 'report_id': fields.many2one('mis.report', string='Report'), + 'report_id': fields.many2one('mis.report', string='Report', + ondelete='cascade'), } _defaults = { From 71b340e46f6387190b829caf1d90568ff01d7c9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Bidoul?= Date: Sun, 3 May 2015 14:37:43 +0200 Subject: [PATCH 113/186] [IMP] mis_builder: refactor compute to display comparison columns after their corresponding period and better readability --- mis_builder/models/mis_builder.py | 103 +++++++++++++++----------- mis_builder/tests/test_mis_builder.py | 3 +- 2 files changed, 59 insertions(+), 47 deletions(-) diff --git a/mis_builder/models/mis_builder.py b/mis_builder/models/mis_builder.py index 0091a787..31b2bacc 100644 --- a/mis_builder/models/mis_builder.py +++ b/mis_builder/models/mis_builder.py @@ -590,7 +590,6 @@ class mis_report_instance_period(orm.Model): 'val_r': kpi_val_rendered, 'val_c': kpi_val_comment, 'style': kpi_style, - 'default_style': kpi.default_css_style or None, 'suffix': kpi.suffix, 'dp': kpi.dp, 'is_percentage': kpi.type == 'pct', @@ -693,25 +692,20 @@ class mis_report_instance(orm.Model): assert isinstance(_id, (int, long)) if context is None: context = {} - r = self.browse(cr, uid, _id, context=context) - content = OrderedDict() - # empty line name for header - header = OrderedDict() - header[''] = {'kpi_name': '', 'cols': [], 'default_style': ''} - env = Environment(cr, uid, {}) + + this = self.browse(cr, uid, _id, context=context) + + kpi_obj = self.pool['mis.report.kpi'] + report_instance_period_obj = self.pool['mis.report.instance.period'] + + # prepare AccountingExpressionProcessor + env = Environment(cr, uid, context) aep = AccountingExpressionProcessor(env) - # initialize lines with kpi - for kpi in r.report_id.kpi_ids: + for kpi in this.report_id.kpi_ids: aep.parse_expr(kpi.expression) - content[kpi.name] = {'kpi_name': kpi.description, - 'cols': [], - 'default_style': ''} - aep.done_parsing(r.root_account) - report_instance_period_obj = self.pool.get( - 'mis.report.instance.period') - kpi_obj = self.pool.get('mis.report.kpi') + aep.done_parsing(this.root_account) - period_values = {} + # fetch user language only once (TODO: is it necessary?) lang = self.pool['res.users'].read( cr, uid, uid, ['lang'], context=context)['lang'] if not lang: @@ -719,7 +713,28 @@ class mis_report_instance(orm.Model): lang_id = self.pool['res.lang'].search( cr, uid, [('code', '=', lang)], context=context) - for period in r.period_ids: + # compute kpi values for each period + kpi_values_by_period_ids = {} + for period in this.period_ids: + if not period.valid: + continue + kpi_values = report_instance_period_obj._compute( + cr, uid, lang_id, period, aep, context=context) + kpi_values_by_period_ids[period.id] = kpi_values + + # prepare header and content + header = OrderedDict() + header[''] = {'kpi_name': '', + 'cols': [], + 'default_style': ''} + content = OrderedDict() + for kpi in this.report_id.kpi_ids: + content[kpi.name] = {'kpi_name': kpi.description, + 'cols': [], + 'default_style': kpi.default_css_style} + + # populate header and content + for period in this.period_ids: if not period.valid: continue # add the column header @@ -735,35 +750,33 @@ class mis_report_instance(orm.Model): context=context))) or period.period_from and period.period_from.name or period.date_from)) - # compute kpi values - values = report_instance_period_obj._compute( - cr, uid, lang_id, period, aep, context=context) - period_values[period.name] = values - for key in values: - content[key]['default_style'] = values[key]['default_style'] - content[key]['cols'].append(values[key]) + # add kpi values + kpi_values = kpi_values_by_period_ids[period.id] + for kpi_name in kpi_values: + content[kpi_name]['cols'].append(kpi_values[kpi_name]) - # add comparison column - for period in r.period_ids: + # add comparison columns for compare_col in period.comparison_column_ids: - # add the column header - header['']['cols'].append( - dict(name='%s - %s' % (period.name, compare_col.name), - date='')) - column1_values = period_values[period.name] - column2_values = period_values[compare_col.name] - for kpi in r.report_id.kpi_ids: - content[kpi.name]['cols'].append( - {'val_r': kpi_obj._render_comparison( - cr, - uid, - lang_id, - kpi, - column1_values[kpi.name]['val'], - column2_values[kpi.name]['val'], - period.normalize_factor, - compare_col.normalize_factor, - context=context)}) + compare_kpi_values = \ + kpi_values_by_period_ids.get(compare_col.id) + if compare_kpi_values: + # add the comparison column header + header['']['cols'].append( + dict(name='%s vs %s' % (period.name, compare_col.name), + date='')) + # add comparison values + for kpi in this.report_id.kpi_ids: + content[kpi.name]['cols'].append( + {'val_r': kpi_obj._render_comparison( + cr, + uid, + lang_id, + kpi, + kpi_values[kpi.name]['val'], + compare_kpi_values[kpi.name]['val'], + period.normalize_factor, + compare_col.normalize_factor, + context=context)}) return {'header': header, 'content': content} diff --git a/mis_builder/tests/test_mis_builder.py b/mis_builder/tests/test_mis_builder.py index eed12cb3..8bb26180 100644 --- a/mis_builder/tests/test_mis_builder.py +++ b/mis_builder/tests/test_mis_builder.py @@ -68,13 +68,12 @@ class test_mis_builder(common.TransactionCase): OrderedDict([( u'total_test', {'kpi_name': u'total test', - 'default_style': None, + 'default_style': False, 'cols': [{ 'period_id': self.ref( 'mis_builder.mis_report_instance_period_test'), 'style': None, - 'default_style': None, 'suffix': False, 'expr': 'len(test)', 'val_c': 'total_test = len(test)', From 327bf3975cec501c957dd4ad4373d53f8371cdf3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Bidoul?= Date: Sun, 3 May 2015 14:44:01 +0200 Subject: [PATCH 114/186] [FIX] mis_builder: order by sequence, id so d01eb513f is correct --- mis_builder/models/mis_builder.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mis_builder/models/mis_builder.py b/mis_builder/models/mis_builder.py index 31b2bacc..f54118f1 100644 --- a/mis_builder/models/mis_builder.py +++ b/mis_builder/models/mis_builder.py @@ -126,7 +126,7 @@ class mis_report_kpi(orm.Model): 'sequence': 100, } - _order = 'sequence' + _order = 'sequence, id' def _check_name(self, cr, uid, ids, context=None): for record_name in self.read(cr, uid, ids, ['name']): @@ -442,7 +442,7 @@ class mis_report_instance_period(orm.Model): 'normalize_factor': 1, } - _order = 'sequence' + _order = 'sequence, id' _sql_constraints = [ ('duration', 'CHECK (duration>0)', From b2367abb38cb612cfee94c0506f2429f3be96e23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Bidoul?= Date: Sun, 3 May 2015 18:35:54 +0200 Subject: [PATCH 115/186] [FIX] mis_builder: propagate context --- mis_builder/models/mis_builder.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mis_builder/models/mis_builder.py b/mis_builder/models/mis_builder.py index f54118f1..1c3a1b60 100644 --- a/mis_builder/models/mis_builder.py +++ b/mis_builder/models/mis_builder.py @@ -454,8 +454,10 @@ class mis_report_instance_period(orm.Model): ] def drilldown(self, cr, uid, _id, expr, context=None): + if context is None: + context = {} this = self.browse(cr, uid, _id, context=context)[0] - env = Environment(cr, uid, {}) + env = Environment(cr, uid, context) aep = AccountingExpressionProcessor(env) if aep.has_account_var(expr): aep.parse_expr(expr) From 272de956214f1b91484d2ef11cbb0087cf2735e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Bidoul?= Date: Sun, 3 May 2015 18:38:58 +0200 Subject: [PATCH 116/186] [IMP] mis_builder: tiny refactoring --- mis_builder/models/aep.py | 1 + mis_builder/models/mis_builder.py | 12 ++++++------ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/mis_builder/models/aep.py b/mis_builder/models/aep.py index 155088e7..4e6233db 100644 --- a/mis_builder/models/aep.py +++ b/mis_builder/models/aep.py @@ -155,6 +155,7 @@ class AccountingExpressionProcessor(object): account_ids.update(self._account_ids_by_code[account_code]) self._map_account_ids[key] = list(account_ids) + @classmethod def has_account_var(self, expr): return bool(self.ACC_RE.search(expr)) diff --git a/mis_builder/models/mis_builder.py b/mis_builder/models/mis_builder.py index 1c3a1b60..1421a020 100644 --- a/mis_builder/models/mis_builder.py +++ b/mis_builder/models/mis_builder.py @@ -35,7 +35,7 @@ from openerp import tools from openerp.tools.safe_eval import safe_eval from openerp.tools.translate import _ -from .aep import AccountingExpressionProcessor +from .aep import AccountingExpressionProcessor as AEP class AutoStruct(object): @@ -457,9 +457,9 @@ class mis_report_instance_period(orm.Model): if context is None: context = {} this = self.browse(cr, uid, _id, context=context)[0] - env = Environment(cr, uid, context) - aep = AccountingExpressionProcessor(env) - if aep.has_account_var(expr): + if AEP.has_account_var(expr): + env = Environment(cr, uid, context) + aep = AEP(env) aep.parse_expr(expr) aep.done_parsing(this.report_instance_id.root_account) domain = aep.get_aml_domain_for_expr( @@ -585,7 +585,7 @@ class mis_report_instance_period(orm.Model): kpi_style = None drilldown = (kpi_val is not None and - aep.has_account_var(kpi.expression)) + AEP.has_account_var(kpi.expression)) res[kpi.name] = { 'val': kpi_val, @@ -702,7 +702,7 @@ class mis_report_instance(orm.Model): # prepare AccountingExpressionProcessor env = Environment(cr, uid, context) - aep = AccountingExpressionProcessor(env) + aep = AEP(env) for kpi in this.report_id.kpi_ids: aep.parse_expr(kpi.expression) aep.done_parsing(this.root_account) From 08a72bb9aeb164b46369ddeb036504fce5b0413b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Bidoul?= Date: Sun, 3 May 2015 19:04:17 +0200 Subject: [PATCH 117/186] [FIX] mis_builder: OrderedDict serializes to json dict So this was relying on non-standard and unreliable feature of browsers to preserve order. --- mis_builder/models/mis_builder.py | 30 +++++++++++++---------- mis_builder/static/src/xml/mis_widget.xml | 6 ++++- 2 files changed, 22 insertions(+), 14 deletions(-) diff --git a/mis_builder/models/mis_builder.py b/mis_builder/models/mis_builder.py index 1421a020..fe20f16d 100644 --- a/mis_builder/models/mis_builder.py +++ b/mis_builder/models/mis_builder.py @@ -22,7 +22,6 @@ # ############################################################################## -from collections import OrderedDict from datetime import datetime, timedelta from dateutil import parser import re @@ -725,22 +724,27 @@ class mis_report_instance(orm.Model): kpi_values_by_period_ids[period.id] = kpi_values # prepare header and content - header = OrderedDict() - header[''] = {'kpi_name': '', - 'cols': [], - 'default_style': ''} - content = OrderedDict() + header = [] + header.append({ + 'kpi_name': '', + 'cols': [] + }) + content = [] + rows_by_kpi_name = {} for kpi in this.report_id.kpi_ids: - content[kpi.name] = {'kpi_name': kpi.description, - 'cols': [], - 'default_style': kpi.default_css_style} + rows_by_kpi_name[kpi.name] = { + 'kpi_name': kpi.description, + 'cols': [], + 'default_style': kpi.default_css_style + } + content.append(rows_by_kpi_name[kpi.name]) # populate header and content for period in this.period_ids: if not period.valid: continue # add the column header - header['']['cols'].append(dict( + header[0]['cols'].append(dict( name=period.name, date=(period.duration > 1 or period.type == 'w') and _('from %s to %s' % @@ -755,7 +759,7 @@ class mis_report_instance(orm.Model): # add kpi values kpi_values = kpi_values_by_period_ids[period.id] for kpi_name in kpi_values: - content[kpi_name]['cols'].append(kpi_values[kpi_name]) + rows_by_kpi_name[kpi_name]['cols'].append(kpi_values[kpi_name]) # add comparison columns for compare_col in period.comparison_column_ids: @@ -763,12 +767,12 @@ class mis_report_instance(orm.Model): kpi_values_by_period_ids.get(compare_col.id) if compare_kpi_values: # add the comparison column header - header['']['cols'].append( + header[0]['cols'].append( dict(name='%s vs %s' % (period.name, compare_col.name), date='')) # add comparison values for kpi in this.report_id.kpi_ids: - content[kpi.name]['cols'].append( + rows_by_kpi_name[kpi.name]['cols'].append( {'val_r': kpi_obj._render_comparison( cr, uid, diff --git a/mis_builder/static/src/xml/mis_widget.xml b/mis_builder/static/src/xml/mis_widget.xml index bd0cd0cf..8e3ddd61 100644 --- a/mis_builder/static/src/xml/mis_widget.xml +++ b/mis_builder/static/src/xml/mis_widget.xml @@ -4,7 +4,11 @@
+
- +
+
+ +
+
From 7cf8c3009ae2ab42bab576605c550f84e09adedf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Bidoul?= Date: Sun, 3 May 2015 22:11:12 +0200 Subject: [PATCH 118/186] [FIX] mis_builder: mis_widget was broken --- mis_builder/static/src/xml/mis_widget.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/mis_builder/static/src/xml/mis_widget.xml b/mis_builder/static/src/xml/mis_widget.xml index 8e3ddd61..5cfd9994 100644 --- a/mis_builder/static/src/xml/mis_widget.xml +++ b/mis_builder/static/src/xml/mis_widget.xml @@ -4,12 +4,12 @@ - +
-
- -
-
+
+ +
+
From c2a4ff2de07900e9b54c2c73c91a37a541d1a8fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Bidoul?= Date: Sun, 3 May 2015 22:11:36 +0200 Subject: [PATCH 119/186] [FIX] mis_builder: blind attempt to fix xls report which does not even start anymore :( --- mis_builder/report/mis_builder_xls.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/mis_builder/report/mis_builder_xls.py b/mis_builder/report/mis_builder_xls.py index f1b659c6..88dcd1cf 100644 --- a/mis_builder/report/mis_builder_xls.py +++ b/mis_builder/report/mis_builder_xls.py @@ -87,7 +87,7 @@ class mis_builder_xls(report_xls): header_name_list = [''] col_specs_template = {'': {'header': [1, 30, 'text', ''], 'header_date': [1, 1, 'text', '']}} - for col in data['header']['']['cols']: + for col in data['header'][0]['cols']: col_specs_template[col['name']] = {'header': [1, 30, 'text', col['name']], 'header_date': [1, 1, 'text', @@ -109,8 +109,7 @@ class mis_builder_xls(report_xls): ws.set_horz_split_pos(row_pos) ws.set_vert_split_pos(1) - for key in data['content']: - line = data['content'][key] + for line in data['content']: col = 0 ws.write(row_pos, col, line['kpi_name'], self.mis_rh_cell_style) for value in line['cols']: From 46bfc16b5cdbfe1123ebdc487be02f98dffd24d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Bidoul?= Date: Mon, 4 May 2015 10:12:58 +0200 Subject: [PATCH 120/186] [FIX] mis_builder: excel export works again... strange --- mis_builder/models/mis_builder.py | 13 +++++++++++++ mis_builder/views/mis_builder.xml | 11 +---------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/mis_builder/models/mis_builder.py b/mis_builder/models/mis_builder.py index fe20f16d..b6bf5871 100644 --- a/mis_builder/models/mis_builder.py +++ b/mis_builder/models/mis_builder.py @@ -689,6 +689,19 @@ class mis_report_instance(orm.Model): tools.DEFAULT_SERVER_DATE_FORMAT), tformat) + def preview(self, cr, uid, _id, context=None): + view_id = self.pool['ir.model.data'].get_object_reference( + cr, uid, 'mis_builder', 'mis_report_instance_result_view_form')[1] + return { + 'type': 'ir.actions.act_window', + 'res_model': 'mis.report.instance', + 'res_id': _id[0], + 'view_mode': 'form', + 'view_type': 'form', + 'view_id': view_id, + 'target': 'new', + } + def compute(self, cr, uid, _id, context=None): assert isinstance(_id, (int, long)) if context is None: diff --git a/mis_builder/views/mis_builder.xml b/mis_builder/views/mis_builder.xml index 8fb0704b..21acfdbf 100644 --- a/mis_builder/views/mis_builder.xml +++ b/mis_builder/views/mis_builder.xml @@ -120,15 +120,6 @@ - - Preview - - mis.report.instance - form - form - new - - mis.report.instance.view.tree mis.report.instance @@ -160,7 +151,7 @@
-
From 2b7750628479f885a8b15aeba2db068923969b07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Bidoul?= Date: Mon, 4 May 2015 22:06:54 +0200 Subject: [PATCH 121/186] [IMP] mis_builder: add button icons and xls export from the report instance form --- mis_builder/views/mis_builder.xml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mis_builder/views/mis_builder.xml b/mis_builder/views/mis_builder.xml index 21acfdbf..cda42859 100644 --- a/mis_builder/views/mis_builder.xml +++ b/mis_builder/views/mis_builder.xml @@ -115,7 +115,7 @@
-