diff --git a/addons/account/account_invoice.py b/addons/account/account_invoice.py
index c23f0c37115..35979cd808e 100644
--- a/addons/account/account_invoice.py
+++ b/addons/account/account_invoice.py
@@ -409,7 +409,7 @@ class account_invoice(osv.osv):
'''
assert len(ids) == 1, 'This option should only be used for a single id at a time.'
self.write(cr, uid, ids, {'sent': True}, context=context)
- return self.pool['report'].get_action(cr, uid, [], 'account.report_invoice', context=context)
+ return self.pool['report'].get_action(cr, uid, ids, 'account.report_invoice', context=context)
def action_invoice_sent(self, cr, uid, ids, context=None):
'''
diff --git a/addons/account/project/wizard/account_analytic_balance_report.py b/addons/account/project/wizard/account_analytic_balance_report.py
index 3a3c301cffc..062945fa53e 100644
--- a/addons/account/project/wizard/account_analytic_balance_report.py
+++ b/addons/account/project/wizard/account_analytic_balance_report.py
@@ -50,6 +50,6 @@ class account_analytic_balance(osv.osv_memory):
datas['form']['active_ids'] = context.get('active_ids', False)
- return self.pool['report'].get_action(cr, uid, ids, 'account.report_analyticbalance', data=datas, context=context)
+ return self.pool['report'].get_action(cr, uid, [], 'account.report_analyticbalance', data=datas, context=context)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/account/project/wizard/account_analytic_cost_ledger_for_journal_report.py b/addons/account/project/wizard/account_analytic_cost_ledger_for_journal_report.py
index 125dfda46fb..ab84af4880a 100644
--- a/addons/account/project/wizard/account_analytic_cost_ledger_for_journal_report.py
+++ b/addons/account/project/wizard/account_analytic_cost_ledger_for_journal_report.py
@@ -49,6 +49,6 @@ class account_analytic_cost_ledger_journal_report(osv.osv_memory):
}
datas['form']['active_ids'] = context.get('active_ids', False)
- return self.pool['report'].get_action(cr, uid, ids, 'account.report_analyticcostledgerquantity', data=datas, context=context)
+ return self.pool['report'].get_action(cr, uid, [], 'account.report_analyticcostledgerquantity', data=datas, context=context)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/account/project/wizard/account_analytic_cost_ledger_report.py b/addons/account/project/wizard/account_analytic_cost_ledger_report.py
index 5f00c3c9ac5..978863f5900 100644
--- a/addons/account/project/wizard/account_analytic_cost_ledger_report.py
+++ b/addons/account/project/wizard/account_analytic_cost_ledger_report.py
@@ -49,6 +49,6 @@ class account_analytic_cost_ledger(osv.osv_memory):
datas['form']['active_ids'] = context.get('active_ids', False)
- return self.pool['report'].get_action(cr, uid, ids, 'account.report_analyticcostledger', data=datas, context=context)
+ return self.pool['report'].get_action(cr, uid, [], 'account.report_analyticcostledger', data=datas, context=context)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/account/project/wizard/account_analytic_inverted_balance_report.py b/addons/account/project/wizard/account_analytic_inverted_balance_report.py
index ad79c0b33f6..93946960297 100644
--- a/addons/account/project/wizard/account_analytic_inverted_balance_report.py
+++ b/addons/account/project/wizard/account_analytic_inverted_balance_report.py
@@ -47,6 +47,6 @@ class account_analytic_inverted_balance(osv.osv_memory):
'form': data
}
datas['form']['active_ids'] = context.get('active_ids', False)
- return self.pool['report'].get_action(cr, uid, ids, 'account.report_invertedanalyticbalance', data=datas, context=context)
+ return self.pool['report'].get_action(cr, uid, [], 'account.report_invertedanalyticbalance', data=datas, context=context)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/account/project/wizard/account_analytic_journal_report.py b/addons/account/project/wizard/account_analytic_journal_report.py
index f2e406bc3a5..d8790e805d8 100644
--- a/addons/account/project/wizard/account_analytic_journal_report.py
+++ b/addons/account/project/wizard/account_analytic_journal_report.py
@@ -57,7 +57,7 @@ class account_analytic_journal_report(osv.osv_memory):
context2 = context.copy()
context2['active_model'] = 'account.analytic.journal'
context2['active_ids'] = ids_list
- return self.pool['report'].get_action(cr, uid, ids, 'account.report_analyticjournal', data=datas, context=context2)
+ return self.pool['report'].get_action(cr, uid, [], 'account.report_analyticjournal', data=datas, context=context2)
def default_get(self, cr, uid, fields, context=None):
if context is None:
diff --git a/addons/account/views/report_invoice.xml b/addons/account/views/report_invoice.xml
index 6757095a7d4..6c4b701c6cf 100644
--- a/addons/account/views/report_invoice.xml
+++ b/addons/account/views/report_invoice.xml
@@ -47,7 +47,6 @@
Description |
Quantity |
- Unit of measure |
Unit Price |
Discount (%) |
Taxes |
@@ -57,8 +56,10 @@
|
- |
- |
+
+
+
+ |
|
@@ -100,7 +101,7 @@
-
+
@@ -136,7 +137,7 @@
Fiscal Position:
-
+
diff --git a/addons/account/wizard/account_financial_report.py b/addons/account/wizard/account_financial_report.py
index 6c1b57fa428..721e47193a2 100644
--- a/addons/account/wizard/account_financial_report.py
+++ b/addons/account/wizard/account_financial_report.py
@@ -89,6 +89,6 @@ class accounting_report(osv.osv_memory):
def _print_report(self, cr, uid, ids, data, context=None):
data['form'].update(self.read(cr, uid, ids, ['date_from_cmp', 'debit_credit', 'date_to_cmp', 'fiscalyear_id_cmp', 'period_from_cmp', 'period_to_cmp', 'filter_cmp', 'account_report_id', 'enable_filter', 'label_filter','target_move'], context=context)[0])
- return self.pool['report'].get_action(cr, uid, ids, 'account.report_financial', data=data, context=context)
+ return self.pool['report'].get_action(cr, uid, [], 'account.report_financial', data=data, context=context)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/account/wizard/account_report_account_balance.py b/addons/account/wizard/account_report_account_balance.py
index 3b9d3c21777..9eba5f24b99 100644
--- a/addons/account/wizard/account_report_account_balance.py
+++ b/addons/account/wizard/account_report_account_balance.py
@@ -21,6 +21,7 @@
from openerp.osv import fields, osv
+
class account_balance_report(osv.osv_memory):
_inherit = "account.common.account.report"
_name = 'account.balance.report'
@@ -36,6 +37,6 @@ class account_balance_report(osv.osv_memory):
def _print_report(self, cr, uid, ids, data, context=None):
data = self.pre_print_report(cr, uid, ids, data, context=context)
- return self.pool['report'].get_action(cr, uid, ids, 'account.report_trialbalance', data=data, context=context)
+ return self.pool['report'].get_action(cr, uid, [], 'account.report_trialbalance', data=data, context=context)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/account/wizard/account_report_aged_partner_balance.py b/addons/account/wizard/account_report_aged_partner_balance.py
index c918a1119fd..d7b57eaba02 100644
--- a/addons/account/wizard/account_report_aged_partner_balance.py
+++ b/addons/account/wizard/account_report_aged_partner_balance.py
@@ -81,6 +81,6 @@ class account_aged_trial_balance(osv.osv_memory):
data['form'].update(res)
if data.get('form',False):
data['ids']=[data['form'].get('chart_account_id',False)]
- return self.pool['report'].get_action(cr, uid, ids, 'account.report_agedpartnerbalance', data=data, context=context)
+ return self.pool['report'].get_action(cr, uid, [], 'account.report_agedpartnerbalance', data=data, context=context)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/account/wizard/account_report_central_journal.py b/addons/account/wizard/account_report_central_journal.py
index 9f22d49afac..a31fef91ae4 100644
--- a/addons/account/wizard/account_report_central_journal.py
+++ b/addons/account/wizard/account_report_central_journal.py
@@ -21,6 +21,7 @@
from openerp.osv import fields, osv
+
class account_central_journal(osv.osv_memory):
_name = 'account.central.journal'
_description = 'Account Central Journal'
@@ -32,6 +33,6 @@ class account_central_journal(osv.osv_memory):
def _print_report(self, cr, uid, ids, data, context=None):
data = self.pre_print_report(cr, uid, ids, data, context=context)
- return self.pool['report'].get_action(cr, uid, ids, 'account.report_centraljournal', data=data, context=context)
+ return self.pool['report'].get_action(cr, uid, [], 'account.report_centraljournal', data=data, context=context)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/account/wizard/account_report_general_journal.py b/addons/account/wizard/account_report_general_journal.py
index 3d9d55b19c1..c35a5920428 100644
--- a/addons/account/wizard/account_report_general_journal.py
+++ b/addons/account/wizard/account_report_general_journal.py
@@ -21,6 +21,7 @@
from openerp.osv import fields, osv
+
class account_general_journal(osv.osv_memory):
_inherit = "account.common.journal.report"
_name = 'account.general.journal'
@@ -32,6 +33,6 @@ class account_general_journal(osv.osv_memory):
def _print_report(self, cr, uid, ids, data, context=None):
data = self.pre_print_report(cr, uid, ids, data, context=context)
- return self.pool['report'].get_action(cr, uid, ids, 'account.report_generaljournal', data=data, context=context)
+ return self.pool['report'].get_action(cr, uid, [], 'account.report_generaljournal', data=data, context=context)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/account/wizard/account_report_general_ledger.py b/addons/account/wizard/account_report_general_ledger.py
index c75477da40a..5f0a302d720 100644
--- a/addons/account/wizard/account_report_general_ledger.py
+++ b/addons/account/wizard/account_report_general_ledger.py
@@ -59,6 +59,6 @@ class account_report_general_ledger(osv.osv_memory):
if data['form']['landscape'] is False:
data['form'].pop('landscape')
- return self.pool['report'].get_action(cr, uid, ids, 'account.report_generalledger', data=data, context=context)
+ return self.pool['report'].get_action(cr, uid, [], 'account.report_generalledger', data=data, context=context)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/account/wizard/account_report_partner_balance.py b/addons/account/wizard/account_report_partner_balance.py
index d4b5fb27d14..7485bec67fe 100644
--- a/addons/account/wizard/account_report_partner_balance.py
+++ b/addons/account/wizard/account_report_partner_balance.py
@@ -44,6 +44,6 @@ class account_partner_balance(osv.osv_memory):
context = {}
data = self.pre_print_report(cr, uid, ids, data, context=context)
data['form'].update(self.read(cr, uid, ids, ['display_partner'])[0])
- return self.pool['report'].get_action(cr, uid, ids, 'account.report_partnerbalance', data=data, context=context)
+ return self.pool['report'].get_action(cr, uid, [], 'account.report_partnerbalance', data=data, context=context)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/account/wizard/account_report_partner_ledger.py b/addons/account/wizard/account_report_partner_ledger.py
index eb743e32e4f..38ff6988fd7 100644
--- a/addons/account/wizard/account_report_partner_ledger.py
+++ b/addons/account/wizard/account_report_partner_ledger.py
@@ -58,7 +58,7 @@ class account_partner_ledger(osv.osv_memory):
data = self.pre_print_report(cr, uid, ids, data, context=context)
data['form'].update(self.read(cr, uid, ids, ['initial_balance', 'filter', 'page_split', 'amount_currency'])[0])
if data['form'].get('page_split') is True:
- return self.pool['report'].get_action(cr, uid, ids, 'account.report_partnerledgerother', data=data, context=context)
- return self.pool['report'].get_action(cr, uid, ids, 'account.report_partnerledger', data=data, context=context)
+ return self.pool['report'].get_action(cr, uid, [], 'account.report_partnerledgerother', data=data, context=context)
+ return self.pool['report'].get_action(cr, uid, [], 'account.report_partnerledger', data=data, context=context)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/account/wizard/account_report_print_journal.py b/addons/account/wizard/account_report_print_journal.py
index 3aafc63acf4..1f6b6e0cf4d 100644
--- a/addons/account/wizard/account_report_print_journal.py
+++ b/addons/account/wizard/account_report_print_journal.py
@@ -67,8 +67,8 @@ class account_print_journal(osv.osv_memory):
data = self.pre_print_report(cr, uid, ids, data, context=context)
data['form'].update(self.read(cr, uid, ids, ['sort_selection'], context=context)[0])
if context.get('sale_purchase_only'):
- return self.pool['report'].get_action(cr, uid, ids, 'account.report_salepurchasejournal', data=data, context=context)
+ return self.pool['report'].get_action(cr, uid, [], 'account.report_salepurchasejournal', data=data, context=context)
else:
- return self.pool['report'].get_action(cr, uid, ids, 'account.report_journal', data=data, context=context)
+ return self.pool['report'].get_action(cr, uid, [], 'account.report_journal', data=data, context=context)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/account/wizard/account_vat.py b/addons/account/wizard/account_vat.py
index 5cc5c678df1..e7c806be2f9 100644
--- a/addons/account/wizard/account_vat.py
+++ b/addons/account/wizard/account_vat.py
@@ -61,6 +61,6 @@ class account_vat_declaration(osv.osv_memory):
taxcode = taxcode_obj.browse(cr, uid, [taxcode_id], context=context)[0]
datas['form']['company_id'] = taxcode.company_id.id
- return self.pool['report'].get_action(cr, uid, ids, 'account.report_vat', data=datas, context=context)
+ return self.pool['report'].get_action(cr, uid, [], 'account.report_vat', data=datas, context=context)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/account_analytic_plans/wizard/account_crossovered_analytic.py b/addons/account_analytic_plans/wizard/account_crossovered_analytic.py
index ccac123c681..1bdc91f2995 100644
--- a/addons/account_analytic_plans/wizard/account_crossovered_analytic.py
+++ b/addons/account_analytic_plans/wizard/account_crossovered_analytic.py
@@ -24,6 +24,7 @@ import time
from openerp.osv import fields, osv
from openerp.tools.translate import _
+
class account_crossovered_analytic(osv.osv_memory):
_name = "account.crossovered.analytic"
_description = "Print Crossovered Analytic"
@@ -65,6 +66,6 @@ class account_crossovered_analytic(osv.osv_memory):
'model': 'account.analytic.account',
'form': data
}
- return self.pool['report'].get_action(cr, uid, ids, 'account_analytic_plans.report_crossoveredanalyticplans', data=datas, context=context)
+ return self.pool['report'].get_action(cr, uid, [], 'account_analytic_plans.report_crossoveredanalyticplans', data=datas, context=context)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/account_budget/wizard/account_budget_analytic.py b/addons/account_budget/wizard/account_budget_analytic.py
index a58b804ebbf..bd3bbdc8d99 100644
--- a/addons/account_budget/wizard/account_budget_analytic.py
+++ b/addons/account_budget/wizard/account_budget_analytic.py
@@ -46,6 +46,6 @@ class account_budget_analytic(osv.osv_memory):
'form': data
}
datas['form']['ids'] = datas['ids']
- return self.pool['report'].get_action(cr, uid, ids, 'account_budget.report_analyticaccountbudget', data=datas, context=context)
+ return self.pool['report'].get_action(cr, uid, [], 'account_budget.report_analyticaccountbudget', data=datas, context=context)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/account_budget/wizard/account_budget_crossovered_report.py b/addons/account_budget/wizard/account_budget_crossovered_report.py
index 96561df5af0..e47ff5cb421 100644
--- a/addons/account_budget/wizard/account_budget_crossovered_report.py
+++ b/addons/account_budget/wizard/account_budget_crossovered_report.py
@@ -47,6 +47,6 @@ class account_budget_crossvered_report(osv.osv_memory):
}
datas['form']['ids'] = datas['ids']
datas['form']['report'] = 'analytic-full'
- return self.pool['report'].get_action(cr, uid, ids, 'account_budget.report_crossoveredbudget', data=datas, context=context)
+ return self.pool['report'].get_action(cr, uid, [], 'account_budget.report_crossoveredbudget', data=datas, context=context)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/account_budget/wizard/account_budget_crossovered_summary_report.py b/addons/account_budget/wizard/account_budget_crossovered_summary_report.py
index 6b676ecc684..d79e6097787 100644
--- a/addons/account_budget/wizard/account_budget_crossovered_summary_report.py
+++ b/addons/account_budget/wizard/account_budget_crossovered_summary_report.py
@@ -49,6 +49,6 @@ class account_budget_crossvered_summary_report(osv.osv_memory):
}
datas['form']['ids'] = datas['ids']
datas['form']['report'] = 'analytic-one'
- return self.pool['report'].get_action(cr, uid, ids, 'account_budget.report_crossoveredbudget', data=datas, context=context)
+ return self.pool['report'].get_action(cr, uid, [], 'account_budget.report_crossoveredbudget', data=datas, context=context)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/account_budget/wizard/account_budget_report.py b/addons/account_budget/wizard/account_budget_report.py
index 2308b5ff9ac..fb1814a9171 100644
--- a/addons/account_budget/wizard/account_budget_report.py
+++ b/addons/account_budget/wizard/account_budget_report.py
@@ -47,6 +47,6 @@ class account_budget_report(osv.osv_memory):
}
datas['form']['ids'] = datas['ids']
datas['form']['report'] = 'analytic-full'
- return self.pool['report'].get_action(cr, uid, ids, 'account_budget.report_budget', data=datas, context=context)
+ return self.pool['report'].get_action(cr, uid, [], 'account_budget.report_budget', data=datas, context=context)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/account_check_writing/account_voucher.py b/addons/account_check_writing/account_voucher.py
index c3abe28eef0..779ff61be44 100644
--- a/addons/account_check_writing/account_voucher.py
+++ b/addons/account_check_writing/account_voucher.py
@@ -74,26 +74,17 @@ class account_voucher(osv.osv):
def print_check(self, cr, uid, ids, context=None):
if not ids:
- return {}
+ raise osv.except_osv(_('Printing error'), _('No check selected '))
- check_layout_report = {
- 'top' : 'account.print.check.top',
- 'middle' : 'account.print.check.middle',
- 'bottom' : 'account.print.check.bottom',
+ data = {
+ 'id': ids and ids[0],
+ 'ids': ids,
}
- check_layout = self.browse(cr, uid, ids[0], context=context).company_id.check_layout
- return {
- 'type': 'ir.actions.report.xml',
- 'report_name':check_layout_report[check_layout],
- 'datas': {
- 'model':'account.voucher',
- 'id': ids and ids[0] or False,
- 'ids': ids and ids or [],
- 'report_type': 'pdf'
- },
- 'nodestroy': True
- }
+ return self.pool['report'].get_action(
+ cr, uid, [], 'account_check_writing.report_check', data=data, context=context
+ )
+
def create(self, cr, uid, vals, context=None):
if vals.get('amount') and vals.get('journal_id') and 'amount_in_word' not in vals:
vals['amount_in_word'] = self._amount_to_text(cr, uid, vals['amount'], vals.get('currency_id') or \
diff --git a/addons/account_check_writing/wizard/account_check_batch_printing.py b/addons/account_check_writing/wizard/account_check_batch_printing.py
index c3a13e2c687..bf59557d904 100644
--- a/addons/account_check_writing/wizard/account_check_batch_printing.py
+++ b/addons/account_check_writing/wizard/account_check_batch_printing.py
@@ -20,9 +20,9 @@
##############################################################################
from openerp.tools.translate import _
-
from openerp.osv import fields, osv
+
class account_check_write(osv.osv_memory):
_name = 'account.check.write'
_description = 'Prin Check in Batch'
@@ -64,23 +64,11 @@ class account_check_write(osv.osv_memory):
ir_sequence_obj.write(cr, uid, sequence_id, {'number_next': new_value})
#print the checks
- check_layout_report = {
- 'top' : 'account.print.check.top',
- 'middle' : 'account.print.check.middle',
- 'bottom' : 'account.print.check.bottom',
+ data = {
+ 'id': voucher_ids and voucher_ids[0],
+ 'ids': voucher_ids,
}
- check_layout = voucher_obj.browse(cr, uid, voucher_ids[0], context=context).company_id.check_layout
- if not check_layout:
- check_layout = 'top'
- return {
- 'type': 'ir.actions.report.xml',
- 'report_name':check_layout_report[check_layout],
- 'datas': {
- 'model':'account.voucher',
- 'ids': voucher_ids,
- 'report_type': 'pdf'
- },
- 'nodestroy': True
- }
-
+ return self.pool['report'].get_action(
+ cr, uid, [], 'account_check_writing.report_check', data=data, context=context
+ )
diff --git a/addons/account_followup/account_followup.py b/addons/account_followup/account_followup.py
index eae361913ad..82ae10a0937 100644
--- a/addons/account_followup/account_followup.py
+++ b/addons/account_followup/account_followup.py
@@ -188,7 +188,7 @@ class res_partner(osv.osv):
'model': 'account_followup.followup',
'form': data
}
- return self.pool['report'].get_action(cr, uid, wizard_partner_ids, 'account_followup.report_followup', data=datas, context=context)
+ return self.pool['report'].get_action(cr, uid, [], 'account_followup.report_followup', data=datas, context=context)
def do_partner_mail(self, cr, uid, partner_ids, context=None):
if context is None:
diff --git a/addons/report/models/report.py b/addons/report/models/report.py
index 8dd8a4dce6f..fed6a2335ee 100644
--- a/addons/report/models/report.py
+++ b/addons/report/models/report.py
@@ -260,11 +260,17 @@ class Report(osv.Model):
def get_action(self, cr, uid, ids, report_name, data=None, context=None):
"""Return an action of type ir.actions.report.xml.
+ :param ids: Ids of the records to print (if not used, pass an empty list)
:param report_name: Name of the template to generate an action for
"""
if context is None:
context = {}
+ if ids:
+ if not isinstance(ids, list):
+ ids = [ids]
+ context['active_ids'] = ids
+
report_obj = self.pool['ir.actions.report.xml']
idreport = report_obj.search(cr, uid, [('report_name', '=', report_name)], context=context)
try:
@@ -272,7 +278,7 @@ class Report(osv.Model):
except IndexError:
raise osv.except_osv(_('Bad Report'), _('This report is not loaded into the database.'))
- action = {
+ return {
'context': context,
'data': data,
'type': 'ir.actions.report.xml',
@@ -280,7 +286,6 @@ class Report(osv.Model):
'report_type': report.report_type,
'report_file': report.report_file,
}
- return action
#--------------------------------------------------------------------------
# Report generation helpers