A Home for the elderly is divided in departments.  Each department consists of a number of rooms and each room has a number of beds.  Each inhabitant is assigned a bed for his/her stay.  A bed belongs to a particular category.  Each category has a price.  The home offers different types of stays (=category): rest home (RH), rest & nursing home (RNH), service flat (SF).  An inhabitant can do more than one stay at a time. Suppose John stays in a service flat but breaks his leg and therefore has to stay in rest&nursing for a while. His stay in the service flat will then be suspended but not ended. The switch to rest&nursing doesn't require a proposal either as John is already an inhabitant.
People wishing to reside in the home go through a registration process.  This registration process involves answering a set of questions concerning the person's basic identification data. As a final step, the data of the person is registered in the system. Once the basic registration is done, the abilities of a person are assessed by means of questions that gauge the person's needs for help for basic activities such as eating, dressing, personal care (like taking a shower), as this will give an indication of the type of stay best suited for that person. The assessment results in a type of stay defined for the person. As soon as a person has been assessed, the person is considered to be on the waiting list for the corresponding type of stay. The position on the waiting list is determined by the registration date only. When a bed of the corresponding category is free, it is proposed to the person that is on the highest position of the waiting list. The person needs then to inform the Rest & Nursing Home within three days about whether s/he accepts or refuses the proposal. If the proposal is refused, the person stays on the waiting list and a new proposal is made to the next person on the list who requested this type of stay, ... and so on until a person accepts the proposal.  Once a proposal is accepted, the person's abilities are re-assessed such as to validate the requested type of stay. After this validation, the date of intake is determined and the effective stay will start on that day.  In case the type of stay needs to be changed after the re-assessment, the proposal is marked as invalidated, and the requested type of stay is updated, but the person remains in the same position on the waiting list.
Stays are invoiced once a month. For the sake of simplicity, payments will not be treated as objects, but as events. When a payment is received, this is registered and the outstanding amount of the invoice is reduced with the amount paid.  If the remaining amount is zero, the invoice is registered as "paid". If the remaining amount is still positive (paid amount too low), then the outstanding amount is adjusted, and the invoice is re-sent, indicating the remaining amount to pay.  If a person pays too much, the following actions are undertaken: the outstanding amount is set to zero, invoice is registered as paid and a credit note is created and the refund is executed immediately.  As long as an invoice is not registered as paid, it can be modified: if the inhabitant or his/her representative complains about the items that have been invoiced, this can be corrected.
When a stay comes to an end (because of the inhabitant's death or because this person decides to move to another place), the invoicing processes will continue until all invoices are paid.  The type of the stay will determine the amount that is invoiced.  In case e.g. a service flat stay goes on while an inhabitant resides in rest & nursing for a while, both stays will be invoiced, but a discount will apply to the service flat stay.