/** * Add log when edit holiday * * @since 0.1 * * @param integer $holiday_id * @param array $fields * * @return void */ public function update_holiday($holiday_id, $fields) { if (!$holiday_id) { return; } $old_holiday = \WeDevs\ERP\HRM\Models\Leave_Holiday::find($holiday_id)->toArray(); unset($old_holiday['created_at'], $old_holiday['updated_at']); $old_holiday['start'] = erp_format_date($old_holiday['start'], 'Y-m-d'); $old_holiday['end'] = erp_format_date($old_holiday['end'], 'Y-m-d'); $fields['start'] = erp_format_date($fields['start'], 'Y-m-d'); $fields['end'] = erp_format_date($fields['end'], 'Y-m-d'); $changes = $this->get_array_diff($fields, $old_holiday, true); if (empty($changes['old_val']) && empty($changes['new_val'])) { $message = false; } else { array_walk($changes, function (&$key) { if (isset($key['start'])) { $key['start_date'] = erp_format_date($key['start']); unset($key['start']); } if (isset($key['end'])) { $key['end_date'] = erp_format_date($key['end']); unset($key['end']); } }); $message = sprintf('<strong>%s</strong> holiday has been edited', $old_holiday['title']); } if ($message) { erp_log()->add(['sub_component' => 'leave', 'message' => $message, 'created_by' => get_current_user_id(), 'changetype' => 'edit', 'old_value' => $changes['old_val'] ? base64_encode(maybe_serialize($changes['old_val'])) : '', 'new_value' => $changes['new_val'] ? base64_encode(maybe_serialize($changes['new_val'])) : '']); } }
/** * Remove holidays * * @since 0.1 * * @return \stdClass */ function erp_hr_delete_holidays($holidays_id) { if (is_array($holidays_id)) { foreach ($holidays_id as $key => $holiday_id) { do_action('erp_hr_leave_holiday_delete', $holiday_id); } \WeDevs\ERP\HRM\Models\Leave_Holiday::destroy($holidays_id); } else { do_action('erp_hr_leave_holiday_delete', $holidays_id); return \WeDevs\ERP\HRM\Models\Leave_Holiday::find($holidays_id)->delete(); } }
/** * ERP dashboard leave calendar widget * * @since 0.1 * * @return void */ function erp_hr_dashboard_widget_leave_calendar() { $user_id = get_current_user_id(); $leave_requests = erp_hr_get_calendar_leave_events(false, $user_id); $holidays = erp_array_to_object(\WeDevs\ERP\HRM\Models\Leave_Holiday::all()->toArray()); $events = []; $holiday_events = []; $event_data = []; foreach ($leave_requests as $key => $leave_request) { $events[] = array('id' => $leave_request->id, 'title' => $leave_request->display_name, 'start' => $leave_request->start_date, 'end' => $leave_request->end_date, 'url' => erp_hr_url_single_employee($leave_request->user_id), 'color' => $leave_request->color, 'img' => get_avatar($leave_request->user_id, 16)); } foreach ($holidays as $key => $holiday) { $holiday_events[] = ['id' => $holiday->id, 'title' => $holiday->title, 'start' => $holiday->start, 'end' => $holiday->end, 'color' => '#FF5354', 'img' => '', 'holiday' => true]; } $event_data = array_merge($events, $holiday_events); ?> <style> .fc-time { display:none; } .erp-leave-avatar img { border-radius: 50%; margin: 3px 7px 0 0; } .erp-calendar-filter { margin: 15px 0px; } .fc-title { position: relative; top: -4px; } </style> <?php if (erp_hr_get_assign_policy_from_entitlement($user_id)) { ?> <div class="erp-hr-new-leave-request-wrap"> <a href="#" class="button button-primary" id="erp-hr-new-leave-req"><?php _e('Take a Leave', 'wp-erp'); ?> </a> </div> <?php } ?> <div id="erp-hr-calendar"></div> <script> ;jQuery(document).ready(function($) { $('#erp-hr-calendar').fullCalendar({ header: { left: 'prev,next today', center: 'title', right: 'month,agendaWeek,agendaDay' }, editable: false, eventLimit: true, // allow "more" link when too many events events: <?php echo json_encode($event_data); ?> , eventRender: function(event, element, calEvent) { if ( event.holiday ) { element.find('.fc-content').find('.fc-title').css({ 'top':'0px', 'left' : '3px', 'fontSize' : '13px', 'padding':'2px' }); }; if( event.img != 'undefined' ) { element.find('.fc-content').find('.fc-title').before( $("<span class=\"fc-event-icons erp-leave-avatar\">"+event.img+"</span>") ); } }, }); }); </script> <?php }