Bởi: T.V.T Marine Automation (aka TVTMA) NextERP
Số dòng Code | 2040 |
Tên kỹ thuật | to_hr_payroll_contribution |
Giấy phép | OPL-1 |
Website | https://erp.nzvps.com/dang-ky-dong-gop-tu-luong |
Phù hợp cho các phiên bản | v 10.0 v 11.0 |
Yêu cầu các App |
Leaves (hr_holidays) Employees (hr) Calendar (calendar) Recruitment (hr_recruitment) Discuss (mail) |
Bao gồm Các phụ thuộc |
Mở rộng Ứng dụng Nhân sự Nút hành động trên hợp đồng lao động Nhân sự cấp dưới Mô-đun Cơ Sở |
Các mở rộng | Bảo hiểm & Phí Công đoàn - Việt Nam |
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
nstallation
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
# 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
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
# 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
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.