Implement CSV import for Bank Reconciliation
/cc @jerome
We discussed about it some time ago, and I finally took time to finalize everything. This may only be a first try, since I am sure issues will emerge, but at least we can ship the feature.
The added test should describe everything, and I did not changed anything to the old tests, so to keep full backward compatibility. In fact, an user not using lines will not see any change at all, apart from the added « Business Process » field on the Bank Reconciliation document, which is obviously optional.
Mainly, there are two important things for the user: the possibility to import a Spreadsheet through OOo Import, which will create individual lines, and a new grouping form for Bank Reconciliations with lines, which allow reconiling each line with a different accounting transaction.
In terms of datamodel, I kept something close to the old one, but while it is still possible to aggregate Bank Reconciliation to Accounting Transaction Lines, we can now also aggregate Bank Reconciliation Lines. The SQL request will select both, so backward compatibility also work if the user decides to switch to the new system ("Reconcilied Amount" will be correct without migration nor intermediate document).
On top of usual code review (I think most of the code is quite clean), there are two main points still open:
- importing dates from CSV often results in wrong date order (mistakes month and day). I cannot think of a way to fix that, and it can be handled in another MR, which means user have to import ODS documents, which can easily be made from a CSV;
- I committed rules, Business Process, builder, etc on the main BT5. A split might be useful, or maybe we do not want to commit these at all and create dynamically in tests, or maybe there is already a good place for them, I do not really know, tell me what you think we should do.
