예제 #1
0
 /**
  * Сохраняет и обновляет параметры заказа.
  * @return type
  */
 public function saveOrder()
 {
     $this->messageSucces = $this->lang['ACT_SAVE_ORD'];
     $this->messageError = $this->lang['ACT_SAVE_ORDER'];
     if (count($_POST['order_content']) != $_POST['orderPositionCount']) {
         $this->messageError = 'Невозможно передать столь большой заказ на ваш сервер. Необходимо изменить настройки web-сервера!';
         return false;
     }
     unset($_POST['orderPositionCount']);
     // Cобираем воедино все параметры от юр. лица если они были переданы, для записи в информацию о заказе.
     $_POST['yur_info'] = '';
     $informUser = $_POST['inform_user'];
     unset($_POST['inform_user']);
     if (!empty($_POST['inn'])) {
         $_POST['yur_info'] = array('email' => htmlspecialchars($_POST['orderEmail']), 'name' => htmlspecialchars($_POST['orderBuyer']), 'address' => htmlspecialchars($_POST['orderAddress']), 'phone' => htmlspecialchars($_POST['orderPhone']), 'inn' => htmlspecialchars($_POST['inn']), 'kpp' => htmlspecialchars($_POST['kpp']), 'nameyur' => htmlspecialchars($_POST['nameyur']), 'adress' => htmlspecialchars($_POST['adress']), 'bank' => htmlspecialchars($_POST['bank']), 'bik' => htmlspecialchars($_POST['bik']), 'ks' => htmlspecialchars($_POST['ks']), 'rs' => htmlspecialchars($_POST['rs']));
     }
     $model = new Models_Order();
     // Обновление.
     if (!empty($_POST['id'])) {
         unset($_POST['inn']);
         unset($_POST['kpp']);
         unset($_POST['nameyur']);
         unset($_POST['adress']);
         unset($_POST['bank']);
         unset($_POST['bik']);
         unset($_POST['ks']);
         unset($_POST['rs']);
         unset($_POST['ogrn']);
         if (!empty($_POST['yur_info'])) {
             $_POST['yur_info'] = addslashes(serialize($_POST['yur_info']));
         }
         foreach ($_POST['order_content'] as &$item) {
             foreach ($item as &$v) {
                 $v = rawurldecode($v);
             }
         }
         $_POST['delivery_cost'] = MG::numberDeFormat($_POST['delivery_cost']);
         $_POST['order_content'] = addslashes(serialize($_POST['order_content']));
         $model->refreshCountAfterEdit($_POST['id'], $_POST['order_content']);
         $model->updateOrder($_POST, $informUser);
     } else {
         $newUserData = array('email' => htmlspecialchars($_POST['user_email']), 'role' => 2, 'name' => htmlspecialchars($_POST['name_buyer']), 'pass' => crypt(time()), 'address' => htmlspecialchars($_POST['address']), 'phone' => htmlspecialchars($_POST['phone']), 'inn' => htmlspecialchars($_POST['inn']), 'kpp' => htmlspecialchars($_POST['kpp']), 'nameyur' => htmlspecialchars($_POST['nameyur']), 'adress' => htmlspecialchars($_POST['adress']), 'bank' => htmlspecialchars($_POST['bank']), 'bik' => htmlspecialchars($_POST['bik']), 'ks' => htmlspecialchars($_POST['ks']), 'rs' => htmlspecialchars($_POST['rs']));
         if ($_POST['user_email'] != '') {
             USER::add($newUserData);
         }
         $orderArray = $model->addOrder($_POST);
         $id = $orderArray['id'];
         $orderNumber = $orderArray['orderNumber'];
         $this->messageSucces = $this->lang['ACT_SAVE_ORD'] . ' № ' . $orderNumber;
         $_POST['id'] = $id;
         $_POST['newId'] = $id;
         $_POST['number'] = $orderNumber;
         $_POST['date'] = MG::dateConvert(date('d.m.Y H:i'));
     }
     $_POST['count'] = $model->getNewOrdersCount();
     $_POST['date'] = MG::dateConvert(date('d.m.Y H:i'));
     $this->data = $_POST;
     return true;
 }