Why system specimen events cannot be edited?

The user cannot edit all the specimen events added by the system. The system events are:

  1. Transfer
  2. Shipment (shipped and received)
  3. Distribution (reserved, reservation canceled, distributed, and returned)
  4. Dispose
  5. Processing

These events, once added, cannot be edited or deleted by the user. Unlike other user events (e.g., frozen event), the system event has many other side effects. E.g.

  1. A distribution event's date is obtained from the Order date. Editing a date or site in a distribution event means the Order object has to be edited too. 
  2. Deleting a distribution event means a specimen has to be reverted back to collected, specimen location restored, etc.
  3. A transfer event, if deleted, means the old position has to be restored.

These use cases can get very complex when trying to accommodate all the use cases and will make the system unwieldily. E.g.

  1. If you make a bank transfer to a wrong person, you do not have an option to change the person's name.
  2. You send an email to the wrong person.

In the case of data entry mistakes, then it has to be fixed by reversing the operation. E.g., return the specimens and creating a new order, or redo the shipment.