[FIX] mrp_repair: Report error corrected in better way.
authoruco (Open ERP) <uco@tinyerp.com>
Tue, 21 Sep 2010 14:08:11 +0000 (19:38 +0530)
committeruco (Open ERP) <uco@tinyerp.com>
Tue, 21 Sep 2010 14:08:11 +0000 (19:38 +0530)
bzr revid: uco@tinyerp.com-20100921140811-8g1e4y70zqlp9b80

addons/mrp_repair/mrp_repair.py
addons/mrp_repair/report/order.py
addons/mrp_repair/report/order.rml

index ddcd2cc..146fbb3 100644 (file)
@@ -93,12 +93,23 @@ class mrp_repair(osv.osv):
             cur = repair.pricelist_id.currency_id
             res[id] = cur_obj.round(cr, uid, cur, untax.get(id, 0.0) + tax.get(id, 0.0))
         return res
+    
+    def _get_default_address(self, cr, uid, ids, field_name, arg, context):
+        res = {}
+        partner_obj = self.pool.get('res.partner')
+        for data in self.browse(cr, uid, ids):
+            adr_id = False
+            if data.partner_id:
+                adr_id = partner_obj.address_get(cr, uid, [data.partner_id.id], ['default'])['default']
+            res[data.id] = adr_id
+        return res
 
     _columns = {
         'name': fields.char('Repair Reference',size=24, required=True),
         'product_id': fields.many2one('product.product', string='Product to Repair', required=True, readonly=True, states={'draft':[('readonly',False)]}),
         'partner_id' : fields.many2one('res.partner', 'Partner', select=True, help='This field allow you to choose the parner that will be invoiced and delivered'),
         'address_id': fields.many2one('res.partner.address', 'Delivery Address', domain="[('partner_id','=',partner_id)]"),
+        'default_address_id': fields.function(_get_default_address, method=True, type="many2one", relation="res.partner.address"),
         'prodlot_id': fields.many2one('stock.production.lot', 'Lot Number', select=True, domain="[('product_id','=',product_id)]"),
         'state': fields.selection([
             ('draft','Quotation'),
index 9ed6354..3257ba3 100644 (file)
@@ -30,10 +30,8 @@ class order(report_sxw.rml_parse):
         self.localcontext.update({
             'time': time,
             'total': self.total,
-            'adr_get' : self._adr_get
         })
 
-
     def total(self, repair):
         total = 0.0
         for operation in repair.operations:
@@ -43,13 +41,6 @@ class order(report_sxw.rml_parse):
         total = total + repair.amount_tax
         return total
 
-    def _adr_get(self, partner, type):
-            res_partner = pooler.get_pool(self.cr.dbname).get('res.partner')
-            res_partner_address = pooler.get_pool(self.cr.dbname).get('res.partner.address')
-            addresses = res_partner.address_get(self.cr, self.uid, [partner.id], [type])
-            adr_id = addresses and addresses[type] or False
-            return adr_id and res_partner_address.read(self.cr, self.uid, [adr_id])[0] or {}
-
 report_sxw.report_sxw('report.repair.order','mrp.repair','addons/mrp_repair/report/order.rml',parser=order)
 
 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
index b3c1855..149a265 100644 (file)
         </td>
         <td>
           <para style="P3">[[ o.partner_id.name or removeParentNode('para') ]]</para>
-          <para style="P3">[[ o.partner_id and adr_get(o.partner_id, 'default').get('street','') or removeParentNode('para') ]]</para>
-          <para style="P3">[[ o.partner_id and adr_get(o.partner_id, 'default').get('street2','') or removeParentNode('para') ]]</para>
-          <para style="P3">[[ o.partner_id and adr_get(o.partner_id, 'default').get('zip','') or removeParentNode('para') ]][[ o.partner_id and adr_get(o.partner_id, 'default').get('city','') or removeParentNode('para') ]]</para>
-          <para style="P3">[[ (o.partner_id and adr_get(o.partner_id, 'default').get('state_id','') and adr_get(o.partner_id, 'default').get('state_id',[])[1]) or removeParentNode('para') ]]</para>
-          <para style="P3">[[ o.partner_id and adr_get(o.partner_id, 'default').get('country_id','') and adr_get(o.partner_id, 'default').get('country_id',[])[1] or removeParentNode('para') ]]</para>
+          <para style="P3">[[ o.default_address_id and o.default_address_id.street or removeParentNode('para') ]]</para>
+          <para style="P3">[[ o.default_address_id and o.default_address_id.street2 or removeParentNode('para') ]]</para>
+          <para style="P3">[[ o.default_address_id and o.default_address_id.zip or removeParentNode('para') ]][[ o.default_address_id and o.default_address_id.city or removeParentNode('para') ]]</para>
+          <para style="P3">[[ o.default_address_id and o.default_address_id.state_id and o.default_address_id.state_id.name or removeParentNode('para') ]]</para>
+          <para style="P3">[[ o.default_address_id and o.default_address_id.country_id and o.default_address_id.country_id.name or removeParentNode('para') ]]</para>
           <para style="P3">
             <font color="white"> </font>
           </para>