diff --git a/addons/purchase_stock/models/stock_rule.py b/addons/purchase_stock/models/stock_rule.py index bbbd767c5dd..4487edeaacd 100644 --- a/addons/purchase_stock/models/stock_rule.py +++ b/addons/purchase_stock/models/stock_rule.py @@ -44,6 +44,11 @@ class StockRule(models.Model): def _run_buy(self, procurements): procurements_by_po_domain = defaultdict(list) errors = [] + # Origins we don't want to appear in the PO source field. + origins_to_hide = [ + _('Manual Replenishment'), + _('Replenishment Report'), + ] for procurement, rule in procurements: # Get the schedule date in order to find a valid seller @@ -88,7 +93,7 @@ class StockRule(models.Model): procurements, rules = zip(*procurements_rules) # Get the set of procurement origin for the current domain. - origins = set([p.origin for p in procurements]) + origins = set([p.origin for p in procurements if p.origin not in origins_to_hide]) # Check if a PO exists for the current domain. po = self.env['purchase.order'].sudo().search([dom for dom in domain], limit=1) company_id = procurements[0].company_id diff --git a/addons/purchase_stock/tests/test_replenish_wizard.py b/addons/purchase_stock/tests/test_replenish_wizard.py index bdb126dd57a..36f14d7a2c3 100644 --- a/addons/purchase_stock/tests/test_replenish_wizard.py +++ b/addons/purchase_stock/tests/test_replenish_wizard.py @@ -44,9 +44,8 @@ class TestReplenishWizard(TestStockCommon): }) replenish_wizard.launch_replenishment() last_po_id = self.env['purchase.order'].search([ - ('origin', 'ilike', '%Manual Replenishment%'), ('partner_id', '=', self.vendor.id) - ])[-1] + ], order="id desc", limit=1) self.assertTrue(last_po_id, 'Purchase Order not found') order_line = last_po_id.order_line.search([('product_id', '=', self.product1.id)]) self.assertTrue(order_line, 'The product is not in the Purchase Order') @@ -93,9 +92,7 @@ class TestReplenishWizard(TestStockCommon): 'warehouse_id': self.wh.id, }) replenish_wizard.launch_replenishment() - last_po_id = self.env['purchase.order'].search([ - ('origin', 'ilike', '%Manual Replenishment%'), - ])[-1] + last_po_id = self.env['purchase.order'].search([], order="id desc", limit=1) self.assertEqual(last_po_id.partner_id, vendor1) self.assertEqual(last_po_id.order_line.price_unit, 100) @@ -148,9 +145,7 @@ class TestReplenishWizard(TestStockCommon): 'warehouse_id': self.wh.id, }) replenish_wizard.launch_replenishment() - last_po_id = self.env['purchase.order'].search([ - ('origin', 'ilike', '%Manual Replenishment%'), - ])[-1] + last_po_id = self.env['purchase.order'].search([], order="id desc", limit=1) self.assertEqual(last_po_id.partner_id, vendor1) self.assertEqual(last_po_id.order_line.price_unit, 100) @@ -193,9 +188,7 @@ class TestReplenishWizard(TestStockCommon): 'warehouse_id': self.wh.id, }) replenish_wizard.launch_replenishment() - last_po_id = self.env['purchase.order'].search([ - ('origin', 'ilike', '%Manual Replenishment%'), - ])[-1] + last_po_id = self.env['purchase.order'].search([], order="id desc", limit=1) self.assertEqual(last_po_id.partner_id, vendor2) def test_chose_supplier_4(self): @@ -241,9 +234,7 @@ class TestReplenishWizard(TestStockCommon): 'warehouse_id': self.wh.id, }) replenish_wizard.launch_replenishment() - last_po_id = self.env['purchase.order'].search([ - ('origin', 'ilike', '%Manual Replenishment%'), - ])[-1] + last_po_id = self.env['purchase.order'].search([], order="id desc", limit=1) self.assertEqual(last_po_id.partner_id, vendor1) self.assertEqual(last_po_id.order_line.price_unit, 60)