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'),
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:
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:
</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>