File: /var/www/ilya/data/www/afisha38.ru/admin/modules/afisha/add.inc
<?
//- Настройки модуля -----------------------------------------------------------
permission("mcp"); // tcp-техники; acp-админы; mcp-модеры; cp-рядовые участники
$skin_pname = "Добавление расписания";
//------------------------------------------------------------------------------
if((!isset($_POST['afisha_method'])) && (!isset($_POST['firm_id'],$_POST['time'],$_POST['action'],$_POST['price']))) {
$result = query("SELECT * FROM `firms_types` ORDER BY `id`;");
$actions_types = "";
$firms_types = "";
$i = 0;
while($data = mysql_fetch_array($result)) {
if ($i==0) {
$actions_types .= "<option value=\"".$data['id']."\" selected> ".$data['type_subtitle']."\n";
$firms_types .= "<option value=\"".$data['id']."\" selected> ".$data['type_title']."\n";
}
else {
$actions_types .= "<option value=\"".$data['id']."\"> ".$data['type_subtitle']."\n";
$firms_types .= "<option value=\"".$data['id']."\"> ".$data['type_title']."\n";
}
$i++;
}
$temp_html .= preg_replace("/{%(\w+)%}/ee", "$\\1",skin_html("afisha_add.htm",0));
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
else if ($_POST['afisha_method']=='interval') {
if (isset($_POST['firm_id'])) {
$firm_id = $_POST['firm_id'];
$b_day = $_POST['b_day'];
$b_mon = $_POST['b_mon'];
$b_year = $_POST['b_year'];
$e_day = $_POST['e_day'];
$e_mon = $_POST['e_mon'];
$e_year = $_POST['e_year'];
$errors = array();
if($_POST['firm_id']=='')
$errors[] = "Не указано заведение";
if(!checkdate($b_mon,$b_day,$b_year))
$errors[] = "Начальная дата неверна";
if(!checkdate($e_mon,$e_day,$e_year))
$errors[] = "Конечная дата неверна";
if(checkdate($b_mon,$b_day,$b_year) && checkdate($e_mon,$e_day,$e_year)) {
$date_select_begin=skin_date_select($b_year,$b_mon,$b_day,"b_year","b_mon","b_day");
$date_select_end=skin_date_select($e_year,$e_mon,$e_day,"e_year","e_mon","e_day");
$begindate = mktime(0,0,0,$b_mon,$b_day,$b_year);
$enddate = mktime(0,0,0,$e_mon,$e_day,$e_year);
if ($begindate>$enddate)
$errors[] = "Конечная дата ранее начальной";
}
$price = $_POST['price'];
$time = $_POST['time'];
$action = $_POST['action'];
$good_records == 0;
for ($i=0;$i<count($time);$i++) {
if(!(($time[$i]!='' && $price[$i]!='' && $action[$i]!='') || ($time[$i]=='' && $price[$i]=='' && $action[$i]==''))) {
$errors[] = "В записи #".($i+1)." указаны не все поля";
}
else
if ($time[$i]!='') {
$time_split = explode(":",$time[$i]);
if(sizeof($time_split)!=2 || strlen($time[$i])!=5)
$errors[] = "Неверный формат времени у записи #".($i+1)." - требуется ММ:ЧЧ";
else
if($time_split[0]>23 || $time_split[0]<0 || $time_split[1]>59 || $time_split[1]<0)
$errors[] = "Время у записи #".($i+1)." неверно";
else
$good_records++;
}
}
if($good_records==0 && sizeof($errors)==0)
$errors[] = "Нет записей для добавления";
if(sizeof($errors)>0 && $errors[0]!='') {
$errors_html = "<p>Обнаружены следующие ошибки:</p>\n<ul>\n";
foreach($errors as $error)
$errors_html .= "<li>".$error."</li>";
$errors_html .= "</ul>\n<hr>";
}
else {
$currentdate = $begindate;
$added_records = 0;
$edited_records = 0;
while ($currentdate<=$enddate) {
for ($i=0;$i<count($time);$i++) {
if ($time[$i]!='') {
if ($time[$i]<"05:00")
$date=date("Y-m-d",$currentdate+86400);
else
$date=date("Y-m-d",$currentdate);
$result = query("SELECT `id` FROM `shedule` WHERE `fid`='".$firm_id."' AND `datetime`='".$date." ".$time[$i]."' LIMIT 1;");
if(mysql_num_rows($result)==1) {
$edited_records++;
$data = mysql_fetch_array($result);
query("UPDATE `shedule` SET `aid`='".$action[$i]."', `price`='".$price[$i]."' WHERE `id`='".$data['id']."';");
}
else {
$added_records++;
query("INSERT INTO `shedule` ( `id` , `fid` , `aid` , `datetime` , `price`, `added`) VALUES ('', '".$firm_id."', '".$action[$i]."', '".$date." ".$time[$i]."', '".$price[$i]."', NOW());");
}
}
}
$currentdate+=86400;
}
$temp_html = "<p><b>".$added_records."</b> записи(-ей) добавлено, <b>".$edited_records."</b> заменено.</p>\n";
skin_html_design($temp_html);
exit();
}
}
$firms = "";
$firms_query = query("SELECT `id`, `title` FROM `firms` WHERE `type`=".$_POST['firms_types']." ORDER BY `id`;");
while ($data = mysql_fetch_array($firms_query)) {
if (isset($_POST['firm_id'])) {
if ($_POST['firm_id']==$data['id'])
$firms .= "<option value=\"".$data['id']."\" selected>".$data['title']."\n";
else
$firms .= "<option value=\"".$data['id']."\">".$data['title']."\n";
}
else
$firms .= "<option value=\"".$data['id']."\">".$data['title']."\n";
}
if($_POST['actions_number']=="last")
$result=query("SELECT `id`,`title` FROM `actions` WHERE `type`=".$_POST['actions_types']." ORDER BY `id` DESC LIMIT 15;");
else
$result=query("SELECT `id`,`title` FROM `actions` WHERE `type`=".$_POST['actions_types']." ORDER BY `title`;");
$actions = array();
while($data = mysql_fetch_array($result)) {
$actions[] = array($data['id'],$data['title']);
}
$actions_rows = "";
for($i=0;$i<10;$i++) {
$actions_rows .= "<tr>\n<td><input name=\"time[]\" value=\"".$time[$i]."\" type=\"text\" size=\"6\" maxlength=\"5\"></td>\n";
$actions_rows .= "<td><select name=\"action[]\">\n<option value=\"\">Выберите событие..\n";
foreach($actions as $one_action) {
if($one_action[0]==$action[$i])
$actions_rows .= "<option value=\"".$one_action[0]."\" selected>".$one_action[1]."\n";
else
$actions_rows .= "<option value=\"".$one_action[0]."\">".$one_action[1]."\n";
}
$actions_rows .= "</select></td>\n";
$actions_rows .= "<td><input name=\"price[]\" type=\"text\" size=\"14\" maxlength=\"13\" value=\"".$price[$i]."\"></td>\n</tr>\n";
}
$firms_types = $_POST['firms_types'];
$actions_types = $_POST['actions_types'];
$actions_number = $_POST['actions_number'];
$afisha_method = $_POST['afisha_method'];
if(!isset($date_select_begin,$date_select_end)) {
$date_select_begin=skin_date_select(date("Y", TIME),date("m", TIME),date("d", TIME),"b_year","b_mon","b_day");
$date_select_end=skin_date_select(date("Y", TIME),date("m", TIME),date("d", TIME),"e_year","e_mon","e_day");
}
$temp_html .= preg_replace("/{%(\w+)%}/ee", "$\\1",skin_html("afisha_add_interval.htm",0));
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
else if($_POST['afisha_method']=='lenta') {
if (isset($_POST['firm_id'])) { // Data already sent
$firm_id = $_POST['firm_id'];
$b_day = $_POST['b_day'];
$b_mon = $_POST['b_mon'];
$b_year = $_POST['b_year'];
$e_day = $_POST['e_day'];
$e_mon = $_POST['e_mon'];
$e_year = $_POST['e_year'];
$errors = array();
if($_POST['firm_id']=='')
$errors[] = "Не указано заведение";
$price = $_POST['price'];
$time = $_POST['time'];
$action = $_POST['action'];
$date_day = $_POST['date_day'];
$date_mon = $_POST['date_mon'];
$date_year = $_POST['date_year'];
$good_records = 0;
for ($i=0;$i<count($time);$i++) {
if(!(($time[$i]!='' && $price[$i]!='' && $action[$i]!='') || ($time[$i]=='' && $price[$i]=='' && $action[$i]==''))) {
$errors[] = "В записи #".($i+1)." указаны не все поля";
}
else {
if ($time[$i]!='') {
$time_split = explode(":",$time[$i]);
if(sizeof($time_split)!=2 || strlen($time[$i])!=5)
$errors[] = "Неверный формат времени у записи #".($i+1)." - требуется ММ:ЧЧ";
else
if($time_split[0]>23 || $time_split[0]<0 || $time_split[1]>59 || $time_split[1]<0)
$errors[] = "Время у записи #".($i+1)." неверно";
else
$good_records++;
}
if(!checkdate($date_mon[$i],$date_day[$i],$date_year[$i]))
$errors[] = "Дата у записи #".($i+1)." неверна";
}
}
if($good_records==0 && sizeof($errors)==0)
$errors[] = "Нет записей для добавления";
if(sizeof($errors)>0 && $errors[0]!='') {
$errors_html = "<p>Обнаружены следующие ошибки:</p>\n<ul>\n";
foreach($errors as $error)
$errors_html .= "<li>".$error."</li>";
$errors_html .= "</ul>\n<hr>";
}
else {
$added_records = 0;
$edited_records = 0;
for ($i=0;$i<count($time);$i++) {
if ($time[$i]!='') {
$currentdate = mktime(5,0,0,$date_mon[$i],$date_day[$i],$date_year[$i]);
if ($time[$i]<"05:00")
$date=date("Y-m-d",$currentdate+86400);
else
$date=date("Y-m-d",$currentdate);
$result = query("SELECT `id` FROM `shedule` WHERE `fid`='".$firm_id."' AND `datetime`='".$date." ".$time[$i]."' LIMIT 1;");
if(mysql_num_rows($result)==1) {
$edited_records++;
$data = mysql_fetch_array($result);
query("UPDATE `shedule` SET `aid`='".$action[$i]."', `price`='".$price[$i]."' WHERE `id`='".$data['id']."';");
}
else {
$added_records++;
query("INSERT INTO `shedule` ( `id` , `fid` , `aid` , `datetime` , `price`, `added`) VALUES ('', '".$firm_id."', '".$action[$i]."', '".$date." ".$time[$i]."', '".$price[$i]."', NOW());");
}
}
}
$temp_html = "<p><b>".$added_records."</b> записи(-ей) добавлено, <b>".$edited_records."</b> заменено.</p>\n";
skin_html_design($temp_html);
exit();
}
}
$firms = "";
$firms_query = query("SELECT `id`, `title` FROM `firms` WHERE `type`=".$_POST['firms_types']." ORDER BY `id`;");
while ($data = mysql_fetch_array($firms_query)) {
if (isset($_POST['firm_id'])) {
if ($_POST['firm_id']==$data['id'])
$firms .= "<option value=\"".$data['id']."\" selected>".$data['title']."\n";
else
$firms .= "<option value=\"".$data['id']."\">".$data['title']."\n";
}
else
$firms .= "<option value=\"".$data['id']."\">".$data['title']."\n";
}
if($_POST['actions_number']=="last")
$result=query("SELECT `id`,`title` FROM `actions` WHERE `type`=".$_POST['actions_types']." ORDER BY `id` DESC LIMIT 15;");
else
$result=query("SELECT `id`,`title` FROM `actions` WHERE `type`=".$_POST['actions_types']." ORDER BY `title`;");
$actions = array();
while($data = mysql_fetch_array($result)) {
$actions[] = array($data['id'],$data['title']);
}
$actions_rows = "";
for($i=0;$i<20;$i++) { // Generating afisha list
$actions_rows .= "<tr>\n<td><input name=\"time[]\" value=\"".$time[$i]."\" type=\"text\" size=\"6\" maxlength=\"5\"></td>\n";
if(isset($_POST['date_day'], $_POST['date_mon'], $_POST['date_year'])) {
if (checkdate($date_mon[$i],$date_day[$i],$date_year[$i]))
$actions_rows .= "<td>".skin_date_select($date_year[$i],$date_mon[$i],$date_day[$i],"date_year[]","date_mon[]","date_day[]")."</td>\n";
else
$actions_rows .= "<td>".skin_date_select(date("Y", TIME),date("m", TIME),date("d", TIME),"date_year[]","date_mon[]","date_day[]")."</td>\n";
}
else
$actions_rows .= "<td>".skin_date_select(date("Y", TIME),date("m", TIME),date("d", TIME),"date_year[]","date_mon[]","date_day[]")."</td>\n";
$actions_rows .= "<td><select name=\"action[]\">\n<option value=\"\">Выберите событие..\n";
foreach($actions as $one_action) {
if($one_action[0]==$action[$i])
$actions_rows .= "<option value=\"".$one_action[0]."\" selected>".$one_action[1]."\n";
else
$actions_rows .= "<option value=\"".$one_action[0]."\">".$one_action[1]."\n";
}
$actions_rows .= "</select></td>\n";
$actions_rows .= "<td><input name=\"price[]\" type=\"text\" size=\"14\" maxlength=\"13\" value=\"".$price[$i]."\"></td>\n</tr>\n";
}
$firms_types = $_POST['firms_types'];
$actions_types = $_POST['actions_types'];
$actions_number = $_POST['actions_number'];
$afisha_method = $_POST['afisha_method'];
if(!isset($date_select_begin,$date_select_end)) {
$date_select_begin=skin_date_select(date("Y", TIME),date("m", TIME),date("d", TIME),"b_year","b_mon","b_day");
$date_select_end=skin_date_select(date("Y", TIME),date("m", TIME),date("d", TIME),"e_year","e_mon","e_day");
}
$temp_html .= preg_replace("/{%(\w+)%}/ee", "$\\1",skin_html("afisha_add_lenta.htm",0));
}
skin_html_design($temp_html);
?>