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
- Community Edition
- Enterprise Edition
Installation
- Navigate to Apps
- Find with keyword 'to_hr_payroll_contribution'
- Install it as usual then you are done
Default Data
Upon completion of installation, the following date will be created
Contribution Register Categories
- Insurance
- Labor Union
Contribution Registers
- Social Insurance: bound to the contribution register Category 'Insurance' mentioned above
- Health Insurance: bound to the contribution register Category 'Insurance' mentioned above
- Unemployment Insurance: bound to the contribution register Category 'Insurance' mentioned above
- Labor Union: bound to the contribution register Category 'Labor Union' mentioned above
Payroll Contribution Types
- 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
- 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
- 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
- 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
Payroll Data
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
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
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
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
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
- Navigate to Payroll > HR Payroll Contribution
- Hit the button Create to create a new Payroll Contribution record
- Select the employee for whom you want to register
- Select a desired contribution type, e.g.: Social Insurance. Upon selecting, Odoo will fill the employee rate and company rate to the register.
- 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.
- 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
Create a new Contribution Register Category: Payroll > Configuration > Contribution Register Category
- Name: Fixed Allowance
- Color: any
Create a new Contribution Register: Payroll > Configuration > Contribution Registers
- Name: Fixed Allowance
- Category: Fixed Allowance
- Partner: None
Create a new Payroll Contribution Type: Payroll > HR Payroll Contribution > Payroll Contribution Type
- Name: Fixed Allowance
- Code: FAL
- Employee Rate: -100%
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
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
result += line.contribution_base * rate if line.contribution_base else categories.GROSS * rate
Assign the salary rule newly created above to any salary structures that you want to get Fixed Allowance involved
Phần mềm này và các tệp liên kết ("Phần mềm")
được sử dụng (chạy, tuỳ biến, chạy sau khi được tuỳ biến)
chỉ khi bạn mua được giấy phép có hiệu lực từ tác giả,
điển hình như qua các Ứng dụng Odoo, hoặc trong trường hợp
bạn nhận được thoả thuận bằng văn bản từ tác giả của Phần mềm (chi tiết tại tệp COPYRIGHT).
Bạn có thể phát triển các phân hệ Odoo có sử dụng Phần mềm như một Thư viện (thường là phụ thuộc vào, nhập vào và sử dụng nguồn của nó)
nhưng không sao chéo bất kỳ mã nguồn hay tài liệu nào thuộc Phần mềm. Bạn có thể phân phối những phân hệ này theo giấy phép
mà bạn lựa chọn, miễn sao nội dung giấy phép đó tương tích với điều khoản của Giấy phép Phần mềm Độc quyền Odoo
(ví dụ: LGPL, MIT hay bất kỳ loại giấy phép phần mềm độc quyền nào tương tự vậy).
Nghiêm cấm phát hành, phân phối, cấp phép lại hoặc bán bản sao của Phần mềm hoặc
bản sao
Phần mềm đã được sửa đổi.
Thông báo bản quyền và chấp thuận nêu trên buộc phải được bao gồm trong tất cả các bản sao hoặc các phần quan trọng của Phần mềm.
PHẦN MỀM ĐƯỢC CUNG CẤP "NGUYÊN TRẠNG", KHÔNG BẢO ĐẢM DƯỚI BẤT KỲ HÌNH THỨC NÀO, ĐƯỢC THỂ HIỆN RÕ RÀNG HOẶC NGỤ Ý, KHÔNG GIỚI HẠN
ĐẢM BẢO VỀ CÁC BẢO ĐẢM NGỤ Ý VỀ KHẢ NĂNG THƯƠNG MẠI, PHÙ HỢP VỚI MỤC ĐÍCH CỤ THỂ VÀ KHÔNG VI PHẠM.
TRONG MỌI TRƯỜNG HỢP SẼ KHÔNG CÓ TÁC GIẢ HOẶC CHỦ SỞ HỮU BẢN QUYỀN NÀO CHỊU TRÁCH NHIỆM VỀ BẤT KỲ KHIẾU NẠI,
THIỆT HẠI HOẶC TRÁCH NHIỆM PHÁP LÝ KHÁC NÀO TRONG PHẠM VI HỢP ĐỒNG, CÁC THIỆT HẠI HOẶC CÁCH KHÁC, PHÁT SINH TỪ, NGOÀI HOẶC
CÓ LIÊN KẾT VỚI PHẦN MỀM HOẶC VIỆC SỬ DỤNG HOẶC KINH DOANH KHÁC TẠI PHẦN MỀM.