/**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function searchOlAttendee($params)
 {
     $query = OlAttendees::find();
     // add conditions that should always apply here
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     $this->load($params);
     if (!$this->validate()) {
         // uncomment the following line if you do not want to return any records when validation fails
         // $query->where('0=1');
         return $dataProvider;
     }
     // grid filtering conditions
     $query->andFilterWhere(['id' => $this->id, 'user_type_id' => $this->user_type_id, 'is_active' => 1]);
     $query->andFilterWhere(['like', 'ol_bio', $this->ol_bio])->andFilterWhere(['like', 'ol_phone_no', $this->ol_phone_no])->andFilterWhere(['like', 'ol_email', $this->ol_email]);
     $query->andFilterWhere(['like', 'last_name', $this->name]);
     $query->orFilterWhere(['like', 'first_name', $this->name]);
     $query->orderBy('last_name asc');
     return $dataProvider;
 }
}
if (count($modelsAttendees) == 0) {
    $modelsAttendees = [new \backend\models\MeetingSchedules()];
}
if (count($modelsOlAttendees) == 0) {
    $modelsOlAttendees = [new \backend\models\MeetingSchedules()];
}
//$model1 = new \backend\models\SdaSchedules();
$model1 = new \backend\models\MeetingSchedules();
$request = Yii::$app->request;
$id = $request->get('id');
$controller = Yii::$app->controller->id;
$action = Yii::$app->controller->action->id;
$congid = $model->congress_id;
$data = AmgenContactList::find()->select(['Name as value'])->asArray()->all();
$olattendees = OlAttendees::find()->select(['name as value'])->asArray()->all();
?>




<div class="meeting-details-form">
    <div class="btn-group" role="group" aria-label="First group" style="width:33%;margin-left: 34px;">

        <?php 
echo Html::a('  <button class="btn_booths float_left active " type="button">Congress Schedule</button>', ['sda/index', 'id' => $congid], ['class' => 'profile-link']);
?>

    </div>
    <?php 
$form = ActiveForm::begin(['id' => $model->formName(), 'options' => ['enctype' => 'multipart/form-data', 'class' => 'form-inline'], 'errorSummaryCssClass' => 'error-summary alert alert-danger', 'scrollToError' => false]);
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getOlAttendee()
 {
     return $this->hasOne(OlAttendees::className(), ['id' => 'ol_attendee_id']);
 }
 /**
  * Finds the OlAttendees model based on its primary key value.
  * If the model is not found, a 404 HTTP exception will be thrown.
  * @param integer $id
  * @return OlAttendees the loaded model
  * @throws NotFoundHttpException if the model cannot be found
  */
 protected function findModel($id)
 {
     if (($model = OlAttendees::findOne($id)) !== null) {
         return $model;
     } else {
         throw new NotFoundHttpException('The requested page does not exist.');
     }
 }
 /**
  * Uploads ol engagement data in CSV format
  * @return mixed
  */
 public function actionOlupload()
 {
     $model = new Olform();
     $congress = Yii::$app->getRequest()->getQueryParam('congress');
     if ($model->load(Yii::$app->request->post())) {
         $row = 1;
         $model->csvfile = UploadedFile::getInstance($model, 'csvfile');
         $time = time();
         $model->csvfile->saveAs('csv/' . $time . '.' . $model->csvfile->extension);
         $model->csvfile = 'csv/' . $time . '.' . $model->csvfile->extension;
         $requiredHeaders = array('Title', 'Meeting Type', 'Date', 'Start Time', 'End Time', 'Location', 'Amgen attendees', 'OL attendees', 'Commercial/Medical/Joint', 'Joint Meeting Approval Received', 'Restricted State Rules', 'Consultant', 'Catering', 'Notes');
         $f = fopen($model->csvfile, 'r');
         $firstLine = fgets($f);
         //get first line of csv file
         fclose($f);
         $foundHeaders = array_map('trim', str_getcsv(trim($firstLine), ',', '"'));
         //parse to array
         $handle = fopen($model->csvfile, "r");
         if ($foundHeaders == $requiredHeaders) {
             while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
                 $approval = 0;
                 $rsr = 0;
                 $consultant = 0;
                 $row++;
                 $eventtype = \backend\models\MeetingTypes::find()->where(['type' => $data[1]])->one();
                 $eventtype = isset($eventtype['id']) ? $eventtype['id'] : '4';
                 $profile = OlProfiles::find()->where(['name' => $data[8]])->one();
                 $profiletype = isset($profile['id']) ? $profile['id'] : '1';
                 if ($data[9] == "Yes") {
                     $approval = 1;
                 }
                 if ($data[10] == "Yes") {
                     $rsr = 1;
                 }
                 if ($data[11] == "Yes") {
                     $consultant = 1;
                 }
                 if ($row == 2) {
                     //ignoring
                 } else {
                     //Save the row
                     $meetingdetails = new \backend\models\MeetingDetails();
                     $meetingdetails->congress_id = $congress;
                     $meetingdetails->title = $data[0];
                     $meetingdetails->date = date("Y-m-d H:i:s", strtotime($data[2]));
                     $meetingdetails->start_time = $data[3];
                     $meetingdetails->stop_time = $data[4];
                     $meetingdetails->location = $data[5];
                     $meetingdetails->event_type = $eventtype;
                     if ($eventtype == "3") {
                         $meetingdetails->ol_profile_id = $profiletype;
                         $meetingdetails->rsr = $rsr;
                         $meetingdetails->meeting_approval = $approval;
                         $meetingdetails->ol_consultant = $consultant;
                         $meetingdetails->ol_catering = $data[12];
                         $meetingdetails->notes = $data[13];
                     }
                     try {
                         $meetingdetails->save();
                         $amgenatten = explode(',', $data[6]);
                         $olattendee = explode(',', $data[7]);
                         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) {
                                         $olengagement = new OlEngagement();
                                         $olengagement->congress_id = $congress;
                                         $olengagement->meeting_id = $meetingdetails->id;
                                         $olengagement->title = $data[0];
                                         $olengagement->ol_date = date("Y-m-d H:i:s", strtotime($data[2]));
                                         $olengagement->ol_start_time = $data[3];
                                         $olengagement->ol_end_time = $data[4];
                                         $olengagement->location = $data[5];
                                         $olengagement->attendee_id = $attendeeexits->id;
                                         $olengagement->ol_attendee_id = '';
                                         $olengagement->ol_profile_id = $profiletype;
                                         $olengagement->meeting_approval = $approval;
                                         $olengagement->rsr = $rsr;
                                         $olengagement->ol_consultant = $consultant;
                                         $olengagement->ol_catering = $data[12];
                                         $olengagement->notes = $data[13];
                                         $olengagement->save(TRUE);
                                         try {
                                             $olengagement->save(FALSE);
                                         } catch (\Exception $exc) {
                                             echo $exc->getTraceAsString();
                                         }
                                         $meetingschedule = new \backend\models\MeetingSchedules();
                                         $meetingschedule->congress_id = $congress;
                                         $meetingschedule->meeting_id = $meetingdetails->id;
                                         $meetingschedule->attendee_id = $attendeeexits->id;
                                         $meetingschedule->ol_attendee_id = "";
                                         $meetingschedule->save(FALSE);
                                     }
                                 }
                             }
                         }
                         if (count($olattendee) > 0) {
                             foreach ($olattendee as $value) {
                                 $value = trim($value);
                                 $oladata = explode(' ', $value);
                                 if (!empty($oladata[0]) && !empty($oladata[1])) {
                                     $olattendeeexits = \backend\models\OlAttendees::find()->where(['first_name' => $oladata[0], 'last_name' => $oladata[1]])->one();
                                     if ($olattendeeexits) {
                                         $olengagement = new OlEngagement();
                                         $olengagement->congress_id = $congress;
                                         $olengagement->meeting_id = $meetingdetails->id;
                                         $olengagement->title = $data[0];
                                         $olengagement->ol_date = date("Y-m-d H:i:s", strtotime($data[2]));
                                         $olengagement->ol_start_time = $data[3];
                                         $olengagement->ol_end_time = $data[4];
                                         $olengagement->location = $data[5];
                                         $olengagement->attendee_id = '';
                                         $olengagement->ol_attendee_id = $olattendeeexits->id;
                                         $olengagement->ol_profile_id = $profiletype;
                                         $olengagement->meeting_approval = $approval;
                                         $olengagement->rsr = $rsr;
                                         $olengagement->ol_consultant = $consultant;
                                         $olengagement->ol_catering = $data[12];
                                         $olengagement->notes = $data[13];
                                         $olengagement->save(TRUE);
                                         try {
                                             $olengagement->save(FALSE);
                                         } catch (Exception $exc) {
                                             echo $exc->getTraceAsString();
                                         }
                                         $meetingschedule = new \backend\models\MeetingSchedules();
                                         $meetingschedule->congress_id = $congress;
                                         $meetingschedule->meeting_id = $meetingdetails->id;
                                         $meetingschedule->attendee_id = '';
                                         $meetingschedule->ol_attendee_id = $olattendeeexits->id;
                                         $meetingschedule->save(FALSE);
                                     }
                                 }
                             }
                         }
                     } catch (Exception $exc) {
                         echo $exc->getTraceAsString();
                     }
                 }
             }
             Yii::$app->getSession()->setFlash('success', 'All OL  is Uploaded Successfully');
         } else {
             Yii::$app->getSession()->setFlash('error', 'CSV is in Incorrect format');
         }
         fclose($handle);
         $this->redirect(['meeting/index', 'id' => $congress]);
     } else {
         return $this->render('csvupload', ['model' => $model]);
     }
 }
 /**
  * Get ol attendee details by his name
  */
 public function actionOldata()
 {
     $tm = $_REQUEST['term'];
     $olattendees = OlAttendees::find()->select(['id as value', new \yii\db\Expression("CONCAT(`last_name` ,' ', `first_name`) as label")])->where('last_name LIKE :query')->andWhere(['is_active' => '1'])->addParams([':query' => "{$tm}%"])->orderBy(['last_name' => SORT_DESC])->asArray()->all();
     echo json_encode($olattendees);
 }