由于在休假类型中设置了最大休假分配限制,因此跳过了休假分配。
Traceback with variables (most recent call last): File "apps/hrms/hrms/hr/utils.py", line 381, in allocate_earned_leaves update_previous_leave_allocation( e_leave_types = [frappe.types.frappedict._dict({'name': 'Normal Leave 30 Days', 'max_leaves_allowed': 30.0, 'earned_leave_frequency': 'Monthly', 'rounding': '0.25', 'allocate_on_day': 'Last Day'}, frappe.types.frappedict._dict({'name': 'Normal Leave 22.5 Days', 'max_leaves_allowed': 22.5, 'earned_leave_frequency': 'Monthly', 'rounding': '0.25', 'allocate_on_day': 'Last Day'})), today = 2026-02-28, failed_allocations = ['HR-LAL-2026-01824', 'HR-LAL-2026-01829', 'HR-LAL-2026-01830', 'HR-LAL-2026-01841', 'HR-LAL-2026-01842', 'HR-LAL-2026-01854', 'HR-LAL-2026-01858', 'HR-LAL-2026-01865', 'HR-LAL-2026-01887', 'HR-LAL-2026-01888', 'HR-LAL-2026-01889', 'HR-LAL-2026-01890', 'HR-LAL-2026-01894', 'HR-LAL-2026-01802', 'HR-LAL-2026-01806', 'HR-LAL-2026-01807', 'HR-LAL-2026-01809', 'HR-LAL-2026-01811', 'HR-LAL-2026-01814', 'HR-LAL-2026-01820', 'HR-LAL-2026-01833', 'HR-LAL-2026-01840', 'HR-LAL-2026-01855', 'HR-LAL-2026-01863', 'HR-LAL-2026-01864', 'HR-LAL-2026-01867', 'HR-LAL-2026-01868', 'HR-LAL-2026-01869', 'HR-LAL-2026-01870', 'HR-LAL-2026-01871', 'HR-LAL-2026-01873', 'HR-LAL-2026-01881', 'HR-LAL-2026-01883', 'HR-LAL-2026-01885', 'HR-LAL-2026-01893', 'HR-LAL-2026-01896', 'HR-LAL-2026-01899', 'HR-LAL-2026-01900', 'HR-LAL-2026-01901', 'HR-LAL-2026-01903', 'HR-LAL-2026-01904', 'HR-LAL-2026-01905', 'HR-LAL-2026-01907', 'HR-LAL-2026-01908', 'HR-LAL-2026-01911'], e_leave_type = {'name': 'Normal Leave 22.5 Days', 'max_leaves_allowed': 22.5, 'earned_leave_frequency': 'Monthly', 'rounding': '0.25', 'allocate_on_day': 'Last Day'}, leave_allocations = [frappe.types.frappedict._dict({'name': 'HR-LAL-2026-01797', 'employee': 'HR-EMP-00128', 'from_date': 2026-01-01, 'to_date': 2026-12-31, 'leave_policy_assignment': 'HR-LPOL-ASSGN-00186', 'leave_policy': 'HR-LPOL-2025-00001', 'earned_leave_schedule_exists': 12}, frappe.types.frappedict._dict({'name': 'HR-LAL-2026-01798', 'employee': 'HR-EMP-00127', 'from_date': 2026-01-01, 'to_date': 2026-12-31, 'leave_policy_assignment': 'HR-LPOL-ASSGN-00187', 'leave_policy': 'HR-LPOL-2025-00001', 'earned_leave_schedule_exists': 12}, frappe.types.frappedict._dict({'name': 'HR-LAL-2026-01799', 'employee': 'HR-EMP-00126', 'from_date': 2026-01-01, 'to_date': 2026-12-31, 'leave_policy_assignment': 'HR-LPOL-ASSGN-00188', 'leave_policy': 'HR-LPOL-2025-00001', 'earned_leave_schedule_exists': 12}, frappe.types.frappedict._dict({'name': 'HR-LAL-2026-01800', 'employee': 'HR-EMP-00125', 'from_date': 2026-01-01, 'to_date': 2026-12-31, 'leave_policy_assignment': 'HR-LPOL-ASSGN-00189', 'leave_policy': 'HR-LPOL-2025-00001', 'earned_leave_schedule_exists': 12}, frappe.types.frappedict._dict({'name': 'HR-LAL-2026-01801', 'employee': 'HR-EMP-00124', 'from_date': 2026-01-01, 'to_date': 2026-12-31, 'leave_policy_assignment': 'HR-LPOL-ASSGN-00190', 'leave_policy': 'HR-LPOL-2025-00001', 'earned_leave_schedule_exists': 12}, frappe.types.frappedict._dict({'name': 'HR-LAL-2026-01803', 'employee': 'HR-EMP-00123', 'from_date': 2026-01-01, 'to_date': 2026-12-31, 'leave_policy_assignment': 'HR-LPOL-ASSGN-00191', 'leave_policy': 'HR-LPOL-2025-00001', 'earned_leave_schedule_exists': 12}, frappe.types.frappedict._dict({'name': 'HR-LAL-2026-01804', 'employee': 'HR-EMP-00122', 'from_date': 2026-01-01, 'to_date': 2026-12-31, 'leave_policy_assignment': 'HR-LPOL-ASSGN-00192', 'leave_policy': 'HR-LPOL-2025-00001', 'earned_leave_schedule_exists': 12}, frappe.types.frappedict._dict({'name': 'HR-LAL-2026-01805', 'employee': 'HR-EMP-00121', 'from_date': 2026-01-01, 'to_date': 2026-12-31, 'leave_policy_assignment': 'HR-LPOL-ASSGN-00193', 'leave_policy': 'HR-LPOL-2025-00001', 'earned_leave_schedule_exists': 12}, frappe.types.frappedict._dict({'name': 'HR-LAL-2026-01806', 'employee': 'HR-EMP-00120', 'from_date': 2026-01-01, 'to_date': 2026-12-31, 'leave_policy_assignment': 'HR-LPOL-ASSGN-00194', 'leave_policy': 'HR-LPOL-2025-00001', 'earned_leave_schedule_exists': 12}, frappe.types.frappedict._dict({'name': 'HR-LAL-2026-01807', 'employee': 'HR-EMP-00119', 'from_date': 2026-01-01, 'to_date': 2026-12-31, 'leave_policy_assignment': 'HR-LPOL-ASSGN-00195', 'leave_policy': 'HR-LPOL-2025-00001', 'earned_leave_schedule_exists': 12}, frappe.types.frappedict._dict({'name': 'HR-LAL-2026-01808', 'employee': 'HR-EMP-00118', 'from_date': 2026-01-01, 'to_date': 2026-12-31, 'leave_policy_assignment': 'HR-LPOL-ASSGN-00196', 'leave_policy': 'HR-LPOL-2025-00001', 'earned_leave_schedule_exists': 12}, frappe.types.frappedict._dict({'name': 'HR-LAL-2026-01809', 'employee': 'HR-EMP-00117', 'from_date': 2026-01-01, 'to_date': 2026-12-31, 'leave_policy_assignment': 'HR-LPOL-ASSGN-00197', 'leave_policy': 'HR-LPOL-2025-00001', 'earned_leave_schedule_exists': 12}, frappe.types.frappedict._dict({'name': 'HR-LAL-2026-01810', 'employee': 'HR-EMP-00116', 'from_date': 2026-01-01, 'to_date': 2026-12-31, 'leave_policy_assignment': 'HR-LPOL-ASSGN-00198', 'leave_policy': 'HR-LPOL-2025-00001', 'earned_leave_schedule_exists': 12}, frappe.types.frappedict._dict({'name': 'HR-LAL-2026-01811', 'employee': 'HR-EMP-00115', 'from_date': 2026-01-01, 'to_date': 2026-12-31, 'leave_policy_assignment': 'HR-LPOL-ASSGN-00199', 'leave_policy': 'HR-LPOL-2025-00001', 'earned_leave_schedule_exists': 12}, frappe.types.frappedict._dict({'name': 'HR-LAL-2026-01812', 'employee': 'HR-EMP-00114', 'from_date': 2026-01-01, 'to_date': 2026-12-31, 'leave_policy_assignment': 'HR-LPOL-ASSGN-00200', 'leave_policy': 'HR-LPOL-2025-00001', 'earned_leave_schedule_exists': 12}, frappe.types.frappedict._dict({'name': 'HR-LAL-2026-01813', 'employee': 'HR-EMP-00113', 'from_date': 2026-01-01, 'to_date': 2026-12-31, 'leave_policy_assignment': 'HR-LPOL-ASSGN-00201', 'leave_policy': 'HR-LPOL-2025-00001', 'earned_leave_schedule_exists': 12}, frappe.types.frappedict._dict({'name': 'HR-LAL-2026-01814', 'employee': 'HR-EMP-00112', 'from_date': 2026-01-01, 'to_date': 2026-12-31, 'leave_policy_assignment': 'HR-LPOL-ASSGN-00202', 'leave_policy': 'HR-LPOL-2025-00001', 'earned_leave_schedule_exists': 12}, frappe.types.frappedict._dict({'name': 'HR-LAL-2026-01815', 'employee': 'HR-EMP-00111', 'from_date': 2026-01-01, 'to_date': 2026-12-31, 'leave_policy_assignment': 'HR-LPOL-ASSGN-00203', 'leave_policy': 'HR-LPOL-2025-00001', 'earned_leave_schedule_exists': 12}, frappe.types.frappedict._dict({'name': 'HR-LAL-2026-01816', 'employee': 'HR-EMP-00110', 'from_date': 2026-01-01, 'to_date': 2026-12-31, 'leave_policy_assignment': 'HR-LPOL-ASSGN-00204', 'leave_policy': 'HR-LPOL-2025-00001', 'earned_leave_schedule_exists': 12}, frappe.types.frappedict._dict({'name': 'HR-LAL-2026-01817', 'employee': 'HR-EMP-00109', 'from_date': 2026-01-01, 'to_date': 2026-12-31, 'leave_policy_assignment': 'HR-LPOL-ASSGN-00205', 'leave_policy': 'HR-LPOL-2025-00001', 'earned_leave_schedule_exists': 12}, frappe.types.frappedict._dict({'name': 'HR-LAL-2026-01818', 'employee': 'HR-EMP-00108', 'from_date': 2026-01-01, 'to_date': 2026-12-31, 'leave_policy_assignment': 'HR-LPOL-ASSGN-00206', 'leave_policy': 'HR-LPOL-2025-00001', 'earned_leave_schedule_exists': 12}, frappe.types.frappedict._dict({'name': 'HR-LAL-2026-01819', 'employee': 'HR-EMP-00107', 'from_date': 2026-01-01, 'to_date': 2026-12-31, 'leave_policy_assignment': 'HR-LPOL-ASSGN-00207', 'leave_policy': 'HR-LPOL-2025-00001', 'earned_leave_schedule_exists': 12}, frappe.types.frappedict._dict({'name': 'HR-LAL-2026-01820', 'employee': 'HR-EMP-00106', 'from_date': 2026-01-01, 'to_date': 2026-12-31, 'leave_policy_assignment': 'HR-LPOL-ASSGN-00208', 'leave_policy': 'HR-LPOL-2025-00001', 'earned_leave_schedule_exists': 12}, frappe.types.frappedict._dict({'name': 'HR-LAL-2026-01821', 'employee': 'HR-EMP-00105', 'from_date': 2026-01-01, 'to_date': 2026-12-31, 'leave_policy_assignment': 'HR-LPOL-ASSGN-00209', 'leave_policy': 'HR-LPOL-2025-00001', 'earned_leave_schedule_exists': 12}, frappe.types.frappedict._dict({'name': 'HR-LAL-2026-01822', 'employee': 'HR-EMP-00104', 'from_date': 2026-01-01, 'to_date': 2026-12-31, 'leave_policy_assignment': 'HR-LPOL-ASSGN-00210', 'leave_policy': 'HR-LPOL-2025-00001
内容来源: frappe/hrms