function add_order(){
// получаем данные - общие для для всех пользователей и id авторизованных пользователей
$dostavka_id = (int)$_POST['dostavka'];
if(!$dostavka_id) $dostavka_id = 2;
$phone = clear($_POST['phone']);
$postcode = clear($_POST['postcode']);
$city = clear($_POST['city']);
$address = clear($_POST['address']);
$note = clear($_POST['note']);
if($_SESSION['auth']['user']) $customer_id = $SESSION['auth']['customer_id']; // если в сессии есть авторизованный пользователь получаем его id
if(!$_SESSION['auth']['user']){ // если посетитель не авторизованный
$error = ''; // флаг проверки пустых полей
$surname = clear($_POST['surname']);
$name = clear($_POST['name']);
$patronymic = clear($_POST['patronymic']);
$email = clear($_POST['email']);
if(empty($surname)) $error .= '<li><span>Не введена фамилия</span></li>'; if(empty($name)) $error .= '<li><span>Не введено имя</span></li>'; if(empty($patronymic)) $error .= '<li><span>Не введено отчество</span></li>'; if(empty($email)) $error .= '<li><span>Не введен e-mail</span></li>'; if(empty($phone)) $error .= '<li><span>Не введен телефон</span></li>'; if(empty($postcode)) $error .= '<li><span>Не введен индекс</span></li>'; if(empty($city)) $error .= '<li><span>Не введен город</span></li>'; if(empty($address)) $error .= '<li><span>Не введен адрес</span></li>';
if(empty($error)){ // если ошибки отсутствуют // добавляем гостя в заказчики (но без пароля для авторизации)
$customer_id = add_customer($surname, $name, $patronymic, $email, $phone, $postcode, $city, $address);
if(!$customer_id) return false; // прекращаем выполнение в случае ошибки добавления гостя
}else{
$_SESSION['btnOrder']['res'] = "<div class='error'>Все поля обязательны к заполнению:<br/><ul> $error </ul></div>";
$_SESSION['btnOrder']['surname'] = $surname;
$_SESSION['btnOrder']['name'] = $name;
$_SESSION['btnOrder']['patronymic'] = $patronymic;
$_SESSION['btnOrder']['email'] = $email;
$_SESSION['btnOrder']['phone'] = $phone;
$_SESSION['btnOrder']['postcode'] = $postcode;
$_SESSION['btnOrder']['city'] = $city;
$_SESSION['btnOrder']['address'] = $address;
$_SESSION['btnOrder']['note'] = $note;
return false;
}
}else{ // если посетитель авторизованный
$phone = clear($_POST['phone']);
$postcode = clear($_POST['postcode']);
$city = clear($_POST['city']);
$address = clear($_POST['address']);
if(empty($phone)) $error .= '<li><span>Не введен телефон</span></li>'; if(empty($postcode)) $error .= '<li><span>Не введен индекс</span></li>'; if(empty($city)) $error .= '<li><span>Не введен город</span></li>'; if(empty($address)) $error .= '<li><span>Не введен адрес</span></li>';
// добавляем в БД недостающие данные - телефон, индекс, город, улица
function add_information(){
$query = "UPDATE customers SET phone = '$phone', postcode = '$postcode', city = '$city', address = '$address'
WHERE customer_id = '$customer_id'";
}
}else{
$_SESSION['btnOrder']['res'] = "<div class='error'>Все поля обязательны к заполнению:<br/><ul> $error </ul></div>";
$_SESSION['btnOrder']['phone'] = $phone;
$_SESSION['btnOrder']['postcode'] = $postcode;
$_SESSION['btnOrder']['city'] = $city;
$_SESSION['btnOrder']['address'] = $address;
$_SESSION['btnOrder']['note'] = $note;
return false;
}
}
save_order($customer_id, $dostavka_id, $note);
}
/* ==Добавление заказа== */
/* ==Добавление гостя== */
function add_customer($surname, $name, $patronymic, $email, $phone, $postcode, $city, $address){
$query = "INSERT INTO customers (surname, name, patronymic, email, phone, postcode, city, address)
VALUES ('$surname', '$name', '$patronymic', '$email', '$phone', '$postcode', '$city', '$address')";
// если гость добавлен в базу данных - получаем его id
}else{
// если гость не добавлен
$_SESSION['btnOrder']['res'] = "<div class='error'>Ой, что-то пошло не так... Пожалуйста, продублируйте ваш заказ!</div>";
$_SESSION['btnOrder']['surname'] = $surname;
$_SESSION['btnOrder']['name'] = $name;
$_SESSION['btnOrder']['patronymic'] = $patronymic;
$_SESSION['btnOrder']['email'] = $email;
$_SESSION['btnOrder']['phone'] = $phone;
$_SESSION['btnOrder']['postcode'] = $postcode;
$_SESSION['btnOrder']['city'] = $city;
$_SESSION['btnOrder']['address'] = $address;
$_SESSION['btnOrder']['note'] = $note;
return false;
}
}
/* ==Добавление гостя== */
/* ==Сохранение заказа== */
function save_order($customer_id, $dostavka_id, $note){
$query = "INSERT INTO orders (`customer_id`, `date`, `dostavka_id`, `note`)
VALUES ($customer_id, NOW(), $dostavka_id, '$note')";
/*if(mysql_affected_rows() == -1){
// если не получилось сохранить заказ, то удаляем заказчика
mysql_query("DELETE FROM customers
WHERE customer_id = $customer_id AND password = ''");
return false;
}*/
foreach($_SESSION['cart'] as $goods_id => $value){
$val .="($order_id, $goods_id, {$value['qty']}),";
}
$val = substr($val, 0
, -1
); // удаление запятой
$query = "INSERT INTO zakaz_tovar (order_id, goods_id, quantity)
VALUES $val";
// если не выгрузился заказ - удаляем сам заказ из таблицы orders
mysql_query("DELETE FROM orders WHERE order_id = $order_id"); return false;
}
// если заказ успешно отправлен
unset($_SESSION['cart']); unset($_SESSION['total_sum']); unset($_SESSION['total_quantity']); $_SESSION['btnOrder']['res'] = "<div class='success'>Все отлично - заказ передан в работу) Очень скоро он будет к вам отправлен!</div>";
return true;
}
/* ==Сохранение заказа== */