Multi-Business Unit organisation

Business Unit Hierarchy

Maymyo is designed to support an Enterprise that operates multiple Business Units. A Business Unit may be a actual (ie a Branch) or virtual location. A location is a place where the enterprise conducts business. In Maymyo, this actual location is called a Branch.

The Business Units can be organised in a hierarchical manner, eg we can have a virtual HeadQuarters as the root. HeadQuarters may be parent to several Regional HeadQuarters under which are the State Offices. All these area virtual. Branches will be housed under the State Offices.

If you load the test data, you will see our Business Unit Hierarchy that resides in Malaysia, home of the authors.

These Business Units may be within the same country (using the same Functional Currency) or operate in different countries. We support this by making Branches operate under a Company’s Profit Centre. Each Company may use a different Functional Currency. A Company owns an accounting Set of Books.

Users belong to a Business Unit

Each User of Maymyo must belong to a Business Unit. By default, she will only be allowed to access the data of this Business Unit. You can specify other Accessible Business Units in order to allow her to access data of other Business Units. Maintain User Profile allows you to do this.

If the Business Unit is virtual, then the User can access all data of its children Business Units. Note that transactions can only happen at actual locations, ie Branches, so each User will in effect have a list of accessible Branches whose data she can access. So if a User belongs to a Regional HeadQuarters then she can access data of all Branches in the States under this Region.

We implement this row-level access using Dynamic Filtering Manager for the django models that we want to control access to.