From 5cdda19494dd04f046b0ad1a2aace0e5a0a0897c Mon Sep 17 00:00:00 2001 From: Mangesh-Khairnar Date: Tue, 20 Aug 2019 13:02:40 +0530 Subject: [PATCH 1/3] fix: ledger entries after expiry --- erpnext/patches/v12_0/generate_leave_ledger_entries.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/erpnext/patches/v12_0/generate_leave_ledger_entries.py b/erpnext/patches/v12_0/generate_leave_ledger_entries.py index 44b59bf09b0..5e91449c3ed 100644 --- a/erpnext/patches/v12_0/generate_leave_ledger_entries.py +++ b/erpnext/patches/v12_0/generate_leave_ledger_entries.py @@ -3,7 +3,7 @@ from __future__ import unicode_literals import frappe -from frappe.utils import getdate +from frappe.utils import getdate, today def execute(): """ Generates leave ledger entries for leave allocation/application/encashment @@ -66,7 +66,8 @@ def generate_expiry_allocation_ledger_entries(): if not frappe.db.exists("Leave Ledger Entry", {'transaction_type': 'Leave Allocation', 'transaction_name': allocation.name, 'is_expired': 1}): allocation.update(dict(doctype="Leave Allocation")) allocation_obj = frappe.get_doc(allocation) - expire_allocation(allocation_obj) + if allocation_obj.to_date <= getdate(today()): + expire_allocation(allocation_obj) def get_allocation_records(): return frappe.get_all("Leave Allocation", filters={ From 79414a8d36c0def8c351216124763baae95f3c13 Mon Sep 17 00:00:00 2001 From: Mangesh-Khairnar Date: Tue, 20 Aug 2019 14:44:48 +0530 Subject: [PATCH 2/3] fix: fetch employee name on leave ledger creation --- erpnext/hr/doctype/leave_ledger_entry/leave_ledger_entry.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/erpnext/hr/doctype/leave_ledger_entry/leave_ledger_entry.json b/erpnext/hr/doctype/leave_ledger_entry/leave_ledger_entry.json index c11422211ca..771e706bbb3 100644 --- a/erpnext/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +++ b/erpnext/hr/doctype/leave_ledger_entry/leave_ledger_entry.json @@ -27,6 +27,7 @@ "options": "Employee" }, { + "fetch_from": "employee.employee_name", "fieldname": "employee_name", "fieldtype": "Data", "label": "Employee Name" @@ -101,7 +102,7 @@ ], "in_create": 1, "is_submittable": 1, - "modified": "2019-06-21 00:37:07.782810", + "modified": "2019-08-20 14:40:04.130799", "modified_by": "Administrator", "module": "HR", "name": "Leave Ledger Entry", From c9b6c9bb613cff4280d77867f6cedc1714025aa9 Mon Sep 17 00:00:00 2001 From: Mangesh-Khairnar Date: Tue, 20 Aug 2019 19:18:45 +0530 Subject: [PATCH 3/3] fix: calculate opening leave balance --- .../employee_leave_balance.py | 21 +++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/erpnext/hr/report/employee_leave_balance/employee_leave_balance.py b/erpnext/hr/report/employee_leave_balance/employee_leave_balance.py index 66e3614982e..22f0203c90f 100644 --- a/erpnext/hr/report/employee_leave_balance/employee_leave_balance.py +++ b/erpnext/hr/report/employee_leave_balance/employee_leave_balance.py @@ -97,16 +97,15 @@ def get_approvers(department): def get_total_allocated_leaves(employee, leave_type, from_date, to_date): ''' Returns leave allocation between from date and to date ''' - filters= { - 'from_date': ['between', (from_date, to_date)], - 'to_date': ['between', (from_date, to_date)], - 'docstatus': 1, - 'is_expired': 0, - 'leave_type': leave_type, - 'employee': employee, - 'transaction_type': 'Leave Allocation' - } - - leave_allocation_records = frappe.db.get_all('Leave Ledger Entry', filters=filters, fields=['SUM(leaves) as leaves']) + leave_allocation_records = frappe.db.get_all('Leave Ledger Entry', filters={ + 'docstatus': 1, + 'is_expired': 0, + 'leave_type': leave_type, + 'employee': employee, + 'transaction_type': 'Leave Allocation' + }, or_filters={ + 'from_date': ['between', (from_date, to_date)], + 'to_date': ['between', (from_date, to_date)] + }, fields=['SUM(leaves) as leaves']) return flt(leave_allocation_records[0].get('leaves')) if leave_allocation_records else flt(0) \ No newline at end of file