<?php
//include_once (ROOT . FOLDER_CORE .'/auth.php'); 
$auth = 1;
if ($auth == 1) {
    if (isset($_POST["codExp"])) {
        if ( $_POST["codExp"] !== '' ) {
            $url_post = trim($_POST["endPoint"]);
            //CONTANTES========================================================
            //define('URL_INST','https://estandartest.papelcero.es/api/avanws.php');
            define('URL_INST','188.227.138.167:8090/papelcero');
            define('ESQUEMA','-1');
            define('ALIAS_FECHA','FECHA');
            define('ALIAS_CONCESIONARIO','CONCESIONARIO');
            define('ALIAS_CLIENTE','CLIENTE');
            define('ALIAS_TIPO_GEST','GESTION_TIPO');
            //VARIABLES========================================================
            $error = 0;
            $error_msg = '';
            $codigo_exp = trim($_POST["codExp"]);
            $error_exp = 0;
            
            //=================================================================
            //VALIDO SI SE HA ENVIADO PREVIAMENTE==============================
            //=================================================================
            $exp_enviado = validaEnvioExpediente($bd_conn, $codigo_exp);
            $exp_enviado = 0;
            
            if ( $exp_enviado == 0 ) {
                $creado_exitoso = 0;
                //BORRO REGISTRO DE ENVIO PREVIO===============================
                deleteRegistroInterGestoVExpedientes($bd_conn, $codigo_exp);
                //ENVIAR A GESTOR V ===========================================
                $post_fields = new stdClass();
                
                //CABECERA DEL EXPEDIENTE======================================
                //CODIGO EXPEDIENTE
                $post_fields->cabecera->codigoExpediente = $codigo_exp;
                //FECHA
                $datos = selectDatosCampo($bd_conn, $codigo_exp, ALIAS_FECHA, ESQUEMA);
                $post_fields->cabecera->fechaExpediente = ( $datos["VFECHA"] !== null AND $datos["VFECHA"] !== '' ) ? $datos["VFECHA"] : null ;
                //TIPO EXPEDIENTE - GESTION
                $datos = selectDatosCampo($bd_conn, $codigo_exp, ALIAS_TIPO_GEST, ESQUEMA);
                $post_fields->cabecera->tipoGestion = ( $datos["DESCRIPCION"] !== null AND $datos["DESCRIPCION"] !== '' ) ? $datos["DESCRIPCION"] : null ;
                //DATOS CONCESIONARIO===========================================
                switch (trim($datos["DESCRIPCION"])) {
                    case 'MATR':
                        $comprador = ALIAS_CLIENTE;
                        $vendedor = ALIAS_CONCESIONARIO;
                        define('ALIAS_MARCA','MARCA');
                        define('ALIAS_MODELO','MODELO');
                        define('ALIAS_COLOR','COLOR');
                        define('ALIAS_PROX_IVT','FECHA ITV');
                        define('ALIAS_BASTIDOR','BASTIDOR');
                        define('ALIAS_MATRICULA','MATRICULA');
                        define('ALIAS_FECHA_MATRIC','FECHA_MATRICULACION');
                        break;

                    case 'TRANV':
                        $comprador = ALIAS_CLIENTE;
                        $vendedor = ALIAS_CONCESIONARIO;
                        define('ALIAS_MARCA','MARCA');
                        define('ALIAS_MODELO','MODELO');
                        define('ALIAS_COLOR','COLOR');
                        define('ALIAS_PROX_IVT','FECHA ITV');
                        define('ALIAS_BASTIDOR','BASTIDOR');
                        define('ALIAS_MATRICULA','MATRICULA');
                        define('ALIAS_FECHA_MATRIC','FECHA_MATRICULACION');
                        break;

                    case 'BAJE':
                        $comprador = ALIAS_CONCESIONARIO;
                        $vendedor = ALIAS_CONCESIONARIO;
                        define('ALIAS_MARCA','MARCA_VO');
                        define('ALIAS_MODELO','MODELO_VO');
                        define('ALIAS_COLOR','COLOR_VO');
                        define('ALIAS_PROX_IVT','FECHA ITV');
                        define('ALIAS_BASTIDOR','BASTIDOR_VO');
                        define('ALIAS_MATRICULA','MATRICULA_VO');
                        define('ALIAS_FECHA_MATRIC','FECHA_MATRICULACION_VO');
                        break;

                    case 'DEPO':
                        $comprador = ALIAS_CONCESIONARIO;
                        $vendedor = ALIAS_CLIENTE;
                        define('ALIAS_MARCA','MARCA_VO');
                        define('ALIAS_MODELO','MODELO_VO');
                        define('ALIAS_COLOR','COLOR_VO');
                        define('ALIAS_PROX_IVT','FECHA ITV');
                        define('ALIAS_BASTIDOR','BASTIDOR_VO');
                        define('ALIAS_MATRICULA','MATRICULA_VO');
                        define('ALIAS_FECHA_MATRIC','FECHA_MATRICULACION_VO');
                        break;

                    case 'TRANC':
                        $comprador = ALIAS_CONCESIONARIO;
                        $vendedor = ALIAS_CLIENTE;
                        define('ALIAS_MARCA','MARCA_VO');
                        define('ALIAS_MODELO','MODELO_VO');
                        define('ALIAS_COLOR','COLOR_VO');
                        define('ALIAS_PROX_IVT','FECHA ITV');
                        define('ALIAS_BASTIDOR','BASTIDOR_VO');
                        define('ALIAS_MATRICULA','MATRICULA_VO');
                        define('ALIAS_FECHA_MATRIC','FECHA_MATRICULACION_VO');
                        break;
                    
                    
                }
                //CODIGO CONCESIONARIO================================================
                $datos = selectDatosCampo($bd_conn, $codigo_exp, ALIAS_CONCESIONARIO, ESQUEMA);
                $post_fields->concesionario->id = ( $datos["DESCRIPCION"] !== null AND $datos["DESCRIPCION"] !== '' ) ? $datos["DESCRIPCION"] : null ;
                //CONSULTO EL COD POSTAL Y NIF DEL CONCESIONARIO
                $codigo_contacto = $datos["ETIQUETA"];
                $datos_concesioanrio = selectDatosContacto($bd_conn, $codigo_contacto);
                $post_fields->concesionario->dni = ( $datos_concesioanrio["NIF"] == '' ) ? null : $datos_concesioanrio["NIF"];
                $cod_post_concesionario = ( $datos_concesioanrio["CP_PER"] !== '' ) ? $datos_concesioanrio["CP_PER"] : $datos_concesioanrio["CP_TRA"] ;
                $post_fields->concesionario->codigoPostal = ( $cod_post_concesionario == '' ) ? null : $cod_post_concesionario;
                //END_POINT CONCESIONARIO
                $post_fields->concesionario->endPoint = $url_post;
                //DATOS DEL COMPRADOR===================================================
                $datos_comprador = selectDatosCampo($bd_conn, $codigo_exp, $comprador, ESQUEMA);
                if ( $datos_comprador["ETIQUETA"] !== null AND $datos_comprador["ETIQUETA"] !== '' ) {
                    $codigo_comprador = $datos_comprador["ETIQUETA"];
                    //CODIGO COMPRADOR
                    $cod_comprador = ( $datos_comprador["ETIQUETA"] == '' ) ? null : $datos_comprador["ETIQUETA"];
                    $post_fields->comprador->id = $cod_comprador;
                    //DATOS DEL COMPRADOR
                    $datos_comprador = selectDatosComprador($bd_conn, $codigo_comprador);
                    $post_fields->comprador->nombre = ( $datos_comprador["NOMBRE"] == '' ) ? null : $datos_comprador["NOMBRE"];
                    $post_fields->comprador->apellido1 = ( $datos_comprador["APELLIDO1"] == '' ) ? null : $datos_comprador["APELLIDO1"];
                    $post_fields->comprador->apellido2 = ( $datos_comprador["APELLIDO2"] == '' ) ? null : $datos_comprador["APELLIDO2"];
                    $post_fields->comprador->dni = ( $datos_comprador["NIF"] == '' ) ? null : $datos_comprador["NIF"];
                    //DIRECCION
                    if (strpos($datos_comprador["DIRECCION_PER"], ",") !== false) {
                        $post_fields->comprador->direccion->direccionCompleta = ( $datos_comprador["DIRECCION_PER"] == '' ) ? null : $datos_comprador["DIRECCION_PER"];
                    }else {
                        $post_fields->comprador->direccion->direccionCompleta = ( $datos_comprador["DIRECCION_PER"] == '' ) ? null : $datos_comprador["DIRECCION_PER"] . ', 0';
                    }
                    $post_fields->comprador->direccion->provincia = ( $datos_comprador["PROVINCIA_PER"] == '' ) ? null : $datos_comprador["PROVINCIA_PER"];
                    $post_fields->comprador->direccion->municipio = ( $datos_comprador["POBLACION_PER"] == '' ) ? null : $datos_comprador["POBLACION_PER"];
                    $post_fields->comprador->direccion->codigoPostal = ( $datos_comprador["CP_PER"] == '' ) ? null : $datos_comprador["CP_PER"];
                    //CONTACTO
                    $post_fields->comprador->contacto->telefono1 = ( $datos_comprador["TLFNO1"] == '' ) ? null : $datos_comprador["TLFNO1"];
                    $post_fields->comprador->contacto->telefono2 = ( $datos_comprador["TLFNO2"] == '' ) ? null : $datos_comprador["TLFNO2"];
                    $post_fields->comprador->contacto->telefono3 = ( $datos_comprador["TLFNO3"] == '' ) ? null : $datos_comprador["TLFNO3"];
                    $post_fields->comprador->contacto->email = ( $datos_comprador["EMAIL1"] == '' ) ? null : $datos_comprador["EMAIL1"];
                }else{
                    $error = 1;
                    $error_msg = 'Faltan los datos del COMPRADOR';
                }
                //DATOS DEL VENDEOR===================================================
                $datos_vendedor = selectDatosCampo($bd_conn, $codigo_exp, $vendedor, ESQUEMA);
                if ( $datos_vendedor["ETIQUETA"] !== null AND $datos_vendedor["ETIQUETA"] !== '' ) {
                    $codigo_vendedor = $datos_vendedor["ETIQUETA"];
                    //CODIGO COMPRADOR
                    $vendedor = ( $datos_vendedor["ETIQUETA"] == '' ) ? null : $datos_vendedor["ETIQUETA"];
                    $post_fields->vendedor->id = $codigo_vendedor;
                    //DATOS DEL COMPRADOR
                    $datos_vendedor = selectDatosComprador($bd_conn, $codigo_vendedor);
                    $post_fields->vendedor->nombre = ( $datos_vendedor["NOMBRE"] == '' ) ? null : $datos_vendedor["NOMBRE"];
                    $post_fields->vendedor->apellido1 = ( $datos_vendedor["APELLIDO1"] == '' ) ? null : $datos_vendedor["APELLIDO1"];
                    $post_fields->vendedor->apellido2 = ( $datos_vendedor["APELLIDO2"] == '' ) ? null : $datos_vendedor["APELLIDO2"];
                    $post_fields->vendedor->dni = ( $datos_vendedor["NIF"] == '' ) ? null : $datos_vendedor["NIF"];
                    //DIRECCION
                    if (strpos($datos_vendedor["DIRECCION_PER"], ",") !== false) {
                        $post_fields->vendedor->direccion->direccionCompleta = ( $datos_vendedor["DIRECCION_PER"] == '' ) ? null : $datos_vendedor["DIRECCION_PER"];
                    }else {
                        $post_fields->vendedor->direccion->direccionCompleta = ( $datos_vendedor["DIRECCION_PER"] == '' ) ? null : $datos_vendedor["DIRECCION_PER"] . ', 0';
                    }
                    $post_fields->vendedor->direccion->provincia = ( $datos_vendedor["PROVINCIA_PER"] == '' ) ? null : $datos_vendedor["PROVINCIA_PER"];
                    $post_fields->vendedor->direccion->municipio = ( $datos_vendedor["POBLACION_PER"] == '' ) ? null : $datos_vendedor["POBLACION_PER"];
                    $post_fields->vendedor->direccion->codigoPostal = ( $datos_vendedor["CP_PER"] == '' ) ? null : $datos_vendedor["CP_PER"];
                    //CONTACTO
                    $post_fields->vendedor->contacto->telefono1 = ( $datos_vendedor["TLFNO1"] == '' ) ? null : $datos_vendedor["TLFNO1"];
                    $post_fields->vendedor->contacto->telefono2 = ( $datos_vendedor["TLFNO2"] == '' ) ? null : $datos_vendedor["TLFNO2"];
                    $post_fields->vendedor->contacto->telefono3 = ( $datos_vendedor["TLFNO3"] == '' ) ? null : $datos_vendedor["TLFNO3"];
                    $post_fields->vendedor->contacto->email = ( $datos_vendedor["EMAIL1"] == '' ) ? null : $datos_vendedor["EMAIL1"];
                }else{
                    $error = 1;
                    $error_msg = 'Faltan los datos del COMPRADOR';
                }
                //DATOS DEL VEHICULO===========================================
                //MARCA
                $datos = selectDatosCampo($bd_conn, $codigo_exp, ALIAS_MARCA, ESQUEMA);
                if ( $datos["DESCRIPCION"] !== null AND $datos["DESCRIPCION"] !== '' ) {
                    $post_fields->vehiculo->marca =  $datos["DESCRIPCION"];
                }else {
                    $codigo_vehiculo = consultaCodigoVehiculo($bd_conn, $codigo_exp);
                    if ( $codigo_vehiculo !== null AND $codigo_vehiculo !== '' ) {
                        $datos_vehiculo = consultaCarDatos($bd_conn, $codigo_vehiculo);
                        $post_fields->vehiculo->marca = $datos_vehiculo["MARCA"];
                    }else {
                        $post_fields->vehiculo->marca = null;
                    }
                }
                //MODELO
                $datos = selectDatosCampo($bd_conn, $codigo_exp, ALIAS_MODELO, ESQUEMA);
                if ( $datos["DESCRIPCION"] !== null AND $datos["DESCRIPCION"] !== '' ) {
                    $post_fields->vehiculo->modelo = $datos["DESCRIPCION"];
                }else {
                    $codigo_vehiculo = consultaCodigoVehiculo($bd_conn, $codigo_exp);
                    if ( $codigo_vehiculo !== null AND $codigo_vehiculo !== '' ) {
                        $datos_vehiculo = consultaCarDatos($bd_conn, $codigo_vehiculo);
                        $post_fields->vehiculo->modelo = $datos_vehiculo["MODELO"];
                    }else {
                        $post_fields->vehiculo->modelo = null;
                    }
                }
                $post_fields->vehiculo->modelo = ( $datos["DESCRIPCION"] !== null AND $datos["DESCRIPCION"] !== '' ) ? $datos["DESCRIPCION"] : null ;
                //BASTIDOR
                $datos = selectDatosCampo($bd_conn, $codigo_exp, ALIAS_BASTIDOR, ESQUEMA);
                $post_fields->vehiculo->bastidor = ( $datos["DESCRIPCION"] !== null AND $datos["DESCRIPCION"] !== '' ) ? $datos["DESCRIPCION"] : null ;
                //COLOR
                $datos = selectDatosCampo($bd_conn, $codigo_exp, ALIAS_COLOR, ESQUEMA);
                $post_fields->vehiculo->color = ( $datos["DESCRIPCION"] !== null AND $datos["DESCRIPCION"] !== '' ) ? $datos["DESCRIPCION"] : null ;

                //MATRICULA
                $datos = selectDatosCampo($bd_conn, $codigo_exp, ALIAS_MATRICULA, ESQUEMA);
                $post_fields->vehiculo->matricula = ( $datos["DESCRIPCION"] !== null AND $datos["DESCRIPCION"] !== '' ) ? $datos["DESCRIPCION"] : null ;
                //FECHA MATRICULACION
                $datos = selectDatosCampo($bd_conn, $codigo_exp, ALIAS_FECHA_MATRIC, ESQUEMA);
                $post_fields->vehiculo->fechaMatriculacion = ( $datos["VFECHA"] !== null AND $datos["VFECHA"] !== '' ) ? $datos["VFECHA"] : null ;

                //SERVICIO (PENDIENTE)
                //$datos = selectDatosCampo($bd_conn, $codigo_exp, ALIAS_COLOR, ESQUEMA);
                $post_fields->vehiculo->servicio = null ;
                //FECHA ITV
                $datos = selectDatosCampo($bd_conn, $codigo_exp, ALIAS_PROX_IVT, ESQUEMA);
                $post_fields->vehiculo->proxIVT = ( $datos["VFECHA"] !== null AND $datos["VFECHA"] !== '' ) ? $datos["VFECHA"] : null ;
                //TIPO VEHICULO (PENDIENTE)
                $post_fields->vehiculo->tipoVehiculo = null ;
                //CARBURANTE - COMBUSTIBLE (PENDIENTE)
                $post_fields->vehiculo->carburante = null ;
                //Co2
                $post_fields->vehiculo->co2 = null ;
                //CILINDRADA
                $post_fields->vehiculo->cilindrada = null ;
                //Potencia fiscal
                $post_fields->vehiculo->potenciaFiscal = null ;
                //Potencia real
                $post_fields->vehiculo->potenciaReal = null ;
                //CONVIERTO A JSON=============================================
                $post_fields_json = json_encode($post_fields);
                
                $request_post = curlPost(URL_INST, $post_fields_json);
                if ( $request_post == 1 ) {//VERIFICAR RESPUESTA DE GESTOR V
                    $fecha_recepcion = 'now()';
                    $error_exp = 0;
                }else{
                    $fecha_recepcion = null;
                    $error_exp = 1;
                }
                //INSERT DEL REGISTRO DEL EXPEDIENTE===========================
                $cod_registro = get_id_unico();
                creaRegistroTablaInterGestoVExpedientes($bd_conn, $cod_registro, $codigo_exp, $fecha_recepcion);
                if ( $error == 0 ) {
                    $data[] = array ( 
                        "expResponse" => array ( 
                            "status" => "200",
                            "postFields" => $post_fields,
                            "responsePost" => $request_post
                        )
                    );
                }else{
                    $data[] = array ( 
                        "expResponse" => array ( 
                            "status" => "500",
                            "error" => $error_msg
                        )
                    );
                }
            }else{
                $data[] = array ( 
                    "expResponse" => array ( 
                        "status" => "200",
                        "msgExpediente" => 'Expediente Enviado previamente'
                    )
                );
            }
            //=================================================================
            //ENVIO DE DOCUMENTOS==============================================
            //=================================================================  
            $docs_enviados = '';
            if ( $error_exp == 0 ) {
                define('ALIAS_DOC_GESTORV','GESTORV_');
                $clave_exp = consultaClaveExpediente($bd_conn, $codigo_exp);
                $array_doc = selectDatosDocumento($bd_conn, $clave_exp, ALIAS_DOC_GESTORV);
                while ($row = $array_doc->fetch_object()){
                    $docs_enviados .= $row->NOMBRE . ' #### ';
                    $tabla_sufijo = 'FICHEROS_' . $row->SUFIJO;
                    $clave_doc = $row->CLAVE;
                    $doc_enviado = validaEnvioDocumento($bd_conn, $codigo_exp, $clave_doc);
                    $doc_enviado = 0;
                    if ( $doc_enviado == 0 ) {
                        deleteRegistroInterGestoVDocumento($bd_conn, $codigo_exp, $clave_doc);
                        $binario_doc = consultarBinarioFicheroDocumento($bd_conn, $clave_doc, $tabla_sufijo);
                        $post_fields = new stdClass();
                        $post_fields->nombre = $row->NOMBRE;
                        $post_fields->expediente = $codigo_exp;
                        $post_fields->descripcionFichero = $row->ALIAS;
                        $post_fields->file = base64_encode($binario_doc);
                        $post_fields_json = json_encode($post_fields);
                        $url_post = URL_INST . '/' . $codigo_exp;
                        $request_post = curlPost($url_post, $post_fields_json);
                        if ( $request_post == 1 ) {//VERIFICAR RESPUESTA DE GESTOR V
                            $fecha_recepcion = 'now()';
                        }else{
                            $fecha_recepcion = null;
                        }
                        creaRegistroTablaInterGestoVDocumentos($bd_conn, $codigo_exp, $clave_doc, $fecha_recepcion );
                    }
                }
                $data[] = array ( 
                    "docResponse" => array ( 
                        "status" => "200",
                        "DocsEviados" => $docs_enviados
                    )
                );
            }
        }else {
            $data[] = array ( 
                "status" => "error",
                "message" => "Requiere enviar un Código de Expediente"
            );
        }          
    }else {
        $data[] = array ( 
            "status" => "error",
            "message" => "Requiere enviar un Código de Expediente"
        );
    }
}elseif ($auth == 0) {
    $data[] = array ( 
        "status" => "unauthorized_client",
        "message" => "Invalid authorization token"
    );
}
header("Content-type: application/json; charset=utf-8");
echo json_encode($data);
//=============================================================================
//FUNCIONES====================================================================
//=============================================================================
function consultaCarDatos($bd, $codigo_vehiculo)
{
    $sql =  "   SELECT VM.DESCRIPCION AS MARCA, VD.DESCRIPCION AS MODELO
                FROM VEHICULOS V
                LEFT JOIN VEHICULOS_MARCAS VM ON VM.CODIGO = V.MARCA
                LEFT JOIN VEHICULOS_MODELOS VD ON VD.CODIGO = V.MODELO
                WHERE V.CODIGO = ? LIMIT 1";
    $base = $bd->prepare($sql);
    $codigo_vehiculo = mysqli_real_escape_string($bd, $codigo_vehiculo);
    $base->bind_param('i', $codigo_vehiculo);
    $base->execute();
    $result =mysqli_fetch_array($base->get_result());
    $base->close();
    return $result;
}
function consultaCodigoVehiculo($bd, $codigo_exp)
{
    $sql = "SELECT DISTINCT BE.ETIQUETA
            FROM BIBLIOTECA_EXPEDIENTES BE
            WHERE BE.ETIQUETA > 5000000 AND BE.CLAVE = ? LIMIT 1";
    $base = $bd->prepare($sql);
    $codigo_exp = mysqli_real_escape_string($bd, $codigo_exp);
    $base->bind_param('s', $codigo_exp );
    $base->execute();
    $result = mysqli_fetch_array($base->get_result());
    $base->close();
    return $result["ETIQUETA"];
}
function consultaClaveExpediente($bd, $codigo_exp)
{
    $sql = "SELECT E.CLAVE
            FROM BIBLIOTECA_ELEMENTOS E
            WHERE E.EXPTE_CODIGO = ? LIMIT 1";
    $base = $bd->prepare($sql);
    $codigo_exp = mysqli_real_escape_string($bd, $codigo_exp);
    $base->bind_param('s', $codigo_exp );
    $base->execute();
    $result = mysqli_fetch_array($base->get_result());
    $base->close();
    return $result["CLAVE"];
} 
function deleteRegistroInterGestoVDocumento($bd, $codigo_exp, $clave_doc)
{
    $sql =  "   DELETE FROM INTER_GESTORV_DOCUMENTOS
                WHERE CLAVE_DOC = ? AND EXPEDIENTE = ?";
    $base = $bd->prepare($sql);
    $clave_doc = mysqli_real_escape_string($bd, $clave_doc);
    $codigo_exp = mysqli_real_escape_string($bd, $codigo_exp);
    $base->bind_param('ss', $clave_doc, $codigo_exp );
    $base->execute();
}
function validaEnvioDocumento($bd, $codigo_exp, $clave_doc)
{
    $sql = "SELECT COUNT(GD.EXPEDIENTE) AS EXISTE 
            FROM INTER_GESTORV_DOCUMENTOS GD
            WHERE GD.CLAVE_DOC = ? AND GD.EXPEDIENTE = ? AND GD.FECHA_RECEPCION  IS NOT NULL";
    $base = $bd->prepare($sql);
    $clave_doc = mysqli_real_escape_string($bd, $clave_doc);
    $codigo_exp = mysqli_real_escape_string($bd, $codigo_exp);
    $base->bind_param('ss', $clave_doc, $codigo_exp );
    $base->execute();
    $result = mysqli_fetch_array($base->get_result());
    $base->close();
    return $result["EXISTE"];
} 
function creaRegistroTablaInterGestoVDocumentos($bd, $cod_registro, $codigo_doc, $fecha_recepcion )
{
    $query = "  INSERT INTO INTER_GESTORV_DOCUMENTOS ( EXPEDIENTE, CLAVE_DOC, FECHA_ENVIO, FECHA_RECEPCION )
                VALUES ( '$cod_registro', '$codigo_doc', now(), $fecha_recepcion )";
    mysqli_query($bd, $query);
}
function consultarBinarioFicheroDocumento($bd, $clave_doc, $tabla_sufijo){
    $sql =  "   SELECT FICHERO
                FROM $tabla_sufijo
                WHERE PARTE = 1 AND CLAVE = '$clave_doc' AND VERSION = 0 LIMIT 1";
    $base = $bd->prepare($sql);
    $base->execute();
    $result = mysqli_fetch_array($base->get_result());
    $base->close();
    return $result["FICHERO"];
}
function selectDatosDocumento($bd, $clave_exp, $alias_doc)
{
    $sql = "SELECT E.CLAVE, E.NOMBRE, E.SUFIJO, E.ALIAS, E.ACCION
            FROM BIBLIOTECA_ELEMENTOS E
            WHERE E.UBICACION LIKE '%$clave_exp%' AND E.ALIAS LIKE '$alias_doc%' AND E.ACCION <> 'PAUSED'";
    $base = $bd->prepare($sql);
    $base->execute();
    $result = $base->get_result();
    $base->close();
    return $result;
} 
function creaRegistroTablaInterGestoVExpedientes($bd, $cod_registro, $codigo_exp, $fecha_recepcion )
{
    $query = "  INSERT INTO INTER_GESTORV_EXPEDIENTES ( CLAVE, EXPEDIENTE, FECHA_ENVIO, FECHA_RECEPCION )
                VALUES ( '$cod_registro', '$codigo_exp', now(), $fecha_recepcion )";
    mysqli_query($bd, $query);
}
function deleteRegistroInterGestoVExpedientes($bd, $codigo_exp)
{
    $sql =  "   DELETE FROM INTER_GESTORV_EXPEDIENTES
                WHERE EXPEDIENTE = ?";
    $base = $bd->prepare($sql);
    $codigo_exp = mysqli_real_escape_string($bd, $codigo_exp);
    $base->bind_param('s',$codigo_exp );
    $base->execute();
}
function curlPost($url_post, $post_fields) {
    $curl = curl_init();

    curl_setopt_array($curl, array(
    CURLOPT_URL => $url_post,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => '',
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_POSTFIELDS => $post_fields,
    CURLOPT_HTTPHEADER => array(
        'Content-Type: application/json'
    ),
    ));
    $response = curl_exec($curl);
    curl_close($curl);
    return json_decode($response);
}
function selectDatosComprador($bd, $codigo_contacto)
{
    $sql = "SELECT C.NIF, C.NOMBRE, C.APELLIDO1, C.APELLIDO2, C.PROVINCIA_PER, C.POBLACION_PER, C.CP_PER, C.DIRECCION_PER, C.TLFNO1, C.TLFNO2, C.TLFNO3, C.EMAIL1
            FROM CONTACTOS C
            WHERE C.CODIGO = ? LIMIT 1";
    $base = $bd->prepare($sql);
    $codigo_contacto = mysqli_real_escape_string($bd, $codigo_contacto);
    $base->bind_param('i', $codigo_contacto );
    $base->execute();
    $result = mysqli_fetch_array($base->get_result());
    $base->close();
    return $result;
} 
function selectDatosCampo($bd, $codigo_exp, $alias_campo, $esquema)
{
    $sql = "SELECT EE.TIPO, BE.DESCRIPCION, BE.VFECHA, BE.VIMPORTE, BE.ETIQUETA
            FROM ESQUEMAS_ESTRUCTURA EE
            LEFT JOIN BIBLIOTECA_EXPEDIENTES BE ON BE.GRUPOE = EE.CODIGO AND BE.CLAVE = ?
            WHERE EE.ESQUEMA = ? AND EE.ALIAS = ? LIMIT 1";
    $base = $bd->prepare($sql);
    $codigo_exp = mysqli_real_escape_string($bd, $codigo_exp);
    $esquema = mysqli_real_escape_string($bd, $esquema);
    $alias_campo = mysqli_real_escape_string($bd, $alias_campo);
    $base->bind_param('sis', $codigo_exp, $esquema, $alias_campo );
    $base->execute();
    $result = mysqli_fetch_array($base->get_result());
    $base->close();
    return $result;
} 
function validaEnvioExpediente($bd, $codigo_exp)
{
    $sql = "SELECT COUNT(GE.EXPEDIENTE) AS EXISTE 
            FROM INTER_GESTORV_EXPEDIENTES GE
            WHERE GE.EXPEDIENTE = ? AND GE.FECHA_RECEPCION IS NOT NULL";
    $base = $bd->prepare($sql);
    $codigo_exp = mysqli_real_escape_string($bd, $codigo_exp);
    $base->bind_param('s', $codigo_exp );
    $base->execute();
    $result = mysqli_fetch_array($base->get_result());
    $base->close();
    return $result["EXISTE"];
}  
function get_id_unico() {
    return date( "YmdHis" ) . sprintf( "%04d", rand( 0, 9999 ) );
}
function selectDatosContacto($bd, $codigo_contacto)
{
    $sql = "SELECT C.NIF, C.CP_PER, C.CP_TRA
            FROM CONTACTOS C
            WHERE C.CODIGO = ? LIMIT 1";
    $base = $bd->prepare($sql);
    $codigo_contacto = mysqli_real_escape_string($bd, $codigo_contacto);
    $base->bind_param('i', $codigo_contacto );
    $base->execute();
    $result = mysqli_fetch_array($base->get_result());
    $base->close();
    return $result;
} 
?>