<?php
//BUSCO EL CODIGO DEL CAR======================================
$_select = "SELECT MAX(V.CODIGO + 1) RESULT ";
$_from = " FROM VEHICULOS V ";
$_where = "";
$codigo_car = querySelect($bd_conn, $_select, $_from, $_where);
//BUSCO EL CONTADOR============================================
$_select = "SELECT C.PREFIJO, C.CONTADORSIG, C.SUFIJO, C.MASCARA ";
$_from = " FROM CONTADORES C ";
$_where = " WHERE C.CODIGO = 'IDCAR0000000000000' LIMIT 1";
$datos_contador = querySelectMultiple($bd_conn, $_select, $_from, $_where);
$masc_cont = str_pad($datos_contador["CONTADORSIG"], strlen($datos_contador["MASCARA"]), '0', STR_PAD_LEFT);
$id_car = $datos_contador["PREFIJO"] . $masc_cont . $datos_contador["SUFIJO"];
$prox_cont = $datos_contador["CONTADORSIG"] + 1;
$_req = "UPDATE CONTADORES ";
$_set = " SET CONTADORSIG = " . $prox_cont;
$_where = " WHERE CODIGO = 'IDCAR0000000000000'";
//==============================================================
$_req = "INSERT INTO VEHICULOS ";
$_set = " ( ALTA";
$_values = " VALUES ( now() ";
//CODIGO VEHICULO
$_set .= ", CODIGO";
$_values .= ", " . $codigo_car;
//IDCAR
$_set .= ", IDCAR";
$_values .= ", '" . $id_car . "'";
//USUARIO
$_set .= ", USUARIO";
$_values .= ", '" . $_SERVER["HTTP_CLIENT_ID"] . "'";
//ESTADO
$_set .= ", ESTADO";
$_values .= ", 'PRS'";
foreach ($_POST as $key => $value) {
    $value = $bd_conn->real_escape_string($value);
    switch ($key) {
        case 'car_id_ext':
            $_set .= ", ID_EXT"; 
            $_values .= ", '" . $value . "'"; 
            break;
        case 'app_cod_ext':
            $_set .= ", CODE_EXT"; 
            $_values .= ", '" . $value . "'";
            break;
        case 'car_bastidor':
            $_set .= ", BASTIDOR"; 
            $_values .= ", '" . $value . "'";
            break;
        case 'car_matricula':
            $_set .= ", MATRICULA"; 
            $_values .= ", '" . $value . "'";
            $matricula = $value;
            break;
        case 'car_tipo':
            $_set .= ", TIPO"; 
            $_values .= ", '" . $value . "'";
            break;
        case 'car_marca':
            $_set .= ", MARCA"; 
            $_values .= ", " . $value;
            $desc_marca = descripcionMarca($bd_conn, $value);
            break;
        case 'car_modelo':
            $_set .= ", MODELO"; 
            $_values .= ", " . $value;
            $desc_modelo = descripcionModelo($bd_conn, $value);
            break;
        case 'car_version':
            $_set .= ", VERSION"; 
            $_values .= ", '" . $value . "'";
            break;
        case 'car_gama':
            $_set .= ", GAMA"; 
            $_values .= ", '" . $value . "'";
            break;
        case 'car_color':
            $_set .= ", COLOR"; 
            $_values .= ", '" . $value . "'";
            break;
        case 'car_color_int':
            $_set .= ", COLORINT_LIT"; 
            $_values .= ", '" . $value . "'";
            break;
        case 'car_notas':
            $_set .= ", NOTAS"; 
            $_values .= ", '" . $value . "'";
            break;
        case 'car_km':
            $_set .= ", KM "; 
            $_values .= ", " . $value;
            break;
        case 'car_year':
            $_set .= ", ANO_FAB"; 
            $_values .= ", " . $value;
            break;
        case 'car_precio_venta':
            $_set .= ", PRECIO_VENTA"; 
            $_values .= ", " . $value;
            break;
        case 'car_venta_base':
            $_set .= ", VENTA_BASE"; 
            $_values .= ", " . $value;
            break;
        case 'car_venta_opciones':
            $_set .= ", VENTA_OPCIONES"; 
            $_values .= ", " . $value;
            break;
        case 'car_venta_pff':
            $_set .= ", VENTA_PFF"; 
            $_values .= ", " . $value;
            break;
        case 'car_venta_transporte':
            $_set .= ", VENTA_TRANSPORTE"; 
            $_values .= ", " . $value;
            break;
        case 'car_venta_tipoiva':
            $_set .= ", VENTA_TIPOIVA"; 
            $_values .= ", " . $value;
            break;
        case 'car_venta_tipoiedmt':
            $_set .= ", VENTA_TIPOIEDMT"; 
            $_values .= ", " . $value;
            break;
        case 'car_precio_compra':
            $_set .= ", PRECIO_COMPRA"; 
            $_values .= ", " . $value;
            break;
        case 'car_compra_pff':
            $_set .= ", COMPRA_PFF"; 
            $_values .= ", " . $value;
            break;
        case 'car_compra_opciones':
            $_set .= ", COMPRA_OPCIONES"; 
            $_values .= ", " . $value;
            break;
        case 'car_compra_transporte':
            $_set .= ", COMPRA_TRANSPORTE"; 
            $_values .= ", " . $value;
            break;
        case 'car_compra_base':
            $_set .= ", COMPRA_BASE"; 
            $_values .= ", " . $value;
            break;
        case 'car_compra_tipoiva':
            $_set .= ", COMPRA_TIPOIVA"; 
            $_values .= ", " . $value;
            break;
        case 'car_reserva':
            $_set .= ", RESERVA"; 
            $_values .= ", " . $value;
            $car_reserva = $value;
            break;
    }
}
if (isset($car_reserva)) {
    if ($car_reserva !== '') {
        $fecha = date ( 'Y-m-d H:i:s' , strtotime ( '+1 minute' , strtotime (date("Y-m-d H:i:s"))));
        createHstorial($bd_conn,$codigo_car, $_SERVER["HTTP_CLIENT_ID"], $fecha, ACCION_RESERVA, TRAZA_ORDENADOR, TRAZA_WEB, $car_reserva);
    }
}
//MOSTRAR================================================
$mostrar = $id_car;
if (isset($desc_marca)) {
    $mostrar .= " - " . $desc_marca;
}
if (isset($desc_modelo)) {
    $mostrar .= " - " . $desc_modelo;
}
if (isset($matricula)) {
    $mostrar .= " - " . $matricula;
}
//=========================================================
$_set .= ", MOSTRAR";
$_values .= ", '" . $mostrar . "'";
//=========================================================
$_set .= " )";
$_values .= " )";
$status = queryInsert($bd_conn, $_req, $_set, $_values);
if ($status == 1) {
    $data[] = array ( 
        "status" => "OK!",
        "message" => "success : new car created",
        "cod_vehiculo" => $codigo_car
    );
}else{
    $data[] = array ( 
        "status" => "NOT OK!",
        "message" => "error : new car not created"
    );
}
//FUNCIONES======================================================
function createHstorial($bd,$vehiculo, $usuario, $fecha, $accion, $ordenador, $web, $fin_reserva)
{
	$sql =  " INSERT INTO VEHICULOS_HISTORIAL (VEHICULO, USUARIO, FECHA, ACCION, ORDENADOR, WEB, FIN) 
              VALUES ( ?, ?, ?, ?, ?, ?, ? )";
    $base = $bd->prepare($sql);
    $vehiculo = mysqli_real_escape_string($bd, $vehiculo);
    $usuario = mysqli_real_escape_string($bd, $usuario);
    $fecha = mysqli_real_escape_string($bd, $fecha);
    $fin_reserva = mysqli_real_escape_string($bd, $fin_reserva);
    $base->bind_param('issisis', $vehiculo, $usuario, $fecha, $accion, $ordenador, $web, $fin_reserva);
    $base->execute();
}
function queryInsert($bd, $_req, $_set, $_values)
{
    $query = $_req . $_set . $_values;
    mysqli_query($bd, $query);
    return mysqli_affected_rows($bd);
}
function querySelect($bd, $_select, $_from, $_where)
{
    $sql =  $_select . $_from . $_where;
    $base = $bd->query($sql);
    $row = mysqli_fetch_array($base);
    $result = $row['RESULT'];
    return $result;
}
function querySelectMultiple($bd, $_select, $_from, $_where)
{
    $sql =  $_select . $_from . $_where;
    $base = $bd->query($sql);
    $row = mysqli_fetch_array($base);
    return $row;
}
function descripcionMarca($bd, $car_marca){
    $sql =  "   SELECT M.DESCRIPCION
                FROM VEHICULOS_MARCAS M
                WHERE M.CODIGO = ? LIMIT 1";
    $base = $bd->prepare($sql);
    $base->bind_param('i', $car_marca);
    $base->execute();
    $result = mysqli_fetch_array($base->get_result());
    $base->close();
    return $result["DESCRIPCION"];
}
function descripcionModelo($bd, $car_modelo)
{
    $sql =  "   SELECT M.DESCRIPCION
                FROM VEHICULOS_MODELOS M
                WHERE M.CODIGO = ? LIMIT 1";
    $base = $bd->prepare($sql);
    $base->bind_param('i', $car_modelo);
    $base->execute();
    $result = mysqli_fetch_array($base->get_result());
    $base->close();
    return $result["DESCRIPCION"];
}
?>