<?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('ESQUEMA','-1');
            define('ALIAS_MATRICULA','MATRICULA');
            define('ALIAS_FECHA_MATRICULA','FECHA_MATRICULACION');
            //VARIABLES========================================================
            $error = 0;
            $error_msg = '';
            $codigo_exp = trim($_POST["codExp"]);
            //=================================================================
            //VALIDO SI SE HA ENVIADO PREVIAMENTE==============================
            //=================================================================
            $exp_enviado = validaExpediente($bd_conn, $codigo_exp);
            if ( $exp_enviado == 1 ) {
                //MATRICULA
                if ( isset($_POST["matricula"]) AND $_POST["matricula"] !== '' ) {
                    $codigo_campo = selectDatosCampo($bd_conn, ALIAS_MATRICULA, ESQUEMA);
                    if ($codigo_campo["CODIGO"] !== '' AND $codigo_campo["CODIGO"] !== null ) {
                        //VALIDO SI EXISTE EL DATO EN EL EXPEDIENTE
                        $campo_existe = validaCampoExpediente($bd_conn, $codigo_exp, $codigo_campo["CODIGO"]);
                        $descripcion = trim(strtoupper($_POST["matricula"]));
                        $v_importe = 0;
                        $v_fecha = NULL;
                        $orden = $codigo_campo["ORDEN"];
                        if ( $campo_existe == 1 ) {//UPDATE
                            $result = updateEtiqueta($bd_conn, $descripcion, $codigo_exp, $codigo_campo["CODIGO"], $v_importe, $v_fecha);
                        }elseif ( $campo_existe == 0 ) {//INSERTO
                            $result = insertEtiqueta($bd_conn, $codigo_exp, $orden, $descripcion, $codigo_campo["CODIGO"], $v_importe, $v_fecha);
                        }
                    }
                    if ( $result == 1) {
                        $msg_matricula = 'Matrícula actualizada con éxito';
                    }else{
                        $msg_matricula = 'error al actualizar la Matrícula o se ha enviado el mismo valor';
                    }
                }
                //FECHA MATRICULA
                if ( isset($_POST["fechaMatricula"]) AND $_POST["fechaMatricula"] !== '' ) {
                    $codigo_campo = selectDatosCampo($bd_conn, ALIAS_FECHA_MATRICULA, ESQUEMA);
                    if ($codigo_campo["CODIGO"] !== '' AND $codigo_campo["CODIGO"] !== null ) {
                        //VALIDO SI EXISTE EL DATO EN EL EXPEDIENTE
                        $campo_existe = validaCampoExpediente($bd_conn, $codigo_exp, $codigo_campo["CODIGO"]);
                        //$descripcion = date("Y-m-d", strtotime($_POST["fechaMatricula"]));
                        $descripcion = date("d/m/Y", strtotime($_POST["fechaMatricula"]));
                        $v_importe = 0;
                        $v_fecha = $_POST["fechaMatricula"];
                        $orden = $codigo_campo["ORDEN"];
                        if ( $campo_existe == 1 ) {//UPDATE
                            $result = updateEtiqueta($bd_conn, $descripcion, $codigo_exp, $codigo_campo["CODIGO"], $v_importe, $v_fecha);
                        }elseif ( $campo_existe == 0 ) {//INSERTO
                            $result = insertEtiqueta($bd_conn, $codigo_exp, $orden, $descripcion, $codigo_campo["CODIGO"], $v_importe, $v_fecha);
                        }
                    }
                    if ( $result == 1) {
                        $msg_fecha_matricula = 'Fecha de Matrícula actualizada con éxito';
                    }else{
                        $msg_fecha_matricula = 'error al actualizar la Fecha Matrícula o se ha enviado el mismo valor';
                    }
                }
                //RESPUESTA
                $data[] = array ( 
                    "expResponse" => array ( 
                        "status" => "200",
                        "responseMatricula" => $msg_matricula,
                        "responseFechaMatricula" => $msg_fecha_matricula,
                        "test" => $descripcion
                    )
                );
            }else{
                $data[] = array ( 
                    "expResponse" => array ( 
                        "status" => "500",
                        "msgExpediente" => 'Expediente no encontrado'
                    )
                );
            } 
        }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 insertEtiqueta($bd, $clave_exp, $orden, $descripcion, $codigo_etq, $v_importe, $v_fecha)
{
	$sql =  "   INSERT INTO BIBLIOTECA_EXPEDIENTES ( CLAVE, ORDEN, DESCRIPCION, GRUPOE, FECHA, VIMPORTE, VFECHA )
                VALUES ( ?, ?, ?, ?, now(), ?, ? )";
    $base = $bd->prepare($sql);
    $clave_exp = mysqli_real_escape_string($bd, $clave_exp);
    $orden = mysqli_real_escape_string($bd, $orden);
    $descripcion = mysqli_real_escape_string($bd, $descripcion);
    $codigo_etq = mysqli_real_escape_string($bd, $codigo_etq);
    $base->bind_param('sisiis', $clave_exp, $orden, $descripcion, $codigo_etq, $v_importe, $v_fecha);
    $base->execute();
    return mysqli_affected_rows($bd);
}
function updateEtiqueta($bd, $descripcion, $clave_exp, $codigo_etq, $v_importe, $v_fecha)
{
	$sql =  "   UPDATE BIBLIOTECA_EXPEDIENTES
                SET DESCRIPCION = ?, VIMPORTE = ?, VFECHA = ?
                WHERE CLAVE = ? AND GRUPOE = ?";
    $base = $bd->prepare($sql);
    $descripcion = mysqli_real_escape_string($bd, $descripcion);
    $clave_exp = mysqli_real_escape_string($bd, $clave_exp);
    $codigo_etq = mysqli_real_escape_string($bd, $codigo_etq);
    $base->bind_param('sissi', $descripcion, $v_importe, $v_fecha, $clave_exp, $codigo_etq);
    $base->execute();
    return mysqli_affected_rows($bd);
}
function selectDatosCampo($bd, $alias_campo, $esquema)
{
    $sql = "SELECT EE.CODIGO, EE.ORDEN
            FROM ESQUEMAS_ESTRUCTURA EE
            WHERE EE.ESQUEMA = ? AND EE.ALIAS = ? LIMIT 1";
    $base = $bd->prepare($sql);
    $esquema = mysqli_real_escape_string($bd, $esquema);
    $alias_campo = mysqli_real_escape_string($bd, $alias_campo);
    $base->bind_param('is', $esquema, $alias_campo );
    $base->execute();
    $result = mysqli_fetch_array($base->get_result());
    $base->close();
    return $result;
} 
function validaExpediente($bd, $codigo_exp)
{
    $sql = "SELECT COUNT(BE.CLAVE) AS EXISTE
            FROM BIBLIOTECA_EXPEDIENTES BE
            WHERE BE.CLAVE = ? AND BE.GRUPOE = 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["EXISTE"];
} 
function validaCampoExpediente($bd, $codigo_exp, $cod_campo)
{
    $sql = "SELECT COUNT(BE.CLAVE) AS EXISTE
            FROM BIBLIOTECA_EXPEDIENTES BE
            WHERE BE.CLAVE = ? AND BE.GRUPOE = ?";
    $base = $bd->prepare($sql);
    $codigo_exp = mysqli_real_escape_string($bd, $codigo_exp);
    $cod_campo = mysqli_real_escape_string($bd, $cod_campo);
    $base->bind_param('si', $codigo_exp, $cod_campo );
    $base->execute();
    $result = mysqli_fetch_array($base->get_result());
    $base->close();
    return $result["EXISTE"];
} 
?>