Hi Jack,
Based on what I know, this can not be done in the standard SAP. You will need to make a program to apply all these rules.
Sometime ago we made a program with similar rules that trigger an event and when the even was trigger the job was released. You can try with a similar approach.
Kind Regards,
Mariano