<?php
/////////////////////////////////////
define('USUARIO_DEF', 'API-ESMDD_dev');
define('ACC_UPDATE_HISTORIAL', '2');
define('ACC_UPDATE_HISTORIAL_DTLLE', 'Vehículo Actualizado Externo (RESERVA AUC)');
define('ORDENADOR_EXT', 'ORD_EXTERNO');
define('CODIGO_WEB', '1');
define('CONTADOR_EXP', 'EXP000000000000039');
define('ALIAS_EXP', 'VENTA_AUC');
define('ALIAS_MERCHANT_ORDER', 'MERCHANT_ORDER');
define('ALIAS_CODIGO_RESERVA', 'COD_RESERVA1');
define('ALIAS_IMPORTE_RESERVA', 'IMP_RESERVA1');
define('ALIAS_ID_VEHICULO', 'VEHICULO');
include_once (ROOT . FOLDER_CORE . '/auth.php'); 
include ('func_servUpdateReservaPagoAUC.php');//FUNCIONES DEL MODULO
if ($auth == 1) {
    if (isset($_POST["phase"]) AND isset($_POST["merchant_order"])) {
        if ($_POST["phase"] == 1) {
            if (isset($_POST["id_vehiculo"])) {
                $car_id_ext_exist = validaCarId($bd_conn, $_POST["id_vehiculo"]);
                if ($car_id_ext_exist["TOTAL"] == 1) {
                    $id_vehiculo = $_POST["id_vehiculo"];
                    $merchant_order = $_POST["merchant_order"];
                    $id_contacto = (isset($_POST["id_contacto"])) ? $_POST["id_contacto"] : 0;
                    $fecha_reserva = (isset($_POST["fecha_reserva"])) ? $_POST["fecha_reserva"] : NULL;
                    $codigo_pago = (isset($_POST["codigo_pago"])) ? $_POST["codigo_pago"] : '';
                    $importe_pago = (isset($_POST["importe_pago"])) ? $_POST["importe_pago"] : 0.00;
                    $reservado  = ($fecha_reserva !== NULL) ? 1 : 0 ;
                    //////////////////////////////////
                    $status_update = updateCar($bd_conn, $_POST["id_vehiculo"], $fecha_reserva, $reservado);
                    createHistorial($bd_conn, $_POST["id_vehiculo"], USUARIO_DEF, ACC_UPDATE_HISTORIAL, ACC_UPDATE_HISTORIAL_DTLLE, ORDENADOR_EXT, CODIGO_WEB, $fecha_reserva);  
                    ///////////EXPEDIENTE/////////////
                    //CREAR CODIGO EXPEDIENTE======================================
                    $datos_contador = verificaDatosContador($bd_conn, CONTADOR_EXP);
                    $masc_cont = str_pad($datos_contador["CONTADORSIG"], strlen($datos_contador["MASCARA"]), '0', STR_PAD_LEFT);
                    $clave_exp = $datos_contador["PREFIJO"] . $masc_cont . $datos_contador["SUFIJO"];
                    $prox_cont = $datos_contador["CONTADORSIG"] + 1;
                    $status_update_cont = updateContador($bd_conn, $prox_cont, CONTADOR_EXP);
                    //OBTENER EL CODIGO DEL TIPO DEL EXPDIENTE=====================
                    $datos_tipo_exp = verificaDatosExpediente($bd_conn, ALIAS_EXP);
                    $codigo_tipo_exp = $datos_tipo_exp["CODIGO"];
                    $desc_tipo_exp = $datos_tipo_exp["DESCRIPCION"];
                    //VERIFICO SI EL TIPO DE EXPEDIENTE FUE CREADO EN LA BIBLIOTECA DE ELEMENTOS
                    $folder_tipo_exp = 'XT' . $codigo_tipo_exp;
                    $folder_tipo_exp_exist = verificaExistenciaRegistro($bd_conn, $folder_tipo_exp);
                    if ($folder_tipo_exp_exist == 0) {
                        $nombre = $desc_tipo_exp;
                        $extension = '';
                        $padre = '##EXPEDIENTES##';
                        $tipo = 'C';
                        $tamano = 0;
                        $ambito = 'PUB';
                        $acceso = '';
                        $creador = USUARIO_DEF;
                        $entrada = get_id_unico();
                        $ordenador = ORDENADOR_EXT;
                        $sufijo = '';
                        $icono = 'expediente';
                        $ubicacion = '##PUBLICO##/##EXPEDIENTES##/';
                        $expte_codigo = '';
                        $expte_orden = '';
                        $creado_tipo = createBibliotecaElementos($bd_conn, $folder_tipo_exp, $nombre, $extension, $padre, $tipo, $tamano, $ambito, $acceso, $creador, $entrada, $ordenador, $sufijo, $icono, $ubicacion, $expte_codigo, $expte_orden);
                    }
                    //VERIFICAR FOLDER DEL AÑO
                    $year = date('Y');
                    $folder_year_exp = 'XA' . $codigo_tipo_exp . "." . $year;
                    $folder_year_exp_exist = verificaExistenciaRegistro($bd_conn, $folder_year_exp);
                    if ($folder_year_exp_exist == 0) {
                        $nombre = $year;
                        $extension = '';
                        $padre = $folder_tipo_exp;
                        $tipo = 'C';
                        $tamano = 0;
                        $ambito = 'PUB';
                        $acceso = '';
                        $creador = USUARIO_DEF;
                        $entrada = get_id_unico();
                        $ordenador = ORDENADOR_EXT;
                        $sufijo = '';
                        $icono = 'fecha';
                        $ubicacion = '##PUBLICO##/##EXPEDIENTES##/'. $folder_tipo_exp  . '/';
                        $expte_codigo = '';
                        $expte_orden = '';
                        $creado_year = createBibliotecaElementos($bd_conn, $folder_year_exp, $nombre, $extension, $padre, $tipo, $tamano, $ambito, $acceso, $creador, $entrada, $ordenador, $sufijo, $icono, $ubicacion, $expte_codigo, $expte_orden);
                    }
                    //CREO EL EXPEDIENTE
                    $clave = get_id_unico();
                    $nombre = $clave_exp;
                    $extension = '';
                    $padre = $folder_year_exp;
                    $tipo = 'C';
                    $tamano = 0;
                    $ambito = 'PUB';
                    $acceso = '';
                    $creador = USUARIO_DEF;
                    $entrada = get_id_unico();
                    $ordenador = ORDENADOR_EXT;
                    $sufijo = '';
                    $icono = 'expediente';
                    $ubicacion = '##PUBLICO##/##EXPEDIENTES##/'. $folder_tipo_exp  . '/' . $folder_year_exp . '/';
                    $expte_codigo = $clave_exp;
                    $expte_orden = $clave_exp;
                    $creado_exp = createBibliotecaElementos($bd_conn, $clave, $nombre, $extension, $padre, $tipo, $tamano, $ambito, $acceso, $creador, $entrada, $ordenador, $sufijo, $icono, $ubicacion, $expte_codigo, $expte_orden);
                    //INSERTO EN LA BIBLIOTECA_ETIQUETAS
                    $codigo_etq = get_id_unico();
                    $desc_etq = $clave_exp;
                    $grupo_etq = '0';
                    $etiqueta_etq = '0';
                    $grupo_e_etq = '0';
                    $esquema = '-1';
                    $valor_etq = $clave_exp;
                    $creado_etq = createBibliotecaEtiquetas($bd_conn, $codigo_etq, $clave, $desc_etq, $grupo_etq, $etiqueta_etq, $grupo_e_etq, $esquema, $valor_etq);
                    //CREAR BIBLIOTECA_EXPEDIENTES
                    $etq_tipo_exp = consultarEtiquetasExpediente($bd_conn, $codigo_tipo_exp);
                    while ($row = $etq_tipo_exp->fetch_object()){
                        $result = evaluaEtiqueta($bd_conn, $row->TIPOEXP, $row->CONCEPTO, $row->ALIAS, $row->ORDEN, $row->TIPO, $clave_exp, $desc_tipo_exp, $id_contacto, $id_vehiculo, $codigo_pago, $importe_pago, $merchant_order);
                    }
                    //CREAR REGISTRO HISTORIAL
                    $accion = 1;
                    $usuario = $_SERVER["HTTP_CLIENT_ID"];
                    $documento = $clave_exp;
                    $carpeta = $folder_year_exp;
                    $ordenador = ORDENADOR_EXT;
                    $ambito = 'PUB';
                    $tipo = 'C';
                    $creador = $_SERVER["HTTP_CLIENT_ID"];
                    $acceso = null;
                    $creado_historial = createBibliotecaHistorial($bd_conn, $clave, $usuario, $accion, $documento, $carpeta, $ordenador, $ambito, $tipo, $creador, $acceso);
                    //RESPONSE
                    $data[] = array ( 
                        "status" => "OK",
                        "message" => "success : vehículo actualizado con éxito", 
                        "id_car" => $id_vehiculo,
                        "exp_code" => $clave_exp
                    ); 
                }else {
                    
                    $data[] = array ( 
                        "status" => "NOT OK",
                        "message" => "error : código del vehículo no existe"
                    );
                }
            }else {
                $data[] = array ( 
                    "status" => "NOT OK",
                    "message" => "error : Debe suministrar el código del vehículo"
                );
            }
        }elseif ($_POST["phase"] == 2) {
            $merchant_order = $_POST["merchant_order"];
            $codigo_pago = (isset($_POST["codigo_pago"])) ? $_POST["codigo_pago"] : '';
            $importe_pago = (isset($_POST["importe_pago"])) ? $_POST["importe_pago"] : 0.00;
            //CONSULTAR CODIGO DEL EXPEDIENTE
            $alias = ALIAS_MERCHANT_ORDER;
            $codigo_etq = consultarCodigoEtiqueta($bd_conn, $alias);
            $datos_tipo_exp = verificaDatosExpediente($bd_conn, ALIAS_EXP);
            $codigo_tipo_exp = $datos_tipo_exp["CODIGO"];
            $codigo_exp = consultarCodigoExpediente($bd_conn, $codigo_tipo_exp, $merchant_order, $codigo_etq);
            //UPDATE CODIGO DE COBRO
            $alias = ALIAS_CODIGO_RESERVA;
            $codigo_etq = consultarCodigoEtiqueta($bd_conn, $alias);
            $descripcion = $codigo_pago;
            $v_importe = NULL;
            $update_codigo_cobro = updateEtiqueta($bd_conn, $descripcion, $codigo_exp, $codigo_etq, $v_importe);
            //UPDATE IMPORTE DE PAGO
            $alias = ALIAS_IMPORTE_RESERVA;
            $codigo_etq = consultarCodigoEtiqueta($bd_conn, $alias);
            $descripcion = $importe_pago;
            $v_importe = $importe_pago;
            $update_importe_cobro = updateEtiqueta($bd_conn, $descripcion, $codigo_exp, $codigo_etq, $v_importe);
            //UPDATE ESTADO VEHICULO
            $alias = ALIAS_ID_VEHICULO;
            $new_estado = 2;
            $codigo_etq = consultarCodigoEtiqueta($bd_conn, $alias);
            $codigo_vehiculo = consultarCodigoVehiculo($bd_conn, $codigo_exp, $codigo_etq);
            $update_car_estado = updateCarEstado($bd_conn, $codigo_vehiculo, $new_estado);
            //CREAR REGISTRO HISTORIAL
            $accion = 2;
            $usuario = $_SERVER["HTTP_CLIENT_ID"];
            $documento = $codigo_exp;
            $carpeta = '';
            $ordenador = ORDENADOR_EXT;
            $ambito = 'PUB';
            $tipo = 'C';
            $creador = $_SERVER["HTTP_CLIENT_ID"];
            $acceso = null;
            $creado_historial = createBibliotecaHistorial($bd_conn, $clave, $usuario, $accion, $documento, $carpeta, $ordenador, $ambito, $tipo, $creador, $acceso);
            $data[] = array ( 
                "status" => "OK",
                "message" => "success : update datos de pago exitoso",
                "merchant_order" => $merchant_order
            );
        }else {
            $data[] = array ( 
                "status" => "NOT OK",
                "message" => "error : variable phase inválida"
            );
        }
        
        
    }else {
        $data[] = array ( 
            "status" => "NOT OK",
            "message" => "error : Debe suministrar la varible phase y merchant_order"
        );
    }
    mysqli_close($bd_conn);
    header("Content-type: application/json; charset=utf-8");
    echo json_encode($data);   
}elseif ($auth == 0) {
    $data = array();
    $data[] = array ( 
        "code" => "unauthorized_client",
        "message" => "Invalid authorization token"
    );
    mysqli_close($bd_conn);
    header("Content-type: application/json; charset=utf-8");
    echo json_encode($data);
}
?>