/**
  * Creates a new model.
  * If creation is successful, the browser will be redirected to the 'view' page.
  */
 public function actionCreate()
 {
     $this->updateInfo();
     $model = new AcademicYear();
     $model->student_id = $this->currentUser->id;
     // Uncomment the following line if AJAX validation is needed
     // $this->performAjaxValidation($model);
     if (isset($_POST['AcademicYear'])) {
         $model->attributes = $_POST['AcademicYear'];
         if ($model->save()) {
             $this->redirect('index.php');
         }
     }
     $this->render('create', array('model' => $model));
 }
 public function create_academic_year()
 {
     if (Auth::check()) {
         $data["inside_url"] = Config::get('app.inside_url');
         $data["user"] = Session::get('user');
         $data["actions"] = Session::get('actions');
         if (in_array('side_nuevo_anho_escolar', $data["actions"])) {
             // Validate the info, create rules for the inputs
             $attributes = array('name' => 'Nombre del Año escolar', 'initial_date' => 'Fecha de Inicio', 'final_date' => 'Fecha de Fin');
             $messages = array();
             $rules = array('name' => 'required|alpha_num_dash|min:2|max:45|unique:academic_years,name,NULL,id,deleted_at,NULL', 'initial_date' => 'required', 'final_date' => 'required');
             // Run the validation rules on the inputs from the form
             $validator = Validator::make(Input::all(), $rules, $messages, $attributes);
             // If the validator fails, redirect back to the form
             if ($validator->fails()) {
                 return Redirect::to('academic_years/new_academic_year')->withErrors($validator)->withInput(Input::all());
             } else {
                 $initial_date = date('Y-m-d', strtotime(Input::get('initial_date')));
                 $final_date = date('Y-m-d', strtotime(Input::get('final_date')));
                 if ($initial_date < $final_date) {
                     //$initial_date_intersection = AcademicYear::getAcademicYearsIntersected($initial_date)->get();
                     //$final_date_intersection = AcademicYear::getAcademicYearsIntersected($final_date)->get();
                     //if($initial_date_intersection->isEmpty() && $final_date_intersection->isEmpty()){
                     if (AcademicYear::verifyAcademicYearsIntersection($initial_date, $final_date)) {
                         $academic_year = new AcademicYear();
                         $academic_year->name = Input::get('name');
                         $academic_year->initial_date = $initial_date;
                         $academic_year->final_date = $final_date;
                         $academic_year->save();
                         Session::flash('message', 'Se creó correctamente el Año escolar.');
                         // Llamo a la función para registrar el log de auditoria
                         $log_description = "Se creó el Año escolar con id: {{$academic_year->id}}";
                         Helpers::registerLog(3, $log_description);
                         // crear las carpetas
                         $academic_year->dir_name = Str::random(8) . $academic_year->id;
                         $academic_year->save();
                         File::makeDirectory('files/' . $academic_year->dir_name);
                         File::makeDirectory('files/' . $academic_year->dir_name . '/enrollments');
                         return Redirect::to('academic_years/list_academic_years');
                     } else {
                         Session::flash('error', 'Las fechas de inicio o fin se intersectan con las fechas de otro año escolar.');
                         return Redirect::to('academic_years/new_academic_year')->withInput(Input::all());
                     }
                 } else {
                     Session::flash('error', 'La Fecha de Inicio debe ser menor a la Fecha de Fin.');
                     return Redirect::to('academic_years/new_academic_year')->withInput(Input::all());
                 }
             }
         } else {
             // Llamo a la función para registrar el log de auditoria
             $log_description = "Se intentó acceder a la ruta '" . Request::path() . "' por el método '" . Request::method() . "'";
             Helpers::registerLog(10, $log_description);
             Session::flash('error', 'Usted no tiene permisos para realizar dicha acción.');
             return Redirect::to('/dashboard');
         }
     } else {
         return View::make('error/error');
     }
 }