[ 'class' => \yii\filters\AccessControl::className (), 'rules' => [ // allow authenticated users [ 'actions' => [ 'create', 'index', 'view', 'update', 'index-customer', 'statistics' , 'test' ], 'allow' => true, 'roles' => [ 'admin', 'employee', 'reception' ] ] ] // everything else is denied ] ]; } /** * Lists all Ticket models. * * @return mixed */ public function actionIndex() { $searchModel = new TicketSearch (); $dataProvider = $searchModel->search ( Yii::$app->request->queryParams ); $searchModel->searchTotals (); $searchModel->users = User::read (); $searchModel->accounts = Account::read (); $searchModel->ticketTypes = TicketType::read (); return $this->render ( 'index', [ 'searchModel' => $searchModel, 'dataProvider' => $dataProvider ] ); } /** * Lists all Ticket models. * * @return mixed */ public function actionStatistics() { $searchModel = new TicketSearchStatisitcs(); $searchModel->search ( Yii::$app->request->queryParams ); $searchModel->searchTotals (); $searchModel->users = User::read (); $searchModel->accounts = Account::read (); $searchModel->ticketTypes = TicketType::read (); if ($searchModel->output == 'pdf') { $user = User::findOne ( \Yii::$app->user->id ); $mpdf = new \mPDF ( 'utf-8', 'A4-L' ); $fn = ""; $ov = '_total_content_pdf'; $dt = "_letrehozva_" . date ( "Ymd_His" ) . "_" . $user->username; $interval = ""; $account = ""; $currentUser = ""; $fn = $fn . $interval . $dt . $account . $currentUser . ".pdf"; $mpdf->useSubstitutions = false; $mpdf->simpleTables = true; $mpdf->SetHeader ( \Yii::$app->params ["company_name"] . " - Létrehozva: " . $user->username . ", " . \Yii::$app->formatter->asDatetime ( time () ) ); $mpdf->setFooter ( '{PAGENO} / {nb}' ); $stylesheet = file_get_contents ( \Yii::getAlias ( '@vendor' . '/bower/bootstrap/dist/css/bootstrap.css' ) ); // external css $mpdf->WriteHTML ( $stylesheet, 1 ); $mpdf->WriteHTML ( $this->renderPartial ( 'statistics_pdf', [ 'searchModel' => $searchModel ] ) ); $mpdf->Output ( $fn, 'D' ); exit (); } else { return $this->render ( 'statistics', [ 'searchModel' => $searchModel ] ); } } /** * Lists all Ticket models. * * @return mixed */ public function actionIndexCustomer($id) { $customer = Customer::findOne ( $id ); $card = Card::findOne ( $id ); if ($customer == null) { throw new NotFoundHttpException ( 'The requested page does not exist.' ); } $searchModel = new TicketSearchCustomer(['customer' => $customer]); $searchModel->id_card = $customer->id_customer_card; $dataProvider = $searchModel->search ( Yii::$app->request->queryParams ); $searchModel->searchTotals (); $searchModel->users = User::read (); $searchModel->accounts = Account::read (); $searchModel->ticketTypes = TicketType::read (); return $this->render ( 'index_customer', [ 'searchModel' => $searchModel, 'dataProvider' => $dataProvider, 'customer' => $customer, 'card' => $card ] ); } /** * Displays a single Ticket model. * * @param integer $id * @return mixed */ public function actionView($id) { return $this->render ( 'view', [ 'model' => $this->findModel ( $id ) ] ); } /** * Creates a new Ticket model. * If creation is successful, the browser will be redirected to the 'view' page. * * @return mixed */ public function actionCreate() { $model = new Ticket (); $discounts = Discount::read (); $ticketTypes = TicketType::read (); $accounts = Account::readAccounts (); if ($model->load ( Yii::$app->request->post () ) && $model->save ()) { return $this->redirect ( [ 'view', 'id' => $model->id_ticket ] ); } else { return $this->render ( 'create', [ 'model' => $model, 'discounts' => $discounts, 'ticketTypes' => $ticketTypes, 'accounts' => $accounts ] ); } } /** * Updates an existing Ticket model. * If update is successful, the browser will be redirected to the 'view' page. * * @param integer $id * @return mixed */ public function actionUpdate($id) { $model = $this->findModel ( $id ); if ($model->load ( Yii::$app->request->post () ) && $model->save ()) { return $this->redirect ( [ 'view', 'id' => $model->id_ticket ] ); } else { return $this->render ( 'update', [ 'model' => $model ] ); } } /** * Deletes an existing Ticket model. * If deletion is successful, the browser will be redirected to the 'index' page. * * @param integer $id * @return mixed */ public function actionDelete($id) { $this->findModel ( $id )->delete (); return $this->redirect ( [ 'index' ] ); } public function actionTest(){ // $this->doTestTicketSale(); $this->doTestDetstaProcess(); return $this->render('test'); } protected function doTestDetstaProcess(){ $contract = Contract::findOne(19); $megbizas = $contract->requests[0]; $tetel = new GiroDETSTATetel(); $tetel->visszajelzesInformacio = "02"; $tp = new DetStatTetelProcessor([ 'megbizas' => $megbizas, 'tetel' => $tetel ]); $tp->run(); } protected function doTestTicketSale(){ $ticketType = TicketType::findOne(1); $customer = Customer::findOne(1); $account = Account::findOne(1); $card = $customer->card; $discount = null; $contract = Contract::findOne(19); $megbizas = $contract->requests[0]; $ticketSale = new TicketSale( [ 'ticketType'=> $ticketType, 'customer'=> $customer, 'account'=> $account, 'card'=> $card, 'discount'=> $discount, 'contract'=> $contract, 'ticketInstallmentRequest' => $megbizas ] ); $ticketSale->doSale(); } /** * Finds the Ticket model based on its primary key value. * If the model is not found, a 404 HTTP exception will be thrown. * * @param integer $id * @return Ticket the loaded model * @throws NotFoundHttpException if the model cannot be found */ protected function findModel($id) { if (($model = Ticket::findOne ( $id )) !== null) { return $model; } else { throw new NotFoundHttpException ( 'The requested page does not exist.' ); } } }