Purchase Order Basic Workflow purchase.order True True draft confirmed function wkf_confirm_order() cancel function True write({'state':'cancel'}) except_invoice function write({'state':'except_invoice'}) except_picking function write({'state':'except_picking'}) router OR function wkf_approve_order() invoice subflow action_invoice_create() invoice_done write({'state':'approved'}) function invoice_end picking subflow action_picking_create() picking_done write({'shipped':1,'state':'approved'}) function subflow.delivery_done done write({'state':'done'}) function True AND purchase_confirm 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 subflow.cancel subflow.cancel subflow.done subflow.paid buy subflow action_po_assign() check_buy() subflow.delivery_done subflow.cancel