mrp.production.basic mrp.production True True draft picking subflow action_confirm() ready function action_ready() picking_exception function action_picking_except() in_production function action_in_production() True function action_production_end() done True cancel function action_cancel() button_confirm not test_if_product() button_confirm test_if_product() picking_id and picking_id.state=='done' button_produce button_produce_done subflow.cancel button_cancel button_recreate button_cancel button_cancel button_cancel mrp.procurement.basic mrp.procurement True True draft cancel function action_cancel() True confirm function action_confirm() confirm_wait function write({'state':'exception'}) confirm_mts confirm_mto make_to_stock function action_move_assigned() produce subflow action_produce_assign_product() produce_check produce_service function action_produce_assign_service() buy subflow action_po_assign() ready function action_ready() wait_done function write({'state':'waiting'}) True done function action_done() button_confirm button_wait_done True check_move_done() stock.move [move_id.id] button_check test_cancel() button_check not test_cancel() procure_method=='make_to_order' procure_method=='make_to_stock' button_cancel button_cancel button_restart button_cancel button_restart button_cancel check_make_to_stock() check_produce() check_product() not check_product() check_buy() True subflow.cancel subflow.cancel subflow.cancel subflow.done subflow.delivery_done action_check_finnished() check_move_cancel()