[IMP]:bug 690700 Wrong Partner used when invoicing from picking coming from a puchase with sent_to_address

bzr revid: ksa@tinyerp.co.in-20110104103048-2gwkh19mmac5e9y6
This commit is contained in:
ksa (Open ERP)
2011-01-04 16:00:48 +05:30
parent 170cb17c79
commit a722db2cc7
3 changed files with 30 additions and 3 deletions
+13
View File
@@ -58,6 +58,19 @@ class stock_picking(osv.osv):
'purchase_id': False,
}
def _get_address_invoice(self, cr, uid, picking):
""" Gets invoice address of a partner
@return {'contact': address, 'invoice': address} for invoice
"""
res = super(stock_picking, self)._get_address_invoice(cr, uid, picking)
if picking.purchase_id:
partner_obj = self.pool.get('res.partner')
partner = (picking.purchase_id and picking.purchase_id.partner_id) or picking.address_id.partner_id
data = partner_obj.address_get(cr, uid, [partner.id],
['contact', 'invoice'])
res.update(data)
return res
def get_currency_id(self, cursor, user, picking):
if picking.purchase_id:
return picking.purchase_id.pricelist_id.currency_id.id
+13
View File
@@ -43,6 +43,19 @@ class stock_picking(osv.osv):
'sale_id': False
}
def _get_address_invoice(self, cr, uid, picking):
""" Gets invoice address of a partner
@return {'contact': address, 'invoice': address} for invoice
"""
res = super(stock_picking, self)._get_address_invoice(cr, uid, picking)
if picking.sale_id:
partner_obj = self.pool.get('res.partner')
partner = (picking.sale_id and picking.sale_id.partner_id) or picking.address_id.partner_id
data = partner_obj.address_get(cr, uid, [partner.id],
['contact', 'invoice'])
res.update(data)
return res
def get_currency_id(self, cursor, user, picking):
if picking.sale_id:
return picking.sale_id.pricelist_id.currency_id.id
+4 -3
View File
@@ -874,8 +874,7 @@ class stock_picking(osv.osv):
@return {'contact': address, 'invoice': address} for invoice
"""
partner_obj = self.pool.get('res.partner')
partner = (picking.purchase_id and picking.purchase_id.partner_id) or (picking.sale_id and picking.sale_id.partner_id) or picking.address_id.partner_id
partner = picking.address_id.partner_id
return partner_obj.address_get(cr, uid, [partner.id],
['contact', 'invoice'])
@@ -970,6 +969,7 @@ class stock_picking(osv.osv):
invoice_obj = self.pool.get('account.invoice')
invoice_line_obj = self.pool.get('account.invoice.line')
address_obj = self.pool.get('res.partner.address')
invoices_group = {}
res = {}
inv_type = type
@@ -993,6 +993,7 @@ class stock_picking(osv.osv):
address_contact_id, address_invoice_id = \
self._get_address_invoice(cr, uid, picking).values()
partner_id = address_obj.browse(cr, uid, address_contact_id)
comment = self._get_comment_invoice(cr, uid, picking)
if group and partner.id in invoices_group:
@@ -1012,7 +1013,7 @@ class stock_picking(osv.osv):
'origin': (picking.name or '') + (picking.origin and (':' + picking.origin) or ''),
'type': inv_type,
'account_id': account_id,
'partner_id': partner.id,
'partner_id': partner_id.partner_id.id,
'address_invoice_id': address_invoice_id,
'address_contact_id': address_contact_id,
'comment': comment,