|
Server : Apache/2.4.62 System : FreeBSD fbsdweb2.web.rcn.net 14.1-RELEASE FreeBSD 14.1-RELEASE releng/14.1-n267679-10e31f0946d8 GENERIC amd64 User : www ( 80) PHP Version : 8.3.8 Disable Function : NONE Directory : /domains/logicswapweb/aplicaciones/admon/clientes/fnc/ |
Upload File : |
<?php
include('DBConnect.php');
/********************************************************
clase cliente:
utiliza la interfas de BD para realizar
las necesidades propias de registro y
verificacion de clientes de el sitio
*********************************************************/
class Cliente extends DBManager{
/***********************************************************
variable: fecha_actual
descripcion: matiene la fecha del sistema
***********************************************************/
var $fecha_actual;
var $contacto = "[email protected]";
/***********************************************************
variable: salida
descripcion: da los resultados a todas las acciones executadas
por el cliente
***********************************************************/
var $salida = array();
/************************************************************
FUNCION: cliente (constructor)
DESCRIPCION: inicializa interfaz de conexion de DB
*************************************************************/
function Cliente() {
$this->DBManager('MySQL');
$this->connect();
$this->fecha = date('Y-m-d');
$this->hora = date('H-i-s');
}
/***********************************************************
funcion: get_error
descripcion: trae la descripcion del error de el archivo
de errores
***********************************************************/
function get_error($error){
$file = @file("error.txt");
$desc_error = "none";
if(!$file){ $desc_error = "Imposible leer el fichero de error!"; return $desc_error;}
else{
$siga=true;
$lineas = sizeof($file);
$i=0;
while(($i++<=$lineas) && ($siga)){
if(substr($file[$i], 0, 1) == "#" || !strlen($file[$i])) { continue; }
$pos = strpos ($file[$i], $error);
if($pos===false){
continue;
}else{
$vec = explode("|",$file[$i]);
$desc_error = $vec[1];
break 1;
}
}
if($i-1==$lineas){$desc_error="Error no encontrado!";}
return $desc_error;
}
}
/************************************************************
FUNCION: set_salida
DESCRIPCION: pone valores a la salida de la funcion en
salida['resul'] y salida['msg']
*************************************************************/
function set_salida($resul,$msg){
$this->salida['resul']=$resul;
$this->salida['msg']=$msg;
echo $this->salida['msg']."<br><br>";
}
/************************************************************
FUNCION: query_listar
DESCRIPCION: devuelve el query de la lista actual
*************************************************************/
function query_listar($buscar){
if(!$buscar){
$sql="select id, nombres, apellidos, email from cliente order by nombres asc";
return $sql;
}else{
$sql="select id, nombres, apellidos, email from cliente where (nombres LIKE '%$buscar%') or (apellidos LIKE '%$buscar%') or (email LIKE '%$buscar%')";
return $sql;
}
}
/*************************************************************
funcion get_cliente
descripcion devuelve losdatos del cliente solicitado en una matriz
donde cada indice es el nombre del campo.
**************************************************************/
function get_cliente($cliente){
if($cliente){
$sql="select * from cliente where id='$cliente'";
if($this->execute($sql)){
if($this->numRows()>0){
$row=$this->fetchRow();
return $row;
}else{
$row['nombres']="no hay registro";
$row['apellidos']="no hay registro";
$row['direccion']="no hay registro";
$row['email']="no hay registro";
$row['fecha_nmto']="0000-00-00";
$row['pais']="no hay registro";
$row['telefono']="no hay registro";
$row['ciudad']="no hay registro";
return $row;
}
}else{
$row['nombres']="incunsultable";
$row['apellidos']="incunsultable";
$row['direccion']="incunsultable";
$row['email']="incunsultable";
$row['fecha_nmto']="0000-00-00";
$row['pais']="incunsultable";
$row['telefono']="incunsultable";
$row['ciudad']="incunsultable";
return $row;
}
}else{
$row['nombres']="sin seleccion";
$row['apellidos']="sin seleccion";
$row['direccion']="sin seleccion";
$row['email']="sin seleccion";
$row['fecha_nmto']="0000-00-00";
$row['pais']="sin seleccion";
$row['telefono']="sin seleccion";
$row['ciudad']="sin seleccion";
return $row;
}
}
/************************************************************
FUNCION: mod_cliente
DESCRIPCION: modifica informacion de un cliente en la DB
*************************************************************/
function mod_cliente($nombres, $apellidos, $email, $fecha_nmto, $direccion, $ciudad, $pais, $telefono,$cliente){
$sql="update cliente set nombres='$nombres', apellidos='$apellidos', email='$email', fecha_nmto='$fecha_nmto'";
$sql.=",direccion='$direccion', ciudad='$ciudad', pais='$pais', telefono='$telefono' where id='$cliente'";
$resul = $this->existe_login_nuevo($email,$cliente);
$existe = $resul['resul'];
$msg = $resul['msg'];
$act_news=$this->mod_newsletter($cliente,$email);
if(!$existe && $msg=="no existe"){
if($this->execute($sql)){
$out="Modificaci�n realizada exitosamente!";
if(!$act_news){
$out.="\\n".trim($this->get_error("[010]"));
}
$this->set_salida(true,$out);
}else{
$this->set_salida(false,trim($this->getException()));
}
}else{
$this->set_salida(false,$msg);
}
return $this->salida;
}//end mod_cliente
/************************************************************
FUNCION: existe_login
DESCRIPCION: devuelve true si login existe false de lo contrario
*************************************************************/
function existe_login($login){
$sql="select email from cliente where email='$login'";
if($this->execute($sql)){;
$cant = $this->numRows();
if($cant>0){
$this->set_salida(true,trim($this->get_error("[001]")));
}else{
$this->set_salida(false,"no existe");
}
}else{
$this->set_salida(false,trim($this->getException()));
}
return $this->salida;
}
/************************************************************
FUNCION: existe_login_nuevo
DESCRIPCION: devuelve true si login existe para otro usuario false de lo contrario
*************************************************************/
function existe_login_nuevo($login,$id){
$sql="select email from cliente where email='$login' and id!='$id'";
if($this->execute($sql)){;
$cant = $this->numRows();
if($cant>0){
$this->set_salida(true,trim($this->get_error("[001]")));
}else{
$this->set_salida(false,"no existe");
}
}else{
$this->set_salida(false,trim($this->getException()));
}
return $this->salida;
}
/******************************************************************
funcion mod_newsletter()
descripcion actualiza la direccion de correo registrada
por un usuario en el newsletter
*******************************************************************/
function mod_newsletter($cliente,$email){
$sql="select email from cliente where id='$cliente'";
if($this->execute($sql)){
list($email_viejo) = $this->fetchRow();
if(trim($email_viejo)!=trim($email)){
$viejo=explode("@",$email_viejo);
$nuevo=explode("@",$email);
$nick_viejo=trim($viejo['0']);
$dominio_viejo=trim($viejo['1']);
$nick_nuevo=trim($nuevo['0']);
$dominio_nuevo=trim($nuevo['1']);
$sql="update usuarios set email='$nick_nuevo', dominio='$dominio_nuevo' where email='$nick_viejo' and dominio='$dominio_viejo'";
if($this->execute($sql)){
$this->set_salida(true,"Se actualizo registro de newsletter ($email)!");
return true;
}else{
$out=trim($this->get_error("[008]"));
$out.="\\n:: ".trim($this->getException());
$this->set_salida(false,$out);
return false;
}
}else{
$this->set_salida(true,"Actalizacion de Newsletter innecesaria (iguales)");
return true;
}
}else{
$out=trim($this->get_error("[009]"));
$out.="\\n:: ".trim($this->getException());
$this->set_salida(false,$out);
return false;
}
}
/************************************************************
FUNCION: li_cliente
DESCRIPCION: elimina informacion de un cliente en la DB
*************************************************************/
function eli_cliente($cliente){
$sql="delete from cliente where id='$cliente'";
$eli_news=$this->eli_newsletter($cliente);
if($eli_news){
if($this->execute($sql)){
$out="Eliminacion realizada exitosamente!";
$this->set_salida(true,$out);
}else{
$out=trim($this->get_error("[009]"));
$out.="\\n:: ".trim($this->getException());
$this->set_salida(false,$out);
}
}else{
$this->set_salida(false,$msg);
}
return $this->salida;
}//end eli_cliente
/******************************************************************
funcion eli_newsletter()
descripcion elimina la direccion de correo registrada
por un usuario en el newsletter
*******************************************************************/
function eli_newsletter($cliente){
$sql="select email from cliente where id='$cliente'";
if($this->execute($sql)){
if($this->numRows()>0){
list($email_viejo) = $this->fetchRow();
$viejo=explode("@",$email_viejo);
$nick_viejo=trim($viejo['0']);
$dominio_viejo=trim($viejo['1']);
$eli_prefer=$this->eli_preferencias($cliente);
if($eli_prefer){
$sql2="delete from usuarios where email='$nick_viejo' and dominio='$dominio_viejo'";
if($this->execute($sql2)){
$this->set_salida(true,"Se elimino registro de newsletter ($email_viejo)!");
return true;
}else{
$out=trim($this->get_error("[012]"));
$out.="\\n:: ".trim($this->getException());
$this->set_salida(false,$out);
return false;
}
}else{
$out=trim($this->get_error("[011]"));
$out.="\\n:: ".$this->salida['msg'];
$this->set_salida(false,$out);
return false;
}
}else{
$out=trim($this->get_error("[013]"));
$out.="\\n:: ".trim($this->getException());
$this->set_salida(false,$out);
return false;
}
}else{
$out=trim($this->get_error("[009]"));
$out.="\\n:: ".trim($this->getException());
$this->set_salida(false,$out);
return false;
}
}
/*
fncion eli_preferencias
dscripcion elimina todas las suscripciones de preferencias_chistes de un
cliente
*/
function eli_preferencias($cliente){
$sql="delete from preferencias_chistes where cliente='$cliente'";
if($this->execute($sql)){
$this->set_salida(true,"Preferencias eliminadas");
return true;
}else{
$out=trim($this->get_error("[011]"));
$out.="\\n::".trim($this->getException());
$this->set_salida(false,$out);
return false;
}
}
}//end class Inmueble
?>