diff --git a/erpnext/config/hr.py b/erpnext/config/hr.py index 0f009b826f5..a91e078c4d9 100644 --- a/erpnext/config/hr.py +++ b/erpnext/config/hr.py @@ -34,6 +34,13 @@ def get_data(): "name": "Upload Attendance", "hide_count": True, "dependencies": ["Employee"] + }, + { + "type": "doctype", + "name": "Employee Attendance Log", + "hide_count": True, + "onboard": 1, + "dependencies": ["Employee"] }, ] }, diff --git a/erpnext/hr/doctype/employee_attendance_log/employee_attendance_log.py b/erpnext/hr/doctype/employee_attendance_log/employee_attendance_log.py index 6603b1c5a42..956d9c3895e 100644 --- a/erpnext/hr/doctype/employee_attendance_log/employee_attendance_log.py +++ b/erpnext/hr/doctype/employee_attendance_log/employee_attendance_log.py @@ -9,7 +9,9 @@ from frappe.model.document import Document from frappe import _ class EmployeeAttendanceLog(Document): - pass + def validate(self): + if frappe.db.exists('Employee Attendance Log', {'employee': self.employee, 'time': self.time}): + frappe.throw('This log already exists for this employee.') @frappe.whitelist() @@ -37,6 +39,7 @@ def add_log_based_on_biometric_rf_id(biometric_rf_id, timestamp, device_id=None, doc.time = timestamp doc.device_id = device_id doc.log_type = log_type - doc.save() - + doc.insert() + frappe.db.commit() + return doc