<?php
session_start();
$usuarioSession = $_SESSION['USUARIO'];
$grupo = $_SESSION['GRUPO'];
$contacto = $_SESSION['CONTACTO'];
$awa_session_id = $_SESSION['AWA_SESION_ID'];
include('../includes/conex.php');
include('../includes/eat.php');
include('../includes/historial.php');
include('../includes/functions.php');
include('../includes/esquemas.php');
include('../class/Schema.php');
include('../class/MotherCar.php');
include('../class/Expediente.php');
include('../class/Bibliotecas.php');
include('../class/Tasaciones.php');
include('../class/Static.php');
include('../class/WebServices.php');
include('../lg/config_vo.php');


$cookieUser = filter_input(INPUT_COOKIE, 'usuario') ?? null; 
$cookieIdioma = filter_input(INPUT_COOKIE, 'idioma') ?? null; 
if((!isset($usuarioSession) or $awa_session_id != $awa_id) or (isset($cookieUser) AND $cookieUser != $staticUsu )){
    eatCookies();
    header('Location:../index.php');}
empty($cookieIdioma)?
    include('../lg/LG_' . $cookieIdioma . '.php'):
    include('../lg/LG_SP.php');

require_once __DIR__ . '../../vendor/autoload.php';
$Schema = new Schema($con, $database);
$MotherCar = new MotherCar($con);
$Expediente = new Expediente($con);
$Tasaciones = new Tasaciones($con);
$Bibliotecas = new Bibliotecas($con);
$json = [];
$request = filter_input(INPUT_POST, 'request') ?? null;
try{
    switch($request) {
        case "carrusel":
            //Creo un array con los stocks que tiene el usuario logado
            $res = $con->query("SELECT CODIGO FROM VEHICULOS_STOCKS WHERE ACCESO LIKE '%#" . $grupo . "%'");
            while($row = $res->fetch_assoc()) { $stock[] = (int)$row['CODIGO'];}
            
            $ESQUEMA = $Schema->select_esquema_o_esquema_estructura(TRUE); 
            $GRUPO = $Schema->select_esquema_o_esquema_estructura(); 
            $GRUPOE_TIPO = $Schema->select_esquema_estructura_valores('TIPO',$ESQUEMA);

            $LISTA = $Schema->select_esquema_estructura_valores('TIPO', $ESQUEMA, 'LISTA');
            $sql_codigo_etiqueta = "SELECT CODIGO FROM ETIQUETAS WHERE GRUPO = $LISTA AND DESCRIPCION = 'FOTO'";
            $res_codigo_etiqueta = $con->query($sql_codigo_etiqueta);
            $row_codigo_etiqueta = $res_codigo_etiqueta->fetch_array(); 
            $ETIQUETA = $row_codigo_etiqueta['CODIGO']; 
            $GRUPOE_PUBLICABLE = $Schema->select_esquema_estructura_valores('PUBLICABLE', $ESQUEMA);

            $INT = "#*INT$";
            $GRUPO_CONDICION = "#$grupo$";
            $USUARIO_SESSION = "#$usuarioSession$";
            $sql_1 =    "SELECT V.CODIGO, 
                                V.IDCAR, 
                                V.RESERVA, 
                                V.MOSTRAR, 
                                V.MATRICULA, 
                                V.MOTOR, 
                                V.KM, 
                                V.ANO_FAB, 
                                V.ALTA, 
                                V.VENTA_TOTAL, 
                                V.VENTA_TOTALSINDTO, 
                                V.ALTA, 
                                V.VERSION, 
                                E.TOTALSINDTO AS FINANCIADO, 
                                M.DESCRIPCION AS M, 
                                MO.DESCRIPCION AS MO, 
                                E.TOTAL AS TOTAL_FINANCIADO,
                                L1.DESCRIPCION_$lg AS DESCRIPCION_LG1,
                                L2.DESCRIPCION_$lg AS DESCRIPCION_LG2
                        FROM VEHICULOS V 
                        INNER JOIN VEHICULOS_STOCKS S        ON V.STOCK   = S.CODIGO 
                        LEFT JOIN  VEHICULOS_MARCAS M        ON M.CODIGO  = V.MARCA
                        LEFT JOIN  VEHICULOS_MODELOS MO      ON MO.CODIGO = V.MODELO
                        LEFT JOIN  VEHICULOS_PRECIOSEXTRAS E ON V.CODIGO  = E.CODIGO AND E.TIPO = ?
                        LEFT JOIN  VEHICULOS_LITERALES L1    ON L1.CODIGO = V.COMBUSTIBLE AND L1.TIPO = ?
                        LEFT JOIN  VEHICULOS_LITERALES L2    ON L2.CODIGO = V.CAJACAMBIOS AND L2.TIPO = ?
                        WHERE   V.PAPELERA = ? 
                            AND V.ACTIVO = ? 
                            AND V.ESTADO = ? 
                            AND V.DESTACADO_VENTA_VO = ? 
                            AND V.STOCK IN ( ". implode(',', $stock )  ." )
                        ORDER BY ALTA ASC";
            $res_1 = $Schema->executeQuery($sql_1, 'issiisi', [1, 'TIP_COM', 'TIP_CAJ', 0, 1, 'STK', 1]);
            if($res_1->num_rows) {
                $i = 0;
                while($row_1 = $res_1->fetch_array()) {

                    $precio =  $row_1['VENTA_TOTAL'] == $row_1['VENTA_TOTALSINDTO'] ? $row_1['VENTA_TOTALSINDTO'] : $row_1['VENTA_TOTAL'];
                    $precio_financiado =  $row_1['FINANCIADO'] == $row_1['TOTAL_FINANCIADO'] ? $row_1['FINANCIADO'] : $row_1['TOTAL_FINANCIADO'];
                    $nombre_vehiculo = ucwords(mb_strtolower($row_1['M'], 'UTF-8')) . " " . ucwords(mb_strtolower($row_1['MO'], 'UTF-8')) . " " . $row_1['MATRICULA'];
                    $resLink = $Schema->executeQuery('SELECT LINK FROM VEHICULOS_MULTIMEDIA_LINKS WHERE VEHICULO = ? AND TIPO = ? AND ACTIVO = ? ORDER BY ORDEN ASC', 'iii', [$row_1['CODIGO'], 1, 1]);
                    $isbooked = strtotime($row_1['RESERVA'])!== null && ( strtotime($row_1['RESERVA']) > strtotime(date("d-m-Y H:i:00",time())));
                    $json['cards'][$i]['key'] = $row_1['CODIGO'];
                    $json['cards'][$i]['price'] = $precio;
                    $json['cards'][$i]['name'] = $nombre_vehiculo;
                    $json['cards'][$i]['version'] = $row_1['VERSION'];
                    $json['cards'][$i]['year'] = $row_1['ANO_FAB'];
                    $json['cards'][$i]['fuel'] = empty($row_1['DESCRIPCION_LG1']) ? mb_strtolower($sin_asignar_2_lg, 'UTF-8') : mb_strtolower($row_1['DESCRIPCION_LG1'], 'UTF-8');
                    $json['cards'][$i]['greabox'] = mb_strtolower($row_1['DESCRIPCION_LG2'], 'UTF-8');
                    $json['cards'][$i]['timer'] = Statics::DateDiff($row_1['ALTA']);
                    $json['cards'][$i]['booking'] = $isbooked;
                    if($resLink->num_rows) {
                        $rowLink = $resLink->fetch_array();
                        $json['cards'][$i]['img'] = $rowLink['LINK'];
                    }  else {
                        $sqlIMG = "SELECT E.CLAVE, E.NOMBRE, E.SUFIJO, E.PARTES, E.POS
                        FROM BIBLIOTECA_ELEMENTOS E INNER JOIN BIBLIOTECA_ETIQUETAS T1 ON E.CLAVE = T1.CLAVE
                        INNER JOIN BIBLIOTECA_ETIQUETAS T2 ON E.CLAVE = T2.CLAVE
                        INNER JOIN BIBLIOTECA_ETIQUETAS T3 ON E.CLAVE = T3.CLAVE
                        WHERE T1.ESQUEMA = ? AND T1.GRUPOE = ? AND T1.ETIQUETA = ?
                        AND T2.ESQUEMA = ? AND T2.GRUPOE = ? AND T2.ETIQUETA = ?
                        AND T3.ESQUEMA = ? AND T3.GRUPOE = ? AND T3.ETIQUETA = ?
                        AND E.PAPELERA = ?
                        AND E.POS = ?
                        AND E.CLAVE NOT IN (SELECT DOCUMENTO FROM VEHICULOS_TASACIONES_DOCS) ORDER BY E.POS ASC";
                        $resIMG = $Schema->executeQuery($sqlIMG, 'iiiiiiiiiii', [$ESQUEMA, $GRUPO, $row_1['CODIGO'], $ESQUEMA, $GRUPOE_TIPO, $ETIQUETA, $ESQUEMA, $GRUPOE_PUBLICABLE, 1, 0, 1]);
                        if($resIMG->num_rows) {
                            $rowIMG = $resIMG->fetch_array();
                            $TMP_FILE = 'tmp_img/' . $rowIMG['NOMBRE'];
                            $Schema->create_file("../$TMP_FILE", $rowIMG['PARTES'], $rowIMG['SUFIJO'], $rowIMG['CLAVE']);
                            $json['cards'][$i]['img'] = $TMP_FILE;
                        } else {
                            $json['cards'][$i]['img'] = false;
                        }
                    }
                    $json['cards'][$i]['km'] = $row_1['KM'];
                    $i++;
                }
            }
            $json['status'] = true;
            $json['request'] = 'Successful';
            break;
        default:
            $json['status'] = false;
            $json['request'] = 'Fail';
    }
    echo json_encode($json);
} catch (Exception $ex) {
    echo "Ha habido un error al cargar los datos. ".$ex->getMessage()."\nCod_ex_".$ex->getLine().$ex->getFile();
    $json['status'] = false;
    $json['request'] = 'Fail';
} catch (Throwable $twb) {
    echo "Ha habido un error al cargar los datos. ".$twb->getMessage()."\nCod_twb_".$twb->getLine().$twb->getFile();
    $json['status'] = false;
    $json['request'] = 'Fail';
} finally {
    $con->close();
}