/**
  * Validation de l'offre de stage
  *
  * @param ValidationOffreStageRequest $request
  * @return mixed
  */
 public function postOffreStage($id, OffreStageRepository $offreStageRepository)
 {
     if ($offreStageRepository->updateSpecialitesPromotionOffre($id, Input::get('specialites'))) {
         $offre = OffreStage::find($id);
         $offre->valide = 1;
         $offre->save();
         return Redirect::back()->with('flash_success', 'L\'offre de stage a bien été validée');
     } else {
         return Redirect::back()->with('flash_danger', 'L\'offre de stage n\'a pas pu être validée');
     }
 }
 /**
  * envoyer l'email avec cv ou le lm à l'adress du contact
  *
  * @param $id_offre
  * @return mixed
  */
 public function envoyerPostulerEmail($id_offre)
 {
     $cv = Input::file('cv');
     $lm = Input::file('lm');
     if ($cv == null && $lm == null) {
         return Redirect::back()->with('flash_error', 'Vous devez importer au moins un document!!');
     }
     $etudiant_id = Auth::user()->user->id;
     $candidatures_id = DB::table('etudiant_offre_stage')->where('offre_stage_id', $id_offre)->lists('etudiant_id');
     //si l'etudiant a déjà postulé sur cette offre de stage
     if (in_array($etudiant_id, $candidatures_id)) {
         return Redirect::refresh()->with('flash_error', 'Vous avez déjà postulé sur cette offre de stage!!');
     }
     $this->ajouterEtudiantCommeCandidature($id_offre);
     $etudiant = User::where('user_type', 'App\\Etudiant')->where('user_id', $etudiant_id)->first();
     $etudiant_name = $etudiant->name;
     $etudiant_email = $etudiant->email;
     $offre = OffreStage::find($id_offre);
     $user_entreprise = User::where('user_type', 'App\\Entreprise')->where('user_id', $offre->entreprise_id)->first();
     $entreprise_name = $user_entreprise->name;
     $contact_email = $offre->email;
     $this->envoyerMail($etudiant_name, $etudiant_email, $entreprise_name, $contact_email, $cv, $lm);
     return Redirect::back()->with('flash_success', 'Votre email de candidature à été envoyé !');
 }
 /**
  * fait pourvoir une offre de stage par l'etudiant
  * @param $id_offre
  * @return mixed
  */
 public function pourvoirOffreStage($id_offre)
 {
     $offre = OffreStage::find($id_offre);
     $offre->stagiaire_id = Auth::user()->user->id;
     $offre->save();
     return Redirect::back()->with('flash_success', 'pourvoir de loffre de stage enregistré!');
 }
 public function run()
 {
     DB::table('offre_stages')->delete();
     OffreStage::create(['entreprise_id' => '1', 'title' => 'Developpeur en Java chez I3S', 'duree' => '2-6 mois', 'description' => 'offre stage: competance demande Java', 'nom_contact' => 'M.Françoi', 'email' => '*****@*****.**', 'tel' => '0889876755', 'horaire' => '35h']);
     OffreStage::create(['entreprise_id' => '1', 'title' => 'Developpeur en C++ chez Inria', 'duree' => '2-6 mois', 'description' => 'experiences de 3ans de developpement en C++', 'nom_contact' => 'M.Françoi', 'email' => '*****@*****.**', 'tel' => '0234565432', 'horaire' => '35h']);
 }
 /**
  * Remove the specified resource from storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function destroy($id)
 {
     $offre = OffreStage::find($id);
     return $offre->delete();
 }
 /**
  * renvoyer information concernant un stage
  *
  * @param $id id de l'entreprise a laquelle est ratachee l'offre
  * @return mixed
  */
 public function getInfosStage($id)
 {
     return OffreStage::leftJoin('feedbacks', 'feedbacks.id', '=', 'offre_stages.feedback_id')->leftJoin('users', 'users.user_id', '=', 'offre_stages.stagiaire_id')->where('entreprise_id', $id)->where('users.user_type', 'App\\Etudiant')->select('feedbacks.titre', 'feedbacks.contenu', 'feedbacks.recrutement_feedback', 'feedbacks.isOuvert', 'users.name', 'users.email')->get();
 }