From 31e9ce9fe4ddcfd6fc56615a975a949314daa3a9 Mon Sep 17 00:00:00 2001 From: "Vir (Open ERP)" Date: Mon, 3 May 2010 12:23:45 +0530 Subject: [PATCH 01/71] [ADD,MOD] account_report : indicator with pdf wizard converted to osv memory wizard bzr revid: vir@tinyerp.com-20100503065345-av92d15yn9r4s25u --- addons/account_report/__openerp__.py | 1 + addons/account_report/account_wizard.xml | 2 +- addons/account_report/wizard/__init__.py | 2 +- ...ccount_report_print_indicators_with_pdf.py | 107 +++++++++++++++++ ..._report_print_indicators_with_pdf_view.xml | 45 ++++++++ .../wizard_print_indicators_with_pdf.py | 109 ------------------ 6 files changed, 155 insertions(+), 111 deletions(-) create mode 100644 addons/account_report/wizard/account_report_print_indicators_with_pdf.py create mode 100644 addons/account_report/wizard/account_report_print_indicators_with_pdf_view.xml delete mode 100644 addons/account_report/wizard/wizard_print_indicators_with_pdf.py diff --git a/addons/account_report/__openerp__.py b/addons/account_report/__openerp__.py index d71d75f0bb3..3f0739bdb91 100644 --- a/addons/account_report/__openerp__.py +++ b/addons/account_report/__openerp__.py @@ -38,6 +38,7 @@ 'account_report.xml', 'account_wizard.xml', 'wizard/account_report_print_indicators_view.xml', + 'wizard/account_report_print_indicators_with_pdf_view.xml', ], 'demo_xml': [], 'installable': True, diff --git a/addons/account_report/account_wizard.xml b/addons/account_report/account_wizard.xml index d56b6c9d565..1e07a8fc248 100644 --- a/addons/account_report/account_wizard.xml +++ b/addons/account_report/account_wizard.xml @@ -4,7 +4,7 @@ - + \ No newline at end of file diff --git a/addons/account_report/wizard/__init__.py b/addons/account_report/wizard/__init__.py index 2658c47cf17..cae88f16a32 100644 --- a/addons/account_report/wizard/__init__.py +++ b/addons/account_report/wizard/__init__.py @@ -20,6 +20,6 @@ ############################################################################## import account_report_print_indicators -import wizard_print_indicators_with_pdf +import account_report_print_indicators_with_pdf # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/account_report/wizard/account_report_print_indicators_with_pdf.py b/addons/account_report/wizard/account_report_print_indicators_with_pdf.py new file mode 100644 index 00000000000..8d0dbf6232d --- /dev/null +++ b/addons/account_report/wizard/account_report_print_indicators_with_pdf.py @@ -0,0 +1,107 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2010 Tiny SPRL (). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## +import time +from mx.DateTime import * +import os +import base64 +import StringIO + +from osv import fields, osv +import tools +import pooler +from report.render import render +from report.interface import report_int + +class account_report_print_indicators_with_pdf(osv.osv_memory): + _name = "account.report.print.indicators.with.pdf" + _description = "Print Indicators" + _columns = { + 'file': fields.binary('Select a PDF File', filters='*.pdf', required=True), + } + + 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.report.report', + 'form': data + } + + return { + 'type': 'ir.actions.report.xml', + 'report_name': 'print.indicator.pdf', + 'datas': datas, + } + + +account_report_print_indicators_with_pdf() + +class external_pdf(render): + def __init__(self, pdf): + render.__init__(self) + self.pdf = pdf + self.output_type='pdf' + def _render(self): + return self.pdf + +class report_custom(report_int): + def create(self, cr, uid, ids, data, context={}): + pool = pooler.get_pool(cr.dbname) + obj_indicator = pool.get('account.report.report') + code_ids = obj_indicator.browse(cr,uid,context['active_id']) + + self.list={} + + def find_child(obj): + self.list[obj.code]=str(obj.amount) + if obj.child_ids: + for child in obj.child_ids: + find_child(child) + return True + + find_child(code_ids) + + file_contents=base64.decodestring(data['form']['file']) + fp = StringIO.StringIO(file_contents) + + infile = open(tools.config['addons_path']+"/test.pdf", 'wb') + infile.write(fp.read()) + infile.close() + + obj_user=pool.get('res.users').browse(cr,uid,uid) + self.list['printing_user']=str(obj_user.name) + self.list['company_name']=(obj_user.company_id.name) + self.list['company_country']=obj_user.company_id.partner_id.country + self.list['company_vat']=obj_user.company_id.partner_id.vat + self.list['printing_time']=time.strftime('%H:%M:%S') + self.list['printing_date']=time.strftime('%D') + + tools.pdf_utils.fill_pdf(tools.config['addons_path']+"/test.pdf",'/tmp/output.pdf',self.list) + self.obj = external_pdf(file('/tmp/output.pdf').read()) + self.obj.render() + return (self.obj.pdf, 'pdf') + +report_custom('report.print.indicator.pdf') + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: \ No newline at end of file diff --git a/addons/account_report/wizard/account_report_print_indicators_with_pdf_view.xml b/addons/account_report/wizard/account_report_print_indicators_with_pdf_view.xml new file mode 100644 index 00000000000..07e1ef0b4d9 --- /dev/null +++ b/addons/account_report/wizard/account_report_print_indicators_with_pdf_view.xml @@ -0,0 +1,45 @@ + + + + + + account.report.print.indicators.with.pdf.form + account.report.print.indicators.with.pdf + form + +
+