- I create a product with no supplier define for it. - !record {model: product.product, id: product_with_no_seller}: name: 'product with no seller' list_price: 20.00 standard_price: 15.00 categ_id: product.product_category_1 - I create a sales order with this product with route dropship. - !record {model: sale.order, id: sale_order_route_dropship01}: partner_id: base.res_partner_2 partner_invoice_id: base.res_partner_address_3 partner_shipping_id: base.res_partner_address_3 note: crossdock route payment_term: account.account_payment_term order_line: - product_id: product_with_no_seller product_uom_qty: 1 route_id: route_drop_shipping - I confirm the sales order. - !workflow {model: sale.order, ref: sale_order_route_dropship01, action: order_confirm} - I check there is a procurement in exception that has the procurement group of the sales order created before. - !python {model: procurement.order}: | self.run_scheduler(cr, uid) sale_id = self.pool.get('sale.order').browse(cr, uid, ref("sale_order_route_dropship01")) proc_id = self.search(cr, uid, [('group_id.name', '=', sale_id.name), ('state', '=', 'exception')]) assert proc_id, 'No Procurement!' - I set the at least one supplier on the product. - !record {model: product.product, id: product_with_no_seller}: seller_ids: - delay: 1 name: base.res_partner_2 min_qty: 2.0 - I run the Procurement. - !python {model: procurement.order}: | sale_id = self.pool.get('sale.order').browse(cr, uid, ref("sale_order_route_dropship01")) proc_id = self.search(cr, uid, [('group_id.name', '=', sale_id.name), ('state', '=', 'exception')]) self.run(cr, uid, proc_id) - I check the status changed there is no procurement order in exception any more from that procurement group - !python {model: procurement.order}: | sale_id = self.pool.get('sale.order').browse(cr, uid, ref("sale_order_route_dropship01")) proc_id = self.search(cr, uid, [('group_id.name', '=', sale_id.name), ('state', '=', 'exception')]) assert not proc_id, 'Procurement should be in running state' - I check a purchase quotation was created. - !python {model: procurement.order}: | sale_id = self.pool.get('sale.order').browse(cr, uid, ref("sale_order_route_dropship01")) proc_ids = self.search(cr, uid, [('group_id.name', '=', sale_id.name)]) purchase_id = [proc.purchase_line_id.order_id for proc in self.browse(cr, uid, proc_ids) if proc.purchase_line_id] assert purchase_id, 'No Purchase Quotation is created'