function save_comment() { /*Получаем данные от пользователя*/ if (isset($_POST['id'])) { if (!preg_match("/^comment\\-[0-9]{1,2}\\-[0-9]{4}\\-[0-9]{1,2}\\-[0-9]{1,2}\$/", $_POST['id'])) { return "Ошибка в формате входных данных (td)."; } else { $id = $_POST['id']; } } else { return "Не определены входные данные (id)"; } /*Получаем данные от пользователя*/ if (isset($_POST['comment1'])) { $comment1 = $_POST['comment1']; } else { return "Не определены входные данные (comment1)"; } if (isset($_POST['comment2'])) { $comment2 = $_POST['comment2']; } else { return "Не определены входные данные (comment2)"; } if (isset($_POST['comment3'])) { $comment3 = $_POST['comment3']; } else { return "Не определены входные данные (comment3)"; } /*Обрабатываем полученные данные*/ $temp = explode('-', $id); $year = (int) $temp[2]; $month = (int) $temp[3]; $day = (int) $temp[4]; //Делаем комментарии безопасными для БД $comment1_esc = db_escape($comment1); $comment2_esc = db_escape($comment2); $comment3_esc = db_escape($comment3); //Запрос к базе if (db_easy_count("SELECT * FROM `phpbb_timetable_comments` WHERE `year`={$year} AND `month`={$month} AND `day`={$day}") == 0) { return db_result(db_query("INSERT INTO `phpbb_timetable_comments` SET `year`={$year}, `month`={$month}, `day`={$day}, `comment1`='{$comment1_esc}', `comment2`='{$comment2_esc}', `comment3`='{$comment3_esc}'")); } else { /*Если точно такая же запись уже существует*/ if (db_easy_count("SELECT * FROM `phpbb_timetable_comments` WHERE `year`={$year} AND `month`={$month} AND `day`={$day} AND `comment1`='{$comment1_esc}' AND `comment2`='{$comment2_esc}' AND `comment3`='{$comment3_esc}'") == 1) { return 1; /*иначе идет обновление записи в БД*/ } else { return db_easy_result("UPDATE `phpbb_timetable_comments` SET `comment1`='{$comment1_esc}', `comment2`='{$comment2_esc}', `comment3`='{$comment3_esc}' WHERE `year`={$year} AND `month`={$month} AND `day`={$day}"); } } }
function set_td_remote() { /*Получаем данные от пользователя*/ if (isset($_GET['td'])) { if (!preg_match("/^[0-9]{1,8}\\-[0-9]{4}\\-[0-9]{1,2}\\-[0-9]{1,2}\\-[01]{1}-[01]{1}\$/", $_GET['td'])) { return "Ошибка в формате входных данных (td)."; } else { $td = $_GET['td']; } } else { return "Не определены входные данные (td)"; } /*Получаем данные от пользователя*/ if (isset($_GET['status'])) { if (!preg_match("/^[0-9]{1,3}\$/", $_GET['status'])) { return "Ошибка в формате входных данных (status)."; } else { $status = (int) $_GET['status']; } } else { return "Не определены входные данные (status)"; } /*Получаем данные от пользователя*/ $hours = (int) $_GET['hours']; /*Обрабатываем полученные данные*/ $temp = explode('-', $td); $user_id = (int) $temp[0]; $year = (int) $temp[1]; $month = (int) $temp[2]; $day = (int) $temp[3]; /*Проверяем входной user_id*/ if (db_easy_count("SELECT * FROM `phpbb_users` WHERE `user_id`={$user_id}") == 0) { return "Ошибка входных данных (user_id)."; } /*Запрещаем редактировать предыдущие месяцы*/ if (!check_rights('edit_previous_month_timetables')) { if ($month != date('n')) { return "Ошибка! Редактирование предыдущих и будущих месяцев запрещено."; } } //*Проверяем количество использованных дней больничного и отпуска в текущем году для отдельного пользователя{ $check_array = array(0 => array('name_rus_rodit_padezh' => 'больничного', 'hours_per_day' => 8, 'max_days' => 5, 'code' => 3), 1 => array('name_rus_rodit_padezh' => 'отпуска', 'hours_per_day' => 8, 'max_days' => 20, 'code' => 2)); foreach ($check_array as $key => $check) { $status_rodit_pad = $check['name_rus_rodit_padezh']; $status_hours_per_day = $check['hours_per_day']; $status_max_days = $check['max_days']; $status_code = $check['code']; //Проверяем, заполнена ли уже данная ячейка и вычисляем количество часов в ней, если да{ $status_this_res = db_query("SELECT `hours` FROM `phpbb_timetable` WHERE `year`={$year} AND `month`={$month} AND `day`={$day} AND `user_id`={$user_id} AND `status`={$status_code}"); if (db_count($status_this_res) > 0) { $status_this_hours = db_fetch($status_this_res)['hours']; } else { $status_this_hours = 0; } //} $status_res = db_query("SELECT * FROM `phpbb_timetable` WHERE `year`={$year} AND `user_id`={$user_id} AND `status`={$status_code}"); $status_sum = 0; while ($statusWHILE = db_fetch($status_res)) { $status_sum += $statusWHILE['hours']; } if ($status_sum + $hours - $status_this_hours > $status_max_days * $status_hours_per_day && $status == $status_code) { $status_rest_hours_total = $status_max_days * $status_hours_per_day - $status_sum; $status_rest_hours = $status_rest_hours_total % $status_hours_per_day; $status_rest_days = ($status_rest_hours_total - $status_rest_hours) / $status_hours_per_day; return "Ошибка! У вас осталось {$status_rest_days}д {$status_rest_hours}ч {$status_rodit_pad}."; } } //} //Запрос к базе if (db_easy_count("SELECT * FROM `phpbb_timetable` WHERE `year`={$year} AND `month`={$month} AND `day`={$day} AND `user_id`={$user_id}") == 0) { return db_result(db_query("INSERT INTO `phpbb_timetable` SET `year`={$year}, `month`={$month}, `day`={$day}, `user_id`={$user_id}, `status`={$status}, `hours`={$hours}")); } else { //IF /*status=1 то же самое, что запись об этой ячейке отсутствует в БД*/ //if($status==1){ //return db_easy_result("DELETE FROM `phpbb_timetable` WHERE `year`=$year AND `month`=$month AND `day`=$day AND `user_id`=$user_id"); //ELSE //}else{ /*Если точно такая же запись уже существует*/ if (db_easy_count("SELECT * FROM `phpbb_timetable` WHERE `year`={$year} AND `month`={$month} AND `day`={$day} AND `user_id`={$user_id} AND `status`={$status} AND `hours`={$hours}") == 1) { return 1; /*иначе идет обновление записи в БД*/ } else { return db_easy_result("UPDATE `phpbb_timetable` SET `status`={$status}, `hours`={$hours} WHERE `year`={$year} AND `month`={$month} AND `day`={$day} AND `user_id`={$user_id}"); } //} } }