public function execute()
 {
     try {
         if (request::getInstance()->isMethod('POST') and request::getInstance()->isAjaxRequest()) {
             $id = request::getInstance()->getPost(usuarioTableClass::getNameField(usuarioTableClass::ID, true));
             //$observacion = request::getInstance()->getPost(usuarioTableClass::getNameField(usuarioTableClass::OBSERVACION, true));
             $ids = array(usuarioTableClass::ID => $id);
             $idDato = array(datosUsuarioTableClass::USUARIO_ID => $id);
             datosUsuarioTableClass::delete($idDato, true);
             usuarioTableClass::delete($ids, true);
             $this->arrayAjax = array('code' => 11, 'msg' => 'La eliminacion ha sido exitosa');
             $this->defineView('delete', 'usuario', session::getInstance()->getFormatOutput());
             log::register(i18n::__('delete'), usuarioTableClass::getNameTable());
             session::getInstance()->setSuccess(i18n::__('succesDelete', null, 'user'));
         } else {
             session::getInstance()->setError(i18n::__('errorDelete', null, 'user'));
             routing::getInstance()->redirect('usuario', 'index');
         }
         //close if
     } catch (PDOException $exc) {
         echo $exc->getMessage();
         echo '<br>';
         echo '<pre>';
         print_r($exc->getTrace());
         echo '</pre>';
     }
 }
 public function execute()
 {
     try {
         if (request::getInstance()->isMethod('POST')) {
             //                $ruta = configClass::getUrlBase() . 'objeto';
             //                $foto = $_FILES[datosUsuarioTableClass::getNameField(datosUsuarioTableClass::FOTO, true)]['tmp_name'];
             //                $nombreArchivo = $_FILES[datosUsuarioTableClass::getNameField(datosUsuarioTableClass::FOTO, true)]['name'];
             //                move_uploaded_file($foto, $ruta . "/" . $nombreArchivo);
             //                $ruta = $ruta . "/" . $nombreArchivo;
             //
             //                $dataImg = file_get_contents($foto);
             //
             //                $img = pg_escape_bytea($dataImg);
             //              echo $dataImg;
             //              exit();
             //usuario
             $id = request::getInstance()->getPost(usuarioTableClass::getNameField(usuarioTableClass::ID, true));
             $usuario = request::getInstance()->getPost(usuarioTableClass::getNameField(usuarioTableClass::USER, true));
             $password = request::getInstance()->getPost(usuarioTableClass::getNameField(usuarioTableClass::PASSWORD, true));
             $recuperar = request::getInstance()->getPost(usuarioTableClass::getNameField(usuarioTableClass::RESTAURAR_ID, true));
             $respuesta_secreta = request::getInstance()->getPost(usuarioTableClass::getNameField(usuarioTableClass::RESPUESTA_SECRETA, true));
             $idUser = array(usuarioTableClass::ID => $id);
             $data = array(usuarioTableClass::USER => $usuario, usuarioTableClass::PASSWORD => md5($password), usuarioTableClass::RESTAURAR_ID => $recuperar, usuarioTableClass::RESPUESTA_SECRETA => $respuesta_secreta);
             usuarioTableClass::update($idUser, $data);
             $dataUser = array(usuarioTableClass::USER => $usuario, usuarioTableClass::PASSWORD => md5($password), usuarioTableClass::RESTAURAR_ID => $recuperar, usuarioTableClass::RESPUESTA_SECRETA => $respuesta_secreta);
             //datos usuario
             $nombre = request::getInstance()->getPost(datosUsuarioTableClass::getNameField(datosUsuarioTableClass::NOMBRE, true));
             $apellidos = request::getInstance()->getPost(datosUsuarioTableClass::getNameField(datosUsuarioTableClass::APELLIDOS, true));
             $tipoDocumento = request::getInstance()->getPost(datosUsuarioTableClass::getNameField(datosUsuarioTableClass::TIPO_DOC, true));
             $numeroDocumento = request::getInstance()->getPost(datosUsuarioTableClass::getNameField(datosUsuarioTableClass::NUMERO_DOCUMENTO, true));
             $direccion = request::getInstance()->getPost(datosUsuarioTableClass::getNameField(datosUsuarioTableClass::DIRECCION, true));
             $idCiudad = request::getInstance()->getPost(datosUsuarioTableClass::getNameField(datosUsuarioTableClass::CIUDAD_ID, true));
             $telefono = request::getInstance()->getPost(datosUsuarioTableClass::getNameField(datosUsuarioTableClass::TELEFONO, true));
             $correo = request::getInstance()->getPost(datosUsuarioTableClass::getNameField(datosUsuarioTableClass::CORREO, true));
             $datosUsuario = array(datosUsuarioTableClass::NOMBRE => $nombre, datosUsuarioTableClass::APELLIDOS => $apellidos, datosUsuarioTableClass::TIPO_DOC => $tipoDocumento, datosUsuarioTableClass::NUMERO_DOCUMENTO => $numeroDocumento, datosUsuarioTableClass::DIRECCION => $direccion, datosUsuarioTableClass::CIUDAD_ID => $idCiudad, datosUsuarioTableClass::TELEFONO => $telefono, datosUsuarioTableClass::CORREO => $correo);
             $idData = array(datosUsuarioTableClass::USUARIO_ID => $id);
             //                usuarioTableClass::validatUpdate($usuario, $password);
             datosUsuarioTableClass::update($idData, $datosUsuario);
             usuarioTableClass::update($idUser, $dataUser);
             session::getInstance()->setSuccess(i18n::__('succesUpdate', null, 'default'));
             log::register(i18n::__('update'), usuarioTableClass::getNameTable());
             routing::getInstance()->redirect('usuario', 'indexUsuario');
         } else {
             log::register(i18n::__('update'), usuarioTableClass::getNameTable(), i18n::__('errorUpdateBitacora'));
             session::getInstance()->setError(i18n::__('errorUpdate', null, 'default'));
             routing::getInstance()->redirect('usuario', 'indexUsuario');
         }
     } catch (PDOException $exc) {
         session::getInstance()->setFlash('exc', $exc);
         routing::getInstance()->forward('shfSecurity', 'exception');
     }
 }
 public static function setRegisterLastLoginAt($id)
 {
     try {
         $sql = 'UPDATE ' . usuarioTableClass::getNameTable() . '
           SET ' . usuarioTableClass::LAST_LOGIN_AT . ' = :last_login_at
           WHERE ' . usuarioTableClass::ID . ' = :id';
         $params = array(':id' => $id, ':last_login_at' => date(config::getFormatTimestamp()));
         $answer = model::getInstance()->prepare($sql);
         $answer->execute($params);
         return true;
     } catch (PDOException $exc) {
         throw $exc;
     }
 }
 public function execute()
 {
     try {
         if (request::getInstance()->isMethod('POST')) {
             // usuario
             $usuario = request::getInstance()->getPost(usuarioTableClass::getNameField(usuarioTableClass::USER, true));
             $password = request::getInstance()->getPost(usuarioTableClass::getNameField(usuarioTableClass::PASSWORD, true));
             $repetirPassword = request::getInstance()->getPost(usuarioTableClass::getNameField(usuarioTableClass::SECOND_PASSWORD, true));
             $pregunta = request::getInstance()->getPost(usuarioTableClass::getNameField(usuarioTableClass::RESTAURAR_ID, true));
             $respuesta = request::getInstance()->getPost(usuarioTableClass::getNameField(usuarioTableClass::RESPUESTA_SECRETA, true));
             $nombreUsuario = usuarioTableClass::USER;
             //datos del usuario
             $nombre = request::getInstance()->getPost(datosUsuarioTableClass::getNameField(datosUsuarioTableClass::NOMBRE, true));
             $apellidos = request::getInstance()->getPost(datosUsuarioTableClass::getNameField(datosUsuarioTableClass::APELLIDOS, true));
             $tipoDocumento = request::getInstance()->getPost(datosUsuarioTableClass::getNameField(datosUsuarioTableClass::TIPO_DOC, true));
             $numeroDocumento = request::getInstance()->getPost(datosUsuarioTableClass::getNameField(datosUsuarioTableClass::NUMERO_DOCUMENTO, true));
             $direccion = request::getInstance()->getPost(datosUsuarioTableClass::getNameField(datosUsuarioTableClass::DIRECCION, true));
             $idCiudad = request::getInstance()->getPost(datosUsuarioTableClass::getNameField(datosUsuarioTableClass::CIUDAD_ID, true));
             $telefono = request::getInstance()->getPost(datosUsuarioTableClass::getNameField(datosUsuarioTableClass::TELEFONO, true));
             $correo = request::getInstance()->getPost(datosUsuarioTableClass::getNameField(datosUsuarioTableClass::CORREO, true));
             $credencialDefault = usuarioCredencialTableClass::CREDENCIAL_DEFAULT;
             usuarioTableClass::validatCreate($usuario, $password, $respuesta, $repetirPassword);
             //Insertar la informacion del usuario
             $data = array(usuarioTableClass::USER => $usuario, usuarioTableClass::PASSWORD => md5($password), usuarioTableClass::RESTAURAR_ID => $pregunta, usuarioTableClass::RESPUESTA_SECRETA => $respuesta);
             usuarioTableClass::insert($data);
             //obtener el ultimo registro que ha sido insertado
             $fields = array(usuarioTableClass::ID, usuarioTableClass::USER);
             $orderBy = array(usuarioTableClass::ID);
             $objUsuario = usuarioTableClass::getAll($fields, true, $orderBy, 'DESC', 1);
             $idUsuario = $objUsuario[0]->id;
             //                insertar datos usuarior
             $dataUsuario = array(datosUsuarioTableClass::USUARIO_ID => $idUsuario, datosUsuarioTableClass::NOMBRE => $nombre, datosUsuarioTableClass::APELLIDOS => $apellidos, datosUsuarioTableClass::TIPO_DOC => $tipoDocumento, datosUsuarioTableClass::NUMERO_DOCUMENTO => $numeroDocumento, datosUsuarioTableClass::DIRECCION => $direccion, datosUsuarioTableClass::CIUDAD_ID => $idCiudad, datosUsuarioTableClass::TELEFONO => $telefono, datosUsuarioTableClass::CORREO => $correo);
             datosUsuarioTableClass::insert($dataUsuario);
             //asignacion del rol default (invitado)
             $dataUsuarioCredencial = array(usuarioCredencialBaseTableClass::USUARIO_ID => $idUsuario, usuarioCredencialTableClass::CREDENCIAL_ID => $credencialDefault);
             usuarioCredencialTableClass::insert($dataUsuarioCredencial);
             session::getInstance()->setSuccess(i18n::__('succesCreate', null, 'user'));
             log::register(i18n::__('create'), usuarioTableClass::getNameTable());
             routing::getInstance()->redirect('usuario', 'indexUsuario');
         } else {
             session::getInstance()->setError(i18n::__('errorCreate', null, 'user'));
             routing::getInstance()->redirect('usuario', 'indexUsuario');
         }
     } catch (PDOException $exc) {
         session::getInstance()->setFlash('exc', $exc);
         routing::getInstance()->forward('shfSecurity', 'exception');
     }
 }
 public function execute()
 {
     try {
         $where = null;
         if (request::getInstance()->hasPost('filter')) {
             $filter = request::getInstance()->getPost('filter');
             if (isset($filter['nombre']) and $filter['nombre'] !== null and $filter['nombre'] !== '') {
                 $where[usuarioTableClass::getNameTable() . '.' . usuarioTableClass::USER] = $filter['nombre'];
             }
             //close if
             //
             //                $where[usuarioTableClass::CREATED_AT] = array(
             //                    date(config::getFormatTimestamp(), strtotime($filter['fecha_inicial'] . ' 00.00.00')),
             //                    date(config::getFormatTimestamp(), strtotime($filter['fecha_fin'] . ' 23.59.59'))
             //                );
             session::getInstance()->setAttribute('usuarioFiltersUsuario', $where);
         } elseif (session::getInstance()->hasAttribute('usuarioFiltersUsuario')) {
             $where = session::getInstance()->getAttribute('usuarioFiltersUsuario');
         }
         //close if
         $fields = array(usuarioTableClass::ID, usuarioTableClass::USER, usuarioTableClass::CREATED_AT);
         $orderBy = array(usuarioTableClass::USER);
         $page = 0;
         if (request::getInstance()->hasGet('page')) {
             $page = request::getInstance()->getGet('page') - 1;
             $page = $page * config::getRowGrid();
         }
         $f = array(usuarioTableClass::ID);
         if (request::getInstance()->hasGet('page')) {
             $this->page = request::getInstance()->getGet('page');
         } else {
             $this->page = $page;
         }
         $lines = config::getRowGrid();
         $this->cntPages = usuarioTableClass::getAllCount($f, true, $lines, $where);
         $this->objUsuarios = usuarioTableClass::getAll($fields, true, $orderBy, 'ASC', config::getRowGrid(), $page, $where);
         $this->defineView('index', 'usuario', session::getInstance()->getFormatOutput());
     } catch (PDOException $exc) {
         echo $exc->getMessage();
         echo '<br>';
         echo '<pre>';
         print_r($exc->getTrace());
         echo '</pre>';
     }
 }
 public function execute()
 {
     try {
         if (request::getInstance()->isMethod('POST') and request::getInstance()->isAjaxRequest()) {
             $id = request::getInstance()->getPost(credencialTableClass::getNameField(credencialTableClass::ID, true));
             $ids = array(credencialTableClass::ID => $id);
             credencialTableClass::delete($ids, true);
             $this->arrayAjax = array('code' => 11, 'msg' => 'La eliminacion del registro ha sido exitosa');
             $this->defineView('delete', 'credencial', session::getInstance()->getFormatOutput());
             log::register(i18n::__('delete'), usuarioTableClass::getNameTable());
             session::getInstance()->setSuccess(i18n::__('succesDelete', null, 'animal'));
         } else {
             log::register(i18n::__('delete'), credencialTableClass::getNameTable(), i18n::__('errorDeleteBitacora'));
             session::getInstance()->setError(i18n::__('errorDelete', null, 'animal'));
             routing::getInstance()->redirect('usuario', 'indexCredencial');
         }
     } catch (PDOException $exc) {
         session::getInstance()->setFlash('exc', $exc);
         routing::getInstance()->forward('shfSecurity', 'exception');
     }
 }
 public function execute()
 {
     try {
         if (request::getInstance()->isMethod('POST')) {
             $id = request::getInstance()->getPost(animalTableClass::getNameField(animalTableClass::ID, true));
             $lote = request::getInstance()->getPost(animalTableClass::getNameField(animalTableClass::LOTE_ID, true));
             $ids = array(animalTableClass::ID => $id);
             $data = array(animalTableClass::LOTE_ID => $lote);
             animalTableClass::update($ids, $data);
             session::getInstance()->setSuccess(i18n::__('succesUpdate', null, 'animal'));
             log::register(i18n::__('update'), usuarioTableClass::getNameTable());
             routing::getInstance()->redirect('animal', 'indexAnimal');
         } else {
             log::register(i18n::__('update'), usuarioTableClass::getNameTable(), i18n::__('errorUpdateBitacora'));
             session::getInstance()->setError(i18n::__('errorUpdate', null, 'animal'));
             routing::getInstance()->redirect('animal', 'indexAnimal');
         }
     } catch (PDOException $exc) {
         session::getInstance()->setFlash('exc', $exc);
         routing::getInstance()->forward('shfSecurity', 'exception');
     }
 }
 public static function getUserAndPassword($ip_address, $hash)
 {
     try {
         $sql = 'SELECT ' . usuarioTableClass::getNameField(usuarioTableClass::ID) . ' AS id_usuario,
               ' . usuarioTableClass::getNameField(usuarioTableClass::USER) . ' AS usuario,
               ' . credencialTableClass::getNameField(credencialTableClass::NOMBRE) . ' AS credencial
           FROM ' . usuarioTableClass::getNameTable() . ' INNER JOIN ' . recordarMeTableClass::getNameTable() . ' ON ' . usuarioTableClass::getNameField(usuarioTableClass::ID) . ' = ' . recordarMeTableClass::getNameField(recordarMeTableClass::USUARIO_ID) . '
                INNER JOIN ' . usuarioCredencialTableClass::getNameTable() . ' ON ' . usuarioTableClass::getNameField(usuarioTableClass::ID) . ' = ' . usuarioCredencialTableClass::getNameField(usuarioCredencialTableClass::USUARIO_ID) . '
                INNER JOIN ' . credencialTableClass::getNameTable() . ' ON ' . credencialTableClass::getNameField(credencialTableClass::ID) . ' = ' . usuarioCredencialTableClass::getNameField(usuarioCredencialTableClass::CREDENCIAL_ID) . '
           WHERE ' . recordarMeBaseTableClass::getNameField(recordarMeTableClass::IP_ADDRESS) . ' = :ip_address
           AND ' . recordarMeBaseTableClass::getNameField(recordarMeTableClass::HASH_COOKIE) . ' = :hash
           AND ' . usuarioBaseTableClass::getNameField(usuarioBaseTableClass::DELETED_AT) . ' IS NULL
           AND ' . usuarioBaseTableClass::getNameField(usuarioBaseTableClass::ACTIVED) . ' = :actived
           AND ' . credencialTableClass::getNameField(credencialTableClass::DELETED_AT) . ' IS NULL';
         $params = array(':ip_address' => $ip_address, ':hash' => $hash, ':actived' => config::getDbDriver() === 'mysql' ? 1 : 't');
         $answer = model::getInstance()->prepare($sql);
         $answer->execute($params);
         $answer = $answer->fetchAll(PDO::FETCH_OBJ);
         return count($answer) > 0 ? $answer : false;
     } catch (PDOException $exc) {
         throw $exc;
     }
 }
 public static function insert($usuario, $password, $tipo_documento, $identificacion, $nombre, $apellido, $celular, $telefono, $correo, $direccion)
 {
     $flag = false;
     if (self::notBlank($usuario) === true) {
         $flag = true;
         session::getInstance()->setFlash('inputUsuario', true);
         session::getInstance()->setError('El nombre de usuario es requerido', 'inputUsuario');
     } else {
         if (is_numeric($usuario) === true) {
             $flag = true;
             session::getInstance()->setFlash('inputUsuario', true);
             session::getInstance()->setError('El usuario no puede ser númerico', 'inputUsuario');
         } else {
             if (strlen($usuario) > \usuarioTableClass::USER_LENGTH) {
                 $flag = true;
                 session::getInstance()->setFlash('inputUsuario', true);
                 session::getInstance()->setError('El usuario digitado es mayor en cantidad de caracteres a lo permitido', 'inputUser');
             } else {
                 if (self::isUnique(\usuarioTableClass::ID, true, array(\usuarioTableClass::USER => $usuario), \usuarioTableClass::getNameTable()) === true) {
                     $flag = true;
                     session::getInstance()->setFlash('inputUsuario', true);
                     session::getInstance()->setError('El usuario digitado ya existe', 'inputUser');
                 }
             }
         }
     }
     //      ___________________________________clave____________________
     if (self::notBlank($password) === true) {
         $flag = true;
         session::getInstance()->setFlash('inputPassword', true);
         session::getInstance()->setError('El campo es obligatorio', 'inputPassword');
     }
     if (self::notBlank($tipo_documento) === true) {
         session::getInstance()->setFlash('inputTipo_documento', true);
         session::getInstance()->setError('El campo tipo de documento es obligatorio', 'inputTipo_documento');
     }
     //        ______________________________identificacion____________
     if (self::notBlank($identificacion) === true) {
         $flag = true;
         session::getInstance()->setFlash('inputIdentificacion', true);
         session::getInstance()->setError('El campo identificacion  es obligatorio', 'inputIdentificacion');
     } elseif (self::isUnique(\clienteTableClass::ID, true, array(\empleadoTableClass::IDENTIFICACION => $identificacion), \empleadoTableClass::getNameTable()) === true) {
         session::getInstance()->setFlash('inputIdentificacion', true);
         session::getInstance()->setError('El numero identificacion  ya existe en la base de datos', 'inputIdentificacion');
         $flag = true;
     }
     //        ________________________________________nombre______________________
     if (self::notBlank($nombre) === true) {
         $flag = true;
         session::getInstance()->setFlash('inputNombre', true);
         session::getInstance()->setError('El nombre de cliente es requerido', 'inputNombre');
     } else {
         if (is_numeric(request::getInstance()->getPost('inputNombre'))) {
             $flag = true;
             session::getInstance()->setFlash('inputNombre', true);
             session::getInstance()->setError('El nombre del cliente no puede ser númerico', 'inputNombre');
         } elseif (strlen($cliente) > \empleadoTableClass::NOMBRE_LENGTH) {
             session::getInstance()->setFlash('inputNombre', true);
             session::getInstance()->setError('El nombre del cliente no debe de ser suprior a ' . \empleadoTableClass::NOMBRE_LENGTH . ' caracteres', 'inputNombre');
         }
     }
     //        _____________________________________apellido____________________
     if (self::notBlank($apellido) === true) {
         $flag = true;
         session::getInstance()->setFlash('inputApellido', true);
         session::getInstance()->setError('El apellido de cliente es requerido', 'inputApellido');
     } else {
         if (is_numeric(request::getInstance()->getPost('inputApellido'))) {
             $flag = true;
             session::getInstance()->setFlash('inputApellido', true);
             session::getInstance()->setError('El apellido del cliente no puede ser númerico', 'inputApellido');
         } else {
             if (strlen(request::getInstance()->getPost('inputApellido')) > \empleadoTableClass::APELLIDO_LENGTH) {
                 $flag = true;
                 session::getInstance()->setFlash('inputApellido', true);
                 session::getInstance()->setError('El cliente digitado es mayor en cantidad de caracteres a lo permitido', 'inputApellido');
             } elseif (strlen($cliente) > \empleadoTableClass::APELLIDO_LENGTH) {
                 session::getInstance()->setFlash('inputApellido', true);
                 session::getInstance()->setError('El apellido del cliente no debe de ser suprior a ' . \empleadoTableClass::APELLIDO_LENGTH . ' caracteres', 'inputApellido');
             }
         }
     }
     //____________________________________________direccion_____________________
     $flag = TRUE;
     if (self::notBlank($direccion) === true) {
         session::getInstance()->setFlash('inputDireccion', true);
         session::getInstance()->setError('La direccion es obligatorio  por parte de la plataforma', 'inputDireccion');
     }
     //      ______________________________________telefono_________________
     $flag = TRUE;
     if (self::notBlank($telefono) === true) {
         session::getInstance()->setFlash('inputTelefono', true);
         session::getInstance()->setError('El número de telefono es requerido o cualquier otro número donde se le pueda contactar', 'inputTelefono');
         $flag = TRUE;
     } elseif (strlen($celular) > \empleadoTableClass::TELEFONO_LENGTH) {
         session::getInstance()->setFlash('inputTelefono', true);
         session::getInstance()->setError('El número de contacto no puede exceder el máximo de caracteres permitidos ' . \empleadoTableClass::ELEFONO_LENGTH . ' caracteres', 'inputTelefono');
     }
     //      ___________________________________movil_____________________
     if (self::notBlank($celular) === true) {
         $flag = TRUE;
         session::getInstance()->setFlash('inputCelular', true);
         session::getInstance()->setError('El número de celular es requerido o cualquier otro número donde se le pueda contactar', 'inputCelular');
         $flag = TRUE;
     } elseif (strlen($cliente) > \empleadoTableClass::MOVIL_LENGTH) {
         session::getInstance()->setFlash('inputCelular', true);
         session::getInstance()->setError('El número de contacto no puede exceder el máximo de caracteres permitidos ' . \empleadoTableClass::MOVIL_LENGTH . ' caracteres', 'inputCelular');
     }
     //      ____________________________________correo___________________
     $flag = TRUE;
     if (self::notBlank($correo) === true) {
         session::getInstance()->setFlash('inputCorreo', true);
         session::getInstance()->setError('El correo es obligatorio para el contacto por parte de la plataforma', 'inputCorreo');
         $flag = TRUE;
     } elseif (strlen($correo) > \empleadoTableClass::CORREO_LENGTH) {
         session::getInstance()->setFlash('inputCorreo', true);
         session::getInstance()->setError('El correo no puede exceder el máximo de caracteres permitidos ' . \empleadoTableClass::CORREO_LENGTH . ' caracteres', 'inputCorreo');
     }
     if ($flag === true) {
         //request::getInstance()->setMethod('GET');
         routing::getInstance()->forward('empleado', 'empleado');
     }
 }
 public static function getNameUsuario($id)
 {
     try {
         $sql = 'SELECT ' . usuarioTableClass::USER . ' AS usuario ' . 'FROM ' . usuarioTableClass::getNameTable() . ' ' . 'WHERE ' . usuarioTableClass::ID . ' = :id';
         $params = array(':id' => $id);
         $answer = model::getInstance()->prepare($sql);
         $answer->execute($params);
         $answer = $answer->fetchAll(PDO::FETCH_OBJ);
         return $answer[0]->usuario;
     } catch (PDOException $exc) {
         throw $exc;
     }
 }
 public static function validateInsert()
 {
     $flag = false;
     if (self::notBlank(request::getInstance()->getPost('inputUser'))) {
         $flag = true;
         session::getInstance()->setFlash('inputUser', true);
         session::getInstance()->setError('El nombre de usuario es requerido', 'inputUser');
     } else {
         if (is_numeric(request::getInstance()->getPost('inputUser'))) {
             $flag = true;
             session::getInstance()->setFlash('inputUser', true);
             session::getInstance()->setError('El usuario no puede ser númerico', 'inputUser');
         } else {
             if (strlen(request::getInstance()->getPost('inputUser')) > \usuarioTableClass::USER_LENGTH) {
                 $flag = true;
                 session::getInstance()->setFlash('inputUser', true);
                 session::getInstance()->setError('El usuario digitado es mayor en cantidad de caracteres a lo permitido', 'inputUser');
             } else {
                 if (self::isUnique(\usuarioTableClass::ID, true, array(\usuarioTableClass::USER => request::getInstance()->getPost('inputUser')), \usuarioTableClass::getNameTable())) {
                     $flag = true;
                     session::getInstance()->setFlash('inputUser', true);
                     session::getInstance()->setError('El usuario digitado ya existe', 'inputUser');
                 }
             }
         }
     }
     if (self::notBlank(request::getInstance()->getPost('inputPass1')) or self::notBlank(request::getInstance()->getPost('inputPass2'))) {
         $flag = true;
         session::getInstance()->setFlash('inputPass', true);
         session::getInstance()->setError('La contraseña es requerida', 'inputPass');
     } else {
         if (request::getInstance()->getPost('inputPass1') !== request::getInstance()->getPost('inputPass2')) {
             $flag = true;
             session::getInstance()->setFlash('inputPass', true);
             session::getInstance()->setError('Las contraseñas no coinciden', 'inputPass');
         }
     }
     if (self::notBlank(request::getInstance()->getPost('inputName'))) {
         $flag = true;
         session::getInstance()->setFlash('inputName', true);
         session::getInstance()->setError('El nombre del usuario es requerido', 'inputName');
     } else {
         if (is_numeric(request::getInstance()->getPost('inputName'))) {
             $flag = true;
             session::getInstance()->setFlash('inputName', true);
             session::getInstance()->setError('El nombre no puede ser númerico', 'inputName');
         } else {
             if (strlen(request::getInstance()->getPost('inputName')) > \datoUsuarioTableClass::NOMBRE_LENGTH) {
                 $flag = true;
                 session::getInstance()->setFlash('inputName', true);
                 session::getInstance()->setError('El nombre no puede exceder el número de caracteres permitido', 'inputName');
             }
         }
     }
     if (self::notBlank(request::getInstance()->getPost('inputLastName'))) {
         $flag = true;
         session::getInstance()->setFlash('inputLastName', true);
         session::getInstance()->setError('El apellido del usuario es requerido', 'inputLastName');
     } else {
         if (is_numeric(request::getInstance()->getPost('inputLastName'))) {
             $flag = true;
             session::getInstance()->setFlash('inputLastName', true);
             session::getInstance()->setError('El apellido no puede ser númerico', 'inputLastName');
         } else {
             if (strlen(request::getInstance()->getPost('inputLastName')) > \datoUsuarioTableClass::APELLIDOS_LENGTH) {
                 $flag = true;
                 session::getInstance()->setFlash('inputLastName', true);
                 session::getInstance()->setError('El apellido no puede exceder el número de caracteres permitido', 'inputLastName');
             }
         }
     }
     if (self::notBlank(request::getInstance()->getPost('inputMovil'))) {
         $flag = true;
         session::getInstance()->setFlash('inputMovil', true);
         session::getInstance()->setError('El número de celular es requerido o cualquier otro número donde se le pueda contactar', 'inputMovil');
     } else {
         if (strlen(request::getInstance()->getPost('inputMovil')) > \datoUsuarioTableClass::MOVIL_LENGTH) {
             $flag = true;
             session::getInstance()->setFlash('inputMovil', true);
             session::getInstance()->setError('El número de contacto no puede exceder el máximo de caracteres permitidos', 'inputMovil');
         } else {
             if (!preg_match('/^(\\d{3,3}\\-\\d{3,3}\\-\\d{4,4})|^(\\+\\d\\-\\d{3,3}\\-\\d{4,4})/', trim(request::getInstance()->getPost('inputMovil')))) {
                 $flag = true;
                 session::getInstance()->setFlash('inputMovil', true);
                 session::getInstance()->setError('El número de contacto debe cumplir uno de estos patrones: ###-###-#### o +#-###-####', 'inputMovil');
             }
         }
     }
     if (self::notBlank(request::getInstance()->getPost('inputEmail'))) {
         $flag = true;
         session::getInstance()->setFlash('inputEmail', true);
         session::getInstance()->setError('El correo es obligatorio para el contacto por parte de la plataforma', 'inputEmail');
     } else {
         if (strlen(request::getInstance()->getPost('inputEmail')) > \datoUsuarioTableClass::CORREO_LENGTH) {
             $flag = true;
             session::getInstance()->setFlash('inputEmail', true);
             session::getInstance()->setError('El correo no puede exceder el máximo de caracteres permitidos', 'inputEmail');
         } else {
             if (!preg_match("/([\\w\\.\\-_]+)?\\w+@[\\w-_]+(\\.\\w+){1,}/", trim(request::getInstance()->getPost('inputEmail')))) {
                 $flag = true;
                 session::getInstance()->setFlash('inputEmail', true);
                 session::getInstance()->setError('Por favor digite un corre válido', 'inputEmail');
             } else {
                 if (self::isUnique(\datoUsuarioTableClass::ID, true, array(\datoUsuarioTableClass::CORREO => trim(request::getInstance()->getPost('inputEmail'))), \datoUsuarioTableClass::getNameTable())) {
                     $flag = true;
                     session::getInstance()->setFlash('inputEmail', true);
                     session::getInstance()->setError('El correo digitado ya está siendo usado', 'inputEmail');
                 }
             }
         }
     }
     if (self::notBlank(request::getInstance()->getPost('inputSexo'))) {
         $flag = true;
         session::getInstance()->setFlash('inputSexo', true);
         session::getInstance()->setError('Debes selecionar un sexo', 'inputSexo');
     } else {
         if (!self::collection(trim(request::getInstance()->getPost('inputSexo')), array('t', 'f'))) {
             $flag = true;
             session::getInstance()->setFlash('inputSexo', true);
             session::getInstance()->setError('La respuesta dada no es correcta', 'inputSexo');
         }
     }
     if (self::notBlank(request::getInstance()->getPost('inputAprendiz'))) {
         $flag = true;
         session::getInstance()->setFlash('inputAprendiz', true);
         session::getInstance()->setError('Debes responder si eres un aprendiz o no', 'inputAprendiz');
     } else {
         if (!self::collection(trim(request::getInstance()->getPost('inputAprendiz')), array('true', 'false'))) {
             $flag = true;
             session::getInstance()->setFlash('inputAprendiz', true);
             session::getInstance()->setError('La respuesta dada no es correcta', 'inputAprendiz');
         }
     }
     if (request::getInstance()->hasFile('inputFile')) {
         $type = array('image/png', 'image/jpeg', 'image/jpg', 'image/gif');
         if (request::getInstance()->getFile('inputFile')['error'] !== 0) {
             $flag = true;
             session::getInstance()->setFlash('inputFile', true);
             session::getInstance()->setError('Ocurrio un error en la carga de la imágen, por favor vuelva a intentarlo', 'inputFile');
         } else {
             if (array_search(request::getInstance()->getFile('inputFile')['type'], $type) === false) {
                 $flag = true;
                 session::getInstance()->setFlash('inputFile', true);
                 session::getInstance()->setError('Solo se permiten imágenes del tipo jpg, png o gif', 'inputFile');
             } else {
                 if (request::getInstance()->getFile('inputFile')['size'] > config::getFileSizeAvatar()) {
                     $flag = true;
                     session::getInstance()->setFlash('inputFile', true);
                     session::getInstance()->setError('Solo se permiten imágenes con un tamaño máximo de 150kB', 'inputFile');
                 } else {
                     if ($flag === true) {
                         session::getInstance()->setFlash('inputFile', true);
                         session::getInstance()->setError('Debido a errores en el formulario, por favor vuelve a cargar la imagen que vas a usar', 'inputFile');
                     }
                 }
             }
         }
     }
     if ($flag === true) {
         //request::getInstance()->setMethod('GET');
         routing::getInstance()->forward('shfSecurity', 'register');
     }
 }