/** * Creates a new CalendarEvents model. * If creation is successful, the browser will be redirected to the 'view' page. * @return mixed */ public function actionCreate() { $model = new CalendarEvents(); if ($model->load(Yii::$app->request->post()) && $model->save()) { return $this->redirect(['view', 'id' => $model->id]); } else { return $this->render('create', ['model' => $model]); } }
/** * Updates an existing CalendarEvents model. * Not possible to insert in past * not possible than more than 6 month in future to setup * not more than 3 month in past to show * @param integer $dd * @return model * als usertoview niet leeg is is er sprake van een gebruiker welke wil bekijken */ public function actionMijnkalender($_id, $_dd = '') { //indien niet ingelogged ga dan naar de login pagina //Yii::$app()->user->loginRequired(); // print_r(Yii::$app->getModule("user")->loginRedirect); exit; if (Yii::$app->user->isGuest) { // \Yii::$app->getModule("user")->loginRedirect = \Yii::$app->getRequest()->url; \Yii::$app->getResponse()->redirect(\Yii::$app->getUser()->loginUrl); //throw new UnauthorizedHttpException('U dient in te loggen. Geen toegang'); } $n = null; $vandaag = date('Y-m-d'); $n = User::findOne(['id' => $_id]); if ($_dd != '') { $defaultdate = substr($_dd, 0, 10); } else { $defaultdate = $vandaag; } if (!$n) { throw new HttpException(400, 'Foutieve pagina.'); } else { $name = $n->username; } //haal het user model op van de binnenkomende kalender $usermdl = User::findOne(['id' => $_id]); //haal het bedrijf op van de gebruiker (contactpersoon) $company = Company::findOne(['user_id' => Yii::$app->user->id]); $companyOntvanger = Company::findOne(['id' => $usermdl->company_id]); if (Yii::$app->user->id == $_id || $company->id == $usermdl->company_id) { $kalenderIsvan = 'MIJN'; } else { $kalenderIsvan = 'ZIJN'; } $user_id = $_id; //stop als de gebruiker niet is ingelogged if (Yii::$app->user->isGuest) { throw new UnauthorizedHttpException('U dient in te loggen. Geen toegang'); } else { if (!Yii::$app->user->can("user")) { throw new HttpException(403, 'Geen toegang.'); } else { //set en check incoming data from POST. //Eigenlijk wordt er nu op de kalender een event geplaatst welke hieronder opgeslagen wordt. $code_title = ArrayHelper::getValue($_POST, 'code_title'); $title = ArrayHelper::getValue($_POST, 'title'); $color = ArrayHelper::getValue($_POST, 'color'); $start = ArrayHelper::getValue($_POST, 'start'); $end = ArrayHelper::getValue($_POST, 'end'); if ($start != '' && $title != '' && $color != '' && $code_title != '' && $end != '') { // haal het aantal events voor deze dag van deze user op $count = CalendarEvents::find()->where(['start' => $start, 'user_id' => $user_id])->count(); if ($count < 2) { $model = new CalendarEvents(); $model->code_title = $code_title; $model->title = $title; $model->color = $color; $model->start = $start; $model->end = $end; $model->user_id = $user_id; $model->save(false); } } else { //haal alle events op van deze gebruiker tussen huidige dag - 3 maanden en huidge dag + 6 maanden // totaal worden maximaal 9 maanden opgehaald. $date3maandenterug = new \DateTime(); $d3t = $date3maandenterug->sub(new \DateInterval('P3M'))->format('Y-m-d'); $date6maandenverder = new \DateTime(); $d6v = $date6maandenverder->add(new \DateInterval('P6M'))->format('Y-m-d'); //haal alle kalender_evenst met evt. contract_deals op 3 maanden terug en 6 maanden vooruit // $sql = "SELECT A.*,B.description FROM calendar_events as A \n left join contract_deals B \n on A.id = B.event_id\n and A.code_title = B.code_title_current\n where \n A.user_id = {$user_id} and A.start >= '{$vandaag}' and A.start <= '{$d6v}'"; $connection = \Yii::$app->db; $mdl = $connection->createCommand($sql); $model = $mdl->queryAll(); return $this->render('mijnkalender', ['model' => $model, 'date3maandenterug' => $date3maandenterug, 'date6maandenverder' => $date6maandenverder, 'name' => $name, 'kalenderIsvan' => $kalenderIsvan, 'company' => $company, 'usermdl' => $usermdl, 'companyOntvanger' => $companyOntvanger, 'defaultdate' => $defaultdate]); } } } }