In order to better facilitate the management of customer portal accounts where a single customer portal account requires access to multiples company accounts, the following new schema will be implemented.
Customer portal accounts are a completely different record independent from QB customers
The independent customer account is just for authentication data and purposes.
New customer portal account record will consist of name, email, and locale info.
Portal login records will be linked to QB customers that they will have access to. This can be one or many.
Each QB company will still be treated as an independent entity.
This schema will be similar to the current workaround being used called "Customer Grouping". This is almost the same idea, but is much easier to manage and maintain.
When it comes to enabling/disabling customer portal accounts, I propose a separate view or screen where the listing is actual logins (users). In that view, one can manage all the customers a specific login will have.
In addition, from the company listing, one could enable an account from there as well. The user will have to specify though either an existing customer login account, or specify to create one based on the existing customer data (email, name, etc). The app will be smart with this. If there is no existing user login with the customer's email address, it will suggest adding a new user with that company data. If there is an existing user already, it will suggest enabling the company and link to the existing login account. The admin user could still override this suggestion and add a new account with a different email address.
This solution solves the problem of duplicate email addresses (and grouping) in a far more graceful and manageable way than the existing "workaround".