<?php
class API_Gusber{

    public $IDr = 0 ;
    //Función que crea y devuelve un objeto de conexión a la base de datos y chequea el estado de la misma.
    function conectarBD(){
            $server = "localhost:3306";
            $usuario = "qpsec_usrSEALCHECK";
            $pass = "mabeluis2602";
            $BD = "qpsec_SEALCHECK";
            //variable que guarda la conexión de la base de datos
            $conexion = mysqli_connect($server, $usuario, $pass, $BD);
            //$conexion = new PDO("mysql:host=localhost:3306;dbname=qpsec_SEALCHECK","qpsec_usrSEALCHECK", "mabeluis2602");
            
            //Comprobamos si la conexión ha tenido exito
            if(!$conexion){
               echo 'Ha sucedido un error inexperado en la conexion de la base de datos<br>';
            }
            //devolvemos el objeto de conexión para usarlo en las consultas
            return $conexion;
    }
    /*Desconectar la conexion a la base de datos*/
    function desconectarBD($conexion){
            //Cierra la conexión y guarda el estado de la operación en una variable
            $close = mysqli_close($conexion);
            //Comprobamos si se ha cerrado la conexión correctamente
            if(!$close){
               echo 'Ha sucedido un error inesperado en la desconexion de la base de datos<br>';
            }
            //devuelve el estado del cierre de conexión
            return $close;
    }

    //Devuelve un array multidimensional con el resultado de la consulta
    function getArraySQL($sql){
        //Creamos la conexión
        $conexion = $this->conectarBD();
        //generamos la consulta
        if(!$result = mysqli_query($conexion, $sql)) die();

        $rawdata = array();
        //guardamos en un array multidimensional todos los datos de la consulta
        $i=0;
        while($row = mysqli_fetch_array($result))
        {
            //guardamos en rawdata todos los vectores/filas que nos devuelve la consulta
            $rawdata[$i] = $row;
            $i++;
        }
        //Cerramos la base de datos
        $this->desconectarBD($conexion);
        //devolvemos rawdata
        return $rawdata;
    }
    
    //inserta en la base de datos un nuevo registro en la tabla usuarios
    function insertRandom(){
    	//Generamos un número entero aleatorio entre 0 y 100
    	$ran = rand(0, 100);
        //creamos la conexión
        $conexion = $this->conectarBD();
        //Escribimos la sentencia sql necesaria respetando los tipos de datos
        $sql = "insert into random (valor)
        values (".$ran.")";
        //hacemos la consulta y la comprobamos
        $consulta = mysqli_query($conexion,$sql);
        if(!$consulta){
            echo "No se ha podido insertar en la base de datos<br><br>".mysqli_error($conexion);
        }
        //Desconectamos la base de datos
        $this->desconectarBD($conexion);
        //devolvemos el resultado de la consulta (true o false)
        return $consulta;
    }
    function getAllInfo($sql){
        return $this->getArraySQL($sql);
    }
    function getSqlInfo($sql){
        //Creamos la conexión
        $conexion = $this->conectarBD();
        
        //generamos la consulta
        if(!$result = mysqli_query($conexion, $sql)) die();

        //Cerramos la base de datos
        $this->desconectarBD($conexion);
        //devolvemos rawdata
        return $result;
    }
    

    ///////////////////////////////////////////
    // Funciones para actividades de SCANNER //
    ///////////////////////////////////////////
    function setInfoScan(
                        $iduser,
                        $idcliente,
                        $jobnumber,
                        $primarynumber,
                        $replacepn,
                        $itemnumber,
                        $address,
                        $date,
                        $userremarks,
                        $scanimage,
                        $foto1,
                        $foto2,
                        $foto3,
                        $location)
    {

        //Creamos la conexión
        $conexion = $this->conectarBD();

        $idNotificadoDefault1=30; //deberá definirse con un parámetro
        $idNotificadoDefault2=30; //deberá definirse con un parámetro
        $idNotificadoDefault3=30; //deberá definirse con un parámetro
        $tipoAlerta=0;

        $sql = "SELECT case when idrol = 4 then 64 else (case when idrol = 1 then id else idSupervisor end) end as idSupervisor FROM users WHERE id = $iduser";
        if(!$result = mysqli_query($conexion, $sql)) die();
        $idcliente = 0;
        foreach($result as $row){
           $idcliente = $row['idSupervisor'];
        }

        // 1- Verificamo si el codigo no existe en el almacen.  
        $sql = "SELECT id, estado FROM seals WHERE VAR1 = '$primarynumber' AND idCliente = $idcliente";
        if(!$result = mysqli_query($conexion, $sql)) die();
        $idSello = 0;
        $estadoSello = "C"; //normal
        foreach($result as $row){
           $idSello = $row['id'];
           $estadoSello = $row['estado'];
        }
        
        if($estadoSello == "P") //perdido
        {
            $datos = 'Este Codigo ['.$primarynumber.'] ha sido scaneado desde la APP en esta <a href="https://www.google.com/maps/place/'.$location.'" target="_blank">[ubicaci&oacute;n]</a>';
            
            //Se debe volver a activar cuando terminen las pruebas.
            $sqlInsert="INSERT INTO logs_sistema (id, fecha, user_id, operacion, permiso, datos, notificado) values (NULL, NOW(), $iduser, 'ENCONTRADO', 'SELLO', '$datos', 0)";
    
            $conexion->prepare($sqlInsert)->execute();
            
        }
        

        if($idSello == 0) //El sello NO existe y debe crearse
        {
            //insertamos el sello
            $sqlInsert="INSERT INTO seals (id, idCliente, VAR1, VAR2, VAR3, tipo, estado, created_at, created_by, IngresoPorScanner) values (NULL, $idcliente, '$primarynumber', '$primarynumber', '$primarynumber', 'S', 'C', NOW(), $iduser, 1)";
            

            $conexion->prepare($sqlInsert)->execute();
            
            //recuperamos el ID generado para el nuevo sello
            $sql = "SELECT id FROM seals WHERE VAR1 = '$primarynumber' AND idCliente = $idcliente";
            if(!$result = mysqli_query($conexion, $sql)) die();
            $idSello = 0;
            foreach($result as $row){
               $idSello = $row['id'];
            }
        }
        
        $tipo='SCAN';
        $aprobado=3; //estado normal (no requiere de aprobacion)
        $activo=1;
        
        //Requier aprobación cualquier reemplazo de sello
        $requiereAprobacion=0;
        if($replacepn != ''){
            $requiereAprobacion=1;
            $tipo='INSPC';
            $aprobado=0;
            $activo=0;
        }
        
        $userremarks = utf8_decode(utf8_encode($userremarks));
        
        //Registramos el ScanHistory
        $sqlInsert="INSERT INTO scanhistory (id, iduser, idsupervisor, idSello, jobnumber, primarynumber, replaceprimarynumber, itemnumber, 	address, 	dateandtime, userremarks, scannedimage, foto1, foto2, foto3, location, informado, requiereAprobacion, Tipo, aprobado, activo) values (NULL, $iduser, $idcliente, $idSello, '$jobnumber', '$primarynumber', '$replacepn', '$itemnumber', '$address', '$date', '$userremarks', '$scanimage', '$foto1', '$foto2', '$foto3', '$location', 0, $requiereAprobacion, '$tipo', $aprobado, $activo)";

        $conexion->prepare($sqlInsert)->execute();
        
        //REcuperamos el código generado.
        $sql = "SELECT MAX(id) as id FROM scanhistory WHERE iduser = $iduser AND idsupervisor = $idcliente AND primarynumber = '$primarynumber' AND idSello = $idSello";
        if(!$result = mysqli_query($conexion, $sql)) die();
        $idScan = 0;
        foreach($result as $row){
           $idScan = $row['id'];
        }        

        //Enviamos la comunicacion para que el proceso se apruebe por correo.
        if($replacepn != ''){
            $mensaje = 'REEMPLAZO DE SELLOS desde la siguiente <a href="https://www.google.com/maps/place/'.$location.'" target="_blank">[ubicaci&oacute;n]</a><br>Sello Nuevo ['.$primarynumber.']<br>Sello Reemplazado ['.$replacepn.']<br><a href="https://qps.ec/SEALCHECK/api/'.$scanimage.'" target="_blank">[Foto Sello]</a><br><br>Usted puede hacer <a href="https://www.qps.ec/SEALCHECK/bat/AprobarOperacion.php?id='.$idScan.'&ap=2&u='.$iduser.'&l='.$location.'&pn='.$primarynumber.'&rpn='.$replacepn.'&si='.$scanimage.'&f='.$date.'">[click aqu&iacute;]</a> para APROBAR esta operaci&oacute;n';
        
            $sqlInsert="INSERT INTO logs_sistema (id, fecha, user_id, operacion, permiso, datos, notificado) values (NULL, '$date', $iduser, 'SOLIC. APROBACION', 'REEMPLAZO', '$mensaje', 0)";
            
            $conexion->prepare($sqlInsert)->execute();
        }
        
        //Actualizamos el ultimo Scan en el registro de Sellos
        $sqlUpdate="UPDATE seals SET idLastScan = $idScan, dateLastUse = '$date', userLastUse = $iduser, updated_at = NOW() WHERE id = $idSello";
        $conexion->prepare($sqlUpdate)->execute();

        
        //Guardamos registro de LOG con todos los datos posibles
        $datos = '';
        if($replacepn != ''){
            $datos = 'REEMPLAZO Y ';
        }
        $datos .= 'LECTURA DE SELLOS desde la siguiente <a href="https://www.google.com/maps/place/'.$location.'" target="_blank">[ubicaci&oacute;n]</a><br>Sello ['.$primarynumber.']<br><a href="https://qps.ec/SEALCHECK/api/'.$scanimage.'" target="_blank">[Foto Sello]</a>';


        if($foto1!= ''){
            $datos.='<br><a href="https://qps.ec/SEALCHECK/api/'.$foto1.'" target="_blank">[Foto 1]</a>';
        }
        if($foto2!= ''){
            $datos.='<br><a href="https://qps.ec/SEALCHECK/api/'.$foto2.'" target="_blank">[Foto 2]</a>';
        }
        if($foto3!= ''){
            $datos.='<br><a href="https://qps.ec/SEALCHECK/api/'.$foto3.'" target="_blank">[Foto 3]</a>';
        }
     

        //Se debe volver a activar cuando terminen las pruebas.
        $sqlInsert="INSERT INTO logs_sistema (id, fecha, user_id, operacion, permiso, datos, notificado) values (NULL, '$date', $iduser, 'SCAN SELLO APP', 'LECTURA', '$datos', 0)";
        
        $conexion->prepare($sqlInsert)->execute();


        //Cerramos la base de datos
        $this->desconectarBD($conexion);

        //devolvemos rawdata
        return "OK";
    }
    
    //Resolviendo consulta de sello por verificación
    function getInfoSeal(
                        $iduser,
                        $idcliente,
                        $jobnumber,
                        $primarynumber,
                        $address,
                        $date,
                        $userremarks,
                        $location)
    {
        //Creamos la conexión
        $conexion = $this->conectarBD();

        $userremarks = utf8_decode(utf8_encode($userremarks));

            $sql = "SELECT case when idrol = 4 then 64 else (case when idrol = 1 then id else idSupervisor end) end as idSupervisor FROM users WHERE id = $iduser";
            if(!$result = mysqli_query($conexion, $sql)) die();
            $idcliente = 0;
            foreach($result as $row){
               $idcliente = $row['idSupervisor'];
            }

        $datos = 'Acceso registrado desde la siguiente ubicaci&oacute;n:<br><a href="https://www.google.com/maps/place/'.$location.'" target="_blank">[ver mapa]</a>';
        
        /*Se debe volver a activar cuando terminen las pruebas.
        $sqlInsert="INSERT INTO logs_sistema (id, fecha, user_id, operacion, permiso, datos, notificado) values (NULL, '$fecha', $id, 'ACCESO APP', 'LOGIN', '$datos', 0)";

        $conexion->prepare($sqlInsert)->execute();
        */

        // 1- Verificamos si el codigo no existe en el almacen.  
        $idSello=0;
        $sql = "SELECT id, estado FROM seals WHERE VAR1 = '$primarynumber' AND idCliente = $idcliente";
        if(!$result = mysqli_query($conexion, $sql)) die();
        $estadoSello = "C"; //normal
        foreach($result as $row){
           $idSello = $row['id'];
           $estadoSello = $row['estado'];
        }
        
        if($estadoSello == "P") //perdido
        {
            $datos = 'Este Codigo ['.$primarynumber.'] ha sido scaneado desde la APP en esta <a href="https://www.google.com/maps/place/'.$location.'" target="_blank">[ubicaci&oacute;n]</a>';
            
            //Se debe volver a activar cuando terminen las pruebas.
            $sqlInsert="INSERT INTO logs_sistema (id, fecha, user_id, operacion, permiso, datos, notificado) values (NULL, NOW(), $iduser, 'NOVEDAD SELLO', 'ENCONTRADO', '$datos', 0)";
    
            $conexion->prepare($sqlInsert)->execute();
            
        }
        
 
        //Recuperamos la última historia del sello que tenga el campo 
        //"activo" = 1 y de tipo SCAN o INSPC
        $sql = "SELECT MAX(id) as id FROM scanhistory WHERE primarynumber = '$primarynumber' AND idSello = $idSello AND idsupervisor = $idcliente AND Tipo IN ('SCAN', 'INSPC') AND activo = 1";
        if(!$result = mysqli_query($conexion, $sql)) die();
        $idScan = 0;
        foreach($result as $row){
           $idScan = $row['id'];
        }        
        

        //Hacemos la lectura final de los datos entre Sello y ScanHistory
        if($idSello > 0 && $idScan > 0){ //existe sello y lectura inicial
            $sql = "SELECT h.iduser, h.idsupervisor, h.primarynumber, h.replaceprimarynumber, h.jobnumber, h.userremarks, h.scannedimage, h.location, h.address, h.dateandtime, (case when $idScan>0 then 1 else 0 end) as flagenviado, '' as iconoenviado, NOW() as fechaenviado, h.foto1, h.foto2, h.foto3, 1 as isvisible, s.INFO1, s.INFO2, s.INFO3, s.INFO4, s.INFO5, u.name FROM `seals` s INNER JOIN `scanhistory` h ON h.idSello = s.id AND h.id = $idScan LEFT OUTER JOIN `users` u ON u.id=s.idCliente WHERE s.id = $idSello";
        }
        else{
            $sql = "SELECT u.id as iduser, u.id as idsupervisor, s.VAR1 as primarynumber, '' as replaceprimarynumber, 'nodata' as jobnumber, 'SELLO EXISTE PERO NO HA SIDO ASIGNADO A UN CONTENEDOR O CARGA' as userremarks, 'nodata' as scannedimage, 'nodata' as location, 'nodata' as address, NOW() as dateandtime, 0 as flagenviado, '' as iconoenviado, NOW() as fechaenviado, 'nodata' as foto1, 'nodata' as foto2, 'nodata' as foto3, 1 as isvisible, s.INFO1, s.INFO2, s.INFO3, s.INFO4, s.INFO5, u.name FROM `seals` s LEFT OUTER JOIN `users` u ON u.id=s.idCliente WHERE s.id = $idSello";
                
        }
        

        if(!$result = mysqli_query($conexion, $sql)) die();

        //echo $sql;

        //Cerramos la base de datos
        $this->desconectarBD($conexion);

        //devolvemos rawdata
        return $this->getFormatoJsonCaptura($result);
    }

    //Registra la novedad en el sistema bajo demanda del usuario
    function setIssues(
                        $iduser,
                        $idcliente,
                        $jobnumber,
                        $primarynumber,
                        $address,
                        $date,
                        $userremarks,
                        $location,
                        $jobnumberSite,
                        $captureSello,
                        $captureScreen,
                        $tipo)
    {
        //Creamos la conexión
        $conexion = $this->conectarBD();

        $userremarks = utf8_decode(utf8_encode($userremarks));
        
        $Tipo='CHECK';
        $tipoAlerta = 1;
        if(substr($userremarks,0,17)=='[VERIFICACION OK]'){
            $tipoAlerta = 0;
        }
        if($tipo=='w'){
            $tipoAlerta = 0;
            $Tipo='CHECK-APP';
        }

            $sql = "SELECT case when idrol = 4 then 64 else (case when idrol = 1 then id else idSupervisor end) end as idSupervisor FROM users WHERE id = $iduser";
            if(!$result = mysqli_query($conexion, $sql)) die();
            $idcliente = 0;
            foreach($result as $row){
               $idcliente = $row['idSupervisor'];
            }

        $datos = 'NOVEDAD con el sello: ['.$primarynumber.']<br>Obs: ['.$userremarks.']<br>';
        
        if($jobnumber!=$jobnumberSite){
        $datos .= 'Cont Asignado vs Revisado: ['.$jobnumber.' vs ' .$jobnumberSite.']<br>';
        }
        $datos .= 'Ubicaci&oacute;n: <a href="https://www.google.com/maps/place/'.$location.'" target="_blank">[ver mapa]</a><br>Direcci&oacute;n: ['.$address.']';
        
        $datos .= '<br><a href="https://qps.ec/SEALCHECK/api/'.$captureSello.'" target="_blank">[Captura de Sello]</a><br><a href="https://qps.ec/SEALCHECK/api/'.$captureScreen.'" target="_blank">[Captura de Pantalla]</a>';
        
        if($tipoAlerta==0){
            $sqlInsert="INSERT INTO logs_sistema (id, fecha, user_id, operacion, permiso, datos, notificado) values (NULL, '$date', $iduser, 'WARNING APP', 'VERIFICACION', '$datos', 0)";
        }
        else{
            $sqlInsert="INSERT INTO logs_sistema (id, fecha, user_id, operacion, permiso, datos, notificado) values (NULL, '$date', $iduser, 'NOVEDAD SELLOS', 'VERIFICACION', '$datos', 0)";
        }

        //return $sqlInsert;
        $conexion->prepare($sqlInsert)->execute();
        

        // 1- Verificamo si el codigo no existe en el almacen.  
        $sql = "SELECT id FROM seals WHERE VAR1 = '$primarynumber' AND idCliente = $idcliente";
        if(!$result = mysqli_query($conexion, $sql)) die();
        $idSello = 0;
        foreach($result as $row){
           $idSello = $row['id'];
        }
        
        $sqlInsert="INSERT INTO scanhistory (id, iduser, idsupervisor, idSello, jobnumber, primarynumber, itemnumber, 	address, 	dateandtime, userremarks, location, informado, requiereAprobacion, tipo, tipoAlerta, foto1, scannedimage) values (NULL, $iduser, $idcliente, $idSello, '$jobnumberSite', '$primarynumber', '$itemnumber', '$address', '$date', '$userremarks', '$location', 0, 0, '$Tipo', $tipoAlerta, '$captureScreen', '$captureSello')";

        $conexion->prepare($sqlInsert)->execute();

        //Cerramos la base de datos
        $this->desconectarBD($conexion);

        //devolvemos rawdata
        return "OK";
    }


    function setRevisionCantSellos(
                        $iduser,
                        $idcliente,
                        $jobnumber,
                        $primarynumber,
                        $address,
                        $date,
                        $userremarks,
                        $location,
                        $jobnumberSite,
                        $captureSello,
                        $captureScreen,
                        $tipo)
    {
        //Creamos la conexión
        $conexion = $this->conectarBD();

        $FECHA = "";
        $VERIFICADOS = 0;
        $ASOCIADOS = 0;


        //Recuperamos los registros de CHECK en la fecha de hoy intervalo de 1 hora
        //2021FEB23: JLAVAYEN define que sea 30 minutos maximo
        $sql = "select min(dateandtime) as fecha, count(distinct(primarynumber)) as VERIFICADOS from scanhistory where jobnumber = '$jobnumber' and tipoAlerta = 0 and tipo = 'CHECK' and activo = 1 and dateandtime < NOW() AND dateandtime > DATE_ADD(NOW(), INTERVAL -30 MINUTE) AND iduser = $iduser";
        if(!$result = mysqli_query($conexion, $sql)) die();
        foreach($result as $row){
           $FECHA = $row['fecha'];
           $VERIFICADOS = $row['VERIFICADOS'];
        }

        //Recuperamos los registros de SCAN anteriores a la fecha actual
        $sql = "select count(distinct(primarynumber)) as ASOCIADOS from scanhistory where jobnumber = '$jobnumber' and tipoAlerta=0 and tipo in ('SCAN','INSPC') and activo = 1 and dateandtime < NOW()";
        if(!$result = mysqli_query($conexion, $sql)) die();
        foreach($result as $row){
           $ASOCIADOS = $row['ASOCIADOS'];
        }
        
        $novedad="";
        $tipoAlerta = 0;
        $Tipo='CHECK-APP';
        
        if($ASOCIADOS < $VERIFICADOS){
            $novedad="ERROR: Se han VERIFICADO (".$VERIFICADOS.") más sellos que los ASOCIADOS (".$ASOCIADOS.") al CONTENEDOR o CARGA";
            $tipoAlerta = 1;
        }
        if($ASOCIADOS > $VERIFICADOS){
            $novedad="ERROR: Los sellos ASOCIADOS (".$ASOCIADOS.") son menor a los VERIFICADOS (".$VERIFICADOS.") para este CONTENEDOR o CARGA";
            $tipoAlerta = 1;
        }
        if($ASOCIADOS == $VERIFICADOS){
            $novedad="OK: La cantidad de Sellos VERIFICADOS es CORRECTA (".$VERIFICADOS." de ".$ASOCIADOS.")";
            $tipoAlerta = 0;
        }
        
        $sql = "SELECT case when idrol = 4 then 64 else (case when idrol = 1 then id else idSupervisor end) end as idSupervisor FROM users WHERE id = $iduser";
        if(!$result = mysqli_query($conexion, $sql)) die();
        $idcliente = 0;
        foreach($result as $row){
           $idcliente = $row['idSupervisor'];
        }

        if($tipoAlerta == 1){
            $datos = 'NOVEDAD con el CONTENEDOR: ['.$jobnumber.']<br>Obs: ['.$novedad.']<br>';
        }
        else{
            $datos = 'VERIFICACION del CONTENEDOR: ['.$jobnumber.']<br>Obs: ['.$novedad.']<br>';
        }
        
        if($tipoAlerta==0){
            $sqlInsert="INSERT INTO logs_sistema (id, fecha, user_id, operacion, permiso, datos, notificado) values (NULL, '$date', $iduser, 'WARNING APP', 'VERIFICACION', '$datos', 0)";
        }
        else{
            $sqlInsert="INSERT INTO logs_sistema (id, fecha, user_id, operacion, permiso, datos, notificado) values (NULL, '$date', $iduser, 'NOVEDAD SELLOS', 'VERIFICACION', '$datos', 0)";
        }

        //return $sqlInsert;
        $conexion->prepare($sqlInsert)->execute();
        
        //Cerramos la base de datos
        $this->desconectarBD($conexion);

        //devolvemos rawdata
        return $novedad;
    }

    
    function getFormatoJsonCaptura($result){
        $idsupervisor = 0;
        $datosSello="";
        $foto1 = "";
        $foto2 = "";
        $foto3 = "";
        $aux="";
        $datos = array();
        foreach($result as $row){
            if ($row['idsupervisor'] > 0)
                $idsupervisor = $row['idsupervisor'];
            if($row['foto1']!= '')
                $foto1=$row['foto1'];
            if($row['foto2']!= '')
                $foto2=$row['foto2'];
            if($row['foto3']!= '')
                $foto3=$row['foto3'];
            
            $aux=utf8_decode(utf8_encode($row['name']));
            if($aux != '')
                $datosSello.='[CLI] '. $aux;
            $datosSello.='** [OBS] '.utf8_decode(utf8_encode($row['userremarks']));
            $aux=utf8_decode(utf8_encode($row['INFO1']));
            if($aux != '')
                $datosSello.='** [INFO1] '. $aux;
            $aux=utf8_decode(utf8_encode($row['INFO2']));
            if($aux != '')
                $datosSello.='** [INFO2] '. $aux;
            $aux=utf8_decode(utf8_encode($row['INFO3']));
            if($aux != '')
                $datosSello.='** [INFO3] '. $aux;
            $aux=utf8_decode(utf8_encode($row['INFO4']));
            if($aux != '')
                $datosSello.='** [INFO4] '. $aux;
            $aux=utf8_decode(utf8_encode($row['INFO5']));
            if($aux != '')
                $datosSello.='** [INFO5] '. $aux;
            
            array_push($datos, array(
                'IdUser'=>$row['iduser'],
                'IdSupervisor'=>$idsupervisor,
                'PrimaryNumber'=>$row['primarynumber'],
                'ReplacedPrimaryNumber'=>$row['replaceprimarynumber'],
                'ContainerNumber'=>$row['jobnumber'],
                'Remarks'=>$datosSello,
                'FotoSello'=>$row['scannedimage'],
                'Location'=>$row['location'],
                'DescLocation'=>utf8_encode($row['address']),
                'Fecha'=>$row['dateandtime'],
                'FlagEnviado'=>$row['flagenviado'],
                'IconoEnviado'=>$row['iconoenviado'],
                'FechaEnvio'=>$row['fechaenviado'],
                'Foto1'=>$foto1,
                'Foto2'=>$foto2,
                'Foto3'=>$foto3,
                'IsVisible'=>$row['isvisible']
                ));
        }
        
        //echo utf8_encode(json_encode($datos));
        return $datos;
    }
    
}


?>