Exemplo n.º 1
0
 public function immediateBuy()
 {
     $goodsId = (int) $this->postParam('goodsId', 0);
     $skuAttr = $this->postParam('skuAttr', '');
     $skuvalue = $this->postParam('skuValue', '');
     $amount = (int) $this->postParam('amount', 0);
     if ($goodsId <= 0 || empty($skuAttr) || empty($skuValue)) {
         $this->ajaxReturn(ERR_PARAMS_ERROR, '参数错误');
         return;
     }
     $result = OrderModel::createOrder(UserOrderModel::ORDER_PRE_COMMON, $this->userId());
     if ($result['code'] != 0) {
         $this->ajaxReturn($result['code'], $result['desc']);
         return;
     }
     $this->ajaxReturn(0, '', '', array('token' => $result['result']['token']));
 }
Exemplo n.º 2
0
 function handleCreateOrder()
 {
     $order_info = NEnvironment::getSession('user_order_info');
     $values = $order_info['values'];
     //		dump($values);exit;
     //presmerovanie ak nieco nieje v poriadku
     $session = NEnvironment::getSession('cart');
     if (empty($session->products)) {
         $this->redirect('default');
     }
     if (empty($order_info['values'])) {
         $this->redirect('step2');
     }
     //znama polick login na email
     $values['email'] = $values['login'];
     $values['id_lang'] = $this->id_lang;
     //odstranenie loginu
     unset($values['login']);
     //odstranenie terms_and_conditions
     unset($values['terms_and_conditions']);
     //odstranenie discount_hash
     //		$discount_hash = $values['discount_hash'];
     if ($values['type'] == NULL) {
         $values['type'] = 0;
     }
     $values['user_discount'] = 0;
     // ak je prihlaseny setni id_user
     if ($this->user->isLoggedIn()) {
         $values['id_user'] = $this->user->getIdentity()->data['user_id'];
         $values['user_discount'] = $this->user->getIdentity()->data['discount'];
     }
     $cart_info = OrderModel::getCartInfo($session->products, $order_info['values']['id_delivery'], $order_info['values']['id_payment'], $this->context, false);
     $values['total_price'] = $cart_info['total_sum'];
     $values['total_price_with_tax'] = $cart_info['total_sum_with_tax'];
     $values['delivery_title'] = $cart_info['delivery_title'];
     $values['delivery_price'] = $cart_info['delivery_price']['price'];
     $values['delivery_tax'] = $cart_info['delivery_price']['tax'];
     $values['payment_title'] = $cart_info['payment_title'];
     $values['payment_price'] = $cart_info['payment_price']['price'];
     $values['payment_tax'] = $cart_info['payment_price']['tax'];
     //odstranenie id_delivery
     unset($values['id_delivery']);
     //odstranenie id_payment
     unset($values['id_payment']);
     $values['rate'] = Lang::get($this->id_lang)->rate;
     try {
         $id_order = OrderModel::createOrder($values, $session->products, $this->id_lang, $this->user);
         $conf = $this->context->parameters;
         $template = $this->template;
         $template->setFile(APP_DIR . '/FrontModule/templates/Order/OrderEmail.phtml');
         $template->discount = false;
         $template->o = OrderModel::get($id_order);
         $mail = new MyMail();
         $mail->addTo($values['email']);
         $mail->addBcc($conf['client_email']);
         $mail->setSubject(_('Objednávka č. ') . $id_order);
         $mail->setTemplate($template);
         $mail->send();
         if ($conf['HEUREKA']['ENABLE'] == 1) {
             try {
                 $overeno = new HeurekaOvereno($conf['HEURELA']['API_KEY'], HeurekaOvereno::LANGUAGE_SK);
                 $overeno->setEmail($values['email']);
                 foreach ($session->products as $id_product_param => $p) {
                     $product = ProductModel::getProductIdentifyByParam($id_product_param, $this->id_lang, $this->user);
                     $overeno->addProduct($product->name);
                 }
                 $overeno->send();
             } catch (Exception $e) {
             }
         }
         //vymazanie z kosika
         $session = NEnvironment::getSession('cart');
         unset($session->products);
         //vymazanie info o uzivatelovi
         unset($order_info['values']);
         $this->redirect('Cart:success');
     } catch (OrderException $e) {
         $form->addError($e);
     }
 }
 public static function trade()
 {
     $user = usr::getCurrentUser(1);
     if ($user == null) {
         self::printErrorJson("You are not authorized");
         return;
     }
     $firstCurName = Core::validate(self::getVar('firstCurrency'));
     $secondCurName = Core::validate(self::getVar('secondCurrency'));
     $type = Core::validate(self::getVar('type'));
     $price = Core::validate(self::getVar('rate'));
     $volume = Core::validate(self::getVar('amount'));
     if ($firstCurName == null || $secondCurName == null || $type == null || $price == null || $volume == null) {
         self::printErrorJson("not all parameters are defined");
         return;
     }
     if (!Core::isDouble($price) || !Core::isDouble($volume)) {
         self::printErrorJson("parameters are defined incorrectly");
         return;
     }
     $rate = self::getRate($firstCurName, $secondCurName);
     if ($rate == null) {
         self::printErrorJson("rate {$firstCurName}" . "_" . " {$secondCurName} not exist");
         return;
     }
     $currency = new Currency();
     $currency->findBy(array('Name' => $firstCurName));
     if ($volume < $currency->getMinOrderAmount()) {
         self::printErrorJson("Please, check min order amount for this currency");
         return;
     }
     if ($type == 'buy') {
         $orderType = OrderType::BUY;
     } elseif ($type = 'sell') {
         $orderType = OrderType::SELL;
     } else {
         self::printErrorJson("undefined order type");
         return;
     }
     $orderId = OrderModel::createOrder($user->getId(), $rate, $orderType, $volume, $price);
     if ($orderId === false) {
         self::printErrorJson(OrderModel::getErrorMessage());
         return;
     }
     $return['order_id'] = $orderId;
     $return['funds'] = self::getFunds($user->getId());
     $result['success'] = 1;
     $result['return'] = $return;
     print json_encode($result);
 }