public function store()
 {
     $rules = array('nombres' => 'required', 'apellido_pat' => 'required', 'apellido_mat' => 'required', 'dni' => 'required', 'fecha_nacimiento' => 'required', 'email' => 'required', 'idperiodo_pagos' => 'required');
     $validator = \Validator::make(Input::all(), $rules);
     if ($validator->passes()) {
         $prepadrino = new \Prepadrino();
         $prepadrino->nombres = Input::get('nombres');
         $prepadrino->apellido_pat = Input::get('apellido_pat');
         $prepadrino->apellido_mat = Input::get('apellido_mat');
         $prepadrino->dni = Input::get('dni');
         $prepadrino->fecha_nacimiento = date('Y-m-d', strtotime(Input::get('fecha_nacimiento')));
         $prepadrino->email = Input::get('email');
         $prepadrino->como_se_entero = Input::get('como_se_entero_del_programa');
         $prepadrino->idperiodo_pagos = Input::get('idperiodo_pagos');
         $prepadrino->telefono = Input::get('telefono');
         $prepadrino->celular = Input::get('celular');
         $prepadrino->direccion = Input::get('direccion');
         $prepadrino->save();
         return Response::json(['success' => 1], 200);
     } else {
         return Response::json($validator->messages(), 200);
     }
 }
 public function home()
 {
     if (Auth::check()) {
         $data["inside_url"] = Config::get('app.inside_url');
         $data["user"] = Session::get('user');
         $data["permisos"] = Session::get('permisos');
         $data["periodo_actual"] = Periodo::getPeriodoActual()->get();
         $data["usuario_ya_inscrito"] = true;
         if (!$data["periodo_actual"]->isEmpty()) {
             $data["periodo_actual"] = $data["periodo_actual"][0];
             $usuario_ya_existe = UsersPeriodo::getUsersPeriodoByUserXPeriodo($data["user"]->id, $data["periodo_actual"]->idperiodos)->get();
             if ($usuario_ya_existe->isEmpty()) {
                 $data["usuario_ya_inscrito"] = false;
             }
         } else {
             $data["periodo_actual"] = array();
         }
         if (in_array('side_aprobar_padrinos', $data["permisos"])) {
             $data["prepadrinos"] = Prepadrino::all()->count();
         }
         if (in_array('side_listar_convocatorias', $data["permisos"])) {
             $periodo_actual = Periodo::getPeriodoActual()->get();
             if ($periodo_actual->isEmpty()) {
                 $data["postulantes"] = 0;
                 $data["idperiodos"] = null;
             } else {
                 $aprobacion = null;
                 $periodo_actual = $periodo_actual[0];
                 $data["postulantes"] = PostulantesPeriodo::getPostulantesPorPeriodoFase($periodo_actual->idperiodos, 1, $aprobacion)->get()->count();
                 $data["idperiodos"] = $periodo_actual->idperiodos;
             }
         }
         if (in_array('side_aprobar_colegios', $data["permisos"])) {
             $data["precolegios"] = Precolegio::all()->count();
         }
         if (in_array('side_listar_usuarios', $data["permisos"])) {
             $data["usuarios"] = User::all()->count();
         }
         if (in_array('side_mis_eventos', $data["permisos"])) {
             return Redirect::to('/eventos/mis_eventos');
         }
         return View::make('dashboard/dashboard', $data);
     } else {
         return View::make('error/error');
     }
 }
 public function aprobar_prepadrino_ajax()
 {
     if (Auth::check()) {
         $data["inside_url"] = Config::get('app.inside_url');
         $data["user"] = Session::get('user');
         $data["permisos"] = Session::get('permisos');
         if (in_array('side_aprobar_padrinos', $data["permisos"])) {
             $selected_ids = Input::get('selected_id');
             foreach ($selected_ids as $selected_id) {
                 $prepadrino = Prepadrino::find($selected_id);
                 if ($prepadrino) {
                     //Primero creo ala persona
                     $persona = new Persona();
                     $persona->nombres = $prepadrino->nombres;
                     $persona->apellido_pat = $prepadrino->apellido_pat;
                     $persona->apellido_mat = $prepadrino->apellido_mat;
                     $persona->fecha_nacimiento = $prepadrino->fecha_nacimiento;
                     $persona->direccion = $prepadrino->direccion;
                     $persona->telefono = $prepadrino->telefono;
                     $persona->celular = $prepadrino->celular;
                     $persona->save();
                     // Creo al usuario y le asigno su información de persona
                     $password = Str::random(8);
                     $user = new User();
                     $user->num_documento = $prepadrino->dni;
                     $user->password = Hash::make($password);
                     $user->idtipo_identificacion = 1;
                     $user->email = $prepadrino->email;
                     $user->idpersona = $persona->idpersonas;
                     $user->auth_token = Str::random(32);
                     $user->save();
                     //Registro perfil padrino
                     $user_perfil = new UsersPerfil();
                     $user_perfil->idperfiles = 4;
                     $user_perfil->idusers = $user->id;
                     $user_perfil->save();
                     //Regisro al padrino
                     $padrino = new Padrino();
                     $padrino->como_se_entero = $prepadrino->como_se_entero;
                     $padrino->idusers = $user->id;
                     $padrino->idperiodo_pagos = $prepadrino->idperiodo_pagos;
                     $padrino->idresponsable = $data["user"]->id;
                     $padrino->save();
                     $descripcion_log = "Se aprobó al padrino con id {{$padrino->idpadrinos}}";
                     Helpers::registrarLog(3, $descripcion_log);
                     //Generacion de Calendario de Pagos
                     $periodo_pago = PeriodoPago::find($padrino->idperiodo_pagos);
                     if ($periodo_pago) {
                         $numero_pagos = $periodo_pago->numero_pagos;
                         $fecha_vencimiento = date('Y-m-d', strtotime($padrino->created_at));
                         $fecha_vencimiento = date('Y-m-t', strtotime($fecha_vencimiento . '+ 1 days'));
                         for ($indice = 1; $indice <= $numero_pagos; $indice++) {
                             $calendario_pago = new CalendarioPago();
                             $calendario_pago->vencimiento = $fecha_vencimiento;
                             $calendario_pago->num_cuota = $indice;
                             //$calendario_pago->aprobacion = 0;
                             $calendario_pago->idpadrinos = $padrino->idpadrinos;
                             $calendario_pago->monto = 360 / $numero_pagos;
                             $calendario_pago->save();
                             for ($offset_mes = 1; $offset_mes <= 12 / $numero_pagos; $offset_mes++) {
                                 $fecha_vencimiento = date('Y-m-t', strtotime($fecha_vencimiento . '+ 1 days'));
                             }
                         }
                         $descripcion_log = "Se creó el calendario de pagos para el padrino con id {{$padrino->idpadrinos}}";
                         Helpers::registrarLog(3, $descripcion_log);
                     }
                     //Borrado logico del prepadrino
                     $prepadrino->delete();
                     Mail::send('emails.userRegistration', array('user' => $user, 'persona' => $persona, 'password' => $password), function ($message) use($user, $persona) {
                         $message->to($user->email, $persona->nombres)->subject('Registro de nuevo padrino');
                     });
                 }
             }
             return Response::json(array('success' => true, 'prepadrino_data' => $prepadrino), 200);
         } else {
             return Response::json(array('success' => false), 200);
         }
     } else {
         return Response::json(array('success' => false), 200);
     }
 }