<?php
/////////////////////////////////////
define('ALIAS_CLIENTE', 'DAPDA');
define('COD_EXT_CLIENTE', 'DAPDA');
define('COD_CONTADOR', 'IDCAR0000000000000');
define('USUARIO_DEF', 'API-ESMDD_dev');
define('COD_CAR_ACTIVO', '1');
define('ESTADO', 'STK');
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('TIPO_LINK_IMG', '1');
define('TIPO_LINK_VID', '2');
define('COD_PORTAL', '1');
define('COD_XML', '0');
define('CORRECERIA_DEF', '0');//SIN ASIGNAR
define('STOCK', 'DAPDA');
$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("func_dapda_stock.php");
$reader = new XMLReader();
$doc = new DOMDocument;
if (!$reader->open("../../../../integrations/dapda/interface_dealerbest.xml")) {
    die("Failed to open 'interface_ejemplo.xml'");
}
while($reader->read()) {
    if ($reader->nodeType == XMLReader::ELEMENT && $reader->name == 'concesionario') {
        $node = simplexml_import_dom($doc->importNode($reader->expand(), true));
        //VARIABLERS
        $idexterno_concesionario = (isset($node->dealer->idexterno_concesionario)) ? trim($node->dealer->idexterno_concesionario) : NULL;
        $nombre_concecionario = (isset($node->dealer->nombre)) ? trim($node->dealer->nombre) : NULL;
        //VALIDA STOCK
        $alias_stock = ALIAS_CLIENTE . "_" . $idexterno_concesionario;
        //STOCK=================================================================
        $codigo_stock = verificaCodigoStockCar($bd_conn, $alias_stock);
        //INACTIVO LOS COCHES DEL STOCK
        updateStock($bd_conn, $codigo_stock, $alias_stock);
        /*
        $alias_stock = ALIAS_CLIENTE;
        if (validaStockConcecionario($bd_conn, $alias_stock) == 0) {
            $next_code = getNextStockCode($bd_conn) + 1;
            $descipcion = $nombre_concecionario;
            $alias = $alias_stock;
            $principal = 0;
            $defecto = 0;
            $activo = 1;
            $acceso = '';
            $result_stock = createNewStock($bd_conn, $next_code, $descipcion, $alias, $principal, $defecto, $activo, $acceso);  
        }
        */
        //RECORRO LOS VEHICULOS DEL CONCECIONARIO
        for ($i=0; $i < count($node->vehicle); $i++) { 
            //CREAR VEHICULO  VARIABLES
            $externalid = $node->vehicle[$i]->externalid;
            $bastidor = (isset($node->vehicle[$i]->bastidor)) ? $node->vehicle[$i]->bastidor : NULL;
            $matricula = (isset($node->vehicle[$i]->matricula)) ? $node->vehicle[$i]->matricula : NULL;
            $version = (isset($node->vehicle[$i]->version)) ? trim($node->vehicle[$i]->version) : NULL;
            $tipo = 'VO';
            $color = (isset($node->vehicle[$i]->color)) ? $node->vehicle[$i]->color : NULL;
            $notas = (isset($node->vehicle[$i]->notes)) ? $node->vehicle[$i]->notes : NULL;
            $combustible = (isset($node->vehicle[$i]->combustible)) ? $node->vehicle[$i]->combustible : 0;
            $codigo_combustible = verificaCodigoCombustible($bd_conn, $combustible);
            $codigo_combustible = ($codigo_combustible === NULL ) ? 0 : $codigo_combustible;
            $km = (isset($node->vehicle[$i]->km)) ? $node->vehicle[$i]->km : 0;
            $caja_cambios = (isset($node->vehicle[$i]->cambio)) ? $node->vehicle[$i]->cambio : 0;
            $codigo_caja_cambios = verificaCodigoCaja($bd_conn, $caja_cambios);
            $fecha_matriculacion = (isset($node->vehicle[$i]->fecha_matriculacion)) ? $node->vehicle[$i]->fecha_matriculacion : NULL;
            $year_fab = (isset($node->vehicle[$i]->year)) ? $node->vehicle[$i]->year : 0;
            $has_garantia = (isset($node->vehicle[$i]->garantia)) ? $node->vehicle[$i]->garantia : 'No';
            $garantia = ($has_garantia == 'Sí') ? $node->vehicle[$i]->month : 0;
            $precio_venta = (isset($node->vehicle[$i]->precio)) ? $node->vehicle[$i]->precio : 0;
            $velocidades = (isset($node->vehicle[$i]->velocidades)) ? $node->vehicle[$i]->velocidades : NULL;
            $color_int_lit = (isset($node->vehicle[$i]->interior_color)) ? $node->vehicle[$i]->interior_color : NULL;
            //MARCA=================================================================
            $marca = (isset($node->vehicle[$i]->marca)) ? trim($node->vehicle[$i]->marca) : NULL;
            $codigo_marca = verificaCodigoMarca($bd_conn, trim($marca));
            $codigo_marca = ($codigo_marca !== NULL) ? $codigo_marca : 0;
            //MODELO================================================================
            $modelo = (isset($node->vehicle[$i]->modelo)) ? trim($node->vehicle[$i]->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));
            }
            //VERIFICAR EXISTENCIA STOCK
            if (validaVehiculoSotck($bd_conn, $externalid, $alias_stock, $codigo_stock) == 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;
                //CREO EL vehicle
                $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, $alias_stock, $externalid, $codigo_stock, ESTADO);
                //CREO EL HISTORIAL
                createHistorial($bd_conn, $next_car_code, USUARIO_DEF, ACC_CREAR_HISTORIAL, ACC_CREAR_HISTORIAL_DTLLE, ORDENADOR_EXT, CODIGO_WEB);
                //CREO LAS IMAGENES
                for ($x=0; $x < count($node->vehicle[$i]->imagenes->imagen); $x++) { 
                    $codigo_image = get_id_unico();
                    $tipo_link = TIPO_LINK_IMG;
                    $link_image = trim($node->vehicle[$i]->imagenes->imagen[$x]->linkimagen);
                    $posicion = $x + 1;
                    $status_link_img = createLink($bd_conn, $codigo_image, $posicion, $next_car_code, $tipo_link, $link_image, $alias_stock);
                }
                for ($z=0; $z < count($node->vehicle[$i]->extras->extra); $z++) { 
                    $equipamiento = trim($node->vehicle[$i]->extras->extra[$z]);
                    $categoria = '0';
                    $status_equip = createEquipamiento($bd_conn, $next_car_code, $equipamiento, $categoria);
                }
                //PUBLICO
                createPublicacion($bd_conn, $next_car_code, COD_PORTAL, COD_CAR_ACTIVO, COD_XML);
                //RESPONSE
                $data[$id_car] = array ( 
                    "status" => "car Created",
                    "external_id" => trim($externalid),
                    "num_img" => $x
                );
            }elseif (validaVehiculoSotck($bd_conn, $externalid, $alias_stock, $codigo_stock) == 1) {
                //UPDATE VEHICULO============================================
                $datos_car = verificaDatosVehiculo($bd_conn, $externalid, $alias_stock, $codigo_stock);
                $id_car = $datos_car["IDCAR"];
                $codigo_car = $datos_car["CODIGO"];
                //ACTUALIZAR EL MOSTRAR
                $mostrar = $id_car . " - " . $marca . " - " . $modelo . " - " . $matricula;
                //ELIMINAR LAS IMAGENES
                deleteLink($bd_conn, $codigo_car, $alias_stock);
                //UPDATE DE LOS CAMPOS
                $status_acc = updateCar($bd_conn, $externalid, $alias_stock, $codigo_stock, $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);
                //NUEVOS LINK IMAGENES
                for ($x=0; $x < count($node->vehicle[$i]->imagenes->imagen); $x++) { 
                    $codigo_image = get_id_unico();
                    $tipo_link = TIPO_LINK_IMG;
                    $link_image = trim($node->vehicle[$i]->imagenes->imagen[$x]->linkimagen);
                    $posicion = $x + 1;
                    $status_link_img = createLink($bd_conn, $codigo_image, $posicion, $codigo_car, $tipo_link, $link_image, $alias_stock);
                }
                //HISTORIAL
                createHistorial($bd_conn, $codigo_car, USUARIO_DEF, ACC_UPDATE_HISTORIAL, ACC_UPDATE_HISTORIAL_DTLLE, ORDENADOR_EXT, CODIGO_WEB);
                //RESPONSE
                $data[$id_car] = array ( 
                    "status" => "car Updated",
                    "external_id" => trim($externalid),
                    "num_img" => $x
                );
            }
        }
        //DESPUBLICO LOS COCHES RESTANTES =============================================================================
        updatePublicacion($bd_conn, $codigo_stock); 
    }
}
//REGRESO LA RESPUESTA=======================================================
header("Content-type: application/json; charset=utf-8");
echo json_encode($data);
?>