Purchase Order Basic Workflow purchase.order True True draft sent function write({'state':'sent'}) bid function wkf_bid_received() confirmed OR function wkf_confirm_order() cancel function True wkf_action_cancel() except_invoice function write({'state':'except_invoice'}) except_picking function write({'state':'except_picking'}) router OR function AND wkf_approve_order() invoice subflow action_invoice_create() invoice_done invoice_done() function invoice_end picking function action_picking_create() picking_done picking_done() function done wkf_po_done() function True AND purchase_confirm send_rfq purchase_confirm bid_received purchase_cancel purchase_cancel purchase_cancel purchase_cancel has_stockable_product() not has_stockable_product() invoice_method=='order' invoice_method<>'order' picking_ok invoice_ok purchase_cancel purchase_cancel picking_cancel subflow.cancel picking_done subflow.paid invoiced purchase_cancel invoice_method<>'order'