/**
  * 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]);
     }
 }
 /**
  * Add meeting to user's schedule
  */
 public function actionAddmeetingschedule()
 {
     $connection = Yii::$app->db;
     $meeting = new \backend\models\MeetingSchedules();
     if (Yii::$app->request->post()) {
         $value = \Yii::$app->request->post();
         $congress = $value['congress'];
         $meetid = $value['meeting'];
         $attendee = \backend\models\User::findOne($value['userid']);
         if ($attendee) {
             $check = $meeting->findAll(['congress_id' => $congress, 'meeting_id' => $meetid, 'attendee_id' => $attendee->attendee_id]);
             if (!$check) {
                 $meeting->congress_id = $congress;
                 $meeting->meeting_id = $meetid;
                 $meeting->attendee_id = $attendee->attendee_id;
                 if ($meeting->save(FALSE)) {
                     echo "Meeting added successfully";
                 }
             } else {
                 echo "Meeting is already added for this Attendee";
             }
         } else {
             echo "Attendee is  not found in Amgen Contact List";
         }
     }
 }