diff --git a/addons/stock/tests/test_stock_return_picking.py b/addons/stock/tests/test_stock_return_picking.py index 0228710886a..f080a2e0081 100644 --- a/addons/stock/tests/test_stock_return_picking.py +++ b/addons/stock/tests/test_stock_return_picking.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- from odoo.addons.stock.tests.common import TestStockCommon +from odoo.tests.common import Form class TestReturnPicking(TestStockCommon): @@ -143,3 +144,34 @@ class TestReturnPicking(TestStockCommon): res = return_wizard.create_returns() return_picking = self.PickingObj.browse(res["res_id"]) self.assertEqual(return_picking.location_dest_id, return_location) + + def test_return_incoming_picking(self): + """ + Test returns of incoming pickings have the same partner assigned to them + """ + partner = self.env['res.partner'].create({'name': 'Jean'}) + receipt = self.env['stock.picking'].create({ + 'picking_type_id': self.picking_type_in, + 'location_id': self.supplier_location, + 'location_dest_id': self.stock_location, + 'partner_id': partner.id, + 'move_ids': [(0, 0, { + 'name': self.UnitA.name, + 'product_id': self.UnitA.id, + 'product_uom_qty': 1, + 'product_uom': self.uom_unit.id, + 'location_id': self.stock_location, + 'location_dest_id': self.customer_location, + })], + }) + receipt.button_validate() + # create a return picking + stock_return_picking_form = Form(self.env['stock.return.picking'] + .with_context(active_ids=receipt.ids, active_id=receipt.ids[0], + active_model='stock.picking')) + stock_return_picking = stock_return_picking_form.save() + stock_return_picking.product_return_moves.quantity = 1.0 + stock_return_picking_action = stock_return_picking.create_returns() + return_picking = self.env['stock.picking'].browse(stock_return_picking_action['res_id']) + return_picking.button_validate() + self.assertEqual(return_picking.move_ids[0].partner_id.id, receipt.partner_id.id) diff --git a/addons/stock/wizard/stock_picking_return.py b/addons/stock/wizard/stock_picking_return.py index e7eeff700e6..28a7eb2b138 100644 --- a/addons/stock/wizard/stock_picking_return.py +++ b/addons/stock/wizard/stock_picking_return.py @@ -109,6 +109,8 @@ class ReturnPicking(models.TransientModel): 'origin_returned_move_id': return_line.move_id.id, 'procure_method': 'make_to_stock', } + if new_picking.picking_type_id.code == 'outgoing': + vals['partner_id'] = new_picking.partner_id.id return vals def _prepare_picking_default_values(self):