diff --git a/addons/mrp_repair/mrp_repair.py b/addons/mrp_repair/mrp_repair.py index ddcd2ccb501..146fbb32f03 100644 --- a/addons/mrp_repair/mrp_repair.py +++ b/addons/mrp_repair/mrp_repair.py @@ -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'), diff --git a/addons/mrp_repair/report/order.py b/addons/mrp_repair/report/order.py index 9ed63548e18..3257ba3df7a 100644 --- a/addons/mrp_repair/report/order.py +++ b/addons/mrp_repair/report/order.py @@ -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: diff --git a/addons/mrp_repair/report/order.rml b/addons/mrp_repair/report/order.rml index b3c1855260b..149a2650bfd 100644 --- a/addons/mrp_repair/report/order.rml +++ b/addons/mrp_repair/report/order.rml @@ -190,11 +190,11 @@