<?php
//Contador expediente
function contadores($con)
{
    $sql = "SELECT PREFIJO,CONTADORSIG,SUFIJO,MASCARA FROM CONTADORES WHERE CODIGO = 'EXP000000000000034'";
    $res = $con->query($sql);
    $fila = $res->fetch_array();
    //Añadir caracteres a la izquierda str_pad(caracter principal,numero de caracteres,tipo de caracter,pozitia caracterelor)
    $mascara = str_pad($fila['CONTADORSIG'],strlen($fila['MASCARA']),0,STR_PAD_LEFT);
    $contador = $fila['PREFIJO'].$mascara;
    $contsig = $fila['CONTADORSIG'] + 1;
    $sql = "UPDATE CONTADORES SET CONTADORSIG = $contsig WHERE CODIGO = 'EXP000000000000034'";
    $con->query($sql);
    return $contador;
}




//Otros contadores
function get_contadores($con,$codigo)
{
    $sql = "SELECT PREFIJO,CONTADORSIG,SUFIJO,MASCARA FROM CONTADORES WHERE CODIGO = '$codigo'";
    $res = $con->query($sql);
    $fila = $res->fetch_array();
    //Añadir caracteres a la izquierda str_pad(caracter principal,numero de caracteres,tipo de caracter,pozitia caracterelor)
    $mascara = str_pad($fila['CONTADORSIG'],strlen($fila['MASCARA']),0,STR_PAD_LEFT);
    $contador = $fila['PREFIJO'].$mascara;
    $contsig = $fila['CONTADORSIG'] + 1;
    $sql = "UPDATE CONTADORES SET CONTADORSIG = $contsig WHERE CODIGO = '$codigo'";
    $con->query($sql);
    return $contador;
}






//Expediente tipo
function expediente_tipo($con,$argumento)
{
    $sql = "SELECT CODIGO,DESCRIPCION,CNP_MOSTRAR FROM EXPEDIENTES_TIPOS WHERE ALIAS = '$argumento'";
    $res = $con->query($sql);
    $fila = $res->fetch_array();
    return array($fila['CODIGO'], $fila['DESCRIPCION'], $fila['CNP_MOSTRAR']);
}




// Esquemas estructura
function esquemas_estructura($con,$argumento)
{
    $sql = "SELECT CODIGO FROM ESQUEMAS_ESTRUCTURA WHERE ESQUEMA = -1 AND ALIAS = '$argumento'";
    $res = $con->query($sql);
    $fila = $res->fetch_array();
    return $fila['CODIGO'];
}


//Get esquemaestructura codigo
function get_esquemas_y_esquemas_estructuras($con)
{
    $sqlEsq = "SELECT CODIGO FROM ESQUEMAS WHERE ALIAS = 'DOC_VEHICULO'";
    $resEsq = $con->query($sqlEsq);
    $filaEsq = $resEsq->fetch_array();
    $sqlEsq2 = "SELECT CODIGO FROM ESQUEMAS_ESTRUCTURA WHERE ESQUEMA = " . $filaEsq['CODIGO'] . " AND ALIAS = 'VEHICULO'";
    $resEsq2 = $con->query($sqlEsq2);
    $filaEsq2 = $resEsq2->fetch_array();
    return array($filaEsq['CODIGO'],$filaEsq2['CODIGO']);
}








//Insert biblioteca expedientes
function insert_biblioteca_expedientes($con,$contador,$grupoe,$tipoexp,$orden,$descripcion,$vimporte = FALSE,$vfecha = FALSE,$etiqueta = FALSE)
{
    $key = "";
    $value = "";
    $key .= "FECHA";
    $value .= "NOW()";
    if($vimporte != FALSE)
    {
        $key .= ',VIMPORTE';
        $value .= ",$vimporte";
    }
    if($vfecha != FALSE)
    {
        $key .= ',VFECHA';
        $value .= ",$vfecha";
    }
    if($etiqueta != FALSE)
    {
        $key .= ',ETIQUETA';
        $value .= ",$etiqueta";
    }
    $sql = "INSERT INTO BIBLIOTECA_EXPEDIENTES(CLAVE,GRUPOE,TIPOEXP,ORDEN,DESCRIPCION,$key) VALUES('$contador',$grupoe,$tipoexp,$orden,'$descripcion',$value)";
    $con->query($sql);
}




//Check expediente
function check_expediente($con,$grupoe,$cotador)
{
    $sql = "SELECT CLAVE FROM BIBLIOTECA_EXPEDIENTES WHERE GRUPOE = $grupoe AND CLAVE = '$cotador'";
    $res = $con->query($sql);
    if($res->num_rows)
    {
        return 1;
    }
    else
    {
        return 0;
    }
}



//get clave biblioteca_expedientes
function get_clave_expedientes($con,$grupoe,$etiqueta)
{
    $sql = "SELECT CLAVE FROM BIBLIOTECA_EXPEDIENTES WHERE GRUPOE = ? AND ETIQUETA = ?";
    $stmt = $con->prepare($sql);
    $stmt->bind_param('ii',$grupoe,$etiqueta);
    $stmt->execute();
    $res = $stmt->get_result();
    $fila = $res->fetch_array();
    return $fila['CLAVE'];
}


//check si existe el tipo(XT $expediente_tipo = 'XT + CODIGO EXPEDIENTE TIPO' => TX34) y el año (XA $expediente_tipo = 'XA + CODIGO EXPEDIENTE TIPO + .AÑO' => TA34.2020)
function check_xta($con,$expediente_tipo)
{
    $sql = "SELECT * FROM BIBLIOTECA_ELEMENTOS WHERE CLAVE = '$expediente_tipo'";
    $res = $con->query($sql);
    if($res->num_rows)
    {
        return 1;
    }
    else
    {
        return 0;
    }
}




//Para asignar acceso a los siguientes procesos
function check_acceso($con,$clave)
{
    $sql = "SELECT ACCESO FROM BIBLIOTECA_ELEMENTOS WHERE CLAVE = '$clave'";
    $res = $con->query($sql);
    $fila = $res->fetch_array();
    return $fila['ACCESO'];
}




//Crear el XT o XA o EXPEDIENT/CARPETA
function crear_xta($con,$clave,$nombre,$padre,$usuarioSession,$icono,$ubicacion,$acceso = FALSE,$expte_codigo = FALSE)
{
    $sql = "INSERT INTO BIBLIOTECA_ELEMENTOS(CLAVE,NOMBRE,PADRE, TIPO,FECHA,AMBITO, CREADOR,MODIFICACION,PARTES, ICONO,UBICACION,ACCESO,EXPTE_CODIGO) VALUES('$clave','$nombre','$padre','C',NOW(),'PUB','$usuarioSession',NOW(),1, '$icono','$ubicacion','$acceso','$expte_codigo')";
    $con->query($sql);
}




//Biblioteca etiquetas
function insert_biblioteca_etiquetas($con,$codigo,$clave,$descripcion,$grupoe,$esquema)
{
    $sql = "INSERT INTO BIBLIOTECA_ETIQUETAS(CODIGO,CLAVE,DESCRIPCION,GRUPOE,ESQUEMA,FECHA,VALOR) VALUES('$codigo','$clave','$descripcion',$grupoe,$esquema,NOW(),'$descripcion')";
    $con->query($sql);
}



//Valor tabla parametros TAM_TABLABLOB
function valor_parametros($con,$codigo)
{
    $sqlParamTable = "SELECT VALOR FROM PARAMETROS WHERE CODIGO = '$codigo'";
    $resParamTable = $con->query($sqlParamTable);
    $filaParamTable = $resParamTable->fetch_array();
    return $filaParamTable['VALOR'];
}




//Cambiar nombre (+1);
function cambiar_nombre_doc($con,$name)
{
    $counter = 1;
    $a = explode(".",$name);
    $nameCTRL = $a[0] . "(";
    $sqlName2 = "SELECT COUNT(NOMBRE) AS SUM_CTRL FROM BIBLIOTECA_ELEMENTOS WHERE NOMBRE LIKE '$nameCTRL%'";
    $resName2 = $con->query($sqlName2);
    if($resName2->num_rows > 0)
    {
        $filaName2 = $resName2->fetch_array();
        $counter = $counter + intval($filaName2['SUM_CTRL']);
        $name = $a[0] . "(" . $counter . ")." . end($a);
        return $name;
    }
}



//Get padre/clave del expediente
function get_padre($con,$etiqueta)
{
    $sql = "SELECT CLAVE FROM BIBLIOTECA_EXPEDIENTES WHERE ETIQUETA = ?";
    $stmt = $con->prepare($sql);
    $stmt->bind_param('i',$etiqueta);
    $stmt->execute();
    $res = $stmt->get_result();
    $fila = $res->fetch_array();
    $clave_etiqueta = $fila['CLAVE'];
    $sql2 = "SELECT CLAVE FROM BIBLIOTECA_ELEMENTOS WHERE EXPTE_CODIGO = '$clave_etiqueta'";
    $res2 = $con->query($sql2);
    $fila2 = $res2->fetch_array();
    return $fila2['CLAVE'];
}




function alias_biblioteca_elementos($con,$alias)
{
    $sql = "SELECT CLAVE FROM BIBLIOTECA_ELEMENTOS WHERE ALIAS = ?";
    $stmt = $con->prepare($sql);
    $stmt->bind_param('s',$alias);
    $stmt->execute();
    $res = $stmt->get_result();
    if($res->num_rows)
    {
        $fila = $res->fetch_array();
        return $fila['CLAVE'];
    }
    else
    {
        return false;
    }
}


function crear_elemento($con,$clave,$nombreArchivo,$extension = NULL,$padre,$acceso = NULL,$ubicacion,$tipo,$size,$ambito = NULL,$usuarioSession,$ordenador,$parte,$entrada = NULL,$sufijo = NULL,$alias = NULL)
{
    $sql = "INSERT INTO BIBLIOTECA_ELEMENTOS(CLAVE,NOMBRE,EXTENSION,PADRE,ACCESO,UBICACION,TIPO,FECHA,TAMANO,AMBITO,CREADOR,ORDENADOR,MODIFICACION,PARTES,ENTRADA,SUFIJO,ALIAS) VALUES('$clave','$nombreArchivo','$extension','$padre','$acceso','$ubicacion','$tipo',NOW(),$size,'$ambito','$usuarioSession','$ordenador',NOW(),$parte,'$entrada','$sufijo','$alias')";
    $con->query($sql);
}


function valorParametros($con)
{
    $sqlParamTable = 'SELECT VALOR FROM PARAMETROS WHERE CODIGO = "TAM_TABLABLOB"';
    $resParamTable = $con->query($sqlParamTable);
    $filaParamTable = $resParamTable->fetch_array();
    return $filaParamTable['VALOR'];
}

function getPAU($con,$clave)
{
    $sqlPAU = "SELECT PADRE,ACCESO,UBICACION FROM BIBLIOTECA_ELEMENTOS WHERE CLAVE = '$clave'";
    $resPAU = $con->query($sqlPAU);
    $filaPAU = $resPAU->fetch_array();
    $acceso = $filaPAU['ACCESO'];
    $ubicacion = $filaPAU['UBICACION'];
    return array('PADRE' => $filaPAU['PADRE'], 'ACCESO' => $filaPAU['ACCESO'], 'UBICACION' => $filaPAU['UBICACION']);
}


function selectOrdenador($con,$usuario)
{
    $sql = "SELECT ORDENADOR FROM USUARIOS_ACCESOS WHERE USUARIO = ? ORDER BY FECHA DESC";
    $stmt = $con->prepare($sql);
    $stmt->bind_param('s',$usuario);
    $stmt->execute();
    $res = $stmt->get_result();
    $fila = $res->fetch_array();
    return $fila['ORDENADOR'];
}



function selectTable($con,$database_cnx,$size,$paramGb)
{
    $sql = "SELECT TABLE_NAME,ROUND(DATA_LENGTH/(1024*1024*1024),1) AS GB
                FROM INFORMATION_SCHEMA.TABLES
                WHERE TABLE_SCHEMA = ?
                AND TABLE_NAME LIKE 'FICHEROS_2%'
                AND (ROUND(DATA_LENGTH/(1024*1024*1024),1) + ROUND(?/(1024*1024*1024),1)) < (ROUND(?,1))
                ORDER BY DATA_LENGTH LIMIT 1";
    $stmt = $con->prepare($sql);
    $stmt->bind_param('sii',$database_cnx,$size,$paramGb);
    $stmt->execute();
    $res = $stmt->get_result();
    if($res->num_rows)
    {
        $fila = $res->fetch_array();
        $table_name = $fila['TABLE_NAME'];
        $explode = explode("_",$table_name);
        return array('SUFIJO' => $explode[1], 'TABLE_NAME' => $fila['TABLE_NAME']);
    }
    else
    {
        return false;
    }
}



function createTable($con,$id_unico)
{
    $sufijo = $id_unico;
    $sql = "CREATE TABLE `FICHEROS_$sufijo` (
        `CLAVE` VARCHAR(18) NOT NULL DEFAULT '',
        `PARTE` INT(11) NOT NULL DEFAULT '0',
        `VERSION` VARCHAR(8) NOT NULL DEFAULT '',
        `FICHERO` LONGBLOB NULL,
        `TAMANO` DOUBLE(15,0) NULL DEFAULT '0',
        `ENTRADA` VARCHAR(18) NULL DEFAULT '',
        `COMPRIMIDO` INT(11) NULL DEFAULT '0',
        `TAMANOREAL` DOUBLE(15,0) NULL DEFAULT '0',
        `ENCRIPTADO` INT(11) NULL DEFAULT '0',
        `FECHA` DATETIME NULL DEFAULT NULL,
        `USUARIO` VARCHAR(50) NULL DEFAULT NULL,
        PRIMARY KEY (`CLAVE`, `PARTE`, `VERSION`),
        INDEX `TAMANO` (`TAMANO`),
        INDEX `ENTRADA` (`ENTRADA`)
    )
    COLLATE='latin1_swedish_ci'
    ENGINE=MyISAM
    ;";
    $res = $con->query($sql);
    $table_name = "FICHEROS_$sufijo";
    return $table_name;
}


function insertDocInTable($con,$table_name,$clave,$parte,$version,$data,$size,$entrada)
{
    $sql = "INSERT INTO $table_name(CLAVE,PARTE,VERSION,FICHERO,TAMANO,ENTRADA,TAMANOREAL) 
                        VALUES(?,?,?,?,?,?,?)";
    $stmt = $con->prepare($sql);
    $stmt->bind_param('siisisi',$clave,$parte,$version,$data,$size,$entrada,$size);
    $stmt->execute();
}


function select_padre_con_alias($con,$alias)
{
    $sql = "SELECT CLAVE FROM BIBLIOTECA_ELEMENTOS WHERE ALIAS = ?";
    $stmt = $con->prepare($sql);
    $stmt->bind_param('s',$alias);
    $stmt->execute();
    $res = $stmt->get_result();
    if($res->num_rows)
    {
        $fila = $res->fetch_array();
        return $fila['CLAVE'];
    }
    else
    {
        return false;
    }
}



function get_clave_biblioteca_expedientes_vehiculo($con, $tipoexp, $grupoe, $etiqueta)
{
    $sql = "SELECT E.* FROM BIBLIOTECA_EXPEDIENTES E
            WHERE E.TIPOEXP = ?
            AND E.GRUPOE = ?
            AND E.ETIQUETA = ?";
    $stmt = $con->prepare($sql);
    $stmt->bind_param('iii',$tipoexp, $grupoe, $etiqueta);
    $stmt->execute();
    $res = $stmt->get_result();
    $fila = $res->fetch_array();
    return $fila['CLAVE'];
    
}


function count_biblioteca_etiquetas($con, $clave)
{
    $esq = -1;
    $sql = "UPDATE BIBLIOTECA_ELEMENTOS 
    SET NUMETI = (SELECT COUNT(CLAVE) AS NETI FROM BIBLIOTECA_ETIQUETAS WHERE CLAVE = ? AND ESQUEMA<>?)
    WHERE CLAVE = ?";
    $stmt = $con->prepare($sql);
    $stmt->bind_param('sis', $clave, $esq, $clave);
    $stmt->execute();
}




?>