<?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;
UpdateContador($bd_conn, $prox_cont);
//==============================================================
$_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"] . "'";
//USUARIO
$_set .= ", ACTIVO";
$_values .= ", 1";
//ESTADO
//$_set .= ", ESTADO";
//$_values .= ", 'PRS'";
foreach ($_POST as $key => $value) {
    $value = $bd_conn->real_escape_string($value);
    switch ($key) {
        case 'car_id_ext':
            if ( $value !== null AND $value !== '' ) {
                $_set .= ", ID_EXT"; 
                $_values .= ", '" . $value . "'"; 
            }
            break;
        case 'app_cod_ext':
            if ( $value !== null AND $value !== '' ) {
                $_set .= ", CODE_EXT"; 
                $_values .= ", '" . $value . "'";
            }
            break;
        case 'car_bastidor':
            if ( $value !== null AND $value !== '' ) {
                $_set .= ", BASTIDOR"; 
                $_values .= ", '" . $value . "'";
            }
            break;
        case 'car_matricula':
            if ( $value !== null AND $value !== '' ) {
                $_set .= ", MATRICULA"; 
                $_values .= ", '" . $value . "'";
                $matricula = $value;
            }
            break;
        case 'car_tipo':
            if ( $value !== null AND $value !== '' ) {
                $_set .= ", TIPO"; 
                $_values .= ", '" . $value . "'";
            }
            break;
        case 'car_marca':
            if ( $value !== null AND $value !== '' ) {
                $_set .= ", MARCA"; 
                $_values .= ", " . $value;
                $desc_marca = descripcionMarca($bd_conn, $value);
            }
            break;
        case 'car_marca_lit':
            if ( $value !== null AND $value !== '' ) {
                $_set .= ", MARCA"; 
                $desc_marca = strtoupper($value);
                $cod_marca = codigoMarca($bd_conn, $desc_marca);
                $cod_marca = ( $cod_marca == '') ? 0 : $cod_marca ;
                $_values .= ", " . $cod_marca;
            }
            break;
        case 'car_modelo':
            if ( $value !== null AND $value !== '' ) {
                $_set .= ", MODELO"; 
                $_values .= ", " . $value;
                $desc_modelo = descripcionModelo($bd_conn, $value);
            }
            break;
        case 'car_modelo_lit':
            if ( $value !== null AND $value !== '' ) {
                $_set .= ", MODELO"; 
                $desc_modelo = mb_strtoupper($value, 'UTF-8');
                $cod_modelo = codigoModelo($bd_conn, $desc_modelo);
                $cod_modelo = ( $cod_modelo == '') ? 0 : $cod_modelo ;
                $_values .= ", " . $cod_modelo;
            }
            break;
        case 'car_version':
            if ( $value !== null AND $value !== '' ) {
                $_set .= ", VERSION"; 
                $_values .= ", '" . mb_strtoupper($value, 'UTF-8') . "'";
            }
            break;
        case 'car_gama':
            if ( $value !== null AND $value !== '' ) {
                $_set .= ", GAMA"; 
                $_values .= ", '" . mb_strtoupper($value, 'UTF-8') . "'";
            }
            break;
        case 'car_color':
            if ( $value !== null AND $value !== '' ) {
                $_set .= ", COLOR"; 
                $_values .= ", '" . mb_strtoupper($value, 'UTF-8') . "'";
            }
            break;
        case 'car_color_int':
            if ( $value !== null AND $value !== '' ) {
                $_set .= ", COLORINT_LIT"; 
                $_values .= ", '" . mb_strtoupper($value, 'UTF-8') . "'";
            }
            break;
        case 'car_notas':
            if ( $value !== null AND $value !== '' ) {
                $_set .= ", NOTAS"; 
                $_values .= ", '" . mb_strtoupper($value, 'UTF-8') . "'";
            }
            break;
        case 'car_km':
            if ( $value !== null AND $value !== '' ) {
                $_set .= ", KM "; 
                $_values .= ", " . $value;
            }
            break;
        case 'car_year':
            if ( $value !== null AND $value !== '' ) {
                $_set .= ", ANO_FAB"; 
                $_values .= ", " . $value;
            }
            break;
        case 'car_precio_venta':
            if ( $value !== null AND $value !== '' ) {
                $_set .= ", VENTA_TOTALSINDTO"; 
                $_values .= ", " . $value;
            }
            break;
        case 'car_venta_total':
            if ( $value !== null AND $value !== '' ) {
                $_set .= ", VENTA_TOTAL"; 
                $_values .= ", " . $value;
            }
            break;
        case 'car_venta_base':
            if ( $value !== null AND $value !== '' ) {
                $_set .= ", VENTA_BASE"; 
                $_values .= ", " . $value;
            }
            break;
        case 'car_venta_opciones':
            if ( $value !== null AND $value !== '' ) {
                $_set .= ", VENTA_OPCIONES"; 
                $_values .= ", " . $value;
            }
            break;
        case 'car_venta_pff':
            if ( $value !== null AND $value !== '' ) {
                $_set .= ", VENTA_PFF"; 
                $_values .= ", " . $value;
            }
            break;
        case 'car_venta_transporte':
            if ( $value !== null AND $value !== '' ) {
                $_set .= ", VENTA_TRANSPORTE"; 
                $_values .= ", " . $value;
            }
            break;
        case 'car_venta_tipoiva':
            if ( $value !== null AND $value !== '' ) {
                $_set .= ", VENTA_TIPOIVA"; 
                $_values .= ", " . $value;
            }
            break;
        case 'car_venta_tipoiedmt':
            if ( $value !== null AND $value !== '' ) {
                $_set .= ", VENTA_TIPOIEDMT"; 
                $_values .= ", " . $value;
            }
            break;
        case 'car_precio_compra':
            if ( $value !== null AND $value !== '' ) {
                //$_set .= ", PRECIO_COMPRA"; 
                $_set .= ", COMPRA_TOTAL"; 
                $_values .= ", " . $value;
            }
            break;
        case 'car_compra_pff':
            if ( $value !== null AND $value !== '' ) {
                $_set .= ", COMPRA_PFF"; 
                $_values .= ", " . $value;
            }
            break;
        case 'car_compra_opciones':
            if ( $value !== null AND $value !== '' ) {
                $_set .= ", COMPRA_OPCIONES"; 
                $_values .= ", " . $value;
            }
            break;
        case 'car_compra_transporte':
            if ( $value !== null AND $value !== '' ) {
                $_set .= ", COMPRA_TRANSPORTE"; 
                $_values .= ", " . $value;
            }
            break;
        case 'car_compra_base':
            if ( $value !== null AND $value !== '' ) {
                $_set .= ", COMPRA_BASE"; 
                $_values .= ", " . $value;
            }
            break;
        case 'car_compra_tipoiva':
            if ( $value !== null AND $value !== '' ) {
                $_set .= ", COMPRA_TIPOIVA"; 
                $_values .= ", " . $value;
            }
            break;
        case 'car_reserva':
            if ( $value !== null AND $value !== '' ) {
                $_set .= ", RESERVA"; 
                $_values .= ", '" . $value . "'";
                $car_reserva = $value;
            }
            break;
        case 'car_stock':
            if ( $value !== null AND $value !== '' ) {
                $_set .= ", STOCK";
                $codigo_stock = consultarStockVehiculo($bd_conn, $value);
                $stock_car = ($codigo_stock != '') ? $codigo_stock : 0 ; 
                $_values .= ", " . $stock_car;
            }
            break;
        case 'car_estado':
            if ( $value !== null AND $value !== '' ) {
                $_set .= ", ESTADO";
                $codigo_estado = consultarEstadoVehiculo($bd_conn, $value);
                $estado_car = ($codigo_estado != '') ? $codigo_estado : 'PRS' ; 
                $_values .= ", '" . $estado_car . "'";
            }
            break;
        case 'idTipoCompraSerauto':
            if ( $value !== null AND $value !== '' ) {
                $codigo_p0 = consultarTipoCompraSerauto($bd_conn, $value);
                $codigo_p0 = ( $codigo_p0 !== null AND $codigo_p0 !== '' ) ? $codigo_p0 : 0 ;
                $_set .= ", ORIGEN_COMPRA"; 
                $_values .= ", " . $codigo_p0;
            }
            break;
        case 'car_regimen':
            if ( $value !== null AND $value !== '' ) {
                $_set .= ", REBU";
                if ( $value == 'REBU' ) {
                    $_values .= ", '1'";
                }elseif ( $value == 'GENERAL' ) {
                    $_values .= ", '2'";
                }else {
                    $_values .= ", '0'";
                }
            }
            break;
        case 'car_compra_descuentos':
            if ( $value !== null AND $value !== '' ) {
                $_set .= ", COMPRA_DESCUENTO"; 
                $_values .= ", " . $value;
            }
            break;
        case 'car_venta_descuentos':
            if ( $value !== null AND $value !== '' ) {
                $_set .= ", VENTA_DESCUENTO"; 
                $_values .= ", " . $value;
            }
            break;
    }
}
if (!isset($estado_car)) {
    $_set .= ", ESTADO";
    $estado_car = 'PRS'; 
    $_values .= ", '" . $estado_car . "'";
}
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 consultarTipoCompraSerauto($bd, $cod_serauto){
    $sql =  "   SELECT T.CODIGO
                FROM EQUIV_TIPOSCOMPRA_SERAUTO E
                LEFT JOIN ETIQUETAS T ON T.EXTERNO = E.CODIGOEXT_P0
                WHERE E.CODIGO_SERAUTO = ? LIMIT 1";
    $base = $bd->prepare($sql);
    $cod_serauto = mysqli_real_escape_string($bd, $cod_serauto);
    $base->bind_param('s', $cod_serauto);
    $base->execute();
    $result = mysqli_fetch_array($base->get_result());
    $base->close();
    return $result["CODIGO"];
}
function codigoModelo($bd, $desc_modelo)
{
    $sql =  "   SELECT M.CODIGO
                FROM VEHICULOS_MODELOS M
                WHERE M.DESCRIPCION = ? LIMIT 1";
    $base = $bd->prepare($sql);
    $desc_modelo = mysqli_real_escape_string($bd, $desc_modelo);
    $base->bind_param('s', $desc_modelo);
    $base->execute();
    $result = mysqli_fetch_array($base->get_result());
    $base->close();
    return $result["CODIGO"];
}
function codigoMarca($bd, $desc_marca)
{
    $sql =  "   SELECT M.CODIGO
                FROM VEHICULOS_MARCAS M
                WHERE M.DESCRIPCION = ? LIMIT 1";
    $base = $bd->prepare($sql);
    $desc_marca = mysqli_real_escape_string($bd, $desc_marca);
    $base->bind_param('s', $desc_marca);
    $base->execute();
    $result = mysqli_fetch_array($base->get_result());
    $base->close();
    return $result["CODIGO"];
}
function consultarEstadoVehiculo($bd, $alias_estado){
    $sql =  "   SELECT E.CODIGO
                FROM VEHICULOS_ESTADOS E
                WHERE E.ALIAS = ? LIMIT 1";
    $base = $bd->prepare($sql);
    $alias_estado = mysqli_real_escape_string($bd, $alias_estado);
    $base->bind_param('s', $alias_estado);
    $base->execute();
    $result = mysqli_fetch_array($base->get_result());
    $base->close();
    return $result["CODIGO"];
}
function consultarStockVehiculo($bd, $alias_stock){
    $sql =  "   SELECT S.CODIGO
                FROM VEHICULOS_STOCKS S
                WHERE S.ALIAS = ? LIMIT 1";
    $base = $bd->prepare($sql);
    $alias_stock = mysqli_real_escape_string($bd, $alias_stock);
    $base->bind_param('s', $alias_stock);
    $base->execute();
    $result = mysqli_fetch_array($base->get_result());
    $base->close();
    return $result["CODIGO"];
}
function UpdateContador($bd,$prox_cont)
{
	$sql =  " UPDATE CONTADORES 
              SET CONTADORSIG = ?
              WHERE CODIGO = 'IDCAR0000000000000'";
    $base = $bd->prepare($sql);
    $prox_cont = mysqli_real_escape_string($bd, $prox_cont);
    $base->bind_param('i', $prox_cont);
    $base->execute();
}
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"];
}
?>