Multi-Company Configuration In OpenERP 7
OpenERP 7 support multi company configuration in which there can be number of sub companies under a main company or another company itself. The modules installed in my OpenERP 7 are :
-
Sales
-
Purchase
-
Accounting
-
Warehouse
First step of creating a multi-company configuration is defining the companies in OpenERP. This can be done from Setting -> Companies -> Companies. If you can't see this menu, please make sure that the user has all the required access rights configured. Create a new company. To create a sub-company under a main company, create a sub company and assign the main company in the field “Parent Company”. I have created a main company “Main Company” and a “Sub Company 1” and “Sub Company 2” under “Main Company” and “Sub Company 1 Sub” under “Sub Company 1”. The hierarchy is shown in the figure below:
Company Hierarchy
Chart Of Account Configuration:
Now we have to set up the chart of account for each company. To configure chart of account go to Setting -> Configuration -> Invoicing. This will give all the accounting details regarding the company. A screen shot of this menu item is shown below:
Char of Account Configuration
Select the company for which the chart of account has to be configured in field “Select Company” field. If the company has no chart of account configured earlier, a field “Template” in the group “Chart of Account” will be made visible. Select the chart of account for the company and press “Apply” button on top of the view. I we want to install a chart of account apart from that currently installed in OpenERP, click on “Install more chart of account” which lists all the chart of account that are available in OpenERP. User can install any chart of account as he likes.
Location Configuration :
Location Configuration can be done from Warehouse -> Configuration -> Locations. Configure locations for each company. There is a fields called “Company in Location where we can select the company for which he location corresponds. Each company has its own locations configured. The screen shot of the location view is shown below:
Location Configuration
Warehouse Configuration :
Warehouse Configuration can be done from Warehouse -> Configuration -> Warehouses. Configure warehouses for each company. I have creates separate warehouses for each company. The screen shot of the warehouse view is shown below:
Warehouse Configuration
Shop Configuration :
Shop Configuration can be done from Sales -> Configuration -> Shops. Configure a shop for each company. The screen shot of the tree view of the shops configured is shown below:
Shop Configuration
Product Configuration :
Each product can be configured as a global product or product for each individual company. Product can e created and modified form the menu Sales -> Products -> Products. For my example, i am creating 5 products in which one is a global product and other 4 belongs o each company. Lets the product be “Product Global” which is a global product with no company assigned, “Product Sub Company 1” which belong to “Sub Company 1”, “Product Sub Company 2” which belong to “Sub Company 2”, “Product Sub Company 1 Sub” which belong to “Sub Company 1 Sub” and “Product Main Company” which belong to “Main Company”. Each product can be assigned to a company by setting the fields “Company” in the product form view. If the fields is not set, it will be treated as a global product and will be visible be all the company. The kanban view of the product when logged in as an Administrator is shown below:
Product Kanban View When Logged in as Administrator
User Configuration :
In OpenEPR, we can configure the users for separate companies. Users can be created and configured from the menu Settings -> Users -> Users. To create a new users go to this menu and click “Create”. New form view to create the user will be shown. In this view we have the provision to specify the name, login, company, language, access rights, etc for each user. I am creating 4 users who belong to 4 separate companies. Let the users be “Main Company User” who belong to “Main Company”, “Sub Company 1 User” who belong to “Sub Company 1”, “Sub Company 2 User” who belong to “Sub Company 2” and “Sub Company 1 Sub User” who belong to “Sub Company 1 Sub” company. User can be specified to each company by setting the field “Company” in the user form view. The user can only be assigned to companies which are specified in the field “Allowed Companies” in “Access Rights” tab in user form view. To set the password for the user, click in “Change Password” button in the user form view. A pop up will be displayed which prompt the user to enter the password. The tree view of the user is shown below:
OpenERP Users
Now the configuration of OpenERP for multi-company configuration of product is complete. Similarly we can configure Address Book also. By setting the fields “Company”, we can assign the Partners in to separate companies.
OpenERP follows sharing between companies based on:
“Share with your parent and children,
not with brother and sister”
ie; user can see information in our case products that belong to itself and also its parents and child company but not of the other companies. For example, if we login as “Sub company 1 User”, we will be able to see the products and address book that belong to itself, its parent company “Main Company” and also its child company “Sub Company 1 Sub”. The kanban view of the product when logged in as “Sub company 1 User” is given below:
Product When Logged in as Sub Company 1 User
Similarly if we are logged in as “Sub Company 2 User”, we will be able to view all the product belonging to itself and “Main Company”. If we are logged in as “Main Company user”, we will be able to view all the product since all other companies are child company to “Main Company”. The screen shot of product when logged in as “Sub Company 2 User”, “Sub Company 1 Sub User”, “Main Company” are shown below:
Product When Logged in as Sub Company 2 User
Product When Logged in as Sub Company 1 Sub User
Product When Logged in as Main Company User
The product listed when creating the sale order or purchase order depends on the product company and user company. The product listed when logged in as “Sub Company 2 User” is shown below:
Hi, In OpenERP, the
Hi,
In OpenERP, the payslip of the employee can be generated by the "Responsible User" of the particular employee or the "Responsible User" of the manager of the department to which the employee belong. There is a record rule set for group Manager and Officer of Human Resource in payslip. So please make sure that the user who is trying to generate the payslip is a manager of the department to which the employee belong.
Hi Prajul, I write the python
Hi Prajul,
I write the python code for sick leave calculation in payslip.
but it didn't work.This is following:
totalnoofday = Employee.leave_date_to - Employee.leave_date_from
result = totanoofday * contract.wage / hr.payslip.worked_days_line_ids
What i want to do is " i want to get the result of total amount for leave days".
please reply me Prajul.
Hi, I think you can
Hi,
I think you can calculate the amount from the client side itself. First you have to define a contact for the employee. The contract will have the details like the base wage, allowance etc. Also in contract you need to define the salary structure for the employee. The salary structure will have the salary rules which is used to calculate the salary of the employee. In salary structure you can define the deduction of the leave. In salary rule Computation amount type as "Python Code". For example if i want to find the net salary after deducing the amount for leave. I am calculating the amount to be deduce for a leave based on the base amount and number of working days for that month ie; if number of working days is 24 and base salary is 24000, the amount deduced for a single day leave will be 24000 / 24 = 1000. this can be declared in a salary rule using the formula :
- ((contract.wage / worked_days.WORK100.number_of_days) * worked_days.Unpaid.number_of_days)
where contract is the contract defined for the customer and contract.wage fetched base salary defined in that contract, work_days is the "Worked Days" one2many in the employee payslip "Work Days & Input" tab. Each line in this one2many can be referenced using the value "Code". For example worked_days.WORK100 will fetch the value from this one2many with code "WORK100".
Hi Prajul, I also have a
Hi Prajul,
I also have a question again.
When i was produce pay slip as a HR manager (Access right), there is an error occured which is the "Document Type: payslip, Operation Create".
So, I want to know when can i find document type in openERP 7.
Best Regards,
Myat Thu
Hi, The access error is
Hi,
The access error is coming from payslip. In OpenERP, the payslip of the employee can be generated by the "Responsible User" of the particular employee or the "Responsible User" of the manager of the department to which the employee belong. There is a record rule set for group Manager and Officer of Human Resource in payslip. So please make sure that the user who is trying to generate the payslip is a manager of the department to which the employee belong.
Thank you very much, Prajul.
Thank you very much, Prajul. It was a great help and you help me to solve my misery.
Thanks PRAJUL. I will try for
Thanks PRAJUL. I will try for that.
Hi Prajul, Great article. Do
Hi Prajul,
Great article. Do you know how to enable Shops? I don't see it available under configurations even though I have the appropriate modules setup already.
Thanks.
Hi, Please make sure
Hi,
Please make sure that the module sale_stock is insalled. After installing the module check the option "Manage multiple locations and warehouse" in "Settings -> Configuration -> Warehouse" is enabled. Then the menu will be visible.
Thanks
Its a great article..I
Its a great article..I followed all the steps but the SubCompany 1 user cannot create invoice or sale orders even i give all the permissions..the error is
"Access Denied
The requested operation cannot be completed due to security restrictions. Please contact your system administrator.
(Document type: Partner, Operation: read) "
Can you help me to get ride of this bug??