/** * * @throws Exception */ public function executeResetBreaks() { global $wpdb; $breaks = $this->getParameter('breaks'); // remove all breaks for staff member $break = new AB_ScheduleItemBreak(); $break->removeBreaksByStaffId($breaks['staff_id']); $html_breaks = array(); // restore previous breaks if (isset($breaks['breaks']) && is_array($breaks['breaks'])) { $query = "INSERT INTO ab_schedule_item_break (staff_schedule_item_id, start_time, end_time) VALUES "; foreach ($breaks['breaks'] as $day) { $query .= "({$day['staff_schedule_item_id']}, '{$day['start']}', '{$day['end']}'), "; } $query = rtrim($query, ", "); $wpdb->get_results($query); } $staff = new AB_Staff(); $staff->load($breaks['staff_id']); // make array with breaks (html) for each day foreach ($staff->getScheduleList() as $list_item) { $html_breaks[$list_item->id] = $this->render("_breaks", array('day_is_not_available' => null === $list_item->start_time, 'list_item' => $list_item, 'time_format' => get_option('time_format')), false); } echo json_encode($html_breaks); exit; }
/** * * @throws Exception */ public function executeResetBreaks() { $breaks = $this->getParameter('breaks'); // Remove all breaks for staff member. $break = new AB_ScheduleItemBreak(); $break->removeBreaksByStaffId($breaks['staff_id']); $html_breaks = array(); // Restore previous breaks. if (isset($breaks['breaks']) && is_array($breaks['breaks'])) { foreach ($breaks['breaks'] as $day) { $schedule_item_break = new AB_ScheduleItemBreak(); $schedule_item_break->setFields($day); $schedule_item_break->save(); } } $staff = new AB_Staff(); $staff->load($breaks['staff_id']); // Make array with breaks (html) for each day. foreach ($staff->getScheduleItems() as $item) { /** @var AB_StaffScheduleItem $item */ $html_breaks[$item->get('id')] = $this->render('_breaks', array('day_is_not_available' => null === $item->get('start_time'), 'item' => $item), false); } wp_send_json($html_breaks); }