I was requested to provide a plan for multi-company as I say in
TL;DR: drop record rule, add domain on fields
First, what is wrong with the current implementation? The multi-company
is a legacy from TinyERP/OpenERP/Odoo (partially from me). It uses the
record rule to split the records by companies and many part of the code
rely on this to find the right subset of records etc.
It is a wrong design because it is mixing 2 things, the access right and
the business logic. There are no reason to rely on access right to
ensure that an sale generate invoices from the same company.
So the plan is to remove all the company record rule/access right (it is
part of the customization/configuration) and use domains to enforce
company where it is needed (invoices on sale, account on moves, etc.)
So by default everyone will see every companies, restriction will be
part of the configuration.
And the company context will be used only for default value of company
It will probably require to add some more 'company' fields, for example
on move. They will be needed on «main documents» and thanks to the
domain inversion and the validation, children lines will be filled
correctly and the integrity will be respected.
The only tricky part that I see for this change, is the stock quantity
computation. But probably we could just add a filter for companies.
Also this change will not affect any mono-company installation which I
guess is the majority.
Cédric Krier - B2CK SPRL
Tel: +32 472 54 46 59