diff --git a/addons/account/__openerp__.py b/addons/account/__openerp__.py index abd3d1f459d..d4731fa0215 100644 --- a/addons/account/__openerp__.py +++ b/addons/account/__openerp__.py @@ -80,6 +80,8 @@ module named account_voucherss 'wizard/account_aged_trial_balance_view.xml', 'wizard/account_compare_account_balance_report_view.xml', 'wizard/account_third_party_ledger.xml', + 'wizard/account_reconcile_view.xml', + 'wizard/account_automatic_reconcile_view.xml', 'project/wizard/project_account_analytic_line_view.xml', 'account_end_fy.xml', 'account_invoice_view.xml', @@ -89,6 +91,13 @@ module named account_voucherss 'account_invoice_workflow.xml', 'project/project_view.xml', 'project/project_report.xml', + 'project/wizard/account_analytic_check_view.xml', + 'project/wizard/account_analytic_balance_report_view.xml', + 'project/wizard/account_analytic_cost_ledger_view.xml', + 'project/wizard/account_analytic_inverted_balance_report.xml', + 'project/wizard/account_analytic_journal_report_view.xml', + 'project/wizard/account_analytic_cost_ledger_for_journal_report_view.xml', + 'project/wizard/account_analytic_chart_view.xml', 'product_view.xml', 'account_assert_test.xml', 'process/statement_process.xml', @@ -113,4 +122,4 @@ module named account_voucherss 'active': False, 'certificate': '0080331923549', } -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: \ No newline at end of file diff --git a/addons/account/account_move_line.py b/addons/account/account_move_line.py index 07d8e1a02ac..b9aa089942e 100644 --- a/addons/account/account_move_line.py +++ b/addons/account/account_move_line.py @@ -922,10 +922,10 @@ class account_move_line(osv.osv): vals['analytic_lines'] = [(0,0, { 'name': vals['name'], 'date': vals.get('date', time.strftime('%Y-%m-%d')), - 'account_id': vals['analytic_account_id'], - 'unit_amount':'quantity' in vals and vals['quantity'] or 1.0, - 'amount': vals['debit'] or vals['credit'], - 'general_account_id': vals['account_id'], + 'account_id': vals.get('analytic_account_id', False), + 'unit_amount': vals.get('quantity', 1.0), + 'amount': vals.get('debit', 0.0) or vals.get('credit', 0.0), + 'general_account_id': vals.get('account_id', False), 'journal_id': journal.analytic_journal_id.id, 'ref': vals.get('ref', False), })] diff --git a/addons/account/account_wizard.xml b/addons/account/account_wizard.xml index 93dba0e5249..8b093fb2310 100644 --- a/addons/account/account_wizard.xml +++ b/addons/account/account_wizard.xml @@ -33,9 +33,9 @@ --> - - + @@ -47,7 +47,7 @@ - + diff --git a/addons/account/i18n/pl.po b/addons/account/i18n/pl.po index 6634fd4f9ec..2305e11d469 100644 --- a/addons/account/i18n/pl.po +++ b/addons/account/i18n/pl.po @@ -7,13 +7,13 @@ msgstr "" "Project-Id-Version: OpenERP Server 5.0.0\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2010-04-27 19:28+0000\n" +"PO-Revision-Date: 2010-05-02 10:11+0000\n" "Last-Translator: Grzegorz Grzelak (Cirrus.pl) \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-28 03:44+0000\n" +"X-Launchpad-Export-Date: 2010-05-03 04:03+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: account @@ -2212,7 +2212,7 @@ msgstr "(pozostaw puste, aby stosować bieżący okres)" #: model:ir.actions.act_window,name:account.action_invoice_tree8 #: model:ir.ui.menu,name:account.menu_action_invoice_tree8 msgid "Draft Supplier Invoices" -msgstr "Projekt faktury dla klienta" +msgstr "Projekty faktur od dostawcy" #. module: account #: wizard_field:account.invoice.refund,init,period:0 @@ -2952,7 +2952,7 @@ msgstr "" #: model:ir.actions.act_window,name:account.action_invoice_tree12 #: model:ir.ui.menu,name:account.menu_action_invoice_tree12 msgid "Draft Supplier Refunds" -msgstr "Projekt korekty od dostawcy" +msgstr "Projekty korekt od dostawcy" #. module: account #: model:process.node,name:account.process_node_accountingstatemententries0 @@ -3039,7 +3039,7 @@ msgstr "Kurs dla op. wychodzacych" #: model:ir.actions.act_window,name:account.action_invoice_tree10 #: model:ir.ui.menu,name:account.menu_action_invoice_tree10 msgid "Draft Customer Refunds" -msgstr "Projekt korekty dla klienta" +msgstr "Projekty korekt dla klienta" #. module: account #: field:account.journal.column,readonly:0 @@ -5481,7 +5481,7 @@ msgstr "Zapisy subskrypcji" #: model:ir.actions.act_window,name:account.action_invoice_tree6 #: model:ir.ui.menu,name:account.menu_action_invoice_tree6 msgid "PRO-FORMA Customer Invoices" -msgstr "Faktura PRO-FORMA dla klienta" +msgstr "Fakturay PRO-FORMA dla klienta" #. module: account #: field:account.subscription,period_total:0 diff --git a/addons/account/invoice.py b/addons/account/invoice.py index c66dda115b2..14cd952aa69 100644 --- a/addons/account/invoice.py +++ b/addons/account/invoice.py @@ -539,6 +539,16 @@ class account_invoice(osv.osv): wf_service.trg_create(uid, 'account.invoice', inv_id, cr) return True + def finalize_invoice_move_lines(self, cr, uid, invoice_browse, move_lines): + """finalize_invoice_move_lines(cr, uid, invoice, move_lines) -> move_lines + Hook method to be overridden in additional modules to verify and possibly alter the + move lines to be created by an invoice, for special cases. + :param invoice_browse: browsable record of the invoice that is generating the move lines + :param move_lines: list of dictionaries with the account.move.lines (as for create()) + :return: the (possibly updated) final move_lines to create for this invoice + """ + return move_lines + # Workflow stuff ################# @@ -816,6 +826,9 @@ class account_invoice(osv.osv): if journal.centralisation: raise osv.except_osv(_('UserError'), _('Cannot create invoice move on centralised journal')) + + line = self.finalize_invoice_move_lines(cr, uid, inv, line) + move = {'ref': inv.number, 'line_id': line, 'journal_id': journal_id, 'date': date} period_id=inv.period_id and inv.period_id.id or False if not period_id: diff --git a/addons/account/project/project_report.xml b/addons/account/project/project_report.xml index 0abfd6625f5..ae6aedeaab1 100644 --- a/addons/account/project/project_report.xml +++ b/addons/account/project/project_report.xml @@ -3,32 +3,32 @@ - + - + - + - + - + - + diff --git a/addons/account/project/project_view.xml b/addons/account/project/project_view.xml index e0854f8d65d..a97be959cd1 100644 --- a/addons/account/project/project_view.xml +++ b/addons/account/project/project_view.xml @@ -127,8 +127,8 @@ parent="account_analytic_def_account"/> - - + diff --git a/addons/account/project/report/analytic_check.py b/addons/account/project/report/analytic_check.py index 0469c3b6918..54fbaddc4d9 100644 --- a/addons/account/project/report/analytic_check.py +++ b/addons/account/project/report/analytic_check.py @@ -18,9 +18,9 @@ # along with this program. If not, see . # ############################################################################## +import time import pooler -import time from report import report_sxw class account_analytic_analytic_check(report_sxw.rml_parse): @@ -132,5 +132,4 @@ class account_analytic_analytic_check(report_sxw.rml_parse): report_sxw.report_sxw('report.account.analytic.account.analytic.check', 'account.analytic.account', 'addons/account/project/report/analytic_check.rml',parser=account_analytic_analytic_check, header=False) - # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/account/project/report/quantity_cost_ledger.py b/addons/account/project/report/quantity_cost_ledger.py index c841c2131ab..12bea390eba 100644 --- a/addons/account/project/report/quantity_cost_ledger.py +++ b/addons/account/project/report/quantity_cost_ledger.py @@ -18,9 +18,9 @@ # along with this program. If not, see . # ############################################################################## +import time import pooler -import time from report import report_sxw class account_analytic_quantity_cost_ledger(report_sxw.rml_parse): @@ -35,7 +35,7 @@ class account_analytic_quantity_cost_ledger(report_sxw.rml_parse): }) def _lines_g(self, account_id, date1, date2, journals): - if not journals or not journals[0][2]: + if not journals: self.cr.execute("SELECT sum(aal.unit_amount) AS quantity, \ aa.code AS code, aa.name AS name, aa.id AS id \ FROM account_account AS aa, account_analytic_line AS aal \ @@ -45,7 +45,7 @@ class account_analytic_quantity_cost_ledger(report_sxw.rml_parse): GROUP BY aa.code, aa.name, aa.id ORDER BY aa.code", (account_id, date1, date2)) else: - journal_ids = journals[0][2] + journal_ids = journals self.cr.execute("SELECT sum(aal.unit_amount) AS quantity, \ aa.code AS code, aa.name AS name, aa.id AS id \ FROM account_account AS aa, account_analytic_line AS aal \ @@ -59,7 +59,7 @@ class account_analytic_quantity_cost_ledger(report_sxw.rml_parse): return res def _lines_a(self, general_account_id, account_id, date1, date2, journals): - if not journals or not journals[0][2]: + if not journals: self.cr.execute("SELECT aal.name AS name, aal.code AS code, \ aal.unit_amount AS quantity, aal.date AS date, \ aaj.code AS cj \ @@ -71,7 +71,7 @@ class account_analytic_quantity_cost_ledger(report_sxw.rml_parse): ORDER BY aal.date, aaj.code, aal.code", (general_account_id, account_id, date1, date2)) else: - journal_ids = journals[0][2] + journal_ids = journals self.cr.execute("SELECT aal.name AS name, aal.code AS code, \ aal.unit_amount AS quantity, aal.date AS date, \ aaj.code AS cj \ @@ -86,13 +86,13 @@ class account_analytic_quantity_cost_ledger(report_sxw.rml_parse): return res def _account_sum_quantity(self, account_id, date1, date2, journals): - if not journals or not journals[0][2]: + if not journals: self.cr.execute("SELECT sum(unit_amount) \ FROM account_analytic_line \ WHERE account_id=%s AND date>=%s AND date<=%s", (account_id, date1, date2)) else: - journal_ids = journals[0][2] + journal_ids = journals self.cr.execute("SELECT sum(unit_amount) \ FROM account_analytic_line \ WHERE account_id = %s AND date >= %s AND date <= %s \ @@ -104,17 +104,17 @@ class account_analytic_quantity_cost_ledger(report_sxw.rml_parse): ids = map(lambda x: x.id, accounts) if not len(ids): return 0.0 - if not journals or not journals[0][2]: + if not journals: self.cr.execute("SELECT sum(unit_amount) \ FROM account_analytic_line \ WHERE account_id =ANY(%s) AND date>=%s AND date<=%s", - (date1, date2,ids,)) + (ids, date1, date2,)) else: - journal_ids = journals[0][2] + journal_ids = journals self.cr.execute("SELECT sum(unit_amount) \ FROM account_analytic_line \ WHERE account_id =ANY(%s) AND date >= %s AND date <= %s \ - AND journal_id =ANY(%s)",(ids,date1, date2,journal_ids)) + AND journal_id =ANY(%s)",(ids, date1, date2, journal_ids)) return self.cr.fetchone()[0] or 0.0 report_sxw.report_sxw('report.account.analytic.account.quantity_cost_ledger', @@ -122,6 +122,4 @@ report_sxw.report_sxw('report.account.analytic.account.quantity_cost_ledger', 'addons/account/project/report/quantity_cost_ledger.rml', parser=account_analytic_quantity_cost_ledger, header=False) - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: - +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: \ No newline at end of file diff --git a/addons/account/project/wizard/__init__.py b/addons/account/project/wizard/__init__.py index f11fa936960..60f591fcb55 100644 --- a/addons/account/project/wizard/__init__.py +++ b/addons/account/project/wizard/__init__.py @@ -19,14 +19,13 @@ # ############################################################################## -import wizard_account_analytic_journal_report -import wizard_account_analytic_balance_report -import wizard_account_analytic_inverted_balance_report -import wizard_account_analytic_cost_ledger_report -import wizard_account_analytic_cost_ledger_for_journal_report -import wizard_account_analytic_analytic_check +import account_analytic_journal_report +import account_analytic_balance_report +import account_analytic_inverted_balance_report +import account_analytic_cost_ledger_report +import account_analytic_cost_ledger_for_journal_report +import account_analytic_check import project_account_analytic_line -import wizard_analytic_account_chart - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: +import account_analytic_chart +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: \ No newline at end of file diff --git a/addons/account_budget/wizard/wizard_crossovered_budget_summary_report.py b/addons/account/project/wizard/account_analytic_balance_report.py similarity index 50% rename from addons/account_budget/wizard/wizard_crossovered_budget_summary_report.py rename to addons/account/project/wizard/account_analytic_balance_report.py index 5580fea385f..b751808ffb9 100644 --- a/addons/account_budget/wizard/wizard_crossovered_budget_summary_report.py +++ b/addons/account/project/wizard/account_analytic_balance_report.py @@ -18,37 +18,42 @@ # along with this program. If not, see . # ############################################################################## - import time -import wizard -dates_form = ''' -
- - -''' +from osv import osv, fields -dates_fields = { - 'date_from': {'string':'Start of period', 'type':'date', 'required':True, 'default': lambda *a: time.strftime('%Y-01-01')}, - 'date_to': {'string':'End of period', 'type':'date', 'required':True, 'default': lambda *a: time.strftime('%Y-%m-%d')}, -} +class account_analytic_balance(osv.osv_memory): + _name = 'account.analytic.balance' + _description = 'Account Analytic Balance' -class wizard_report_summary(wizard.interface): - - def _default(self, cr, uid, data, context): - data['form']['report']='analytic-one' - return data['form'] - - states = { - 'init': { - 'actions': [_default], - 'result': {'type':'form', 'arch':dates_form, 'fields':dates_fields, 'state':[('end','Cancel', 'gtk-cancel'),('report','Print', 'gtk-print', True)]} - }, - 'report': { - 'actions': [], - 'result': {'type':'print', 'report':'crossovered.budget.report', 'state':'end'} + _columns = { + 'date1': fields.date('Start of period', required=True), + 'date2': fields.date('End of period', required=True), + 'empty_acc': fields.boolean('Empty Accounts ? ', help='Check if you want to display Accounts with 0 balance too.'), } - } -wizard_report_summary('wizard.crossovered.budget.summary') + + _defaults = { + 'date1':time.strftime('%Y-01-01'), + 'date2':time.strftime('%Y-%m-%d') + } + + def check_report(self, cr, uid, ids, context=None): + datas = {} + if context is None: + context = {} + data = self.read(cr, uid, ids)[0] + datas = { + 'ids': context.get('active_ids',[]), + 'model': 'account.analytic.account', + 'form': data + } + return { + 'type': 'ir.actions.report.xml', + 'report_name': 'account.analytic.account.balance', + 'datas': datas, + } + +account_analytic_balance() + # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/account/project/wizard/account_analytic_balance_report_view.xml b/addons/account/project/wizard/account_analytic_balance_report_view.xml new file mode 100644 index 00000000000..5144ba8647a --- /dev/null +++ b/addons/account/project/wizard/account_analytic_balance_report_view.xml @@ -0,0 +1,48 @@ + + + + + + Account Analytic Balance + account.analytic.balance + form + +
+ + + + + + + + +