[ADD, IMP]: res.company: Added new field in company for paper format which is used...
authorRucha (Open ERP) <rpa@tinyerp.com>
Wed, 21 Dec 2011 09:23:44 +0000 (14:53 +0530)
committerRucha (Open ERP) <rpa@tinyerp.com>
Wed, 21 Dec 2011 09:23:44 +0000 (14:53 +0530)
bzr revid: rpa@tinyerp.com-20111221092344-0mftzklmd6wrlsws

openerp/addons/base/base_update.xml
openerp/addons/base/res/res_company.py

index 0b06040..1782999 100644 (file)
                             </group>
                         </page>
                         <page string="Header/Footer" groups="base.group_extended">
+                            <group colspan="2" col="4">
+                               <field name="paper_format" on_change="onchange_paper_format(paper_format)"/>
+                            </group>
                             <field colspan="4" name="rml_header" nolabel="1"/>
                         </page>
                         <page string="Internal Header/Footer" groups="base.group_extended">
index 7a6b700..5eb66a0 100644 (file)
@@ -144,6 +144,7 @@ class res_company(osv.osv):
         'website': fields.related('partner_id', 'website', string="Website", type="char", size=64), 
         'vat': fields.related('partner_id', 'vat', string="Tax ID", type="char", size=32), 
         'company_registry': fields.char('Company Registry', size=64),
+        'paper_format': fields.selection([('a4', 'A4'), ('us_letter', 'US Letter')], "Paper Format") 
     }
     _sql_constraints = [
         ('name_uniq', 'unique (name)', 'The company name must be unique !')
@@ -277,29 +278,31 @@ class res_company(osv.osv):
             finally:
                 header_file.close()
         except:
-            return """
+            return self._header_a4
+
+    _header_main = """
     <header>
     <pageTemplate>
-        <frame id="first" x1="1.3cm" y1="2.5cm" height="23.0cm" width="19cm"/>
+        <frame id="first" x1="1.3cm" y1="2.5cm" height="%s" width="19.0cm"/>
         <pageGraphics>
             <!-- You Logo - Change X,Y,Width and Height -->
-            <image x="1.3cm" y="27.6cm" height="40.0" >[[ company.logo or removeParentNode('image') ]]</image>
+            <image x="1.3cm" y="%s" height="40.0" >[[ company.logo or removeParentNode('image') ]]</image>
             <setFont name="DejaVu Sans" size="8"/>
             <fill color="black"/>
             <stroke color="black"/>
-            <lines>1.3cm 27.7cm 20cm 27.7cm</lines>
+            <lines>1.3cm %s 20cm %s</lines>
 
-            <drawRightString x="20cm" y="27.8cm">[[ company.rml_header1 ]]</drawRightString>
+            <drawRightString x="20cm" y="%s">[[ company.rml_header1 ]]</drawRightString>
 
 
-            <drawString x="1.3cm" y="27.2cm">[[ company.partner_id.name ]]</drawString>
-            <drawString x="1.3cm" y="26.8cm">[[ company.partner_id.address and company.partner_id.address[0].street or  '' ]]</drawString>
-            <drawString x="1.3cm" y="26.4cm">[[ company.partner_id.address and company.partner_id.address[0].zip or '' ]] [[ company.partner_id.address and company.partner_id.address[0].city or '' ]] - [[ company.partner_id.address and company.partner_id.address[0].country_id and company.partner_id.address[0].country_id.name  or '']]</drawString>
-            <drawString x="1.3cm" y="26.0cm">Phone:</drawString>
-            <drawRightString x="7cm" y="26.0cm">[[ company.partner_id.address and company.partner_id.address[0].phone or '' ]]</drawRightString>
-            <drawString x="1.3cm" y="25.6cm">Mail:</drawString>
-            <drawRightString x="7cm" y="25.6cm">[[ company.partner_id.address and company.partner_id.address[0].email or '' ]]</drawRightString>
-            <lines>1.3cm 25.5cm 7cm 25.5cm</lines>
+            <drawString x="1.3cm" y="%s">[[ company.partner_id.name ]]</drawString>
+            <drawString x="1.3cm" y="%s">[[ company.partner_id.address and company.partner_id.address[0].street or  '' ]]</drawString>
+            <drawString x="1.3cm" y="%s">[[ company.partner_id.address and company.partner_id.address[0].zip or '' ]] [[ company.partner_id.address and company.partner_id.address[0].city or '' ]] - [[ company.partner_id.address and company.partner_id.address[0].country_id and company.partner_id.address[0].country_id.name  or '']]</drawString>
+            <drawString x="1.3cm" y="%s">Phone:</drawString>
+            <drawRightString x="7cm" y="%s">[[ company.partner_id.address and company.partner_id.address[0].phone or '' ]]</drawRightString>
+            <drawString x="1.3cm" y="%s">Mail:</drawString>
+            <drawRightString x="7cm" y="%s">[[ company.partner_id.address and company.partner_id.address[0].email or '' ]]</drawRightString>
+            <lines>1.3cm %s 7cm %s</lines>
 
             <!--page bottom-->
 
@@ -311,8 +314,20 @@ class res_company(osv.osv):
         </pageGraphics>
     </pageTemplate>
 </header>"""
+
+    _header_a4 = _header_main % ('23.0cm', '27.6cm', '27.7cm', '27.7cm', '27.8cm', '27.2cm', '26.8cm', '26.4cm', '26.0cm', '26.0cm', '25.6cm', '25.6cm', '25.5cm', '25.5cm')
+
+    def onchange_paper_format(self, cr, uid, ids, paper_format, context=None):
+        header = self._header_a4
+        if paper_format == 'us_letter':
+            header = self._header_main % ('21.3cm', '25.9cm', '26.0cm', '26.0cm',
+                    '26.1cm', '25.5cm', '25.1cm', '24.7cm', '24.3cm', '24.3cm',
+                    '23.9cm', '23.9cm', '23.8cm', '23.8cm')
+        return {'value': {'rml_header': header}}
+
     _defaults = {
         'currency_id': _get_euro,
+        'paper_format': 'a4',
         'rml_header':_get_header,
         'rml_header2': _header2,
         'rml_header3': _header3,