diff --git a/addons_extensions/hr_payroll/models/hr_payslip.py b/addons_extensions/hr_payroll/models/hr_payslip.py index 7115616f3..2ffc212d7 100644 --- a/addons_extensions/hr_payroll/models/hr_payslip.py +++ b/addons_extensions/hr_payroll/models/hr_payslip.py @@ -1381,6 +1381,7 @@ class HrPayslip(models.Model): def days_count(self): + days = self.worked_days_line_ids.filtered(lambda x:x.work_entry_type_id.code == 'OUT').number_of_days joining_date = self.contract_id.date_start if not joining_date or joining_date == self.date_from: return 0 @@ -1402,7 +1403,7 @@ class HrPayslip(models.Model): weekend_days_count = weekend_count else: weekend_days_count = 0 - return weekend_days_count + return weekend_days_count + days def action_edit_payslip_lines(self): self.ensure_one() @@ -1851,3 +1852,40 @@ class HrPayslip(models.Model): if 'stats' in sections: result['stats'] = self._get_dashboard_stats() return result + + def get_leave_balance(self): + employee = self.employee_id + if not employee: + return {'error': 'No employee linked to this user'} + + leave_data = {} + leave_types = self.env['hr.leave.type'].search([ + ]) + if not leave_types: + return [] + + for leave_type in leave_types: + allocations = self.env['hr.leave.allocation'].search([ + ('employee_id', '=', employee.id), + ('holiday_status_id', '=', leave_type.id), + ('state', '=', 'validate'), + ]) + taken_leaves = self.env['hr.leave'].search([ + ('employee_id', '=', employee.id), + ('holiday_status_id', '=', leave_type.id), + ('state', 'in', ['validate','validate1','confirm']), + ]) + + total_allocated = sum(a.number_of_days for a in allocations) + total_taken = sum(l.number_of_days for l in taken_leaves) + remaining = total_allocated - total_taken + if remaining <= 0: + continue + leave_data[leave_type.name] = { + 'name':leave_type.name, + 'allocated': total_allocated, + 'taken': total_taken, + 'remaining': remaining, + } + + return leave_data diff --git a/addons_extensions/hr_payroll/views/ftp_payslip.xml b/addons_extensions/hr_payroll/views/ftp_payslip.xml index 53ab270b4..c67e4d048 100644 --- a/addons_extensions/hr_payroll/views/ftp_payslip.xml +++ b/addons_extensions/hr_payroll/views/ftp_payslip.xml @@ -44,20 +44,21 @@ - -
+ Pay Summary

Pay Period: -
Number of Days: Days
Worked Days: Days
-
- - / - - Hours - Days + +
+

Leave Balance +

+ + + Days
+

@@ -76,12 +77,16 @@

+
+ Total Income
-
+
+
+ @@ -91,7 +96,7 @@
-
+
@@ -107,30 +112,33 @@ -


+


-
+
- Gross Salary - - Total Deduction - + Gross Salary + + - Net Salary: - - + Total Deduction + + + + Net Salary: + +

- To pay ( only) to - Account : XXXXXXXXXXXX + To pay ( only) to - Account : XXXXXXXXXXXX