<?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/Static.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');

if (array_sum($_FILES['doc']['error']) == 0) {
    $Schema = new Schema($con, $database);
    $MotherCar = new MotherCar($con);
    $Expediente = new Expediente($con);
    $codigo_vehiculo = $_SESSION['VEHICULO_RECIEN_CREADO'];
    $res = $Schema->executeQuery('SELECT IDCAR, MARCA, MODELO, MATRICULA FROM VEHICULOS WHERE CODIGO = ?', 'i', [$codigo_vehiculo]);
    $row = $res->fetch_array();

    $Schema->set_ubicacion_archivos('../uploads/')->get_ubicacion_archivos();
    $_POST['youCantSeeMe'] == 'FOTO' ? $Schema->set_resize_img(TRUE) : $Schema->set_resize_img(FALSE); 
    $EXP0 = 'EXP000000000000000';
    $mostrar = $MotherCar->construir_mostrar_vehiculo($row['IDCAR'], $row['MARCA'], $row['MODELO'], $row['MATRICULA']);
    $codigo_exp_tipo = $Schema->select_expediente_tipos_valores('VEHICULO_STOCK');
    $descripcion_exp_tipo = $Schema->select_expediente_tipos_valores('VEHICULO_STOCK', 'DESCRIPCION');
    $codigo_esq_estr = $Schema->select_esquema_estructura_valores('VEHICULO', -1);
    $str_replace = substr_replace($EXP0,$codigo_exp_tipo,-strlen($codigo_exp_tipo));
    $contadores = $Expediente->check_contador_expediente($codigo_vehiculo) ? $Expediente->check_contador_expediente($codigo_vehiculo) : Statics::get_contadores($con,$str_replace);

    if($Expediente->check_expediente($codigo_esq_estr, $contadores)) {
        $claveXT = "XT$codigo_exp_tipo";
        $nombreXT = $descripcion_exp_tipo; 
        $padreXT = "##EXPEDIENTES##";
        $iconoXT = "expediente";
        $ubicacionXT = "##PUBLICO##/##EXPEDIENTES##/";
        $ano = date('Y');
        $fechahoy = date('d/m/Y');
        $claveXA = "XA$codigo_exp_tipo".".$ano";
        $nombreXA = $descripcion_exp_tipo; 
        $padreXA = "##EXPEDIENTES##";
        $iconoXA = "fecha";
        $ubicacionXA = "##PUBLICO##/##EXPEDIENTES##/" . $claveXT . "/";

        $Expediente->insert_biblioteca_expedientes_valores($contadores,1,$codigo_exp_tipo,0,$contadores);
        $Expediente->insert_biblioteca_expedientes_valores($contadores,2,$codigo_exp_tipo,1,$fechahoy,0,"NOW()");
        $Expediente->insert_biblioteca_expedientes_valores($contadores,3,$codigo_exp_tipo,2,$descripcion_exp_tipo,false,false,$codigo_exp_tipo);
        $Expediente->insert_biblioteca_expedientes_valores($contadores,$codigo_esq_estr,$codigo_exp_tipo,3,$mostrar,false,false,$codigo_vehiculo);
        if ($Expediente->check_expediente_carpeta($claveXT) == 0) {
            $Expediente->crear_carpeta_expediente($claveXT, $nombreXT, $padreXT, $usuarioSession, $iconoXT, $ubicacionXT);
        } 

        if ($Expediente->check_expediente_carpeta($claveXA) == 0) {
            $acceso = $Expediente->select_acceso_biblioteca_elementos($claveXT);
            $Expediente->crear_carpeta_expediente($claveXA, $ano, $claveXT, $usuarioSession, $iconoXA, $ubicacionXA, $acceso);
        } else {
            $acceso = $Expediente->select_acceso_biblioteca_elementos($claveXA);
        }

        $claveEXP = get_id_unico();
        $padre = $claveXA;
        $ubicacion = $ubicacionXA . "$claveXA/";
        $Expediente->crear_carpeta_expediente($claveEXP,$mostrar,$padre,$usuarioSession,$iconoXT,$ubicacion,$acceso,$contadores);
        $Expediente->insert_biblioteca_etiquetas_expediente(get_id_unico(),$claveEXP,$contadores,1,-1);
    } else {
        $claveEXP = $Expediente->select_clave_padre_acceso_ubicacion_expediente($codigo_vehiculo);
        $acceso = $Expediente->select_clave_padre_acceso_ubicacion_expediente($codigo_vehiculo, 'ACCESO');
        $ubicacion = $Expediente->select_clave_padre_acceso_ubicacion_expediente($codigo_vehiculo, 'UBICACION');   
    }

    if($_POST['youCantSeeMe'] == 'FOTO') {
        $sql_pos = 'SELECT MAX(E.POS) AS MAX_POS
        FROM BIBLIOTECA_ELEMENTOS E 
        INNER JOIN BIBLIOTECA_ETIQUETAS T ON T.CLAVE = E.CLAVE
        WHERE T.ETIQUETA = ? AND E.PAPELERA = ?';
        $res_pos = $Schema->executeQuery($sql_pos, 'ii', [$codigo_vehiculo, 0]);
        $row_pos = $res_pos->fetch_array();
        $start_here_posicion = $row_pos['MAX_POS'] + 1;
        for($i = 0; $i < count($_FILES['doc']['tmp_name']); $i++) {
            $posicion = $i + $start_here_posicion;
            $clave = $Schema->set_clave_elemento(get_id_unico())->get_clave_elemento();
            $name = $_FILES['doc']['name'][$i];
            $tmp = $_FILES['doc']['tmp_name'][$i];
            $size = $_FILES['doc']['size'][$i];
            $part = pathinfo($name);
            $extension = $part['extension'];
            $name = Statics::rename($extension, $posicion, $con, $row['IDCAR']);
            $Schema->upload_doc($tmp, $name, $size, $claveEXP, $acceso, $ubicacion, $usuarioSession, $codigo_vehiculo, $posicion);
            $codigo_biblioteca_etiquetas = get_id_unico();
            $Schema->asignar_etiquetas_nuevo_expediente($codigo_biblioteca_etiquetas, $codigo_vehiculo, $mostrar, TRUE, TRUE);
        }
    } else {
        $tipo_documento = Statics::SafeInput($con, $_POST['youCantSeeMe']);
        for($i = 0; $i < count($_FILES['doc']['tmp_name']); $i++) {
            $clave = $Schema->set_clave_elemento(get_id_unico())->get_clave_elemento();
            $name = $_FILES['doc']['name'][$i];
            $tmp = $_FILES['doc']['tmp_name'][$i];
            $size = $_FILES['doc']['size'][$i];
            $part = pathinfo($name);
            $extension = $part['extension'];
            $nombre_vehiculo = $MotherCar->nombre_vehiculo($row['MARCA'], $row['MODELO'], "_");
            $name = $tipo_documento . "_" . Statics::rename($extension, $i, $con, $nombre_vehiculo);
            $Schema->upload_doc($tmp, $name, $size, $claveEXP, $acceso, $ubicacion, $usuarioSession, $codigo_vehiculo);
            $codigo_biblioteca_etiquetas = get_id_unico();
            $Schema->asignar_etiquetas_nuevo_expediente($codigo_biblioteca_etiquetas, $codigo_vehiculo, $mostrar); 
        }
    } 
    $_SESSION['MSG_INFO'] = 'DATOS_ARCHIVOS';
    $detalle = $documentos_imagenes_lg . ': ' . $archivos_cargados_correctamente_lg;
    Statics::add_trace_history($con, $usuarioSession, $_SESSION['VEHICULO_RECIEN_CREADO'], 2, $detalle);
    header("Location:../nuevo-vehiculo-datos.php");
} else {
    $_SESSION['MSG_INFO'] = 'ERROR';
    $detalle = $documentos_imagenes_lg . ': ' . $archivos_no_cargados_lg;
    Statics::add_trace_history($con, $usuarioSession, $_SESSION['VEHICULO_RECIEN_CREADO'], 2, $detalle);
    header("Location:../nuevo-vehiculo-datos.php");
}