sale.order.basic sale.order True #---------------------------------------------- # Activity #---------------------------------------------- True draft router function action_wait() OR wait_invoice wait_ship done True function write({'state':'done'}) AND cancel True stopall action_cancel() cancel2 True stopall action_cancel() cancel3 True stopall action_cancel() invoice subflow action_invoice_create() invoice_except function write({'state':'invoice_except', 'invoice_id':False}) invoice_end function write({'invoiced':1}) invoice_cancel True stopall action_cancel() ship function action_ship_create() ship_except function write({'state':'shipping_except'}) ship_end function action_ship_end() ship_cancel True stopall action_cancel() #---------------------------------------------- # Transistion #---------------------------------------------- order_confirm cancel (order_policy=='picking') cancel cancel (order_policy!='prepaid') or invoiced (order_policy=='prepaid') or ((order_policy=='postpaid') and shipped) manual_invoice subflow.paid subflow.cancel invoice_recreate invoice_corrected invoice_cancel mrp.procurement procurement_lines_get() test_state('finished') test_state('canceled') ship_recreate ship_corrected ship_cancel