Skip to content

Commit 69d698a

Browse files
committed
[IMP] l10n_in_hr_payroll_extension: company dependant, formatting
With this commit ==================================================== - Made salary structure company dependent - Added percentage widget to required fields & code formatting
1 parent b405a19 commit 69d698a

File tree

5 files changed

+179
-175
lines changed

5 files changed

+179
-175
lines changed

l10n_in_hr_payroll_extension/models/hr_contract.py

+50-50
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,19 @@ class HrContract(models.Model):
66

77
l10n_in_basic_salary = fields.Monetary(string="Basic Salary", help="Basic salary calculated from the wage", compute="_compute_l10n_in_basic_salary", inverse="_inverse_l10n_in_basic_salary", currency_field="currency_id")
88
l10n_in_house_rent_allowance = fields.Monetary(string="House Rent Allowance", compute="_compute_l10n_in_house_rent_allowance", inverse="_inverse_l10n_in_house_rent_allowance", currency_field="currency_id")
9-
l10n_in_standard_allowance = fields.Monetary(string="Standard Allowance", default=4167, currency_field="currency_id")
9+
l10n_in_standard_allowance = fields.Monetary(string="Standard Allowance", default=lambda self: self.env.company.l10n_in_standard_allowance, currency_field="currency_id")
1010
l10n_in_performance_bonus = fields.Monetary(string="Performance Bonus", compute="_compute_l10n_in_performance_bonus", inverse="_inverse_l10n_in_performance_bonus", currency_field="currency_id")
1111
l10n_in_leave_travel_allowance = fields.Monetary(string="Leave Travel Allowance", compute="_compute_l10n_in_leave_travel_allowance", inverse="_inverse_l10n_in_leave_travel_allowance", currency_field="currency_id")
1212
l10n_in_leave_allowance = fields.Monetary(string="Leave Allowance", compute="_compute_leave_allowance", inverse="_inverse_leave_allowance", currency_field="currency_id")
13-
l10n_in_leave_days = fields.Float(string="Leave Days", default=1)
14-
l10n_in_gratuity = fields.Monetary(string="Gratuity", currency_field="currency_id")
15-
l10n_in_supplementary_allowance = fields.Monetary(string="Supplementary Allowance", compute="_compute_l10n_in_supplementary_allowance", inverse="_inverse_l10n_in_supplementary_allowance", currency_field="currency_id")
13+
l10n_in_leave_days = fields.Float(string="Leave Days", default=lambda self: self.env.company.l10n_in_leave_days)
14+
l10n_in_gratuity = fields.Monetary(string="Gratuity", currency_field="currency_id", default=lambda self: self.env.company.l10n_in_gratuity)
15+
l10n_in_supplementary_allowance = fields.Monetary(string="Supplementary Allowance", compute="_compute_l10n_in_supplementary_allowance", inverse="_inverse_l10n_in_supplementary_allowance", currency_field="currency_id", default=lambda self: self.env.company.l10n_in_supplementary_allowance)
1616

17-
l10n_in_basic_salary_percent = fields.Float(string="Basic Salary Percentage", help="basic salary percentage of wage", default=50)
18-
l10n_in_house_rent_allowance_percent = fields.Float(string="House Rent Allowance Percentage", help="this is the percentage of basic salary", default=50)
17+
l10n_in_basic_salary_percent = fields.Float(string="Basic Salary Percentage", help="basic salary percentage of wage", default=lambda self: self.env.company.l10n_in_basic_salary_percent)
18+
l10n_in_house_rent_allowance_percent = fields.Float(string="House Rent Allowance Percentage", help="this is the percentage of basic salary", default=lambda self: self.env.company.l10n_in_house_rent_allowance_percent)
1919
l10n_in_standard_allowance_percent = fields.Float(string="Standard Allowance Percentage", compute="_compute_l10n_in_standard_allowance_percent", inverse="_inverse_l10n_in_standard_allowance_percent")
20-
l10n_in_performance_bonus_percent = fields.Float(string="Performance Bonus Percentage", default=20)
21-
l10n_in_leave_travel_allowance_percent = fields.Float(string="Leave Travel Allowance Percentage", default=20)
20+
l10n_in_performance_bonus_percent = fields.Float(string="Performance Bonus Percentage", default=lambda self: self.env.company.l10n_in_performance_bonus_percent)
21+
l10n_in_leave_travel_allowance_percent = fields.Float(string="Leave Travel Allowance Percentage", default=lambda self: self.env.company.l10n_in_leave_travel_allowance_percent)
2222
l10n_in_leave_allowance_per_day_percent = fields.Float(string="Leave allowance per day percentage")
2323
l10n_in_leave_allowance_percent = fields.Float(string="Leave Allowance Percentage")
2424
l10n_in_gratuity_percent = fields.Float(string="Gratuity Percentage", compute="_compute_l10n_in_gratuity_percent", inverse="_inverse_l10n_in_gratuity_percent")
@@ -35,84 +35,84 @@ class HrContract(models.Model):
3535

3636
@api.depends("l10n_in_basic_salary_percent", "wage")
3737
def _compute_l10n_in_basic_salary(self):
38-
for record in self:
39-
record.l10n_in_basic_salary = record.wage * (record.l10n_in_basic_salary_percent / 100)
38+
for contract in self:
39+
contract.l10n_in_basic_salary = contract.wage * contract.l10n_in_basic_salary_percent
4040

4141
def _inverse_l10n_in_basic_salary(self):
42-
for record in self:
43-
record.l10n_in_basic_salary_percent = (record.l10n_in_basic_salary * 100) / record.wage if record.wage else 0
42+
for contract in self:
43+
contract.l10n_in_basic_salary_percent = contract.l10n_in_basic_salary / contract.wage if contract.wage else 0
4444

4545
@api.depends("l10n_in_basic_salary", "l10n_in_house_rent_allowance_percent")
4646
def _compute_l10n_in_house_rent_allowance(self):
47-
for record in self:
48-
record.l10n_in_house_rent_allowance = record.l10n_in_basic_salary * (record.l10n_in_house_rent_allowance_percent / 100)
47+
for contract in self:
48+
contract.l10n_in_house_rent_allowance = contract.l10n_in_basic_salary * contract.l10n_in_house_rent_allowance_percent
4949

5050
def _inverse_l10n_in_house_rent_allowance(self):
51-
for record in self:
52-
record.l10n_in_house_rent_allowance_percent = (record.l10n_in_house_rent_allowance * 100) / record.l10n_in_basic_salary if record.l10n_in_basic_salary else 0
51+
for contract in self:
52+
contract.l10n_in_house_rent_allowance_percent = contract.l10n_in_house_rent_allowance / contract.l10n_in_basic_salary if contract.l10n_in_basic_salary else 0
5353

5454
@api.depends("l10n_in_standard_allowance", "wage")
5555
def _compute_l10n_in_standard_allowance_percent(self):
56-
for record in self:
57-
record.l10n_in_standard_allowance_percent = (record.l10n_in_standard_allowance * 100) / record.wage if record.wage else 0
56+
for contract in self:
57+
contract.l10n_in_standard_allowance_percent = contract.l10n_in_standard_allowance / contract.wage if contract.wage else 0
5858

5959
def _inverse_l10n_in_standard_allowance_percent(self):
60-
for record in self:
61-
record.l10n_in_standard_allowance = (record.l10n_in_standard_allowance_percent * record.wage) / 100
60+
for contract in self:
61+
contract.l10n_in_standard_allowance = contract.l10n_in_standard_allowance_percent * contract.wage
6262

6363
@api.depends("l10n_in_performance_bonus_percent", "l10n_in_basic_salary")
6464
def _compute_l10n_in_performance_bonus(self):
65-
for record in self:
66-
record.l10n_in_performance_bonus = record.l10n_in_basic_salary * (record.l10n_in_performance_bonus_percent / 100)
65+
for contract in self:
66+
contract.l10n_in_performance_bonus = contract.l10n_in_basic_salary * contract.l10n_in_performance_bonus_percent
6767

6868
def _inverse_l10n_in_performance_bonus(self):
69-
for record in self:
70-
record.l10n_in_performance_bonus_percent = (record.l10n_in_performance_bonus * 100) / record.l10n_in_basic_salary if record.l10n_in_basic_salary else 0
69+
for contract in self:
70+
contract.l10n_in_performance_bonus_percent = contract.l10n_in_performance_bonus / contract.l10n_in_basic_salary if contract.l10n_in_basic_salary else 0
7171

7272
@api.depends("l10n_in_leave_travel_allowance_percent", "l10n_in_basic_salary")
7373
def _compute_l10n_in_leave_travel_allowance(self):
74-
for record in self:
75-
record.l10n_in_leave_travel_allowance = record.l10n_in_basic_salary * (record.l10n_in_leave_travel_allowance_percent / 100)
74+
for contract in self:
75+
contract.l10n_in_leave_travel_allowance = contract.l10n_in_basic_salary * contract.l10n_in_leave_travel_allowance_percent
7676

7777
def _inverse_l10n_in_leave_travel_allowance(self):
78-
for record in self:
79-
record.l10n_in_leave_travel_allowance_percent = (record.l10n_in_leave_travel_allowance * 100) / record.l10n_in_basic_salary if record.l10n_in_basic_salary else 0
78+
for contract in self:
79+
contract.l10n_in_leave_travel_allowance_percent = contract.l10n_in_leave_travel_allowance / contract.l10n_in_basic_salary if contract.l10n_in_basic_salary else 0
8080

8181
@api.depends('wage', 'l10n_in_leave_allowance_per_day_percent', 'l10n_in_leave_days')
8282
def _compute_leave_allowance(self):
83-
for record in self:
84-
record.l10n_in_leave_allowance = (record.wage * (record.l10n_in_leave_allowance_per_day_percent / 100) * record.l10n_in_leave_days)
83+
for contract in self:
84+
contract.l10n_in_leave_allowance = contract.wage * contract.l10n_in_leave_allowance_per_day_percent * contract.l10n_in_leave_days
8585

8686
def _inverse_leave_allowance(self):
87-
for record in self:
88-
if record.l10n_in_basic_salary and record.l10n_in_leave_days:
89-
record.l10n_in_leave_allowance_percent = record.l10n_in_leave_allowance * 100 / record.wage if record.wage else 0
90-
record.l10n_in_leave_allowance_per_day_percent = (record.l10n_in_leave_allowance * 100 / (record.wage * record.l10n_in_leave_days)) if record.wage else 0
87+
for contract in self:
88+
if contract.l10n_in_basic_salary and contract.l10n_in_leave_days:
89+
contract.l10n_in_leave_allowance_percent = contract.l10n_in_leave_allowance / contract.wage if contract.wage else 0
90+
contract.l10n_in_leave_allowance_per_day_percent = contract.l10n_in_leave_allowance / (contract.wage * contract.l10n_in_leave_days) if contract.wage else 0
9191

9292
@api.depends("l10n_in_gratuity", "l10n_in_basic_salary")
9393
def _compute_l10n_in_gratuity_percent(self):
94-
for record in self:
95-
record.l10n_in_gratuity_percent = (record.l10n_in_gratuity * 100) / record.l10n_in_basic_salary if record.l10n_in_basic_salary else 0
94+
for contract in self:
95+
contract.l10n_in_gratuity_percent = contract.l10n_in_gratuity / contract.l10n_in_basic_salary if contract.l10n_in_basic_salary else 0
9696

9797
def _inverse_l10n_in_gratuity_percent(self):
98-
for record in self:
99-
record.l10n_in_gratuity = record.l10n_in_basic_salary * (record.l10n_in_gratuity_percent / 100)
98+
for contract in self:
99+
contract.l10n_in_gratuity = contract.l10n_in_basic_salary * contract.l10n_in_gratuity_percent
100100

101101
@api.depends("wage", "l10n_in_basic_salary", "l10n_in_house_rent_allowance", "l10n_in_standard_allowance", "l10n_in_performance_bonus", "l10n_in_leave_travel_allowance", "l10n_in_leave_allowance", "l10n_in_gratuity")
102102
def _compute_l10n_in_supplementary_allowance(self):
103-
for record in self:
103+
for contract in self:
104104
total_allowance = sum([
105-
record.l10n_in_basic_salary,
106-
record.l10n_in_house_rent_allowance,
107-
record.l10n_in_standard_allowance,
108-
record.l10n_in_performance_bonus,
109-
record.l10n_in_leave_travel_allowance,
110-
record.l10n_in_leave_allowance,
111-
record.l10n_in_gratuity
105+
contract.l10n_in_basic_salary,
106+
contract.l10n_in_house_rent_allowance,
107+
contract.l10n_in_standard_allowance,
108+
contract.l10n_in_performance_bonus,
109+
contract.l10n_in_leave_travel_allowance,
110+
contract.l10n_in_leave_allowance,
111+
contract.l10n_in_gratuity
112112
])
113-
if record.wage:
114-
record.l10n_in_supplementary_allowance = record.wage - total_allowance
113+
if contract.wage:
114+
contract.l10n_in_supplementary_allowance = contract.wage - total_allowance
115115

116116
def _inverse_l10n_in_supplementary_allowance(self):
117-
for record in self:
118-
record.l10n_in_supplementary_allowance_percent = (record.l10n_in_supplementary_allowance * 100) / record.wage if record.wage else 0
117+
for contract in self:
118+
contract.l10n_in_supplementary_allowance_percent = contract.l10n_in_supplementary_allowance / contract.wage if contract.wage else 0

l10n_in_hr_payroll_extension/models/res_company.py

+20-1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,25 @@ class ResCompany(models.Model):
99
l10n_in_org_tan_number = fields.Char(string="TAN Number")
1010
l10n_in_org_tds_circle = fields.Char(string="TDS Circle/AO Code")
1111

12-
l10n_in_employer_identification = fields.Char(string="Employer Identification")
12+
l10n_in_pf_employer_identification = fields.Char(string="Employer Identification")
13+
l10n_in_pf_employee_contribution = fields.Float(string="Employee Contribution", default=12)
14+
l10n_in_pf_employer_contribution = fields.Float(string="Employer Contribution", default=12)
15+
1316
l10n_in_professional_tax_number = fields.Char(string="Professional Tax Number")
17+
1418
l10n_in_esic_ip = fields.Char(string="ESIC IP")
19+
l10n_in_esic_employee_contribution = fields.Float(string="Employee Contribution", default=0.75)
20+
l10n_in_esic_employer_contribution = fields.Float(string="Employer Contribution", default=3.25)
21+
22+
l10n_in_lwf_employee_contribution = fields.Monetary(string="Employee Contribution", currency_field="currency_id", default=6)
23+
l10n_in_lwf_employer_contribution = fields.Monetary(string="Employer Contribution", currency_field="currency_id", default=12)
24+
25+
# Salary Structure
26+
l10n_in_basic_salary_percent = fields.Float(string="Basic Salary Percentage", default=0.50)
27+
l10n_in_house_rent_allowance_percent = fields.Float(string="House Rent Allowance", help="You can define 50% for metro city and 40% for non-metro city.", default=0.50)
28+
l10n_in_standard_allowance = fields.Float(string="Standard Allowance", default=4167)
29+
l10n_in_performance_bonus_percent = fields.Float(string="Performance Bonus", default=0.20)
30+
l10n_in_leave_travel_allowance_percent = fields.Float(string="Leave Travel Allowance", default=0.20)
31+
l10n_in_leave_days = fields.Float(string="Leave Days", default=1)
32+
l10n_in_gratuity = fields.Float(string="Gratuity")
33+
l10n_in_supplementary_allowance = fields.Float(string="Supplementary Allowance")

l10n_in_hr_payroll_extension/models/res_config_settings.py

+17-17
Original file line numberDiff line numberDiff line change
@@ -12,27 +12,27 @@ class ResConfigSettings(models.TransientModel):
1212
l10n_in_org_tds_circle = fields.Char(related='company_id.l10n_in_org_tds_circle', readonly=False)
1313

1414
l10n_in_is_provident_fund = fields.Boolean(string="Employee's Provident Fund", default=True)
15-
l10n_in_employer_identification = fields.Char(related='company_id.l10n_in_employer_identification', readonly=False)
16-
default_l10n_in_pf_employee_contribution = fields.Float(string="Employee Contribution", default_model="hr.contract", default=12)
17-
default_l10n_in_pf_employer_contribution = fields.Float(string="Employer Contribution", default_model="hr.contract", default=12)
15+
l10n_in_pf_employer_identification = fields.Char(related='company_id.l10n_in_pf_employer_identification', readonly=False)
16+
l10n_in_pf_employee_contribution = fields.Float(related="company_id.l10n_in_pf_employee_contribution", readonly=False)
17+
l10n_in_pf_employer_contribution = fields.Float(related="company_id.l10n_in_pf_employer_contribution", readonly=False)
1818

1919
l10n_in_is_professional_tax = fields.Boolean(string="Professional Tax", default=True)
2020
l10n_in_professional_tax_number = fields.Char(related='company_id.l10n_in_professional_tax_number', readonly=False)
2121

2222
l10n_in_is_esic = fields.Boolean(string="Employee's State Insurance Corporation", default=True)
23-
l10n_in_esic_ip = fields.Char(related='company_id.l10n_in_esic_ip', readonly=False)
24-
default_l10n_in_esic_employee_contribution = fields.Float(string="Employee Contribution", default_model="hr.contract", default=0.75)
25-
default_l10n_in_esic_employer_contribution = fields.Float(string="Employer Contribution", default_model="hr.contract", default=3.25)
23+
l10n_in_esic_ip = fields.Char(string="ESIC IP", related='company_id.l10n_in_esic_ip', readonly=False)
24+
l10n_in_esic_employee_contribution = fields.Float(related="company_id.l10n_in_esic_employee_contribution", readonly=False)
25+
l10n_in_esic_employer_contribution = fields.Float(related="company_id.l10n_in_esic_employer_contribution", readonly=False)
2626

2727
l10n_in_is_lwf = fields.Boolean(string="Labour Welfare Fund", default=True)
28-
default_l10n_in_lwf_employee_contribution = fields.Monetary(string="Employee Contribution", currency_field="currency_id", default_model="hr.contract", default=6)
29-
default_l10n_in_lwf_employer_contribution = fields.Monetary(string="Employer Contribution", currency_field="currency_id", default_model="hr.contract", default=12)
30-
31-
default_l10n_in_basic_salary_percent = fields.Float(string="Basic Salary", help="You can define the % of the salary from company cost to compute the basic salary based on your wages (Including D4).", default_model="hr.contract", default=50)
32-
default_l10n_in_house_rent_allowance_percent = fields.Float(string="House Rent Allowance", help="You can define 50% for metro city and 40% for non-metro city.", default_model="hr.contract", default=50)
33-
default_l10n_in_standard_allowance = fields.Float(string="Standard Allowance", default_model="hr.contract", default=4167)
34-
default_l10n_in_performance_bonus_percent = fields.Float(string="Performance Bonus", default_model="hr.contract", default=20)
35-
default_l10n_in_leave_travel_allowance_percent = fields.Float(string="Leave Travel Allowance", default_model="hr.contract", default=20)
36-
default_l10n_in_leave_days = fields.Float(string="Leave Days", default_model="hr.contract", default=1)
37-
default_l10n_in_gratuity = fields.Float(string="Gratuity", default_model="hr.contract")
38-
default_l10n_in_supplementary_allowance = fields.Float(string="Supplementary Allowance", default_model="hr.contract")
28+
l10n_in_lwf_employee_contribution = fields.Monetary(related="company_id.l10n_in_lwf_employee_contribution", readonly=False)
29+
l10n_in_lwf_employer_contribution = fields.Monetary(related="company_id.l10n_in_lwf_employer_contribution", readonly=False)
30+
31+
l10n_in_basic_salary_percent = fields.Float(related="company_id.l10n_in_basic_salary_percent", readonly=False)
32+
l10n_in_house_rent_allowance_percent = fields.Float(related="company_id.l10n_in_house_rent_allowance_percent", readonly=False)
33+
l10n_in_standard_allowance = fields.Float(related="company_id.l10n_in_standard_allowance", readonly=False)
34+
l10n_in_performance_bonus_percent = fields.Float(related="company_id.l10n_in_performance_bonus_percent", readonly=False)
35+
l10n_in_leave_travel_allowance_percent = fields.Float(related="company_id.l10n_in_leave_travel_allowance_percent", readonly=False)
36+
l10n_in_leave_days = fields.Float(related="company_id.l10n_in_leave_days", readonly=False)
37+
l10n_in_gratuity = fields.Float(related="company_id.l10n_in_gratuity", readonly=False)
38+
l10n_in_supplementary_allowance = fields.Float(related="company_id.l10n_in_supplementary_allowance", readonly=False)

0 commit comments

Comments
 (0)