/**
  * Funcion para obtener el reporte con todos los cursos de un ciclo escolar
  * @author Rebeca Abigail
  * @param $ciclo Identificación de ciclo escolar
  */
 public function getReporteByCiclo($ciclo)
 {
     $cursos = Cursos::where('ciclo_escolar', 'like', $ciclo)->get();
     $store = \Excel::create('ReporteDeCicloEscolar_' . $ciclo, function ($excel) use(&$cursos) {
         foreach ($cursos as $curso) {
             $name_curso = strlen($curso->name) > 31 ? substr($curso->name, 0, 30) : $curso->name;
             $excel->sheet($name_curso, function ($sheet) use(&$curso) {
                 $detalle_curso = Detalle_cursos::join('users', function ($join) {
                     $join->on('users.id', '=', 'detalle_cursos.id');
                 })->join('departamentos', function ($join) {
                     $join->on('departamentos.id_departamento', '=', 'users.id_departamento');
                 })->select(['detalle_cursos.id_curso', 'users.name', 'departamentos.name AS departamento'])->where('detalle_cursos.id_curso', $curso->id_curso)->get();
                 $data = ['name_curso' => $curso->name, 'asistentes' => $detalle_curso];
                 $sheet->loadView('reporte', ['info' => $data]);
             });
         }
     })->store('xlsx', false, true);
     return response()->json($store);
 }
 public function unsuscribe($id)
 {
     $isError = false;
     try {
         DB::beginTransaction();
         $detalle_cursos = Detalle_cursos::find($id);
         $user = auth()->user();
         $curso = Cursos::find($detalle_cursos->id_curso);
         Detalle_cursos::destroy($id);
         $datos = ['name' => $user->name, 'curso_name' => $curso->name, 'fecha' => \Carbon\Carbon::now()->toDateTimeString()];
         $info = ['email' => $user->email, 'name' => $user->name];
         $this->sendEmailUnsuscribe($datos, $info);
         DB::commit();
     } catch (\Exception $e) {
         $isError = true;
         DB::rollBack();
         \Debugbar::addException($e);
     }
     if ($isError) {
         return response()->json(['success' => false, 'message' => 'Ocurrio un problema al cancelar tu inscripción.']);
     } else {
         return response()->json(['success' => true, 'message' => 'Cancelaste tu inscripción al curso correctamente.']);
     }
 }
 public function rechazar($id)
 {
     $isError = false;
     try {
         DB::beginTransaction();
         $detalle = Detalle_cursos::find($id);
         $detalle->status_aprobacion = 3;
         $detalle->save();
         $user = User::find($detalle->id);
         $curso = Cursos::find($detalle->id_curso);
         $datos = ['name' => $user->name, 'curso_name' => $curso->name, 'fecha' => $detalle->updated_at, 'status' => false];
         $info = ['email' => $user->email, 'name' => $user->name];
         $this->sendEmailEstado($datos, $info);
         DB::commit();
     } catch (\Exception $e) {
         $isError = true;
         DB::rollBack();
         \Debugbar::addException($e);
     }
     if ($isError) {
         return response()->json(['success' => false, 'message' => 'Ocurrio un problema al rechazar esta solicitud.']);
     } else {
         return response()->json(['success' => true, 'message' => 'Se ha rechazado correctamente la solicitud.']);
     }
 }