public function actionView($id)
 {
     self::validateAdmin();
     $order = Order::getOrderById($id);
     $productQuantity = json_decode($order['products'], true);
     $productId = array_keys($productQuantity);
     $products = Products::getProductlistById($productId);
     $totalPrice = Basket::getTotalPrice($products, $productQuantity);
     $total = array_sum($totalPrice);
     require_once ROOT . '/views/admin_order/view.php';
     return true;
 }
 public function actionOrder()
 {
     $platform = array();
     $errors = array();
     $userName = '';
     $userEmail = '';
     $userPhone = '';
     $userComment = '';
     $platform = Platform::getPlatformList();
     $result = false;
     if (isset($_POST['submit'])) {
         $userName = $_POST['name'];
         $userEmail = $_POST['email'];
         $userPhone = $_POST['phone'];
         $userComment = $_POST['message'];
         $errors = false;
         if (!User::validateUsername($userName)) {
             $errors[] = "Неверное имя";
         }
         if (!User::validateEmail($userEmail)) {
             $errors[] = "Неверный Email";
         }
         if (!User::validatePhone($userPhone)) {
             $errors[] = "Неккоректный телефон";
         }
         if ($errors == false) {
             $productsBasket = Basket::getProducts();
             if (User::isGuest()) {
                 $userId = false;
             } else {
                 $userId = User::validateLogged();
             }
             $result = Order::save($userName, $userEmail, $userPhone, $userComment, $userId, $productsBasket);
             if ($result) {
                 $adminEmail = "*****@*****.**";
                 $subject = "Новый заказ";
                 mail($adminEmail, $subject, $userComment);
                 Basket::clear();
             }
         } else {
             $productsInBasket = Basket::getProducts();
             $productId = array_keys($productsInBasket);
             $products = Products::getProductsByIdInBasket($productId);
             $totalPrice = Basket::getTotalPrice($products);
             $total = array_sum($totalPrice);
             $totalQuantity = Basket::countItem();
         }
     } else {
         $productsInbasket = Basket::getProducts();
         if ($productsInbasket == false) {
             header("Loaction: /");
         } else {
             $productId = array_keys($productsInbasket);
             $products = Products::getProductsByIdInBasket($productId);
             $totalPrice = Basket::getTotalPrice($products);
             $totalQuantity = Basket::countItem();
             $userName = false;
             $userEmail = false;
             $userPhone = false;
             $userComment = false;
             if (User::isGuest()) {
             } else {
                 $userId = User::validateLogged();
                 $user = User::getUserById($userId);
                 $userName = $user['name'];
                 $userEmail = $user['email'];
             }
         }
     }
     require_once ROOT . "/views/basket/order.php";
     return true;
 }
Esempio n. 3
0
 function actSaveOrder()
 {
     include 'modules/catalog/Basket.class.php';
     global $ST, $post;
     $id = $post->getInt('id');
     $count = $post->getArray('count');
     $price = $post->getArray('price');
     if (!$count) {
         echo printJSON(array('msg' => 'Ошибка сохранения. Корзина пуста'));
         exit;
     }
     $orderItem = $count;
     $rs = $ST->select("SELECT * \r\n\t\t\tFROM sc_shop_item  \r\n\t\t\tWHERE id IN (" . implode(',', array_keys($count)) . ")");
     while ($rs->next()) {
         $orderItem[$rs->get('id')] = array('count' => $count[$rs->get('id')], 'price' => $price[$rs->get('id')]);
     }
     $basket = new Basket($orderItem);
     $basket->delivery = $post->getFloat('delivery');
     $basket->discount = $post->getFloat('discount');
     $data = array('order_status' => $post->get('order_status'), 'comment' => $post->get('comment'), 'review' => $post->get('review'), 'perfid' => $this->getUserId(), 'price' => $basket->getPrice(), 'total_price' => $basket->getTotalPrice(), 'discount' => $basket->discount, 'delivery' => $basket->delivery, 'delivery_type' => $post->get('delivery_type'), 'date' => dte($post->get('date'), 'Y-m-d'), 'time' => $post->get('time'), 'fullname' => $post->get('fullname'), 'address' => $post->get('address'), 'phone' => $post->get('phone'), 'additionally' => $post->get('additionally'));
     $out['msg'] = 'Сохранено';
     if ($id) {
         if (in_array($data['order_status'], array(3))) {
             //Логируем изменения
             $cur_data = array('date' => '', 'discount' => '', 'delivery' => '', 'delivery_type' => '');
             $cur_data_item = array();
             $rs = $ST->select("SELECT " . implode(',', array_keys($cur_data)) . " FROM sc_shop_order WHERE id={$id}");
             if ($rs->next()) {
                 $cur_data = $rs->getRow();
                 $rs = $ST->select("SELECT itemid,count,price FROM sc_shop_order_item WHERE orderid={$id} ORDER BY itemid");
                 while ($rs->next()) {
                     $row = $rs->getRow();
                     $cur_data['items'][$rs->get('itemid')] = array('count' => $rs->get('count'), 'price' => $rs->get('price'));
                 }
             }
             //				$change=array();
             //				foreach ($cur_data as $k=>$v){
             //					if(trim($v)!=trim($data[$k])){
             //						$change[$k]=$data[$k];
             //					}
             //				}
             //				ksort($orderItem);
             //				if(json_encode($cur_data_item)!=json_encode($orderItem)){
             //					$change['item']=$cur_data_item;
             //				}
             if ($cur_data) {
                 $ST->insert('sc_shop_order_datalog', array('orderid' => $id, 'data' => serialize($cur_data)));
             }
         }
         ////////////////////////////////////
         $ST->update('sc_shop_order', $data, "id=" . $id);
         $ST->delete('sc_shop_order_item', 'orderid=' . $id);
     } else {
         $data['userid'] = $this->getUserId();
         $id = $ST->insert('sc_shop_order', $data);
     }
     $this->logOrder($id, $this->getUserId(), $post->get('order_status'));
     foreach ($orderItem as $key => $row) {
         $d['orderid'] = $id;
         $d['itemid'] = $key;
         $d['count'] = $row['count'];
         $d['price'] = $row['price'];
         $ST->insert('sc_shop_order_item', $d);
     }
     $out['id'] = $id;
     echo printJSON($out);
     exit;
 }
Esempio n. 4
0
 function checkOrder($args, $basket)
 {
     $error = array();
     //		if(!trim($args->get('fullname' ))){$error['fullname']="Введите ФИО!";}
     if (!trim($args->get('phone'))) {
         $error['phone'] = 'Введите телефон';
     }
     $error += $this->checkDelivery($args);
     //		if($err=$this->checkMail($args->get('mail'),false))$error['mail']=$err;
     //		if($args->getInt('reg')==1 && !$args->exists('auto_pass')){//Хочет реги и не автопароль
     //			if(strlen($args->get('reg_password'))<6){
     //				$error['reg_password']='******';
     //			}elseif($args->get('reg_password')!==$args->get('cpassword')){
     //				$error['reg_password']='******';
     //			}
     //		}
     //		if($basket['delivery']!==false){
     //			if(!$args->get('pay_system')){
     //				$error['pay_system']='Выберите способ оплаты';
     //			}
     //		}
     if (empty($basket['basket'])) {
         $error['basket'] = 'Корзина пуста';
     }
     $bsk = new Basket($this->getBasket());
     if ($bsk->getTotalPrice() < (int) $this->cfg('SHOP_ORDER_COND')) {
         $error['basket'] = "Сумма заказа не менее {$this->cfg('SHOP_ORDER_COND')} р.";
     } else {
         foreach ($this->getBasket() as $item) {
             if ($item['in_stock'] < 0) {
                 $error['basket'] = $item['name'] . " НЕТ В НАЛИЧИИ";
                 break;
             }
         }
     }
     return $error;
 }