← Back to team overview

openerp-dev-web team mailing list archive

lp:~openerp-dev/openobject-server/trunk-configuration-server-ksa into lp:~openerp-dev/openobject-server/trunk-configuration-rework

 

Kirti Savalia(OpenERP) has proposed merging lp:~openerp-dev/openobject-server/trunk-configuration-server-ksa into lp:~openerp-dev/openobject-server/trunk-configuration-rework.

Requested reviews:
  Rucha (Open ERP) (rpa-openerp)

For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-server/trunk-configuration-server-ksa/+merge/59346

Add button, "preview reports", in Company Form that print empty report with header and footer.
-- 
https://code.launchpad.net/~openerp-dev/openobject-server/trunk-configuration-server-ksa/+merge/59346
Your team OpenERP R&D Team is subscribed to branch lp:~openerp-dev/openobject-server/trunk-configuration-rework.
=== modified file 'openerp/addons/base/base_update.xml'
--- openerp/addons/base/base_update.xml	2011-04-13 10:49:07 +0000
+++ openerp/addons/base/base_update.xml	2011-04-28 10:56:43 +0000
@@ -180,7 +180,7 @@
                 </search>
             </field>
         </record>
-        
+
         <!--
     ======================
     Company
@@ -203,6 +203,7 @@
                             <field name="rml_footer1" colspan="4"/>
                             <field name="rml_footer2" colspan="4"/>
                             <field name="currency_id" colspan="2"/>
+                            <button name="createReport" string="Preview Report" type="object" icon="gtk-print"/>
                         </page>
                         <page string="Header/Footer" groups="base.group_extended">
                             <field colspan="4" name="rml_header" nolabel="1"/>
@@ -357,6 +358,6 @@
             <field name="sequence">1</field>
             <field name="state">skip</field>
         </record>
-        
+
     </data>
 </openerp>

=== modified file 'openerp/addons/base/res/res_company.py'
--- openerp/addons/base/res/res_company.py	2011-04-13 10:49:07 +0000
+++ openerp/addons/base/res/res_company.py	2011-04-28 10:56:43 +0000
@@ -25,6 +25,13 @@
 import tools
 from tools.translate import _
 from tools.safe_eval import safe_eval as eval
+from lxml import etree
+
+import pooler
+import netsvc
+from report.interface import report_rml
+from tools import to_xml
+from report import report_sxw
 
 class multi_company_default(osv.osv):
     """
@@ -137,7 +144,7 @@
             return []
         ids =  self.search(cr, uid, [('parent_id','child_of',[company])])
         return ids
-    
+
 #  For Report
 
     def createReport(cr, uid, report, ids, name=False):
@@ -153,9 +160,9 @@
                 fp = open(report_file,'wb+')
                 fp.write(result);
                 fp.close();
-                files += [report_file]    
+                files += [report_file]
             except Exception,e:
-                continue        
+                continue
         return files
 
     def _get_partner_hierarchy(self, cr, uid, company_id, context={}):
@@ -295,7 +302,40 @@
         (osv.osv._check_recursion, 'Error! You can not create recursive companies.', ['parent_id'])
     ]
 
+    def createReport(self, cr, uid, ids, context=None):
+        # Used new cursor as it was closed explicitly somewhere and because of this partner data was not printed
+        # Tocheck: its not closed
+        cr = pooler.get_db(cr.dbname).cursor()
+        company = self.browse(cr, uid, ids, context=context)[0]
+
+        class company_parser(report_sxw.rml_parse):
+            def __init__(self, cr, uid, name, context):
+                super(company_parser, self).__init__(cr, uid, name, context=context)
+                self.setCompany(company)
+        rml = etree.XML(company.rml_header)
+        rml = rml.getchildren()[0]
+        header_xml = """<document filename="Preview Report.pdf">
+        <template pageSize="(595.0,842.0)" title="Preview Report" author="OpenERP S.A.(sales@xxxxxxxxxxx)" allowSplitting="20">""" + etree.tostring(rml) +  """
+          </template>
+          </document>
+          """
+        tempfilename= '/tmp/previews.rml'
+        fp = open(tempfilename, 'wb+')
+        fp.write(header_xml)
+        fp.close()
+        if netsvc.Service._services.get('report.company.report'):
+            netsvc.Service._services.pop('report.company.report')
+        myreport = report_sxw.report_sxw('report.company.report', 'res.company', tempfilename, parser=company_parser)
+        return {
+                'type': 'ir.actions.report.xml',
+                'report_name': 'company.report',
+                'datas': {'ids': ids, 'model': 'res.company'},
+                'nodestroy': True
+            }
+
 res_company()
 
 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
 
+
+


Follow ups