<?php
/////////////////////////////////////
define('TIPO_LINK_IMG', '1');
define('TIPO_LINK_VID', '2');
define('COD_CONTADOR', 'IDCAR0000000000000');
define('CORRECERIA_DEF', '0');//SIN ASIGNAR
define('USUARIO_DEF', 'API-ESMDD_dev');
define('COD_CAR_ACTIVO', '1');
define('COD_EXT_CLIENTE', 'ALHAMBRA');
define('ACC_CREAR_HISTORIAL', '1');
define('ACC_UPDATE_HISTORIAL', '2');
define('ACC_CREAR_HISTORIAL_DTLLE', 'Vehículo Creado Externo');
define('ACC_UPDATE_HISTORIAL_DTLLE', 'Vehículo Actualizado Externo');
define('ORDENADOR_EXT', 'ORD_EXTERNO');
define('CODIGO_WEB', '1');
define('STOCK', 'ALHAMBRA');
define('ESTADO', 'STK');
/////////////////////////////////////
include("../../../assets/conn/conexion.php"); 
$bd_conn = new connexion($host_avanws,$user_avanws,$pass_avanws,$name_avanws,$port_avanws);
$bd_conn->query("SET NAMES 'utf8'");
date_default_timezone_set('Europe/Madrid');
include("funcUpdateCarAlhambra.php");
$reader = new XMLReader();
$doc = new DOMDocument;
if (!$reader->open("xml/test.xml")) {
    die("Failed to open 'user-data.xml'");
}
//STOCK=================================================================
$codigo_stock = verificaCodigoStockCar($bd_conn, STOCK);
while($reader->read()) {
    if ($reader->nodeType == XMLReader::ELEMENT && $reader->name == 'vehicle') {
        $node = simplexml_import_dom($doc->importNode($reader->expand(), true));
        $bastidor = (isset($node->vin)) ? $node->vin : NULL;
        $dealer_id = (isset($node->dealer_id)) ? $node->dealer_id : NULL;
        //MARCA=================================================================
        $marca = (isset($node->brand)) ? $node->brand : NULL;
        $codigo_marca = verificaCodigoMarca($bd_conn, $marca);
        $codigo_marca = ($codigo_marca !== NULL) ? $codigo_marca : 0;
        //MODELO================================================================
        $modelo = (isset($node->model)) ? $node->model : NULL;
        $first_word = strstr($modelo, " ", true);
        if (strcasecmp($first_word, 'NEW') == 0 OR strcasecmp($first_word, 'nuevo') == 0 OR strcasecmp($first_word, $marca) == 0) {
            $modelo = preg_replace('/'.$first_word.' /', '', $modelo, 1);
            $codigo_modelo = verificaCodigoModelo($bd_conn, trim($modelo));
        }else {
            $codigo_modelo = verificaCodigoModelo($bd_conn, trim($modelo));
        }
        $version = (isset($node->version)) ? $node->version : NULL;
        $matricula = (isset($node->licence_number)) ? $node->licence_number : NULL;
        $tipo = (isset($node->category)) ? $node->category : 'used';
        $tipo = ($tipo == 'used') ? 'VO' : 'VN';
        $color = (isset($node->body_colorgroup)) ? $node->body_colorgroup : NULL;
        $notas = (isset($node->notes)) ? $node->notes : NULL;
        $combustible = (isset($node->fuel_type)) ? $node->fuel_type : 0;
        $codigo_combustible = verificaCodigoCombustible($bd_conn, $combustible);
        $codigo_combustible = ($codigo_combustible === NULL ) ? 0 : $codigo_combustible;
        $km = (isset($node->mileage)) ? $node->mileage : 0;
        $caja_cambios = (isset($node->gear_type)) ? $node->gear_type : 0;
        $codigo_caja_cambios = verificaCodigoCaja($bd_conn, $caja_cambios);
        $fecha_matriculacion = (isset($node->initial_registration)) ? $node->initial_registration : NULL;
        $year_fab = substr($fecha_matriculacion, 0, 4);
        $garantia = (isset($node->warranty_duration)) ? $node->warranty_duration : 0;
        $precio_venta = (isset($node->prices->price->value)) ? $node->prices->price->value : 0;
        $velocidades = (isset($node->gears)) ? $node->gears : NULL;
        $color_int_lit = (isset($node->interior_color)) ? $node->interior_color : NULL;
        if ($bastidor !== NULL) {
            $bastidor_exist = verificaBastidor($bd_conn, $bastidor);
            if ($bastidor_exist === 1) {
                $datos_car = consultoDatosCar($bd_conn, $bastidor);
                $id_car = $datos_car["IDCAR"];
                $codigo_car = $datos_car["CODIGO"];
                //ACTUALIZAR EL MOSTRAR
                $mostrar = $id_car . " - " . $marca . " - " . $modelo . " - " . $matricula;
                $status_acc = updateCar($bd_conn, $bastidor, $version, $codigo_marca, $codigo_modelo, $matricula, $color, $notas, $codigo_combustible, $km, $codigo_caja_cambios, $fecha_matriculacion, $year_fab, $garantia, $precio_venta, $velocidades, $color_int_lit, $mostrar);
                if ($status_acc == 1) {
                    echo "Vehículo con Matrícula " . $matricula . " fue actualizado con éxito.<br>";
                }
                deleteLink($bd_conn, $codigo_car, COD_EXT_CLIENTE);
                for ($i=0; $i < count($node->media->images->image); $i++) { 
                    $codigo_image = get_id_unico();
                    $tipo_link = TIPO_LINK_IMG;
                    $link_image = $node->media->images->image[$i]->uri;
                    $posicion = $node->media->images->image[$i]->position;
                    $status_link_img = createLink($bd_conn, $codigo_image, $posicion, $codigo_car, $tipo_link, $link_image, COD_EXT_CLIENTE);
                    if ($status_link_img === 1 ) {
                        //echo "Vehículo con Matrícula " . $matricula . " insertado link de imagen.<br>";
                    }else {
                        //echo "Vehículo con Matrícula " . $matricula . " error al crear el  link de imagen.<br>";
                    }
                }
                for ($i=0; $i < count($node->media->videos->video); $i++) { 
                    $codigo_vid = get_id_unico();
                    $tipo_link = TIPO_LINK_VID;
                    $link_video = $node->media->videos->video[$i]->uri;
                    $posicion = $i;
                    $status_link_vid = createLink($bd_conn, $codigo_vid, $posicion, $codigo_car, $tipo_link, $link_video, COD_EXT_CLIENTE);
                    if ($status_link_vid === 1 ) {
                        //echo "Vehículo con Matrícula " . $matricula . " insertado link de vídeo.<br>";
                    }else {
                        //echo "Vehículo con Matrícula " . $matricula . " error al crear el  link de vídeo.<br>";
                    }
                }
                createHistorial($bd_conn, $codigo_car, USUARIO_DEF, ACC_UPDATE_HISTORIAL, ACC_UPDATE_HISTORIAL_DTLLE, ORDENADOR_EXT, CODIGO_WEB);
            }elseif ($bastidor_exist === 0) {
                //BUSCO EL CODIGO DEL CAR======================================
                $next_car_code = verificaNextCodigoCar($bd_conn);
                //BUSCO EL CONTADOR============================================
                $datos_contador = verificaDatosContador($bd_conn, COD_CONTADOR);
                $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;
                $status_update_cont = updateContador($bd_conn, $prox_cont, COD_CONTADOR);
                $mostrar = $id_car . " - " . $marca . " - " . $modelo . " - " . $matricula;
                $cod_carroceria = CORRECERIA_DEF;
                $status_crea_car = createCar($bd_conn, $next_car_code, USUARIO_DEF, $tipo, $id_car, $codigo_marca, $codigo_modelo, $version, $mostrar, $matricula, $bastidor, $color, COD_CAR_ACTIVO, $notas, $codigo_combustible, $km, $codigo_caja_cambios, $fecha_matriculacion, $year_fab, $garantia, $precio_venta, $velocidades, $color_int_lit, COD_EXT_CLIENTE, $dealer_id, $codigo_stock, ESTADO);
                if ($status_crea_car == 1) {
                    echo "Vehículo con Matrícula " . $matricula . " fue creado con éxito.<br>";
                }
                for ($i=0; $i < count($node->media->images->image); $i++) { 
                    $codigo_image = get_id_unico();
                    $tipo_link = TIPO_LINK_IMG;
                    $link_image = $node->media->images->image[$i]->uri;
                    $posicion = $node->media->images->image[$i]->position;
                    $status_link_img = createLink($bd_conn, $codigo_image, $posicion, $next_car_code, $tipo_link, $link_image, COD_EXT_CLIENTE);
                    if ($status_link_img === 1 ) {
                        //echo "Vehículo con Matrícula " . $matricula . " insertado link de imagen.<br>";
                    }else {
                        //echo "Vehículo con Matrícula " . $matricula . " error al crear el  link de imagen.<br>";
                    }
                }
                for ($i=0; $i < count($node->media->videos->video); $i++) { 
                    $codigo_vid = get_id_unico();
                    $tipo_link = TIPO_LINK_VID;
                    $link_video = $node->media->videos->video[$i]->uri;
                    $posicion = $i;
                    $status_link_vid = createLink($bd_conn, $codigo_vid, $posicion, $next_car_code, $tipo_link, $link_video, COD_EXT_CLIENTE);
                    if ($status_link_vid === 1 ) {
                        //echo "Vehículo con Matrícula " . $matricula . " insertado link de vídeo.<br>";
                    }else {
                        //echo "Vehículo con Matrícula " . $matricula . " error al crear el  link de vídeo.<br>";
                    }
                }
                createHistorial($bd_conn, $next_car_code, USUARIO_DEF, ACC_CREAR_HISTORIAL, ACC_CREAR_HISTORIAL_DTLLE, ORDENADOR_EXT, CODIGO_WEB);
            }
        }       
    }
}
$reader->close();
?>