<?php 
//=====================================================================================
//INICIO LA SESION---------------------------------------------------------------------
//=====================================================================================
session_start();
//=====================================================================================
//CONEXION-----------------------------------------------------------------------------
//=====================================================================================
require_once '../conn/conn.php';
$bd_conn = new connexion();
$bd_conn->query("SET NAMES 'utf8'");
//=====================================================================================
//VARIABLES----------------------------------------------------------------------------
//=====================================================================================
require_once '../core/config.php';
date_default_timezone_set("Europe/Madrid");
require_once('../../assets/FPDI-2.3.1/autoload.php');
use \setasign\Fpdi\Fpdi;
//CARGO LAS LIBRERIAS-----------------------------------------------------------
require_once('../../assets/FPDF/fpdf.php'); // Incluímos las librerías anteriormente mencionadas
require_once('../../assets/FPDI_PDF-Parser-2.0.4/autoload.php');
require_once("../../../../recursos/mpdf/vendor/autoload.php"); 
//=====================================================================================
//----------------VARIBLES-------------------------------------------------------------
//=====================================================================================
$user = "";
$user = "EXT";
$grupo = "";
//$grupo = -1;
$contacto = 0;
$ordenador = "externo";
$date = date( "Y-m-d h:i:s" );
$mail = 0;
$next_firm = 0;
define('PW_OWNER', 'ENCRYPT_PW_OWNER');
define('PW_OPEN', 'ENCRYPT_PW_OPEN');
define('COD_EDIT', 'ENCRYPT_PERM_EDIT');
define('COD_PRINT', 'ENCRYPT_PERM_PRINT');
define('COD_COPY', 'ENCRYPT_PERM_COPY');
define('COD_EXTRAC', 'ENCRYPT_PERM_EXTRAC');
//=====================================================================================
//----------------ACCIONES-------------------------------------------------------------
//=====================================================================================
//VARIABLES
//ID CLAVE
$random = get_id_unico();
//ID DEL DOCUMENTO
$id_doc = $_POST["id_doc"];
//txt_nombre
$txt_nombre = trim(strtoupper($_POST["txt_nombre"]));
//txt_dni
$txt_dni = trim(strtoupper($_POST["txt_dni"]));
//IMAGEN DE LA FIRMA
$img = $_POST['mime']; 
//NOMBRE IMAGEN
$nombre_imagen = "../../assets/temp/img_" . $random . ".png";
//=============================================================================
//============================================LIMPIO EL TEMPORAL===============
//=============================================================================
//LIMPIO LOS DOCUMENTOS CON ANTIGUEDAD MAYOR A 5 min---------------------------
$dir = opendir('../../assets/temp/');
while($f = readdir($dir))
{
if((time()-filemtime('../../assets/temp/'.$f) > 5) and !(is_dir('../../assets/temp/'.$f)))
unlink('../../assets/temp/'.$f);
}
//=============================================================================
//============================================CREO LA IMAGEN DE LA FIRMA=======
//=============================================================================
$img = str_replace('data:image/png;base64,', '', $img);
$img = str_replace(' ', '+', $img);
$data = base64_decode($img);
file_put_contents($nombre_imagen, $data);
//=============================================================================
//============================================DESCARGO EL DOCUMENTO============
//=============================================================================
//varibles=====================================================================
$doc = "20". $id_doc;
//Obtencion Datos del Doc------------------------------------------------------
$datos = datosDoc($bd_conn, $doc);
//REGRESO EL NOMBRE DEL DOCUMENTO----------------------------------------------
$nombre = $datos['NOMBRE'];
$nombre = limpiar($datos['NOMBRE']);
$ambito = $datos['AMBITO'];
$acceso = $datos['ACCESO'] . $datos['ACCESO_AUTO'];
$tamano = $datos['TAMANO'];
$padre = nombrePadre($bd_conn, $datos['PADRE']);  
$accion = 52; //FIRMADO
$tipo = "D"; //Tipo documento
$awa = 1;
//HAGO EL REGISTRO EN LA TRAZA-------------------------------------------------
registroHistorial($bd_conn, $doc, $user, $ordenador, $nombre, $padre, $ambito, $acceso, $tamano, $awa, $accion, $tipo);
//EXTENSION DEL DOCUMENTO------------------------------------------------------
$ext = strtolower($datos['EXTENSION']);
//Obtengo el Sufijo del Fichero------------------------------------------------
$tabla_sufijo = 'FICHEROS_'.$datos['SUFIJO'];
//FICHERO Y DOCUEMNTO A CREAR--------------------------------------------------
$ruta_doc = '../../assets/temp/'.$nombre;
//Elimino el documento si existe-----------------------------------------------
@unlink('../../assets/temp/'.$nombre);
//Obtencion de la Primera parte del Fichero------------------------------------
$archivo = parte1Doc($bd_conn, $doc, $tabla_sufijo);
//CREO EL DOCUMEMTO EN EL DIRECTORIO TEMPORAL----------------------------------
$create_doc = fopen($ruta_doc, 'a');
//Obtengo LA CANTIDAD DE PARTES DEL DOCUMENTO----------------------------------
$num_parte = $datos['PARTES'];
//LLENO EL DOCUMENTO ----------------------------------------------------------
if ($num_parte > 0) {
    for ($i=1; $i<=$num_parte; $i++) {
        //BUSCO EL CONTENIDO DE LAS PARTES-------------------------------------
        $fichero_partes = parteAdicionalDoc($bd_conn, $doc, $tabla_sufijo, $i);
        //VACIO ESE CONTENIDO EN EL DOCUMENTO----------------------------------
        fwrite($create_doc, $fichero_partes);
    }
}
//CIERRO EL DOCUMENTO----------------------------------------------------------
fclose($create_doc);

//VALIDO QUE EL DOCUMENTO POSEA ETIQUETAS------------------------------------
$has_etiqueta = verficarDocumentoPoseeEtiquetas($bd_conn, $doc);
//EVALUO DE POSEER ETIQUETAS CONSULTO----------------------------------------
//DETERMINO EL TIPO DE DOCUMENTO A FIRMAR------------------------------------
$etiqueta_doc = etiquetaEsquemaDoc($bd_conn, $doc);
//RECORRO LAS EQITUETAS ENCONTRADAS------------------------------------------
while ($row = $etiqueta_doc->fetch_object()){
    //CONSULTAR EL NUMEOR TOTAL DE PAGINAS---------------------------------------
    $total_pag = numeroPaginasPdf($ruta_doc);
    //$total_pag = consultarTotalPaginasDocumento($bd_conn, COD_ESQUEMA);
    //NOMBRE DEL NUEVO DOCUMENTO----------------------------------------------------
    $nuevoNombreDelPDF = "../../assets/temp/new_" . $nombre;
    //CREO LA NUEVA VARIABLE-------------------------------------------------------
    $pdf =  new \setasign\Fpdi\Fpdi();
    //RUTA DEL ARCHIVO ORIGINAL----------------------------------------------------
    $pdf->setSourceFile("../../assets/temp/" . $nombre);
    for ($i = 1; $i <= $total_pag  ; $i++) { 
        //
        $pdf->AddPage();
        $pagina = $pdf->importPage($i);
        $pdf->useTemplate($pagina);
        //CONSULTO SI EL TIPO DE ETIQUETA ESTA PARAMETRIZADO EN ESQUEMAS DETALLE-
        $datos_esquema = consultarDatosEsquemasDetalle($bd_conn, $row->CODIGO, $i);
        //
        while ($row_esq = $datos_esquema->fetch_object()){
            //ANCHO DE FIRMA
            $ancho_firma = $row_esq->ANCHO_FIRMA;
            //ALTO FIRMA
            $alto_firma = $row_esq->ALTO_FIRMA;
            //UBIC HORIZONTAL
            $ubic_horizontal = $row_esq->UBIC_HORIZONTAL;
            //UBIC  VERTICAL
            $ubic_vertical = $row_esq->UBIC_VERTICAL;
            //
            $pdf->Image($nombre_imagen, $ubic_horizontal, $ubic_vertical, $ancho_firma, $alto_firma);
            //EVALUO SI SE IMRIMERO LOS DATOS DE NOMBRE Y DNI----------------------
            if ( $row_esq->DATOS == 1 ) {
                //ESCRIBO EL NOMBRE------------------------------------------------
                $pdf->SetFont('Arial', '', '8'); 
                $pdf->SetTextColor(0,0,0);
                //set position in pdf document
                $pdf->SetXY($ubic_horizontal, $ubic_vertical + 45);
                //first parameter defines the line height
                $pdf->Write(0, "Nombre : " . $txt_nombre);
                //set position in pdf document
                $pdf->SetXY($ubic_horizontal, $ubic_vertical + 50);
                //first parameter defines the line height
                $pdf->Write(0, "DNI : " . $txt_dni);
            }
        }
        //FIRMO LAS MARCADA PARA LA ULTIMA HOJA-------------------------------------
        if ($total_pag == $i) {
            //CONSULTO SI EL TIPO DE ETIQUETA ESTA PARAMETRIZADO EN ESQUEMAS DETALLE-
            $datos_esquema = consultarDatosEsquemasDetalle($bd_conn, $row->CODIGO, 0);
            while ($row_esq = $datos_esquema->fetch_object()){
                //ANCHO DE FIRMA
                $ancho_firma = $row_esq->ANCHO_FIRMA;
                //ALTO FIRMA
                $alto_firma = $row_esq->ALTO_FIRMA;
                //UBIC HORIZONTAL
                $ubic_horizontal = $row_esq->UBIC_HORIZONTAL;
                //UBIC  VERTICAL
                $ubic_vertical = $row_esq->UBIC_VERTICAL;
                //
                $pdf->Image($nombre_imagen, $ubic_horizontal, $ubic_vertical, $ancho_firma, $alto_firma);
                //EVALUO SI SE IMRIMERO LOS DATOS DE NOMBRE Y DNI----------------------
                if ( $row_esq->DATOS == 1 ) {
                    //ESCRIBO EL NOMBRE------------------------------------------------
                    $pdf->SetFont('Arial', '', '8'); 
                    $pdf->SetTextColor(0,0,0);
                    //set position in pdf document
                    $pdf->SetXY($ubic_horizontal, $ubic_vertical + 45);
                    //first parameter defines the line height
                    $pdf->Write(0, "Nombre : " . $txt_nombre);
                    //set position in pdf document
                    $pdf->SetXY($ubic_horizontal, $ubic_vertical + 50);
                    //first parameter defines the line height
                    $pdf->Write(0, "DNI : " . $txt_dni);
                }
            }
        }
    }
}
//CREO EL NUEVO DOCUMENTO------------------------------------------------------
$pdf->Output($nuevoNombreDelPDF, "F");
//=====================================================================================
//VERIFICO SI SE ENCRIPTARA EL DOCUMENTO===============================================
//=====================================================================================
//VERIFICO SI SE ENCRIPTARA EL DOCUMENTO===============================================
//DATOS DE ENCRIPTACIÓN================================================================
$pw_owner = consultarDatosEncriptacion($bd_conn, PW_OWNER);
$pw_owner = ( trim($pw_owner) == '' ) ? sha1(date( "ymdHis" ) . sprintf( "%04d", rand( 0, 9999 ) ) ) : $pw_owner ;
$pw_open = consultarDatosEncriptacion($bd_conn, PW_OPEN);
$edit_doc = consultarDatosEncriptacion($bd_conn, COD_EDIT);
$copy_doc = consultarDatosEncriptacion($bd_conn, COD_COPY);
$print_doc = consultarDatosEncriptacion($bd_conn, COD_PRINT);
$extract_doc = consultarDatosEncriptacion($bd_conn, COD_EXTRAC);
$array_permisos = array();
if ($edit_doc == 1) {array_push($array_permisos, 'modify');}
if ($copy_doc == 1) {array_push($array_permisos, 'copy');}
if ($extract_doc == 1) {array_push($array_permisos, 'extract');}
if ($print_doc == 1) {array_push($array_permisos, 'print');}
//VERIFICO SI EL TIPO DE DOCUMENTO VA A SER ENCRIPTADO-----------------------------
$etiqueta_doc = etiquetaEsquemaDoc($bd_conn, $doc);
//RECORRO LAS EQITUETAS ENCONTRADAS------------------------------------------
while ($row = $etiqueta_doc->fetch_object()){
    $encript = consultarDocumentoEncriptar($bd_conn, $row->CODIGO);
    if ($encript == '1') {
        $mpdf = new \Mpdf\Mpdf();
        //$nuevoNombreDelPDF = "../../../assets/temp_firma/new_" . $nombre;
        $total_pag = numeroPaginasPdf($nuevoNombreDelPDF);
        $mpdf->SetSourceFile($nuevoNombreDelPDF);
        for ($i=1; $i<=($total_pag); $i++) {
            $mpdf->AddPage();
            $tplId = $mpdf->importPage($i);
            $mpdf->useTemplate($tplId);
        }
        $mpdf->SetProtection($array_permisos, $pw_open, $pw_owner);
        $mpdf->Output($nuevoNombreDelPDF,'F');
    }
}
//=====================================================================================
//SUBO EL DOCUMENTO RESULTANTE=========================================================
//CONSULO SI EL DOCUMETO POSEE O NO EL VERSIONADO ACTIVO-------------------------------
$doc_verionado = datosDocumento($bd_conn,$doc);   
//EVALUO SI EL DOcUMENTO POSEE VERSION ACTUALMENTE-------------------------------------
if ( $doc_verionado["VERSIONADO"] == 0 ) {
    //ACTUALIZO EL CAMPO Y ACTIVO EL VERSIONADO DEL DOCUMENTO--------------------------
    UpdateVersionadoDocumento($bd_conn, $doc);
    //SUFIJO DE LA TABLA---------------------------------------------------------------
    $sufijo = $doc_verionado["SUFIJO"];
    //
    $version_actual = "0";
    //OBTENER LA VERSION BASE DEL DOCUMENTO--------------------------------------------
    $datos_version_base = versionBaseDocumento($bd_conn,$doc,$sufijo,$version_actual);
    //VARIABLES------------------------------------------------------------------------
    //PARTE
    $parte = $datos_version_base["PARTE"];
    //VERSION
    $version = "1.00";
    //FICHERO
    $fichero = mysqli_real_escape_string($bd_conn, $datos_version_base["FICHERO"]);
    //TAMANO
    $tamano = $datos_version_base["TAMANO"];
    //ENTRADA
    $entrada = $datos_version_base["ENTRADA"];
    //COMPRIMIDO
    $comprimido = $datos_version_base["COMPRIMIDO"];
    //TAMANOREAL
    $tamano_real = $datos_version_base["TAMANOREAL"];
    //ENCRIPTADO
    $encriptado = $datos_version_base["ENCRIPTADO"];
    //CREO EL REGISTRO DEL VERSIONADO DEL DOCUMENTO EN LA DE FICHEROS------------------
    creaRegistroTablaFicheros($bd_conn, $doc, $parte, $version, $fichero, $tamano, $entrada, $tamano_real, $sufijo);
    //=================================================================================
    //CREO EL REGISTRO DE LA NUEVA VERSION---------------------------------------------
    //AUMENTO LA VERSION ACTUAL
    $nueva_version = $version + 0.01;
    //este es el archivo temporal
    $imagen_temporal  = $nuevoNombreDelPDF;
    //Tamaño    
    $tamano = filesize($imagen_temporal);
    $tamano_real = filesize($imagen_temporal);
    //=================================================================================
    //leer el archivo temporal en binario----------------------------------------------
    $fp     = fopen($imagen_temporal, 'r');
    $data = fread($fp, filesize($imagen_temporal));
    fclose($fp);
    //escapar los caracteres-----------------------------------------------------------
    $data = mysqli_real_escape_string($bd_conn, $data);
    //CREO EL REGISTRO DEL NUEVO DOCUMENTO EN LA TABLA DE LOS FICHEROS-----------------
    creaRegistroTablaFicheros($bd_conn, $doc, $parte, $nueva_version, $data, $tamano, $entrada, $tamano_real, $sufijo);
    //ACTUALIZO LA VERSION EN LA TABLA DE ELEMENTOS------------------------------------
    UpdateNuevaVersionDocumento($bd_conn, $doc, $nueva_version, DOCS_APORTADOS);
    //=================================================================================
    //HAGO EL UPDATE DEL FICHERO ACTUAL DEL DOC EN LA DE FICHERO-----------------------
    UpdateDocumentoActual($bd_conn, $doc, $data, $tamano, $tamano_real, $sufijo);
}elseif ( $doc_verionado["VERSIONADO"] == 1 ) {
    //SUFIJO DE LA TABLA---------------------------------------------------------------
    $sufijo = $doc_verionado["SUFIJO"];
    //
    $version_actual = $doc_verionado["VERSION"];
    //OBTENER LA VERSION BASE DEL DOCUMENTO--------------------------------------------
    $datos_version_base = versionBaseDocumento($bd_conn,$doc,$sufijo,$version_actual);
    //VARIABLES------------------------------------------------------------------------
    //PARTE
    $parte = $datos_version_base["PARTE"];
    //VERSION
    $nueva_version = $version_actual + 0.01;
    //ENTRADA
    $entrada = $datos_version_base["ENTRADA"];
    //COMPRIMIDO
    $comprimido = $datos_version_base["COMPRIMIDO"];
    //ENCRIPTADO
    $encriptado = $datos_version_base["ENCRIPTADO"];
    //este es el archivo temporal
    $imagen_temporal  = $nuevoNombreDelPDF;
    //Tamaño    
    $tamano = filesize($imagen_temporal);
    $tamano_real = filesize($imagen_temporal);
    //=================================================================================
    //leer el archivo temporal en binario----------------------------------------------
    $fp     = fopen($imagen_temporal, 'r');
    $data = fread($fp, filesize($imagen_temporal));
    fclose($fp);
    //escapar los caracteres-----------------------------------------------------------
    $data = mysqli_real_escape_string($bd_conn, $data);
    //CREO EL REGISTRO DEL NUEVO DOCUMENTO EN LA TABLA DE LOS FICHEROS-----------------
    creaRegistroTablaFicheros($bd_conn, $doc, $parte, $nueva_version, $data, $tamano, $entrada, $tamano_real, $sufijo);
    //ACTUALIZO LA VERSION EN LA TABLA DE ELEMENTOS------------------------------------
    UpdateNuevaVersionDocumento($bd_conn, $doc, $nueva_version, DOCS_APORTADOS);
    //=================================================================================
    //HAGO EL UPDATE DEL FICHERO ACTUAL DEL DOC EN LA DE FICHERO-----------------------
    UpdateDocumentoActual($bd_conn, $doc, $data, $tamano, $tamano_real, $sufijo);
    
    //
    //$desc_etq = descripcionCampoAfterSign($bd_conn, COD_LISTA_ESTADO, COD_ETQ_AFER_SIGN);
    //UpdateEtiquetaEstado($bd_conn, $doc, COD_ESQUEMA, COD_CAMPO_ESTADO, $desc_etq, COD_ETQ_AFER_SIGN);
}
//=====================================================================================
//----------------FUNCIONES------------------------------------------------------------
//=====================================================================================
function consultarDocumentoEncriptar($bd, $clave_esq)
{
    $sql =  "   SELECT E.ENCRIPTAR
                FROM AWASIGN_ESQUEMA E
                WHERE E.TIPO_DOC = $clave_esq LIMIT 1";
    $result = $bd->query($sql);
    $row = mysqli_fetch_array($result);
    $result = $row["ENCRIPTAR"];
    return $result;
}
function consultarDatosEncriptacion($bd, $codigo_parametro)
{
    $sql =  "   SELECT P.VALOR
                FROM AWASIGN_PARAMETROS P
                WHERE P.CODIGO = '$codigo_parametro' LIMIT 1";
    $result = $bd->query($sql);
    $row = mysqli_fetch_array($result);
    $result = $row["VALOR"];
    return $result;
}
function etiquetaEsquemaDoc($bd, $id_doc) {
  $sql =  " SELECT DISTINCT E.CODIGO
            FROM BIBLIOTECA_ETIQUETAS BE 
            INNER JOIN ESQUEMAS E
            ON BE.ESQUEMA = E.CODIGO
            WHERE BE.CLAVE = '$id_doc' AND BE.PADRE = '' AND BE.GRUPOE = 1  AND E.CODIGO > 0 LIMIT 1";
  $labels = $bd->query($sql);
  return $labels;
  $base->close();
    
}
function verficarDocumentoPoseeEtiquetas($bd, $id_doc)
{
    $sql =  "   SELECT COUNT(E.CODIGO) AS TOTAL
                FROM BIBLIOTECA_ETIQUETAS BE 
                INNER JOIN ESQUEMAS E
                ON BE.ESQUEMA = E.CODIGO
                WHERE BE.CLAVE = '$id_doc' AND BE.PADRE = '' AND BE.GRUPOE = 1  AND E.CODIGO > 0";
    $result = $bd->query($sql);
    $row = mysqli_fetch_array($result);
    $result = $row["TOTAL"];
    return $result;
}
function numeroPaginasPdf($filepath)
{
    $fp = @fopen(preg_replace("/\[(.*?)\]/i", "",$filepath),"r");
    $max=0;
    while(!feof($fp)) {
    
            $line = fgets($fp,255);
            if (preg_match('/\/Count [0-9]+/', $line, $matches)){
                    preg_match('/[0-9]+/',$matches[0], $matches2);
                    if ($max<$matches2[0]) $max=$matches2[0];
            }
    }
    fclose($fp);
    if($max==0){
        $im = new imagick($filepath);
        $max=$im->getNumberImages();
    }
    return $max;
}
function is_valid_email($str)
{
  return (false !== strpos($str, "@") && false !== strpos($str, "."));
}
function UpdateEtiquetaEstado($bd, $doc, $cod_esquema, $cod_campo_estado, $desc_etq, $new_code_lista)
{
    $query = "  UPDATE BIBLIOTECA_ETIQUETAS
                SET DESCRIPCION = '$desc_etq', ETIQUETA = $new_code_lista
                WHERE CLAVE = '$doc' AND ESQUEMA = $cod_esquema AND GRUPOE = $cod_campo_estado";
    mysqli_query($bd, $query);
}
function descripcionCampoAfterSign($bd, $etq_grupo, $etiqueta)
{
$sql = "SELECT E.DESCRIPCION
        FROM ETIQUETAS E
        WHERE E.GRUPO= $etq_grupo AND E.CODIGO = $etiqueta LIMIT 1";
$base = $bd->query($sql);
$result = mysqli_fetch_array($base);
return trim($result['DESCRIPCION']);
}
function datosMail($bd, $mail_sistema)
{
  $sql = "  SELECT C.SERVIDOR_SALIENTE, C.AUT_SALIENTE, C.CUENTA, C.CLAVE, C.DESCRIPCION, C.PUERTO_SALIENTE, C.MOSTRAR
            FROM CORREO_CUENTAS C
            WHERE C.CUENTA = '$mail_sistema' AND C.ACTIVA = 1";
  $base = $bd->query($sql);
  $result = mysqli_fetch_array($base);
  return $result;
}
function correoSistema($bd)
{
$sql = "SELECT P.VALOR
        FROM PARAMETROS  P
        WHERE P.CODIGO = 'CORREO_SISTEMA'";
$base = $bd->query($sql);
$result = mysqli_fetch_array($base);
$correo = $result['VALOR'];
return $correo;
}
function logoURL($bd)
{
  $sql = "  SELECT P.VALOR
            FROM PARAMETROS P
            WHERE P.CODIGO = 'LOGOHEADER_AUTO' LIMIT 1";
  $base = $bd->query($sql);
  $result = mysqli_fetch_array($base);
  $logo = $result['VALOR'];
  return $logo;
}
function dominioCliente($bd)
{
  $sql =  " SELECT P.VALOR
            FROM PARAMETROS P 
            WHERE P.CODIGO = 'AWA_DOMINIO'";
  $base = $bd->query($sql);
  $row = mysqli_fetch_array($base);
  $dominio = $row['VALOR'];
  return $dominio;
  $base->close();
}
function get_id_unico() 
{
    return date( "ymdHis" ) . sprintf( "%04d", rand( 0, 9999 ) );
}
function datosDoc($bd, $id_doc)
{
$sql =  " SELECT e.CLAVE, e.NOMBRE, e.EXTENSION, e.TAMANO, e.SUFIJO, e.PARTES, e.PADRE, e.AMBITO, e.ACCESO, e.ACCESO_AUTO
        FROM BIBLIOTECA_ELEMENTOS e 
        WHERE e.CLAVE = '$id_doc' LIMIT 1";
$base = $bd->query($sql);
$datos = mysqli_fetch_assoc($base);
$base->close();
return $datos;
}
function limpiar($String){
    $String = str_replace(array('á','à','â','ã','ª','ä'),"a",$String);
    $String = str_replace(array('Á','À','Â','Ã','Ä'),"A",$String);
    $String = str_replace(array('Í','Ì','Î','Ï'),"I",$String);
    $String = str_replace(array('í','ì','î','ï'),"i",$String);
    $String = str_replace(array('é','è','ê','ë'),"e",$String);
    $String = str_replace(array('É','È','Ê','Ë'),"E",$String);
    $String = str_replace(array('ó','ò','ô','õ','ö','º'),"o",$String);
    $String = str_replace(array('Ó','Ò','Ô','Õ','Ö'),"O",$String);
    $String = str_replace(array('ú','ù','û','ü'),"u",$String);
    $String = str_replace(array('Ú','Ù','Û','Ü'),"U",$String);
    $String = str_replace(array('[','^','´','`','¨','~',']', "'"),"",$String);
    $String = str_replace("ç","c",$String);
    $String = str_replace("Ç","C",$String);
    $String = str_replace("ñ","n",$String);
    $String = str_replace("Ñ","N",$String);
    $String = str_replace("Ý","Y",$String);
    $String = str_replace("ý","y",$String);
     
    $String = str_replace("&aacute;","a",$String);
    $String = str_replace("&Aacute;","A",$String);
    $String = str_replace("&eacute;","e",$String);
    $String = str_replace("&Eacute;","E",$String);
    $String = str_replace("&iacute;","i",$String);
    $String = str_replace("&Iacute;","I",$String);
    $String = str_replace("&oacute;","o",$String);
    $String = str_replace("&Oacute;","O",$String);
    $String = str_replace("&uacute;","u",$String);
    $String = str_replace("&Uacute;","U",$String);

    $String = str_replace("/","-",$String);
    $String = str_replace(" ","_",$String);
    $String = strtolower($String);
    return $String;
}
function nombrePadre($bd, $id_padre){
    //EVALUO SI EL PADRE NO PERTECENE A ALGUN DIRECTORIO RAIZ PUBLICO O PRIVADO
    if ($id_padre == "##PUBLICO##" OR $id_padre == "##PRIVADO##" OR $id_padre == "##USUARIOS##") {
        if ($id_padre == "##PUBLICO##") {
            $padre = "##PUBLICO##";
        }
        if ($id_padre == "##PRIVADO##") {
            $padre = "##PRIVADO##";
        } 
        if ($id_padre == "##USUARIOS##") {
            $padre = "##USUARIOS##";
        }  
    }else{
        $sql = "    SELECT e.NOMBRE
                    FROM BIBLIOTECA_ELEMENTOS e
                    WHERE e.CLAVE = '$id_padre'
                    AND e.TIPO = 'C' LIMIT 1";
        $base = $bd->query($sql);
        $nomb_padre = mysqli_fetch_assoc($base);
        $padre = $nomb_padre['NOMBRE'];
    }
    return $padre;
}
function registroHistorial($bd, $doc, $user, $ordenador, $nombre, $padre, $ambito, $acceso, $tamano, $awa, $accion, $tipo)
{
$query =" INSERT INTO BIBLIOTECA_HISTORIAL ( CLAVE, USUARIO, FECHA, ACCION, DOCUMENTO, CARPETA, ORDENADOR, AMBITO, ACCESO, TIPO, TAMANO, CREADOR, AWA)
        VALUES ( '$doc', '$user', NOW(), $accion, '$nombre', '$padre', '$ordenador', '$ambito', '$acceso', '$tipo', $tamano, '$user', $awa)";
mysqli_query($bd, $query);
}
function parte1Doc($bd,$id_doc, $tabla_sufijo){
$sql =  " SELECT FICHERO
            FROM $tabla_sufijo 
            WHERE CLAVE = '$id_doc'
            AND PARTE = 1 AND VERSION = 0 LIMIT 1";
$base = $bd->query($sql);
$archivo = mysqli_fetch_assoc($base);
$base->close();
return $archivo;
}
function parteAdicionalDoc($bd,$id_doc, $tabla_sufijo, $parte){
$sql_partes = " SELECT FICHERO
                FROM $tabla_sufijo
                WHERE PARTE = $parte AND CLAVE = '$id_doc' AND VERSION = 0 LIMIT 1";
    //$qry = sprintf($sql_partes, $parte , $id_doc);
    $parte = $bd->query($sql_partes);
    $fichero = mysqli_fetch_assoc($parte);
    $fichero_partes = $fichero['FICHERO'];
    $parte->close();
    return $fichero_partes;
}
function consultarTotalPaginasDocumento($bd, $esquema)
{
    $sql =  "   SELECT E.TOTAL_PAGINAS
                FROM AWASIGN_ESQUEMA E
                WHERE E.TIPO_DOC = $esquema AND E.ACTIVO = 1 LIMIT 1";
    $result = $bd->query($sql);
    $row = mysqli_fetch_array($result);
    $result = $row["TOTAL_PAGINAS"];
    return $result;
}
function consultarDatosEsquemasDetalle($bd, $esquema, $pagina)
{
    $sql =  "   SELECT ED.PAGINA_FIRMA, ED.ANCHO_FIRMA, ED.ALTO_FIRMA, ED.UBIC_HORIZONTAL, ED.UBIC_VERTICAL, ED.DATOS
                FROM AWASIGN_ESQUEMA_DETALLE ED
                INNER JOIN AWASIGN_ESQUEMA E
                ON E.CODIGO = ED.ESQUEMA
                WHERE E.TIPO_DOC = $esquema AND ED.PAGINA_FIRMA = $pagina AND ED.ACTIVO = 1 ";
    $result = $bd->query($sql);
    return $result;
}
function datosDocumento($bd,$doc)
{
    $sql =  "   SELECT E.VERSION, E.VERSIONADO, E.SUFIJO
                FROM BIBLIOTECA_ELEMENTOS E
                WHERE E.CLAVE = '$doc' LIMIT 1";
    $result = $bd->query($sql);
    $row = mysqli_fetch_array($result);
    return $row;
}
function UpdateVersionadoDocumento($bd, $doc)
{
    $query = "  UPDATE BIBLIOTECA_ELEMENTOS 
                SET VERSIONADO = 1, VERSION = '1.00', MODIFICACION = now()
                WHERE CLAVE = '$doc'";
    mysqli_query($bd, $query);
}
function versionBaseDocumento($bd,$doc,$sufijo,$version_actual)
{
    $sql =  "   SELECT *
                FROM FICHEROS_".$sufijo."
                WHERE CLAVE = '$doc' AND VERSION = '$version_actual' LIMIT 1";
    $result = $bd->query($sql);
    $row = mysqli_fetch_array($result);
    return $row;
}
function creaRegistroTablaFicheros($bd, $doc, $parte, $version, $fichero, $tamano, $entrada, $tamano_real, $sufijo)
{
    $query = "  INSERT INTO FICHEROS_".$sufijo." (CLAVE, VERSION, ENTRADA, TAMANO, TAMANOREAL, PARTE, FICHERO)
                VALUES ( '$doc', '$version', '$entrada', $tamano, $tamano_real, $parte, '$fichero')";
    mysqli_query($bd, $query);
}
function UpdateNuevaVersionDocumento($bd, $doc, $nueva_version, $estado_new)
{
    $query = "  UPDATE BIBLIOTECA_ELEMENTOS 
                SET VERSION = '$nueva_version', MODIFICACION = now(), ESTADO_PC = $estado_new
                WHERE CLAVE = '$doc'";
    mysqli_query($bd, $query);
}
function UpdateDocumentoActual($bd, $doc, $fichero, $tamano, $tamano_real, $sufijo)
{
    $query = "  UPDATE FICHEROS_".$sufijo." 
                SET FICHERO = '$fichero', TAMANO = $tamano, TAMANOREAL = $tamano_real
                WHERE CLAVE = '$doc' AND VERSION = '0' ";
    mysqli_query($bd, $query);
}
?>




