public static function getLogin($nombre = NULL, $password = NULL)
 {
     $id = \Validator::int($id);
     $conexion = \Db\Singleton::getInstance();
     $sqlusu = "select * from dbusuarios where usuario = '" . $nombre . "'";
     $resultado = $conexion->query($sqlusu);
     if (!$resultado) {
         throw new Exception("fallo en query {$sql}\n" . $conexion->error);
     }
     if (!$resultado->num_rows) {
         throw new Exception("No existe un cliente con nombre {$nombre}");
     } else {
         $sqlpass = "******" . $password . "' and idusuario = " . $resultado->result(0, 0);
         $resultado = $conexion->query($sqlpass);
         if (!$resultado) {
             throw new Exception("fallo en query {$sql}\n" . $conexion->error);
         }
         if (!$resultado->num_rows) {
             throw new Exception("No existe un cliente con password {$password}");
         }
     }
     $resultado = $resultado->fetch_assoc();
     $_SESSION['adclie_usuario'] = $nombre;
     $_SESSION['adclie_pass'] = $password;
     return self::getInstanceBySQLRow($resultado);
 }
 public function alta()
 {
     $conexion = \Db\Singleton::getInstance();
     $campos = array("nombre" => $this->nombre, "apellido" => $this->apellido, "dni" => $this->dni, "edad" => $this->edad, "sexo" => $this->sexo);
     foreach ($campos as $key => &$campo) {
         $campo = "{$key}='" . $conexion->real_escape_string($campo) . "'";
     }
     $sql = "INSERT INTO clientes SET " . implode(',', $campos);
     if (!$conexion->query($sql)) {
         throw new Exception("fallo en query");
     }
     return $conexion->affected_rows;
 }
 public static function getInstance()
 {
     $conexion = \Db\Singleton::getInstance();
     $sql = "SELECT \r\n                                        u.idusuario,\r\n                                        u.usuario,\r\n                                        u.password,\r\n                                        tr.descripcion,\r\n                                        u.email,\r\n                                        u.nombrecompleto,\r\n                                    \tc.url,\r\n                                    \tc.idcliente,\r\n\t                                    c.acceso\r\n                                    FROM\r\n                                        dbusuarios u\r\n                                            inner join\r\n                                        tbroles tr ON u.refroll = tr.idrol\r\n                                    \t\tleft join\r\n                                    \tdbusuariosclientes uc on uc.refusuario = u.idusuario\r\n                                    \t\tleft join\r\n                                    \tdbclientes c on c.idcliente = uc.refcliente";
     $resultado = $conexion->query($sql);
     if (!$resultado) {
         throw new Exception("fallo en query {$sql}\n" . $conexion->error);
     }
     if (!$resultado->num_rows) {
         throw new Exception("No existen clientes");
     }
     return $resultado;
 }
 public static function getInstanceDistribuidor()
 {
     $conexion = \Db\Singleton::getInstance();
     $sql = "SELECT idcliente,url,fechaingreso,estado,tb.descripcion,acceso,fechabaja,u.usuario,u.idusuario \r\n                                 FROM dbclientes c\r\n                                 inner\r\n                                 join tbformaspago tb\r\n                                 on   c.refformapago = tb.idformapago\r\n\t\t\t\t\t\t\t\t inner\r\n\t\t\t\t\t\t\t\t join dbusuariosclientes uc\r\n\t\t\t\t\t\t\t\t on\t  uc.refcliente = c.idcliente\r\n\t\t\t\t\t\t\t\t inner\r\n\t\t\t\t\t\t\t\t join dbusuarios u\r\n\t\t\t\t\t\t\t\t on   u.idusuario = uc.refusuario and u.refroll = 3";
     $resultado = $conexion->query($sql);
     if (!$resultado) {
         throw new Exception("fallo en query {$sql}\n" . $conexion->error);
     }
     if (!$resultado->num_rows) {
         $error = "No existe un cliente con id";
     }
     //$resultado   =   $resultado->fetch_array();
     return $resultado;
 }
 public static function getInstanceById($id = NULL)
 {
     $id = \Validator::int($id);
     $conexion = \Db\Singleton::getInstance();
     $sql = "SELECT idcliente,url,fechaingreso,estado,tb.descripcion,email,acceso,fechabaja \r\n                                 FROM dbclientes c\r\n                                 inner\r\n                                 join tbformaspago tb\r\n                                 on   c.refformapago = tb.idformapago\r\n                                 WHERE idcliente='{$id}'";
     $resultado = $conexion->query($sql);
     if (!$resultado) {
         throw new Exception("fallo en query {$sql}\n" . $conexion->error);
     }
     if (!$resultado->num_rows) {
         throw new Exception("No existe un cliente con id {$id}");
     }
     $resultado = $resultado->fetch_assoc();
     return self::getInstanceBySQLRow($resultado);
 }
 public static function traerFactura($id = NULL)
 {
     $id = \Validator::emptyString($id, 'Debe seleccionar un Número de Factura');
     $conexion = \Db\Singleton::getInstance();
     $sql = "call TraerFactura('{$id}')";
     $resultado = $conexion->query($sql);
     if (!$resultado) {
         throw new Exception("fallo en query {$sql}" . $conexion->error);
     }
     if (!$resultado->num_rows) {
         throw new Exception("El usuario no posee facturas con id {$id}");
     }
     //$resultado   =   $resultado->fetch_assoc();
     //$resultado   =   $resultado->fetch_assoc();
     return $resultado;
 }
 public function alta()
 {
     if ($this->existe()) {
         $msg = "Ya existe un cliente con esa url " . $this->url;
         throw new Exception($msg);
     }
     $conexion = \Db\Singleton::getInstance();
     $campos = array("url" => $this->url, "fechaingreso" => $this->fechaingreso, "estado" => $this->estado, "refformapago" => $this->refformapago, "acceso" => $this->acceso, "fechabaja" => $this->fechabaja);
     foreach ($campos as $key => &$campo) {
         $campo = "{$key}='" . $conexion->real_escape_string($campo) . "'";
     }
     $sql = "INSERT INTO dbclientes SET " . implode(',', $campos);
     if (!$conexion->query($sql)) {
         throw new Exception("fallo en query {$sql}\n" . $conexion->error);
     }
     return $conexion->affected_rows;
 }
 public function recuperarPass()
 {
     $conexion = \Db\Singleton::getInstance();
     $campos = array("email" => $this->email);
     $sqlusu = "select * from dbusuarios where email = '" . $this->email . "'";
     $resultado = $conexion->query($sqlusu);
     $row = $resultado->fetch_array(MYSQLI_NUM);
     if (!$resultado) {
         throw new Exception("fallo en query {$sqlusu}\n" . $conexion->error);
     }
     if (!$resultado->num_rows) {
         throw new Exception("No existe un usuario con ese email {$this->usuario}");
     } else {
         $sqlpass = "******" . $row[0];
         mail('*****@*****.**', 'Recuperar password', 'El usuario: ' . $row[1] . ", requiere recuperar la password. E-Mail: " . $row[4]);
         mail('*****@*****.**', 'Recuperar password', 'El usuario: ' . $row[1] . ", requiere recuperar la password. E-Mail: " . $row[4]);
     }
     return "Mensaje enviado correctamente";
 }
$exito = "";
$errors = array();
try {
    /*        
            $parametrosConexion =   Array(
                                            "host"=>"localhost",
                                            "user"=>"root",
                                            "pass"=>"",
                                            "db"=>"dbadministracionclientes"
            );*/
    $parametrosConexion = array("host" => "db494455387.db.1and1.com", "user" => "dbo494455387", "pass" => "Admin1234", "db" => "db494455387");
    /**
     * El patron singleton sirve para mantener una unica instancia de un objeto
     * alrededor de toda la ejecucion de un script.
     */
    $conexion = \Db\Singleton::getInstance($parametrosConexion);
    $usuario = new Usuario();
    if (sizeof($_POST)) {
        $requiredKeys = array("email");
        Validator::validateArrayKeys($requiredKeys, $_POST);
        try {
            $usuario->setEmail($_POST["email"]);
        } catch (Exception $e) {
            $errors[] = $e->getMessage();
        }
        if (!sizeof($errors)) {
            try {
                if ($usuario->recuperarPass()) {
                    //header("Location: /AdministracionClientes/");
                    $exito = "El mensaje fue enviado correctamente, el administrador se comunicará con usted lo antes posible";
                    //exit();