/** * It's used for controlling attendace calendar (list, add, edit, delete), * render to attendance_calendar view * @param string action (optional, by default 'calendar_list') * @param int attendance id (optional) * @param int calendar id (optional) */ public function attendance_calendar($action = 'calendar_list', $attendance_id = 0, $calendar_id = 0) { $attendance = new Attendance(); $calendar_id = intval($calendar_id); $data = array(); $data['attendance_id'] = $attendance_id; $attendance_id = intval($attendance_id); if ($action == 'calendar_add') { if (strtoupper($_SERVER['REQUEST_METHOD']) == "POST") { if (!isset($_POST['cancel'])) { if (isset($_POST['repeat'])) { //@todo check this error_logs $start_datetime = api_strtotime(api_get_utc_datetime($attendance->build_datetime_from_array($_POST['date_time'])), 'UTC'); //error_log('$start_datetime '.$start_datetime); $_POST['end_date_time']['H'] = $_POST['date_time']['H']; $_POST['end_date_time']['i'] = $_POST['date_time']['i']; //error_log($attendance->build_datetime_from_array($_POST['end_date_time'])); $end_datetime = api_strtotime(api_get_utc_datetime($attendance->build_datetime_from_array($_POST['end_date_time'])), 'UTC'); //error_log('$end_datetime '.$end_datetime); $checkdate = checkdate($_POST['end_date_time']['F'], $_POST['end_date_time']['d'], $_POST['end_date_time']['Y']); $repeat_type = $_POST['repeat_type']; if ($end_datetime > $start_datetime && $checkdate) { $affected_rows = $attendance->attendance_repeat_calendar_add($attendance_id, $start_datetime, $end_datetime, $repeat_type); $action = 'calendar_list'; } else { if (!$checkdate) { $data['error_checkdate'] = true; } else { $data['error_repeat_date'] = true; } $data['repeat'] = true; $action = 'calendar_add'; } } else { $datetime = $attendance->build_datetime_from_array($_POST['date_time']); $datetimezone = api_get_utc_datetime($datetime); if (!empty($datetime)) { $attendance->set_date_time($datetimezone); $affected_rows = $attendance->attendance_calendar_add($attendance_id); $action = 'calendar_list'; } else { $data['error_date'] = true; $action = 'calendar_add'; } } } else { $action = 'calendar_list'; } } } else { if ($action == 'calendar_edit') { $data['calendar_id'] = $calendar_id; if (strtoupper($_SERVER['REQUEST_METHOD']) == "POST") { if (!isset($_POST['cancel'])) { $datetime = $attendance->build_datetime_from_array($_POST['date_time']); $datetimezone = api_get_utc_datetime($datetime); $attendance->set_date_time($datetimezone); $affected_rows = $attendance->attendance_calendar_edit($calendar_id, $attendance_id); $data['calendar_id'] = 0; $action = 'calendar_list'; } else { $action = 'calendar_list'; } } } else { if ($action == 'calendar_delete') { $affected_rows = $attendance->attendance_calendar_delete($calendar_id, $attendance_id); $action = 'calendar_list'; } else { if ($action == 'calendar_all_delete') { $affected_rows = $attendance->attendance_calendar_delete(0, $attendance_id, true); $action = 'calendar_list'; } } } } $data['action'] = $action; $data['attendance_calendar'] = $attendance->get_attendance_calendar($attendance_id); $data['is_locked_attendance'] = $attendance->is_locked_attendance($attendance_id); // render to the view $this->view->set_data($data); $this->view->set_layout('layout'); $this->view->set_template('attendance_calendar'); $this->view->render(); }
/** * It's used for controlling attendance calendar (list, add, edit, delete), * render to attendance_calendar view * @param string $action (optional, by default 'calendar_list') * @param int $attendance_id (optional) * @param int $calendar_id (optional) */ public function attendance_calendar($action = 'calendar_list', $attendance_id = 0, $calendar_id = 0) { $attendance = new Attendance(); $calendar_id = intval($calendar_id); $data = array(); $data['attendance_id'] = $attendance_id; $attendance_id = intval($attendance_id); $groupList = isset($_POST['groups']) ? array($_POST['groups']) : array(); if ($action == 'calendar_add') { if (strtoupper($_SERVER['REQUEST_METHOD']) == "POST") { if (!isset($_POST['cancel'])) { if (isset($_POST['repeat'])) { //@todo check this error_logs $start_datetime = api_strtotime(api_get_utc_datetime($_POST['date_time']), 'UTC'); $end_datetime = api_strtotime(api_get_utc_datetime($_POST['end_date_time'] . ' 23:59:59'), 'UTC'); $checkdate = api_is_valid_date(api_get_utc_datetime($_POST['end_date_time'] . ' 23:59:59')); $repeat_type = $_POST['repeat_type']; if ($end_datetime > $start_datetime && $checkdate) { $attendance->attendance_repeat_calendar_add($attendance_id, $start_datetime, $end_datetime, $repeat_type, $groupList); $action = 'calendar_list'; } else { if (!$checkdate) { $data['error_checkdate'] = true; } else { $data['error_repeat_date'] = true; } $data['repeat'] = true; $action = 'calendar_add'; } } else { $datetime = $_POST['date_time']; $datetimezone = api_get_utc_datetime($datetime); if (!empty($datetime)) { $attendance->set_date_time($datetimezone); $attendance->attendance_calendar_add($attendance_id, $groupList); $action = 'calendar_list'; } else { $data['error_date'] = true; $action = 'calendar_add'; } } } else { $action = 'calendar_list'; } } } else { if ($action == 'calendar_edit') { $data['calendar_id'] = $calendar_id; if (strtoupper($_SERVER['REQUEST_METHOD']) == "POST") { if (!isset($_POST['cancel'])) { $datetime = $_POST['date_time']; $datetimezone = api_get_utc_datetime($datetime); $attendance->set_date_time($datetimezone); $attendance->attendance_calendar_edit($calendar_id, $attendance_id); $data['calendar_id'] = 0; $action = 'calendar_list'; } else { $action = 'calendar_list'; } } } else { if ($action == 'calendar_delete') { $attendance->attendance_calendar_delete($calendar_id, $attendance_id); $action = 'calendar_list'; } else { if ($action == 'calendar_all_delete') { $attendance->attendance_calendar_delete(0, $attendance_id, true); $action = 'calendar_list'; } } } } $data['action'] = $action; $data['attendance_calendar'] = $attendance->get_attendance_calendar($attendance_id, 'all', null, null, true); $data['is_locked_attendance'] = $attendance->is_locked_attendance($attendance_id); // render to the view $this->view->set_data($data); $this->view->set_layout('layout'); $this->view->set_template('attendance_calendar'); $this->view->render(); }