[FIX] stock_account, sale_stock: _get_partner_to_invoice

When getting the partner to invoice, the function _get_partner_to_invoice
must check the type of the invoice to create.

opw:658460
This commit is contained in:
Goffin Simon 2015-12-11 12:02:45 +01:00
parent 44dd7c5077
commit 47e7f5d9bd
2 changed files with 8 additions and 7 deletions

View File

@ -447,12 +447,13 @@ class stock_picking(osv.osv):
""" Inherit the original function of the 'stock' module
We select the partner of the sales order as the partner of the customer invoice
"""
if picking.sale_id:
saleorder_ids = self.pool['sale.order'].search(cr, uid, [('procurement_group_id' ,'=', picking.group_id.id)], context=context)
saleorders = self.pool['sale.order'].browse(cr, uid, saleorder_ids, context=context)
if saleorders and saleorders[0] and saleorders[0].order_policy == 'picking':
saleorder = saleorders[0]
return saleorder.partner_invoice_id.id
if context.get('inv_type') and context['inv_type'] in ('out_invoice', 'out_refund'):
if picking.sale_id:
saleorder_ids = self.pool['sale.order'].search(cr, uid, [('procurement_group_id' ,'=', picking.group_id.id)], context=context)
saleorders = self.pool['sale.order'].browse(cr, uid, saleorder_ids, context=context)
if saleorders and saleorders[0] and saleorders[0].order_policy == 'picking':
saleorder = saleorders[0]
return saleorder.partner_invoice_id.id
return super(stock_picking, self)._get_partner_to_invoice(cr, uid, picking, context=context)
def _get_sale_id(self, cr, uid, ids, name, args, context=None):

View File

@ -252,7 +252,7 @@ class stock_picking(osv.osv):
context = context or {}
todo = {}
for picking in self.browse(cr, uid, ids, context=context):
partner = self._get_partner_to_invoice(cr, uid, picking, context)
partner = self._get_partner_to_invoice(cr, uid, picking, dict(context, type=type))
#grouping is based on the invoiced partner
if group:
key = partner