db->connect()->prepare("SELECT id_persona, correo FROM persona WHERE correo=:correo"); $sql->execute(['correo' =>$correo]); $nombre=$sql->fetch(); if($correo==$nombre['correo']){ return $nombre['correo']; } return false; } catch(PDOException $e){ return false; } } public function existeI($cedula){ try{ //var_dump($cedula); $sql = $this->db->connect()->prepare("SELECT documento_identidad_tipo.descripcion AS tipo_documento,identificacion FROM persona_nacionalidad,documento_identidad_tipo WHERE persona_nacionalidad.id_documento_identidad_tipo=documento_identidad_tipo.id_documento_identidad_tipo AND identificacion=:identificacion"); $sql->execute(['identificacion' =>$cedula]); $nombre=$sql->fetch(); if($cedula==$nombre['identificacion']){ return $nombre['tipo_documento']." ".$nombre['identificacion']; } return false; } catch(PDOException $e){ return false; } } public function get(){ $items=[]; try{ $query=$this->db->connect()->query("SELECT t1.id_usuario, usuario, t1.id_perfil, t3.descripcion as perfil, t1.id_persona, primer_nombre, primer_apellido, t4.id_documento_identidad_tipo as id_tipo_documento, t5.descripcion as tipo_documento, identificacion, t1.estatus from usuario as t1, persona as t2, perfil as t3, persona_nacionalidad as t4, documento_identidad_tipo as t5 where t1.id_persona=t2.id_persona and t1.id_perfil=t3.id_perfil and t4.id_persona=t2.id_persona and t4.id_documento_identidad_tipo=t5.id_documento_identidad_tipo and identificacion!=12345678 "); while($row=$query->fetch()){ $item=new Arcu(); $item->id_usuario=$row['id_usuario']; $item->usuario=$row['usuario']; $item->estatus=$row['estatus']; $item->id_perfil=$row['id_perfil']; $item->perfil=$row['perfil']; $item->id_persona=$row['id_persona']; $item->primer_nombre=$row['primer_nombre']; $item->primer_apellido=$row['primer_apellido']; $item->id_tipo_documento=$row['id_tipo_documento']; $item->tipo_documento=$row['tipo_documento']; $item->identificacion=$row['identificacion']; array_push($items,$item); } return $items; }catch(PDOException $e){ return false; } } public function getbyID($id){ try{ $query=$this->db->connect()->prepare("SELECT t1.id_usuario, usuario, clave, fecha, t1.estatus, t1.id_perfil, t3.descripcion as perfil, t1.id_persona, primer_nombre, segundo_nombre, primer_apellido, segundo_apellido, correo, telefono, genero, t2.id_ciudad, t6.descripcion as ciudad, t6.id_pais, t7.descripcion as pais, t4.id_documento_identidad_tipo as id_tipo_documento, t5.descripcion as tipo_documento, identificacion from usuario as t1, persona as t2, perfil as t3, persona_nacionalidad as t4, documento_identidad_tipo as t5, ciudad as t6, pais as t7 where t1.id_persona=t2.id_persona and t1.id_perfil=t3.id_perfil and t4.id_persona=t2.id_persona and t4.id_documento_identidad_tipo=t5.id_documento_identidad_tipo and t2.id_ciudad=t6.id_ciudad and t6.id_pais=t7.id_pais and t1.id_persona=:id_persona;"); $query->execute(['id_persona'=>$id]); $item=new Arcu(); //se encripta la contraseña $crypt= new SED(); while($row=$query->fetch()){ $item->id_usuario=$row['id_usuario']; $item->usuario=$row['usuario']; //se desencripta la contraseña $clave=$crypt->decryption($row['clave']); $item->clave=$clave; $item->fecha=$row['fecha']; $item->estatus=$row['estatus']; $item->id_perfil=$row['id_perfil']; $item->perfil=$row['perfil']; $item->id_persona=$row['id_persona']; $item->primer_nombre=$row['primer_nombre']; $item->segundo_nombre=$row['segundo_nombre']; $item->primer_apellido=$row['primer_apellido']; $item->segundo_apellido=$row['segundo_apellido']; $item->correo=$row['correo']; $item->telefono=$row['telefono']; $item->genero=$row['genero']; $item->id_ciudad=$row['id_ciudad']; $item->ciudad=$row['ciudad']; $item->id_pais=$row['id_pais']; $item->pais=$row['pais']; $item->id_tipo_documento=$row['id_tipo_documento']; $item->tipo_documento=$row['tipo_documento']; $item->identificacion=$row['identificacion']; } return $item; }catch(PDOException $e){ return false; } } // obtener roles public function getbyIdUsuarioInfoU($id_persona){ $items=[]; $query = $this->db->connect()->prepare("SELECT usuario_rol.id_usuario, usuario_rol.id_rol, rol.descripcion AS rol FROM rol,usuario_rol,usuario, persona WHERE usuario_rol.id_rol=rol.id_rol AND usuario_rol.id_usuario=usuario.id_usuario AND usuario.id_persona=persona.id_persona AND usuario.id_persona=:id_persona"); try{ $query ->execute(['id_persona'=>$id_persona]); while($row = $query->fetch()){ $item = new Arcu(); $item->id_usuario = $row['id_usuario']; //rol $item->id_rol = $row['id_rol']; $item->rol = $row['rol']; // var_dump($row['usuario']); array_push($items,$item); } return $items; }catch(PDOException $e){ return null; } } //rolespor id public function getRolbyID($id_persona, $id_rol){ try{ $query=$this->db->connect()->prepare("SELECT usuario_rol.id_usuario, usuario_rol.id_rol, rol.descripcion AS rol FROM rol,usuario_rol,usuario, persona WHERE usuario_rol.id_rol=rol.id_rol AND usuario_rol.id_usuario=usuario.id_usuario AND usuario.id_persona=persona.id_persona AND usuario.id_persona=:id_persona AND usuario_rol.id_rol=:id_rol"); $query->execute([ 'id_persona'=>$id_persona, 'id_rol'=>$id_rol ]); $item=new Arcu(); while($row=$query->fetch()){ $item->id_usuario = $row['id_usuario']; $item->id_rol = $row['id_rol']; $item->rol = $row['rol']; } return $item; } catch(PDOException $e){ return false; } } public function insert($datos){ try{ //1. guardas el objeto pdo en una variable $pdo=$this->db->connect(); //2. comienzas transaccion $pdo->beginTransaction(); //tabla persona $persona=$pdo->prepare('INSERT INTO persona( primer_nombre, segundo_nombre, primer_apellido, segundo_apellido, correo, telefono, genero, id_ciudad) VALUES( :primer_nombre, :segundo_nombre, :primer_apellido, :segundo_apellido, :correo, :telefono, :genero, :id_ciudad);'); $persona->execute([ 'primer_nombre'=>$datos['pnombre'], 'segundo_nombre'=>$datos['snombre'], 'primer_apellido'=>$datos['papellido'], 'segundo_apellido'=>$datos['sapellido'], 'correo'=>$datos['correo'], 'telefono'=>$datos['telefono'], 'genero'=>$datos['genero'], 'id_ciudad'=>$datos['ciudad'] ]); //tabla persona_nacionalidad $persona_nacionalidad=$pdo->prepare('INSERT INTO persona_nacionalidad( identificacion, id_documento_identidad_tipo, id_persona) VALUES( :identificacion, :id_documento_identidad_tipo, (SELECT id_persona FROM persona ORDER BY id_persona DESC LIMIT 1) );'); $persona_nacionalidad->execute([ 'identificacion'=>$datos['cedula'], 'id_documento_identidad_tipo'=>$datos['tipo_documento'] ]); //se encripta la contraseña $crypt= new SED(); $clave=$crypt->encryption($datos['clave']); //tabla usuario $usuario=$pdo->prepare('INSERT INTO usuario( usuario, clave, fecha, estatus, id_perfil, id_persona) VALUES( :usuario, :clave, :fecha, :estatus, :id_perfil, (SELECT id_persona FROM persona ORDER BY id_persona DESC LIMIT 1));'); $nick= $datos['correo']; $usuario->execute([ 'usuario'=>$nick, 'clave'=>$clave, 'fecha'=>date("Y-m-d"), 'estatus'=>'Activo', 'id_perfil'=>$datos['perfil'] ]); //tabla rol $roles=$datos['rol']; // var_dump( $usuario['id_usuario'],$roles); $query=$pdo->prepare('INSERT INTO usuario_rol(id_usuario, id_rol) VALUES ((SELECT id_usuario FROM usuario ORDER BY id_usuario DESC LIMIT 1), :id_rol)'); //Recorrer el arreglo de roles for ($i=0;$iexecute(['id_rol'=>$roles[$i] ]); } //4. consignas la transaccion (en caso de que no suceda ningun fallo) $pdo->commit(); return true; }catch(PDOException $e){ //5. regresas a un estado anterior en caso de error $pdo->rollBack(); return false; } } public function update($datos){ try{ //1. guardas el objeto pdo en una variable $pdo=$this->db->connect(); //2. comienzas transaccion $pdo->beginTransaction(); $persona=$pdo->prepare("UPDATE persona SET primer_nombre=:primer_nombre, segundo_nombre=:segundo_nombre, primer_apellido=:primer_apellido, segundo_apellido=:segundo_apellido, telefono=:telefono, genero=:genero, id_ciudad=:id_ciudad WHERE id_persona=:id_persona;"); $persona->execute([ 'primer_nombre'=>$datos['pnombre'], 'segundo_nombre'=>$datos['snombre'], 'primer_apellido'=>$datos['papellido'], 'segundo_apellido'=>$datos['sapellido'], 'telefono'=>$datos['telefono'], 'genero'=>$datos['genero'], 'id_ciudad'=>$datos['ciudad'], 'id_persona'=>$datos['id_persona'] ]); $persona_nacionalidad=$pdo->prepare("UPDATE persona_nacionalidad SET identificacion=:identificacion, id_documento_identidad_tipo=:id_documento_identidad_tipo WHERE id_persona=:id_persona;"); $persona_nacionalidad->execute([ 'identificacion'=>$datos['cedula'], 'id_documento_identidad_tipo'=>$datos['tipo_documento'], 'id_persona'=>$datos['id_persona'] ]); //4. consignas la transaccion (en caso de que no suceda ningun fallo) $pdo->commit(); return true; }catch(PDOException $e){ //5. regresas a un estado anterior en caso de error $pdo->rollBack(); return false; } } public function updateUser($datos){ try{ //1. guardas el objeto pdo en una variable $pdo=$this->db->connect(); //2. comienzas transaccion $pdo->beginTransaction(); //se encripta la contraseña $crypt= new SED(); $clave=$crypt->encryption($datos['clave']); $usuario=$pdo->prepare("UPDATE usuario SET usuario=:usuario, clave=:clave, estatus=:estatus, id_perfil=:id_perfil WHERE id_persona=:id_persona;"); $usuario->execute([ 'usuario'=>$datos['usuario'], 'clave'=>$clave, 'estatus'=>$datos['estatus'], 'id_perfil'=>$datos['perfil'], 'id_persona'=>$datos['id_persona'] ]); //tabla rol //Eliminamos los roles actules del usuario para agregarlos desde cero ya que si el usurio tiene uno y se pretende agregar otro con un update no bastara. $deleteRoles=$pdo->prepare('DELETE FROM usuario_rol WHERE id_usuario=(SELECT id_usuario FROM usuario WHERE id_persona=:id_persona LIMIT 1)'); //Recorrer el arreglo $deleteRoles->execute(['id_persona'=>$datos['id_persona']]); $roles=$datos['rol']; $query=$pdo->prepare('INSERT INTO usuario_rol( id_usuario, id_rol) VALUES ( (SELECT id_usuario FROM usuario WHERE id_persona=:id_persona LIMIT 1), :id_rol)'); //Recorrer el arreglo de roles for ($i=0;$iexecute([ 'id_persona'=>$datos['id_persona'], 'id_rol'=>$roles[$i] ]); } //4. consignas la transaccion (en caso de que no suceda ningun fallo) $pdo->commit(); return true; }catch(PDOException $e){ //5. regresas a un estado anterior en caso de error $pdo->rollBack(); return false; } } ////////////// funcion que llama datos de tablas catalogos /////////////// public function getCatalogo($valor){ $items=[]; try{ $query=$this->db->connect()->query("SELECT * FROM ".$valor.""); while($row=$query->fetch()){ $item=new Arcu(); $item->id=$row['id_'.$valor.'']; $item->descripcion=$row['descripcion']; array_push($items,$item); } return $items; }catch(PDOException $e){ return[]; } } /////////////////////////////////////////////////////// public function getCiudadesbyPais($id_pais){ $items=[]; try{ $query=$this->db->connect()->prepare("SELECT * FROM ciudad WHERE id_pais = :id_pais;"); $query->execute(['id_pais'=>$id_pais]); while($row=$query->fetch()){ $item=new Arcu(); $item->id_ciudad=$row['id_ciudad']; $item->descripcion=$row['descripcion']; array_push($items,$item); } return $items; }catch(PDOException $e){ return[]; } } public function getPerfil(){ $items=[]; try{ $query=$this->db->connect()->query("SELECT * FROM perfil;"); while($row=$query->fetch()){ $item=new Arcu(); $item->id_perfil=$row['id_perfil']; $item->descripcion=$row['descripcion']; array_push($items,$item); } return $items; }catch(PDOException $e){ return[]; } } } ?>