<?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', 'CONCESUR');
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', 'CONCESUR');
define('ESTADO', 'STK');
define('COD_PORTAL', '1');
define('COD_XML', '0');
define('COD_DIST_AMB', 'DIS_AMB');
define('COD_TIPO_COLOR', 'COL_PRI');
$data = array();
/////////////////////////////////////
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("funcUpdateCarConcesur.php");
$reader = new XMLReader();
$doc = new DOMDocument;
true == ($get_file = @file_get_contents('ftp://francisco:Skdkf%2Fdd_d2d51a%2F@grupoconcesur.es/concesur_turismos_1194.xml')) ? file_put_contents('../../../../integrations/concesur/concesur_turismos_1194.xml', $get_file) : exit;
if (!$reader->open("../../../../integrations/concesur/concesur_turismos_1194.xml")) {
    die("Failed to open 'user-data.xml'");
}
//STOCK=================================================================
$codigo_stock = verificaCodigoStockCar($bd_conn, STOCK);
//INACTIVO LOS COCHES DEL STOCK
updateStock($bd_conn, $codigo_stock, STOCK);
while($reader->read()) {
    if ($reader->nodeType == XMLReader::ELEMENT && $reader->name == 'Vehiculo') {
        $node = simplexml_import_dom($doc->importNode($reader->expand(), true));
        $bastidor = (isset($node->Bastidor)) ? trim($node->Bastidor) : NULL;
        //$ownersvehicle_id = (isset($node->ownersvehicle_id)) ? trim($node->ownersvehicle_id) : NULL;//NO UBICADO
        //MARCA=================================================================
        $marca = (isset($node->Marca)) ? trim($node->Marca) : NULL;
        $codigo_marca = verificaCodigoMarca($bd_conn, $marca);
        $codigo_marca = ($codigo_marca != NULL OR $codigo_marca != '' ) ? $codigo_marca : 0;
        //MODELO================================================================
        $modelo = (isset($node->Modelo)) ? trim($node->Modelo) : 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));
        }
        $codigo_modelo = ( $codigo_modelo == null OR $codigo_modelo == '' ) ? 0 : $codigo_modelo ;
        //DIST AMB==============================================================
        $codigo_dist_amb = (isset($node->emission->sticker)) ? verificaCodigoDistAmb($bd_conn, COD_DIST_AMB, trim($node->emission->sticker)) : 1 ;// NO UBICADO
        $version = (isset($node->Version)) ? trim($node->Version) : NULL;
        $matricula = (isset($node->Matricula)) ? trim($node->Matricula) : NULL;
        $tipo = (isset($node->category)) ? trim($node->category) : 'used';//NO UBICADO
        $tipo = ($tipo == 'used') ? 'VO' : 'VN';
        $desc_color = (isset($node->ColorExterior)) ?  trim($node->ColorExterior) : 0;
        //BUSCO CODIGO DEL COLOR
        $color = verificaCodigoColor($bd_conn, $desc_color, COD_TIPO_COLOR);
        $color = ( $color == null OR $color == '' ) ? 0 : $color ;
        $color_lit = (isset($node->ColorExterior)) ? trim($node->ColorExterior) : NULL;
        $notas = (isset($node->Descripcion)) ? trim($node->Descripcion) : NULL;
        $notas = str_replace(array("\r\n", "\r", "\n", "\\r", "\\n", "\\r\\n"), "<br/>", $notas);
        $combustible = (isset($node->Combustible)) ? trim($node->Combustible) : 0;
        $codigo_combustible = verificaCodigoCombustible($bd_conn, $combustible);
        $codigo_combustible = ($codigo_combustible === NULL ) ? 0 : $codigo_combustible;
        $km = (isset($node->Kilometraje)) ? trim($node->Kilometraje) : 0;
        $caja_cambios = (isset($node->CajaCambios)) ? trim($node->CajaCambios) : 0;
        $codigo_caja_cambios = verificaCodigoCaja($bd_conn, $caja_cambios);
        $fecha_matriculacion = (isset($node->FechaMatriculacion)) ? trim($node->FechaMatriculacion) : NULL;
        $year_fab = substr($fecha_matriculacion, 0, 4);
        $garantia = (isset($node->DuracionGarantia)) ? trim($node->DuracionGarantia) : 0;
        $precio_venta = (isset($node->PrecioOferta)) ? trim($node->PrecioOferta) : 0;
        $velocidades = (isset($node->NumeroMarchas)) ? trim($node->NumeroMarchas) : NULL;
        $motor = (isset($node->PotenciaCV)) ? trim($node->PotenciaCV) : 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"];
                $mostrar = $id_car . " - " . $marca . " - " . $modelo . " - " . $matricula;
                $status_acc = updateCar($bd_conn, $bastidor, $version, $matricula, $color, $notas, $km, $fecha_matriculacion, $year_fab, $garantia, $precio_venta, $mostrar);
                deleteLink($bd_conn, $codigo_car, COD_EXT_CLIENTE);
                for ($x=0; $x < count($node->Fotos->Foto); $x++) { 
                    $codigo_image = get_id_unico();
                    $tipo_link = TIPO_LINK_IMG;
                    $link_image = $node->Fotos->Foto[$x]->UrlFoto;
                    $posicion = $x;
                    $status_link_img = createLink($bd_conn, $codigo_image, $posicion, $codigo_car, $tipo_link, $link_image, COD_EXT_CLIENTE);
                }
                createHistorial($bd_conn, $codigo_car, USUARIO_DEF, ACC_UPDATE_HISTORIAL, ACC_UPDATE_HISTORIAL_DTLLE, ORDENADOR_EXT, CODIGO_WEB);
                //RESPONSE
                $data[$bastidor] = array ( 
                    "status" => "car Updated",
                    "external_id" => trim($bastidor),
                    "num_img" => $x
                );
            }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_lit, COD_EXT_CLIENTE, $bastidor, $codigo_stock, ESTADO, $codigo_dist_amb, $motor);
                for ($x=0; $x < count($node->Fotos->Foto); $x++) { 
                    $codigo_image = get_id_unico();
                    $tipo_link = TIPO_LINK_IMG;
                    $link_image = trim($node->Fotos->Foto[$x]->UrlFoto);
                    $posicion = $x + 1;
                    $status_link_img = createLink($bd_conn, $codigo_image, $posicion, $next_car_code, $tipo_link, $link_image, COD_EXT_CLIENTE);
                }
                //==============================================================
                //EQUIPAMIENTOS=================================================
                include("insertEquipamientos.php");
                //HISTORIAL
                createHistorial($bd_conn, $next_car_code, USUARIO_DEF, ACC_CREAR_HISTORIAL, ACC_CREAR_HISTORIAL_DTLLE, ORDENADOR_EXT, CODIGO_WEB);
                //PUBLICO
                createPublicacion($bd_conn, $next_car_code, COD_PORTAL, COD_CAR_ACTIVO, COD_XML);
                //RESPONSE
                $data[$bastidor] = array ( 
                    "status" => "car Created",
                    "external_id" => trim($bastidor),
                    "num_img" => $x
                );
            }
        }
    }
}
//DESPUBLICO LOS COCHES RESTANTES =============================================================================
updatePublicacion($bd_conn, $codigo_stock);
//REGRESO LA RESPUESTA=======================================================
$reader->close();
header("Content-type: application/json; charset=utf-8");
echo json_encode($data);
?>