# -*- coding: utf-8 -*- ############################################################################## # # Author: Guewen Baconnier # Copyright 2014 Camptocamp SA # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # ############################################################################## from openerp import models, exceptions, _ class Report(models.Model): _inherit = 'report' def print_document(self, cr, uid, ids, report_name, html=None, data=None, context=None): """ Print a document, do not return the document file """ document = super(Report, self).get_pdf(cr, uid, ids, report_name, html=html, data=data, context=context) report = self._get_report_from_name(cr, uid, report_name) behaviour = report.behaviour()[report.id] printer = behaviour['printer'] if not printer: raise exceptions.Warning( _('No printer configured to print this report.') ) return printer.print_document(report, document, report.report_type) def get_pdf(self, cr, uid, ids, report_name, html=None, data=None, context=None): """ Generate a PDF and returns it. If the action configured on the report is server, it prints the generated document as well. """ document = super(Report, self).get_pdf(cr, uid, ids, report_name, html=html, data=data, context=context) report = self._get_report_from_name(cr, uid, report_name) behaviour = report.behaviour()[report.id] printer = behaviour['printer'] if behaviour['action'] == 'server' and printer and document: printer.print_document(report, document, report.report_type) return document