Attendance Request - half day check is enabled
diff --git a/erpnext/hr/doctype/attendance_request/attendance_request.js b/erpnext/hr/doctype/attendance_request/attendance_request.js
index caf955a..2d25d14 100644
--- a/erpnext/hr/doctype/attendance_request/attendance_request.js
+++ b/erpnext/hr/doctype/attendance_request/attendance_request.js
@@ -3,7 +3,12 @@
cur_frm.add_fetch('employee', 'company', 'company');
frappe.ui.form.on('Attendance Request', {
- refresh: function(frm) {
-
+ half_day: function(frm) {
+ if(frm.doc.half_day == 1){
+ frm.set_df_property('half_day_date', 'reqd', true);
+ }
+ else{
+ frm.set_df_property('half_day_date', 'reqd', false);
+ }
}
});
diff --git a/erpnext/hr/doctype/attendance_request/attendance_request.json b/erpnext/hr/doctype/attendance_request/attendance_request.json
index e1a34c9..71c28de 100644
--- a/erpnext/hr/doctype/attendance_request/attendance_request.json
+++ b/erpnext/hr/doctype/attendance_request/attendance_request.json
@@ -145,19 +145,18 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
- "fieldname": "reason",
- "fieldtype": "Select",
+ "fieldname": "half_day",
+ "fieldtype": "Check",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
- "in_list_view": 1,
+ "in_list_view": 0,
"in_standard_filter": 0,
- "label": "Reason",
+ "label": "Half Day",
"length": 0,
"no_copy": 0,
- "options": "Work From Home\nOn Duty",
"permlevel": 0,
"precision": "",
"print_hide": 0,
@@ -165,7 +164,39 @@
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
- "reqd": 1,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "translatable": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "depends_on": "half_day",
+ "fieldname": "half_day_date",
+ "fieldtype": "Date",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Half Day Date",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
"search_index": 0,
"set_only_once": 0,
"translatable": 0,
@@ -238,6 +269,38 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
+ "fieldname": "reason",
+ "fieldtype": "Select",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 1,
+ "in_standard_filter": 0,
+ "label": "Reason",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Work From Home\nOn Duty",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 1,
+ "search_index": 0,
+ "set_only_once": 0,
+ "translatable": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
"fieldname": "company",
"fieldtype": "Link",
"hidden": 0,
@@ -306,7 +369,7 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
- "modified": "2018-04-19 16:56:23.758754",
+ "modified": "2018-05-14 18:18:56.936880",
"modified_by": "Administrator",
"module": "HR",
"name": "Attendance Request",
diff --git a/erpnext/hr/doctype/attendance_request/attendance_request.py b/erpnext/hr/doctype/attendance_request/attendance_request.py
index eb0b368..4cab11f 100644
--- a/erpnext/hr/doctype/attendance_request/attendance_request.py
+++ b/erpnext/hr/doctype/attendance_request/attendance_request.py
@@ -4,14 +4,18 @@
from __future__ import unicode_literals
import frappe
+from frappe import _
from frappe.model.document import Document
-from frappe.utils import date_diff, add_days
+from frappe.utils import date_diff, add_days, getdate
from erpnext.hr.doctype.employee.employee import is_holiday
from erpnext.hr.utils import validate_dates
class AttendanceRequest(Document):
def validate(self):
validate_dates(self, self.from_date, self.to_date)
+ if self.half_day:
+ if not getdate(self.from_date)<=getdate(self.half_day_date)<=getdate(self.to_date):
+ frappe.throw(_("Half day date should be in between from date and to date"))
def on_submit(self):
self.create_attendance()
@@ -32,7 +36,10 @@
attendance = frappe.new_doc("Attendance")
attendance.employee = self.employee
attendance.employee_name = self.employee_name
- attendance.status = "Present"
+ if self.half_day and date_diff(getdate(self.half_day_date), getdate(attendance_date)) == 0:
+ attendance.status = "Half Day"
+ else:
+ attendance.status = "Present"
attendance.attendance_date = attendance_date
attendance.company = self.company
attendance.attendance_request = self.name