State machine - creating an incoming payment
Description
Incoming payment can be received mainly from a tenant, but also from an owner or a supplier. A payment can come from different sources, e.g. a bank BULK, an excel file, a UI entry...
The following state machine presents a ticket creation process :
ERROR: for any reason the payment is created but can't be fully processes => it ends-up inERRORstate.ERRORis not (yet) a final state, as it will be possible to fix it and transition it towardsPARKEDstate. (to come)PARKED:
the object payment is created and stored in the database but triggers no accounting entries. End-user can not see the processed payment, as it is a stand-alone DB object.BOOKED: when the user confirms the payment, with or without settlements, the payment generates accounting entries.REVERSED: a payment can be reversed, meaning all accounting entries originally posted are reversed. By default, entry will be reversed on the same posting date than originally booked. Before changing state, 2 guards (in) check that :- entries to be reversed are not settled => no "settlements" attribute persisted in the accounting entry
- the posting date belongs to an open postind period. If the posting period is closed, systems must propose the first day of the first next open posting period.
ARCHIVED: a payment can be archived, meaning no more action will be applicable to it.