Exemple #1
0
 /**
  * Бесплатная доставка если проходит по условию в найстройках.
  * @param id - id доставки
  * @return numeric
  */
 public function getCostDelivery($id)
 {
     $delivery = $this->getDeliveryById($id);
     $cart = new Models_Cart();
     $cartSumm = $cart->getTotalSumm();
     return $delivery['cost'];
 }
Exemple #2
0
 /**
  * Бесплатная доставка если проходит по условию в найстройках.
  * @param id - id доставки
  * @return numeric
  */
 public function getCostDelivery($id)
 {
     $delivery = $this->getDeliveryById($id);
     $cart = new Models_Cart();
     $cartSumm = $cart->getTotalSumm();
     if ($delivery['free'] != 0 && $delivery['free'] <= $cartSumm) {
         return 0;
     }
     return $delivery['cost'];
 }
Exemple #3
0
 /**
  * Проверяет корректность ввода данных в форму обратной связи и регистрацию в системе покупателя.
  *
  * @param array $arrayData  массив в введнными пользователем данными.
  * @return bool|string $error сообщение с ошибкой в случае некорректных данных.
  */
 public function isValidData($arrayData)
 {
     $result = null;
     // Если электронный адрес зарегистрирован в системе.
     $currenUser = USER::getThis();
     if ($currenUser->email != trim($arrayData['email'])) {
         if (USER::getUserInfoByEmail($arrayData['email'])) {
             $error = "<span class='user-exist'>Пользователь с таким email существует. \n          Пожалуйста <a href='" . SITE . "/enter'>войдите в систему</a> используя \n          свой электронный адрес и пароль!</span>";
             // Иначе новый пользователь.
         } else {
             $this->newUser = true;
         }
     }
     // Корректность емайл.
     if (!preg_match('/^[-._a-z0-9]+@(?:[a-z0-9][-a-z0-9]{0,61}+\\.)+[a-z]{2,6}$/', $arrayData['email'])) {
         $error = "<span class='order-error-email'>E-mail введен некорректно!</span>";
     }
     // Наличие телефона.
     if (empty($arrayData['phone'])) {
         $error = "<span class='no-phone'>Введите верный номер телефона!</span>";
     }
     // Если нет ошибок, то заносит информацию в поля класса.
     if (!empty($error)) {
         $result = $error;
     } else {
         $this->fio = trim($arrayData['fio']);
         $this->email = trim($arrayData['email']);
         $this->phone = trim($arrayData['phone']);
         $this->address = trim($arrayData['address']);
         $this->info = trim($arrayData['info']);
         $this->delivery = $arrayData['delivery'];
         $deliv = new Delivery();
         $this->delivery_cost = $deliv->getCostDelivery($arrayData['delivery']);
         $this->payment = $arrayData['payment'];
         $cart = new Models_Cart();
         $this->summ = $cart->getTotalSumm();
         $result = false;
         $this->addNewUser();
     }
     $args = func_get_args();
     return MG::createHook(__CLASS__ . "_" . __FUNCTION__, $result, $args);
 }
Exemple #4
0
 /**
  * Возвращает массив доступных способов доставки.
  * @return mixed массив доступных способов доставки .
  */
 public function getDelivery()
 {
     $result = array();
     // Модель для работы заказом.
     $model = new Models_Order();
     $cart = new Models_Cart();
     $cartSumm = $cart->getTotalSumm();
     foreach ($model->getDeliveryMethod() as $id => $delivery) {
         if ($delivery['free'] != 0 && $delivery['free'] <= $cartSumm) {
             $delivery['cost'] = 0;
         }
         if (!$delivery['activity']) {
             continue;
         }
         if (isset($_POST['delivery']) && $_POST['delivery'] == $id) {
             $delivery['checked'] = 1;
         }
         // Заполнение массива способов доставки.
         $result[$delivery['id']] = $delivery;
     }
     // Если доступен только один способ доставки, то он будет выделен.
     if (1 === count($result)) {
         $deliveryId = array_keys($result);
         $result[$deliveryId[0]]['checked'] = 1;
     }
     return $result;
 }
Exemple #5
0
 /**
  * Проверяет корректность ввода данных в форму обратной связи и регистрацию в системе покупателя.
  *
  * @param array $arrayData  массив в введнными пользователем данными.
  * @return bool|string $error сообщение с ошибкой в случае некорректных данных.
  */
 public function isValidData($arrayData, $reqire = array('email', 'phone', 'payment'), $createUser = true, $error = null)
 {
     $result = null;
     $this->newUser = false;
     if ($createUser) {
         // Если электронный адрес зарегистрирован в системе.
         $currenUser = USER::getThis();
         if ($currenUser->email != trim($arrayData['email'])) {
             if (USER::getUserInfoByEmail($arrayData['email'])) {
                 $error = "<span class='user-exist'>Пользователь с таким email существует. \r\n            Пожалуйста, <a href='" . SITE . "/enter'>войдите в систему</a> используя \r\n            свой электронный адрес и пароль!</span>";
                 // Иначе новый пользователь.
             } else {
                 $this->newUser = true;
             }
         }
     }
     if (in_array('email', $reqire) && MG::getSetting('requiredFields') == 'true') {
         // Корректность емайл.
         if (!preg_match('/^[-._a-zA-Z0-9]+@(?:[a-zA-Z0-9][-a-zA-Z0-9]{0,61}+\\.)+[a-zA-Z]{2,6}$/', $arrayData['email'])) {
             $error = "<span class='order-error-email'>E-mail введен некорректно!</span>";
         }
     }
     if (in_array('phone', $reqire) && MG::getSetting('requiredFields') == 'true') {
         // Наличие телефона.
         if (empty($arrayData['phone'])) {
             $error = "<span class='no-phone'>Введите верный номер телефона!</span>";
         }
     }
     if (in_array('payment', $reqire)) {
         // Неуказан способ оплаты
         if (empty($arrayData['payment'])) {
             $error = "<span class='no-phone'>Выберите способ оплаты!</span>";
         }
     }
     if (CAPTCHA_ORDER == '1') {
         // если при оформлении капча
         if (empty($arrayData['capcha']) || strtolower($arrayData['capcha']) != strtolower($_SESSION['capcha'])) {
             $error = "<span class='no-phone'>Неверно введен код с картинки!</span>";
         }
     }
     // Если нет ошибок, то заносит информацию в поля класса.
     if (!empty($error)) {
         $result = $error;
     } else {
         $this->fio = trim($arrayData['fio']);
         $this->email = trim($arrayData['email']);
         $this->phone = trim($arrayData['phone']);
         $this->address = trim($arrayData['address']);
         $this->info = trim($arrayData['info']);
         $this->delivery = $arrayData['delivery'];
         $this->dateDelivery = $arrayData['date_delivery'];
         $deliv = new Delivery();
         $this->delivery_cost = $deliv->getCostDelivery($arrayData['delivery']);
         $this->payment = $arrayData['payment'];
         $cart = new Models_Cart();
         $this->summ = $cart->getTotalSumm();
         $this->ip = $_SERVER['REMOTE_ADDR'];
         $result = false;
         $this->addNewUser();
     }
     $args = func_get_args();
     $args['this'] =& $this;
     return MG::createHook(__CLASS__ . "_" . __FUNCTION__, $result, $args);
 }