public function order_procAction() { if (!user::isGuest() && isset($_SESSION['order_step'])) { switch ($_SESSION['order_step']) { case 1: // Доставка $_SESSION['order']['name'] = system::POST('delivery_name', isString); $_SESSION['order']['surname'] = system::POST('delivery_surname', isString); $_SESSION['order']['phone'] = system::POST('delivery_phone', isString); $_SESSION['order']['address'] = system::POST('delivery_address', isString); $_SESSION['order']['notice'] = system::POST('delivery_notice', isText); $_SESSION['order']['delivery'] = system::POST('delivery', isInt); if (empty($_SESSION['order']['delivery']) || empty($_SESSION['order']['name']) || empty($_SESSION['order']['surname']) || empty($_SESSION['order']['phone']) || empty($_SESSION['order']['address'])) { // Ошибка: не все поля заполнены } else { // Все отлично, переходим к следующему шагу $_SESSION['order_step'] = 2; } break; case 2: // Подтвеждение заказа, сохраняем данные в БД $order = new eShopOrder(); // Информация о доставке $order->setDelivery($_SESSION['order']['delivery']); $order->delivery_name = $_SESSION['order']['name']; $order->delivery_surname = $_SESSION['order']['surname']; $order->delivery_phone = $_SESSION['order']['phone']; $order->delivery_address = $_SESSION['order']['address']; $order->delivery_notice = $_SESSION['order']['notice']; $order_id = $order->save(); if ($order_id) { // Заказ сохранен unset($_SESSION['order_step']); unset($_SESSION['order']); system::redirect('/eshop/ok/' . $order_id); } else { // Произошла ошибка } system::redirect('/eshop/order'); break; } } system::redirect('/eshop/order'); }
function proc_view() { // Говорим какой объект нужно изменить if (!($obj = ormObjects::get(system::POST('obj_id'), 'eshop_order'))) { system::redirect('/eshop/list'); } $order = new eShopOrder($obj); $order->setState(system::POST('state', isInt)); $order->is_payment = system::POST('is_payment', isBool); if (system::POST('is_payment', isBool)) { $order->payment_date = date('Y-m-d H:i:s'); } $order->delivery_name = system::POST('delivery_name', isString); $order->delivery_surname = system::POST('delivery_surname', isString); $order->delivery_phone = system::POST('delivery_phone', isString); $order->delivery_address = system::POST('delivery_address', isText); $order->delivery_notice = system::POST('delivery_notice', isText); $order->notice = system::POST('notice', isText); $form = new ormMultiForm('goods'); $form->withoutAdditions(); $form->process(); // Сохраняем изменения $obj_id = $order->save(); // Если объект не сохранился, выводим пользователю текст ошибки. if ($obj_id === false) { //system::savePostToSession(); ui::MessageBox(lang::get('TEXT_MESSAGE_ERROR'), $obj->getErrorListText()); ui::selectErrorFields($obj->getErrorFields()); system::redirect('/eshop/order_view/' . system::POST('obj_id')); } // Если данные изменились корректно перенаправляем на соответствующию страницу if ($_POST['parram'] == 'apply') { system::redirect('/eshop/order_view/' . $obj_id); } else { system::redirect('/eshop/list'); } }