v 10.0 v 11.0 v 12.0 Third Party 1
Live Preview
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies Recruitment (hr_recruitment)
Employees (hr)
Discuss (mail)
Leaves (hr_holidays)
Calendar (calendar)
Community Apps Dependencies
Lines of code 4263
Technical Name to_hr_payroll_contribution
LicenseOPL-1
Websitehttps://viindoo.com
Versions 12.0 11.0 10.0
You bought this module and need support? Click here!

Key Features

Manage all kind of contribution made by employees and company on payroll basis. For example, monthly insurance fee, monthly labor union membership fee, internal funds, etc.

Unlimited Payroll Contribution Types

  • You can define unlimited types of contribution by employee and company which links to Contribution Register. The following fields are available:
    • Type name (e.g. Social Insurance, Employee Care Fund, etc)
    • Employee Contribution Register, which links to a Contribution Register for computation in salary rule
    • Company Contribution Register, which links to a Contribution Register for computation in salary rule
    • Employee Contribution Rate, (e.g. 8% of the base wage)
    • Company Contribution Rate, (e.g. 18% of the employee's basic wage)
  • You can register employee for each and every Payroll Contribution Type.
    • The registration status can be confirmed, suspended, resume or done (when the employee resigns)
    • Status changes of Registration is logged automatically

Goes into Payslip Computation

  • Payroll Contribution information is accessible within salary rules using variable employee.payroll_contribution_reg_ids. Find the default salary rules (i.e. Social Insurance by Employee, Unemployment Insurance by Company, etc) created upon installation of this app for further study.

Reports and Analysis

  • Extends the Payroll Analysis offered by the application "HR Advanced & Tuned" to allow analysis by Contribution Register Categories
  • Provides analysis on number of registrations over the time

Editions Supported

  1. Community Edition
  2. Enterprise Edition

Installation

  1. Navigate to Apps
  2. Find with keyword 'to_hr_payroll_contribution'
  3. Install it as usual then you are done

Default Data

Upon completion of installation, the following date will be created

  1. Contribution Register Categories

    1. Insurance
    2. Labor Union
  2. Contribution Registers

    1. Social Insurance: bound to the contribution register Category 'Insurance' mentioned above
    2. Health Insurance: bound to the contribution register Category 'Insurance' mentioned above
    3. Unemployment Insurance: bound to the contribution register Category 'Insurance' mentioned above
    4. Labor Union: bound to the contribution register Category 'Labor Union' mentioned above
  3. Payroll Contribution Types

    1. Social Insurance
      • Name: Social Insurance
      • Code: SINS
      • Employee Contribution Register: bound to the contribution register 'Social Insurance' mentioned above
      • Employee Contribution Rate: 8%, which you can modify according to the policy of your your company/country
      • Company Contribution Register: bound to the contribution register 'Social Insurance' mentioned above
      • Company Contribution Rate: 18%, which you can modify according to the policy of your your company/country
    2. Health Insurance
      • Name: Health Insurance
      • Code: HINS
      • Employee Contribution Register: bound to the contribution register 'Health Insurance' mentioned above
      • Employee Contribution Rate: 1.5%, which you can modify according to the policy of your your company/country
      • Company Contribution Register: bound to the contribution register 'Health Insurance' mentioned above
      • Company Contribution Rate: 3%, which you can modify according to the policy of your your company/country
    3. Unemployment Insurance
      • Name: Unemployment Insurance
      • Code: UEINS
      • Employee Contribution Register: bound to the contribution register 'Unemployment Insurance' mentioned above
      • Employee Contribution Rate: 1%, which you can modify according to the policy of your your company/country
      • Company Contribution Register: bound to the contribution register 'Unemployment Insurance' mentioned above
      • Company Contribution Rate: 1%, which you can modify according to the policy of your your company/country
    4. Labor Union
      • Name: Labor Union
      • Code: LU
      • Employee Contribution Register: bound to the contribution register 'Labor Union' mentioned above
      • Employee Contribution Rate: 1%, which you can modify according to the policy of your your company/country
      • Company Contribution Register: None, as we think the company has nothing to do here. But if it does, you can modify this accordingly
      • Company Contribution Rate: None, as we think the company has nothing to do here. But if it does, you can modify this accordingly
  4. Payroll Data

    1. Salary Rule Categories

      • Employee Insurance (by employee): to categorize salary rules related to employee insurance contributed by employee
        • Name: Employee Insurance (by employee)
        • Code: E_INSURANCE, which you can use in other salary rules' Python code
        • Parent: Deduction
      • Employee Insurance (by company): to categorize salary rules related to employee insurance contributed by company
        • Name: Employee Insurance (by company)
        • Code: C_INSURANCE, which you can use in other salary rules' Python code
        • Parent: None
      • Labor Union (by employee): to categorize salary rules related to labor union fee contributed by employee
        • Name: Labor Union (by employee)
        • Code: E_LU, which you can use in other salary rules' Python code
        • Parent: Deduction
    2. Salary Rules

      • Social Insurance by Employee: to compute social insurance that the employee has to contribute

        • Sequence: 101

        • Code: ESINS

        • Appear on Payslip: Yes

        • Category: Employee Insurance (by employee)

        • Condition Based on: Python Expression

        • Python Condition

          result = True if payslip.hr_payslip_contrib_history_line_ids and payslip.hr_payslip_contrib_history_line_ids.filtered(lambda l: l.state in ('confirmed','resumed') and l.type_id.code == 'SINS') else False
          
        • Amount Type: Python

        • Python Code

          result = 0.0
          for line in payslip.hr_payslip_contrib_history_line_ids.filtered(lambda l: l.state in ('confirmed','resumed') and l.type_id.code == 'SINS'):
              rate = -1 * line.employee_contrib_rate / 100
              # if computation base is zero, category.GROSS will be used as the computation base
              result += line.contribution_base * rate if line.contribution_base else categories.GROSS * rate
          
        • Contribution Register: Social Insurance

      • Social Insurance by Company: to compute employee social insurance that the company has to contribute

        • Sequence: 102

        • Code: CSINS

        • Appear on Payslip: No

        • Category: Employee Insurance (by employee)

        • Condition Based on: Python Expression

        • Python Condition

          result = True if payslip.hr_payslip_contrib_history_line_ids and payslip.hr_payslip_contrib_history_line_ids.filtered(lambda l: l.state in ('confirmed','resumed') and l.type_id.code == 'SINS' and l.company_contrib_rate) else False
          
        • Amount Type: Python

        • Python Code

          result = 0.0
          for line in payslip.hr_payslip_contrib_history_line_ids.filtered(lambda l: l.state in ('confirmed','resumed') and l.type_id.code == 'HINS' and l.company_contrib_rate):
              rate = line.company_contrib_rate / 100
              # if line's computation base is zero, category.GROSS will be used as the computation base
              result += line.contribution_base * rate if line.contribution_base else categories.GROSS * rate
          
        • Contribution Register: Social Insurance

      • Unemployment Insurance by Employee: to compute employee unemployment insurance that the employee has to contribute. See Payroll > Configuration > Salary Rules > Unemployment Insurance by Employee for details

      • Unemployment Insurance by Company: to compute employee unemployment insurance that the company has to contribute. See Payroll > Configuration > Salary Rules > Unemployment Insurance by Company for details

      • Labor Union Fee by Employee: to compute employee Labor Union Fee that the employee has to contribute. See Payroll > Configuration > Salary Rules > Labor Union Fee by Employee for details

    3. Salary Structures: no new salary structure was created but the default one Base for new salary structures will be modified to add the newly created salary rules mentioned above.

Register a new Payroll Contribution for an employee

  1. Navigate to Payroll > HR Payroll Contribution
  2. Hit the button Create to create a new Payroll Contribution record
  3. Select the employee for whom you want to register
  4. Select a desired contribution type, e.g.: Social Insurance. Upon selecting, Odoo will fill the employee rate and company rate to the register.
  5. By default, the computation base of the register is zero which means Odoo will use the contract's basic wage as the computation base (according to the salary rules defined above). However, you could fill another value in case you don't want the basic wage.
  6. Fill the contribution number the validate the register so that it will be considered during salary computation.

How to employ Payroll Contribution Register for other purposes?

Use case 1: Fixed Allowance

  1. Create a new Contribution Register Category: Payroll > Configuration > Contribution Register Category

    • Name: Fixed Allowance
    • Color: any
  2. Create a new Contribution Register: Payroll > Configuration > Contribution Registers

    • Name: Fixed Allowance
    • Category: Fixed Allowance
    • Partner: None
  3. Create a new Payroll Contribution Type: Payroll > HR Payroll Contribution > Payroll Contribution Type

    • Name: Fixed Allowance
    • Code: FAL
    • Employee Rate: -100%
  4. Create a new Payroll Contribution Register: Payroll > HR Payroll Contribution > Payroll Contribution Register

    • Employee: select an employee for whom you want to register fixed allowance
    • Computation Base: enter the fixed amount of the allowance
    • Employee Rate: -100%
    • Date From: Select a date from which the allowance will be considered in salary computation
  5. Create a new salary rule 'Fixed Allowance': Payroll > Configuration > Salary Rules

    • Name: Fixed Allowance

    • Category: Allowance

    • Code: FAL

    • Condition Based on: Python Expression

    • Python Condition

      result = True if payslip.hr_payslip_contrib_history_line_ids and payslip.hr_payslip_contrib_history_line_ids.filtered(lambda l: l.state in ('confirmed','resumed') and l.type_id.code == 'FAL') else False
      
    • Amount Type: Python

    • Python Code

      result = 0.0
      for line in payslip.hr_payslip_contrib_history_line_ids.filtered(lambda l: l.state in ('confirmed','resumed') and l.type_id.code == 'FAL' and l.employee_contrib_rate):
          rate = line.employee_contrib_rate / 100
          # if line's computation base is zero, category.GROSS will be used as the computation base
          result += line.contribution_base * rate if line.contribution_base else categories.GROSS * rate
      
  6. Assign the salary rule newly created above to any salary structures that you want to get Fixed Allowance involved

Odoo Proprietary License v1.0

This software and associated files (the "Software") may only be used (executed,
modified, executed after modifications) if you have purchased a valid license
from the authors, typically via Odoo Apps, or if you have received a written
agreement from the authors of the Software (see the COPYRIGHT file).

You may develop Odoo modules that use the Software as a library (typically
by depending on it, importing it and using its resources), but without copying
any source code or material from the Software. You may distribute those
modules under the license of your choice, provided that this license is
compatible with the terms of the Odoo Proprietary License (For example:
LGPL, MIT, or proprietary licenses similar to this one).

It is forbidden to publish, distribute, sublicense, or sell copies of the Software
or modified copies of the Software.

The above copyright notice and this permission notice must be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.

Please log in to comment on this module

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author or have a question related to your purchase, please use the support page.
There are no ratings yet!
by
Herru Murtopo
on 11/25/19, 10:36 AM Confirmed Purchase

Hi can you make the allowance/contribution optional with percentage and fix nominal