We've got custom user roles that restrict access to what the user can do for a given website in a multi-website setup. So a website manager may be able to modify orders for a given store.
What we want to do is make it so that certain website require a specific role to approve new orders, and in one rare case, have 2 levels of approval.
I'm wondering if I can accomplish this by simply have 3 'new' order status. We'll calling them approved for production, awaiting approval, and awaiting approval tier 2 (this last one for the highest level website admin).
If a new order is at "approved for production" it can be invoiced.
Then when someone goes to invoice an order, if its in "awaiting approval state" and the admin is the correct role, it can be moved into 'approved for production' where anyone can invoice it.
For the one website that requires 2 sign-offs, it would be "awaiting approval" then if that gets approved, it moves to "awaiting approval tier 2", then finally "approved for production"
Can you tell me if this sounds reasonable, and what event observer would be best to approve / reject these order changes? I'll need to direct it to the next order status based on some criteria, so I'd need to be able to modify the order as well.