/** * Ability to add sda in schedule */ public function actionAddsda() { $sdaattendee = new SdaSchedules(); if (Yii::$app->request->post()) { $value = \Yii::$app->request->post(); $userid = User::findOne(['id' => $value['userid']]); if ($userid) { $sdaid = $value['sdaid']; $congress = $value['congress']; $sdaattendee->attendee_id = $userid->attendee_id; $sdaattendee->sda_id = $sdaid; $sdaattendee->congress_id = $congress; $checksdaattendee = SdaSchedules::findOne(['attendee_id' => $userid->attendee_id, 'sda_id' => $sdaid, 'congress_id' => $congress]); if ($checksdaattendee) { echo "Attendee is already assigned for SDA Congress"; } else { try { $sdaattendee->save(false); echo "SDA Added Successfully"; } catch (Exception $exc) { echo $sdaattendee->getErrors(); } } } else { echo "User is not exist in Contect List"; } } }
/** * Creates a new SdaSchedules model. * If creation is successful, the browser will be redirected to the 'view' page. * @return mixed */ public function actionCreate() { $model = new SdaSchedules(); if ($model->load(Yii::$app->request->post()) && $model->save()) { return $this->redirect(['view', 'id' => $model->id]); } else { return $this->render('create', ['model' => $model]); } }
/** * Import SDA in CSV format * @return mixed */ public function actionExcel() { $model = new Sda(); if ($model->load(Yii::$app->request->post())) { $row = 1; $congid = $_POST['Sda']['id']; $model->fileName = UploadedFile::getInstance($model, 'fileName'); $time = time(); $model->fileName->saveAs('csv/' . $time . '.' . $model->fileName->extension); $model->fileName = 'csv/' . $time . '.' . $model->fileName->extension; $requiredHeaders = array('Title', 'Abstract #', 'Priority', 'Abstract', 'Assigned to', 'Date', 'Product', 'Session Start Time', 'Session End Time', 'Presentation Start Time', 'Presentation End Time', 'Presenter', 'SDA type', 'Location', 'Category', 'Session id', 'Session #', 'Authors', 'Company', 'Team', 'Link to Poster', 'Poster Board Number', 'Presentation Number'); $f = fopen($model->fileName, 'r'); $firstLine = fgets($f); //get first line of csv file fclose($f); $foundHeaders = array_map('trim', str_getcsv(trim($firstLine), ',', '"')); //parse to array $result = array_diff_assoc($foundHeaders, $requiredHeaders); $csverrormessage = implode(",", $result); if ($foundHeaders !== $requiredHeaders) { \Yii::$app->getSession()->setFlash('error', 'CSV is in incorrect for ' . $csverrormessage . ' Column'); } else { $handle = fopen($model->fileName, "r"); while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { $row++; // Getting Product id $product = \backend\models\Products::find()->where(['name' => $data[6]])->one(); $product = isset($product['id']) ? $product['id'] : ''; // Getting Priority ID $priority_name = SdaPriority::find()->where(['priority_name' => $data[2]])->one(); $priority_name = isset($priority_name['id']) ? $priority_name['id'] : '3'; // Getting Sda Type ID $sdatype = SdaTypes::find()->where(['sda_name' => $data[12]])->one(); $sdatype = isset($sdatype['id']) ? $sdatype['id'] : '9'; $cmp = CompanyDetails::find()->where(['name' => $data[18]])->one(); $cmp = isset($cmp['id']) ? $cmp['id'] : '2'; if ($row == 2) { //ignoring } else { $title = Yii::$app->db->quoteValue($data[0]); $abstracthash = Yii::$app->db->quoteValue($data[1]); $abstract = Yii::$app->db->quoteValue($data[3]); $amgenatten = explode(',', $data[4]); $date = Yii::$app->db->quoteValue(date("Y-m-d H:i:s", strtotime($data[5]))); $prod = Yii::$app->db->quoteValue($product); if (!empty($data[7])) { $sessiostart = Yii::$app->db->quoteValue(date("H:i:s", strtotime($data[7]))); } else { $sessiostart = "null"; } if (!empty($data[8])) { $sessionend = Yii::$app->db->quoteValue(date("H:i:s", strtotime($data[8]))); } else { $sessionend = "null"; } if (!empty($data[9])) { $presentationstart = Yii::$app->db->quoteValue(date("H:i:s", strtotime($data[9]))); } else { $presentationstart = "null"; } if (!empty($data[10])) { $presentationend = Yii::$app->db->quoteValue(date("H:i:s", strtotime($data[10]))); } else { $presentationend = "null"; } $presenter = Yii::$app->db->quoteValue($data[11]); $location = Yii::$app->db->quoteValue($data[13]); $category = Yii::$app->db->quoteValue($data[14]); $session = Yii::$app->db->quoteValue($data[15]); $sessionhash = Yii::$app->db->quoteValue($data[16]); $authors = Yii::$app->db->quoteValue($data[17]); $team = Yii::$app->db->quoteValue($data[19]); $linktoposter = Yii::$app->db->quoteValue($data[20]); $posterboard = Yii::$app->db->quoteValue($data[21]); $presentationno = Yii::$app->db->quoteValue($data[22]); if ($title) { $sql = "insert into sda(\n congress_id,\n title,\n abstract_id,\n priority,\n abstract,\n date,\n session_start_time,\n session_end_time,\n presentation_start_time,\n presentation_end_time,\n presenter,\n sda_type_id,\n product,\n location,\n category,\n session_id,\n session,\n authors,\n company_id,\n team,\n link_to_poster,\n poster_board_no,\n presentation_no\n )" . " values (" . "'{$congid}'," . "{$title}," . "{$abstracthash}," . "'{$priority_name}'," . "{$abstract}," . "{$date}," . "{$sessiostart}," . "{$sessionend}," . "{$presentationstart}," . "{$presentationend}," . "{$presenter}," . "'{$sdatype}'," . "'{$product}'," . "{$location}," . "{$category}," . "{$session}," . "{$sessionhash}," . "{$authors}," . "'{$cmp}'," . "{$team}," . "{$linktoposter}," . "{$posterboard}," . "{$presentationno})"; //save the data Yii::$app->db->createCommand($sql)->execute(); $sdaId = Yii::$app->db->getLastInsertID(); if (count($amgenatten) > 0) { foreach ($amgenatten as $value) { $value = trim($value); $amgenattendee = explode(' ', $value); if (!empty($amgenattendee[0]) && !empty($amgenattendee[1])) { $attendeeexits = \backend\models\AmgenContactList::find()->where(['first_name' => $amgenattendee[0], 'last_name' => $amgenattendee[1]])->one(); if ($attendeeexits) { $modelSdaSchedule = new \backend\models\SdaSchedules(); $modelSdaSchedule->sda_id = $sdaId; $modelSdaSchedule->congress_id = $congid; $modelSdaSchedule->attendee_id = $attendeeexits->id; $modelSdaSchedule->assigned = 0; $modelSdaSchedule->save(false); } } } } } } } fclose($handle); Yii::$app->getSession()->setFlash('success', 'All SDA is Uploaded Successfully'); } } return $this->render('excel', ['model' => $model]); }