diff --git a/addons/mrp_subcontracting/models/stock_picking.py b/addons/mrp_subcontracting/models/stock_picking.py index baebe40b743..ecef047906a 100644 --- a/addons/mrp_subcontracting/models/stock_picking.py +++ b/addons/mrp_subcontracting/models/stock_picking.py @@ -5,6 +5,7 @@ from datetime import timedelta from odoo import api, fields, models from odoo.tools.float_utils import float_compare +from dateutil.relativedelta import relativedelta class StockPicking(models.Model): @@ -112,7 +113,7 @@ class StockPicking(models.Model): 'location_dest_id': subcontract_move.picking_id.partner_id.with_company(subcontract_move.company_id).property_stock_subcontractor.id, 'product_qty': subcontract_move.product_uom_qty, 'picking_type_id': warehouse.subcontracting_type_id.id, - 'date_planned_start': subcontract_move.date + 'date_planned_start': subcontract_move.date - relativedelta(days=product.produce_delay) } return vals diff --git a/addons/mrp_subcontracting/tests/test_subcontracting.py b/addons/mrp_subcontracting/tests/test_subcontracting.py index 0c7ca7e5bb3..51adeb485c8 100644 --- a/addons/mrp_subcontracting/tests/test_subcontracting.py +++ b/addons/mrp_subcontracting/tests/test_subcontracting.py @@ -6,6 +6,7 @@ from odoo.tests.common import TransactionCase from odoo.addons.mrp_subcontracting.tests.common import TestMrpSubcontractingCommon from odoo.tests import tagged +from dateutil.relativedelta import relativedelta @tagged('post_install', '-at_install') @@ -111,6 +112,9 @@ class TestSubcontractingFlows(TestMrpSubcontractingCommon): l.location_id == self.env.company.subcontracting_location_id and l.location_src_id == self.warehouse.lot_stock_id) resupply_warehouse_rule.copy({'location_id': partner_subcontract_location.id}) + # Add a manufacturing lead time to check that the resupply delivery is correctly planned 2 days + # before the subcontracting receipt + self.finished.produce_delay = 2 # Create a receipt picking from the subcontractor picking_form = Form(self.env['stock.picking']) @@ -136,6 +140,8 @@ class TestSubcontractingFlows(TestMrpSubcontractingCommon): # The picking should be a delivery order self.assertEqual(picking.picking_type_id, wh.out_type_id) + # The date planned should be correct + self.assertEqual(picking_receipt.scheduled_date, picking.scheduled_date + relativedelta(days=self.finished.produce_delay)) self.assertEqual(mo.picking_type_id, wh.subcontracting_type_id) self.assertFalse(mo.picking_type_id.active)