fix(UX): validate setup on clicking Mark Attendance button in Shift Type (#29146)
diff --git a/erpnext/hr/doctype/shift_type/shift_type.js b/erpnext/hr/doctype/shift_type/shift_type.js
index ba53312..7138e3b 100644
--- a/erpnext/hr/doctype/shift_type/shift_type.js
+++ b/erpnext/hr/doctype/shift_type/shift_type.js
@@ -4,15 +4,32 @@
frappe.ui.form.on('Shift Type', {
refresh: function(frm) {
frm.add_custom_button(
- 'Mark Attendance',
- () => frm.call({
- doc: frm.doc,
- method: 'process_auto_attendance',
- freeze: true,
- callback: () => {
- frappe.msgprint(__("Attendance has been marked as per employee check-ins"));
+ __('Mark Attendance'),
+ () => {
+ if (!frm.doc.enable_auto_attendance) {
+ frm.scroll_to_field('enable_auto_attendance');
+ frappe.throw(__('Please Enable Auto Attendance and complete the setup first.'));
}
- })
+
+ if (!frm.doc.process_attendance_after) {
+ frm.scroll_to_field('process_attendance_after');
+ frappe.throw(__('Please set {0}.', [__('Process Attendance After').bold()]));
+ }
+
+ if (!frm.doc.last_sync_of_checkin) {
+ frm.scroll_to_field('last_sync_of_checkin');
+ frappe.throw(__('Please set {0}.', [__('Last Sync of Checkin').bold()]));
+ }
+
+ frm.call({
+ doc: frm.doc,
+ method: 'process_auto_attendance',
+ freeze: true,
+ callback: () => {
+ frappe.msgprint(__('Attendance has been marked as per employee check-ins'));
+ }
+ });
+ }
);
}
});