コード例 #1
0
ファイル: EcommerceController.php プロジェクト: krvd/cms-Inji
 public function buyCardAction()
 {
     $this->view->setTitle('Покупка карты');
     $bread = [];
     $bread[] = ['text' => 'Покупка карты'];
     $user = Users\User::$cur;
     if (!empty($_POST) && !empty($_POST['card_id'])) {
         $error = false;
         $card = \Ecommerce\Card::get((int) $_POST['card_id']);
         if (!$card) {
             $error = true;
             Msg::add('Такой карты не существует', 'danger');
         }
         if (!Users\User::$cur->id) {
             $user_id = $this->Users->registration($_POST, true);
             if (!$user_id) {
                 $error = true;
                 $user = null;
             } else {
                 $user = Users\User::get($user_id);
             }
         }
         $userCard = \Ecommerce\Card\Item::get([['card_id', $card->id], ['user_id', $user->id]]);
         if ($userCard) {
             $error = true;
             Msg::add('У вас уже есть такая карта', 'danger');
         }
         $fields = \Ecommerce\UserAdds\Field::getList();
         foreach ($fields as $field) {
             if (empty($_POST['userAdds']['fields'][$field->id]) && $field->required) {
                 $error = 1;
                 Msg::add('Вы не указали: ' . $field->name);
             }
         }
         if (!$error) {
             $cardItem = new \Ecommerce\Card\Item();
             $cardItem->card_id = $card->id;
             $cardItem->user_id = $user->id;
             $cardItem->save();
             $cart = new \Ecommerce\Cart();
             $cart->user_id = $user->user_id;
             $cart->cart_status_id = 2;
             $cart->comment = htmlspecialchars($_POST['comment']);
             $cart->date_status = date('Y-m-d H:i:s');
             $cart->complete_data = date('Y-m-d H:i:s');
             if (!empty($_SESSION['cart']['cart_id'])) {
                 $cart->card_item_id = $cardItem->id;
             }
             $cart->save();
             $this->module->parseFields($_POST['userAdds']['fields'], $cart);
             $extra = new \Ecommerce\Cart\Extra();
             $extra->name = $card->name;
             $extra->price = $card->price;
             $extra->count = 1;
             $extra->cart_id = $cart->id;
             $extra->info = 'card:' . $card->id . '|cardItem:' . $cardItem->id;
             $extra->save();
             Tools::redirect('/ecommerce/cart/success');
         }
     }
     $this->view->page(['data' => compact('bread')]);
 }