Restriction based Payment Schedule

Do we have restriction based payment schedule in erpnext.
for e.g.:
If 20% is mentioned as an advance payment, then until 20% advance is received, user
should not be able to perform any action against a Sales Order. he shouldn’t be able to create sales invoice against it.

Is there anything regarding this in erpnext by default, if not then how can we achieve this??