fix: handle negative leaves without allocation
diff --git a/erpnext/hr/doctype/leave_allocation/leave_allocation.py b/erpnext/hr/doctype/leave_allocation/leave_allocation.py
index b402e90..843d305 100755
--- a/erpnext/hr/doctype/leave_allocation/leave_allocation.py
+++ b/erpnext/hr/doctype/leave_allocation/leave_allocation.py
@@ -7,7 +7,6 @@
from frappe import _
from frappe.model.document import Document
from erpnext.hr.utils import set_employee_name, get_leave_period
-from erpnext.hr.doctype.leave_application.leave_application import get_approved_leaves_for_period
from erpnext.hr.doctype.leave_ledger_entry.leave_ledger_entry import create_leave_ledger_entry
class OverlapError(frappe.ValidationError): pass
@@ -133,9 +132,9 @@
''' expire previous allocation leaves '''
leaves = get_unused_leaves(self.employee, self.leave_type, self.from_date)
- if flt(leaves) > 0:
+ if leaves:
args = dict(
- leaves=leaves * -1,
+ leaves=flt(leaves) * -1,
from_date=self.from_date,
to_date=self.from_date,
is_carry_forward=0,
@@ -198,6 +197,7 @@
"employee": employee,
"docstatus": 1,
"leave_type": leave_type,
+ "is_lwp": 0
}, fieldname=['SUM(leaves)'])
def validate_carry_forward(leave_type):
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 4234fc4..0166e43 100644
--- a/erpnext/hr/doctype/leave_ledger_entry/leave_ledger_entry.json
+++ b/erpnext/hr/doctype/leave_ledger_entry/leave_ledger_entry.json
@@ -62,7 +62,7 @@
},
{
"fieldname": "leaves",
- "fieldtype": "Int",
+ "fieldtype": "Float",
"in_list_view": 1,
"label": "Leaves"
},
@@ -101,7 +101,7 @@
],
"in_create": 1,
"is_submittable": 1,
- "modified": "2019-06-05 12:56:04.980160",
+ "modified": "2019-06-06 20:33:37.531161",
"modified_by": "Administrator",
"module": "HR",
"name": "Leave Ledger Entry",
diff --git a/erpnext/hr/doctype/leave_ledger_entry/leave_ledger_entry.py b/erpnext/hr/doctype/leave_ledger_entry/leave_ledger_entry.py
index e85d5ce..6142dcf 100644
--- a/erpnext/hr/doctype/leave_ledger_entry/leave_ledger_entry.py
+++ b/erpnext/hr/doctype/leave_ledger_entry/leave_ledger_entry.py
@@ -9,11 +9,6 @@
from frappe.utils import add_days, today, flt
class LeaveLedgerEntry(Document):
- def validate_entries(self):
- total_leaves = frappe.get_all('Leave Ledger Entry', ['SUM(leaves)'])
- if total_leaves < 0:
- frappe.throw(_("Invalid Ledger Entry"))
-
def on_cancel(self):
# allow cancellation of expiry leaves
if not self.is_expired:
@@ -43,7 +38,8 @@
transaction_type=ref_doc.doctype,
transaction_name=ref_doc.name,
is_carry_forward=0,
- is_expired=0
+ is_expired=0,
+ is_lwp=0
)
ledger.update(args)
if submit:
diff --git a/erpnext/hr/doctype/leave_type/leave_type.py b/erpnext/hr/doctype/leave_type/leave_type.py
index dcae5fe..5b13edb 100644
--- a/erpnext/hr/doctype/leave_type/leave_type.py
+++ b/erpnext/hr/doctype/leave_type/leave_type.py
@@ -10,11 +10,4 @@
from frappe.model.document import Document
class LeaveType(Document):
- def validate(self):
- if self.is_carry_forward:
- self.validate_carry_forward()
-
- def validate_carry_forward(self):
- max_days = 367 if calendar.isleap(datetime.now().year) else 366
- if not (0 <= self.carry_forward_leave_expiry <= max_days):
- frappe.throw(_('Invalid entry!! Carried forward days need to expire within a year'))
\ No newline at end of file
+ pass
\ No newline at end of file