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])); } }