/** * Сохраняет и обновляет параметры заказа. * @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; }