Example #1
0
 public function beforeAction($action)
 {
     //$css_file_id='';
     $test = 11;
     $ref = Yii::$app->request->get('ref', '');
     $id = Yii::$app->request->get('id', '');
     $user_id = 0;
     if (!\Yii::$app->user->isGuest) {
         $user_id = \Yii::$app->user->identity->getId();
     }
     if (!empty($ref)) {
         $user_id = AlphaId::id($ref, true);
     }
     $user_setting = UserSetting::findByUserId($user_id);
     if ($user_setting) {
         $this->getView()->params['css_file_id'] = $user_setting->css_file_id;
         $this->getView()->params['logo_url'] = $user_setting->logo_url;
         $this->getView()->params['ref_user_id'] = $user_id;
         $this->getView()->params['id'] = $id;
         $this->getView()->params['ref'] = $ref;
     } else {
         $this->getView()->params['css_file_id'] = '';
         $this->getView()->params['logo_url'] = '';
     }
     if ($user_id != 0) {
         $cartForm = new CartForm();
         $rows = $cartForm->getUserCart($user_id, true);
         $this->getView()->params['cart_count'] = count($rows);
         $invoicies = Invoice::find()->where(['user_id' => $user_id, 'status' => Invoice::STATUS_NEW])->all();
         $invoice = Invoice::findOne(['user_id' => $user_id, 'status' => Invoice::STATUS_NEW]);
         $invoice_id = 0;
         if ($invoice) {
             $invoice_id = $invoice->id;
         }
         $this->getView()->params['invoice_count'] = count($invoicies);
         $this->getView()->params['invoice_id'] = $invoice_id;
         if (!Yii::$app->user->isGuest && Yii::$app->user && Yii::$app->user->identity) {
             $this->getView()->params['demo'] = Yii::$app->user->identity->role == User::ROLE_DEMO ? true : false;
         }
     } else {
         $this->getView()->params['demo'] = 0;
     }
     return parent::beforeAction($action);
 }
 public function actionGetInvoice()
 {
     //http://photobook/photobooks/get-invoice?pb_id=100000130
     $pb_id = Yii::$app->request->get('pb_id');
     if (Yii::$app->user->isGuest) {
         $this->redirect(Url::toRoute(['photobooks/not-found']));
         return;
     }
     if (!$pb_id) {
         Yii::$app->getSession()->setFlash('error', Yii::t('app', 'Не верный id'));
         $this->redirect(Url::toRoute(['photobooks/index']));
         return;
     }
     $photobook = new PhotobookForm();
     if (!$photobook->loadById($pb_id)) {
         Yii::$app->getSession()->setFlash('error', Yii::t('app', 'Фотокнига не найдена'));
         $this->redirect(Url::toRoute(['photobooks/index']));
         return;
     }
     if (Yii::$app->user->identity->role != User::ROLE_ADMIN) {
         if ($photobook->user_id != Yii::$app->user->identity->user_id) {
             Yii::$app->getSession()->setFlash('error', Yii::t('app', 'Фотокнига не найдена'));
             $this->redirect(Url::toRoute(['photobooks/index']));
             return;
         }
     }
     if ($photobook->invoice_id) {
         $invoice = new InvoiceForm();
         if ($invoice->loadById($photobook->invoice_id)) {
             $this->redirect(Url::toRoute(['photobooks/invoice', 'id' => $invoice->id]));
             return;
         } else {
             //Зафиксим данные в базе
             $photobook->invoice_id = null;
             $photobook->save();
         }
     }
     //Если со счетом проблема
     //Смотрим корзину
     $cart_rows = CartForm::getUserCart(Yii::$app->user->identity->getId());
     //Нужно отыскать в ней нашу фотокнигу
     $our_photobook_exists = false;
     foreach ($cart_rows as $key => $row) {
         if ($row->product_type == Cart::PRODUCT_PHOTOBOOK && !empty($row->product_info) && !empty($row->product_info['Photobook']) && $row->product_info['Photobook']['id'] == $pb_id) {
             $our_photobook_exists = true;
             break;
         }
     }
     //Если есть отправляем в корзину
     if ($our_photobook_exists) {
         $this->redirect(Url::toRoute(['photobooks/checkout']));
     } else {
         //Если не, то добовляем отправляем в корзину
         $ref = AlphaId::id($photobook->user_id);
         $id = AlphaId::id($photobook->id);
         $this->redirect(Url::toRoute(['photobooks/checkout', 'ref' => $ref, 'id' => $id]));
     }
 }
 public function actionUpdateCartQuantity()
 {
     \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
     if (Yii::$app->user->isGuest) {
         return ['error' => ['msg' => Yii::t('app', 'Доступ закрыт')]];
     }
     $cart_id = Yii::$app->request->get('id', 0);
     $quantity = Yii::$app->request->post('quantity', 0);
     if ($quantity <= 0) {
         return ['error' => ['msg' => Yii::t('app', 'Количчество должно быть больше 0')]];
     }
     if ($cart_id <= 0) {
         return ['error' => ['msg' => Yii::t('app', 'Не верный id')]];
     }
     $carForm = new CartForm();
     if (!$carForm->loadById($cart_id)) {
         return ['error' => ['msg' => Yii::t('app', 'Запись не найдена')]];
     }
     if (Yii::$app->user->identity->role != User::ROLE_ADMIN) {
         if ($carForm->user_id != Yii::$app->user->identity->getId()) {
             return ['error' => ['msg' => Yii::t('app', 'Ошибка прав доступа')]];
         }
     }
     $carForm->quantity = intval($quantity);
     if (!$carForm->save()) {
         return ['error' => ['msg' => Yii::t('app', 'Не удалось сохранить в базу данных')]];
     }
     return ['response' => ['status' => true, 'sub_total' => $carForm->price * $carForm->quantity]];
 }