Running into the same problem. Technical records sometimes need to be preserved. The challange is to keep track on former versions: what has changed.
Currently I see two options:
1) Duplication of objects with versioning
- Extra field for version (int)
- Extra field for modification (text)
- The original object is canceled and set into a mode where it can be viewed but not altered.
- The original object gets cloned and all the changes are written into the modification field, version is increased by 1
Problem: I think the framework doesn’t support this. In lists and statistics the old objects will still be taken into account and the old objects may still be altered.
Advantage: No extra fields required other than version and modifications.
2) Add one (1) extra field for every field that needs a history
- Extra field for version (int)
- Extra field for modification (text)
- One extra field for every field where a history is required (field_name_OLD)
- Once an object is validated the fields are compared and where they are different it is written into the field. The version is increased by one.
- The report of this object is printed with ‘revX’ appended to the file name, where X is the version. The report also has the modification-field printed.
For both cases it is possible to use triggers and the Event-Log to keep track on all changes on an object.
I would prefere option 1 since it is done with less effort - if it would be supported by Dolibarr. I don’t see this so I have to go for option 2.
Trying to implement this here: LIMS for Dolibarr
Any other ideas? Recommendations?