<?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');
if(!isset($usuarioSession) or $awa_session_id != $awa_id)
{
    eatCookies();
    header('Location:index.php');
}
if(isset($_COOKIE['usuario']) AND $_COOKIE['usuario'] != $staticUsu )
{
    eatCookies();
    header('Loction:index.php');
}
$key = "";
$value = "";
$marca = htmlspecialchars(mysqli_real_escape_string($con,$_POST['marca']));
$precio = htmlspecialchars(mysqli_real_escape_string($con,$_POST['precio']));
$modelo = htmlspecialchars(mysqli_real_escape_string($con,$_POST['modelo']));
$idcar = get_contadores($con,'IDCAR0000000000000');
$matricula = htmlspecialchars(mysqli_real_escape_string($con,$_POST['matricula']));
$color = htmlspecialchars(mysqli_real_escape_string($con,$_POST['color']));
$fechaMatric = htmlspecialchars(mysqli_real_escape_string($con,$_POST['fechaMatric']));
$carroceria = htmlspecialchars(mysqli_real_escape_string($con,$_POST['carroceria']));
$combustible = htmlspecialchars(mysqli_real_escape_string($con,$_POST['combustible']));
$cambio = htmlspecialchars(mysqli_real_escape_string($con,$_POST['cambio'])); 
$km = htmlspecialchars(mysqli_real_escape_string($con,$_POST['km']));
$dist_amb = htmlspecialchars(mysqli_real_escape_string($con,$_POST['dist_amb']));
$sql = "SELECT * FROM VEHICULOS WHERE MATRICULA = ?";
$stmt = $con->prepare($sql);
$stmt->bind_param('s',$matricula);
$stmt->execute();
$res = $stmt->get_result();
if($res->num_rows >= 1)
{
    $_SESSION['m56'] = 99;
    header("Location:nuevo-vehiculo.php");
}
else
{
    $nr = max_codigo($con,'VEHICULOS');
    $ano = date('Y');
    $fechahoy = date('d/m/Y');
    $EXP0 = 'EXP000000000000000';

    $idcar = get_contadores($con,'IDCAR0000000000000');
    $mostrar = setMostrarVehiculo($con,$idcar,$marca,$modelo,$matricula);
    $codigo_exp_tipo =  expediente_tipo($con,'VEHICULO_STOCK')[0];
    $descripcion_exp_tipo = expediente_tipo($con,'VEHICULO_STOCK')[1];
    $codigo_esq_estr = esquemas_estructura($con,'VEHICULO');
    $str_replace = substr_replace($EXP0,$codigo_exp_tipo,-strlen($codigo_exp_tipo));
    $contadores = get_contadores($con,$str_replace);

    if(check_expediente($con,$codigo_esq_estr,$contadores) == 0)
    {
        $nr = max_codigo($con,'VEHICULOS');
        $claveXT = "XT$codigo_exp_tipo";
        $nombreXT = "$descripcion_exp_tipo"; 
        $padreXT = "##EXPEDIENTES##";
        $iconoXT = "expediente";
        $ubicacionXT = "##PUBLICO##/##EXPEDIENTES##/";

        $claveXA = "XA$codigo_exp_tipo".".$ano";
        $nombreXA = "$descripcion_exp_tipo"; 
        $padreXA = "##EXPEDIENTES##";
        $iconoXA = "fecha";
        $ubicacionXA = "##PUBLICO##/##EXPEDIENTES##/" . $claveXT . "/";

        $mostrar = setMostrarVehiculo($con,$idcar,$marca,$modelo,$matricula);
        insert_biblioteca_expedientes($con,$contadores,1,$codigo_exp_tipo,0,$contadores);
        insert_biblioteca_expedientes($con,$contadores,2,$codigo_exp_tipo,1,$fechahoy,0,"NOW()");
        insert_biblioteca_expedientes($con,$contadores,3,$codigo_exp_tipo,2,$descripcion_exp_tipo,false,false,$codigo_exp_tipo);
        insert_biblioteca_expedientes($con,$contadores,$codigo_esq_estr,$codigo_exp_tipo,3,$mostrar,false,false,$nr); 

        if(check_xta($con,"XT$codigo_exp_tipo") == 0)
        {
            
            crear_xta($con,$claveXT,$nombreXT,$padreXT,$usuarioSession,$iconoXT,$ubicacionXT);
        }
        else
        {
             if(check_xta($con,$claveXA) == 0)
            {
                $acceso = check_acceso($con,$claveXT);
                crear_xta($con,$claveXA,$ano,$claveXT,$usuarioSession,$iconoXA,$ubicacionXA,$acceso);
            } 
            else
            {
                $claveEXP = get_id_unico();
                $padre = $claveXA;
                $ubicacion = $ubicacionXA . "$claveXA/";
                $acceso = check_acceso($con,$claveXA);
                crear_xta($con,$claveEXP,$mostrar,$padre,$usuarioSession,$iconoXT,$ubicacion,$acceso,$contadores);
                insert_biblioteca_etiquetas($con,get_id_unico(),$claveEXP,$contadores,1,-1);

                $sqlCOLIT = "SELECT DESCRIPCION_SP AS DESCRIPCION_LG FROM VEHICULOS_LITERALES WHERE TIPO = 'COL_PRI'  AND CODIGO = ?";
                $stmt = $con->prepare($sqlCOLIT);
                $stmt->bind_param('i',$color);
                $stmt->execute();
                $resCOLIT = $stmt->get_result();
                $filaCOLIT = $resCOLIT->fetch_array();
                $color_literal = $filaCOLIT['DESCRIPCION_LG'];
                
                $key .= "KM";
                $value .= "$km";
                    
                $key .= ",COLORPRI_LIT";
                $value .= ",'$color_literal'";
                
                if(!empty($_POST['version']))
                {
                    $version = htmlspecialchars(mysqli_real_escape_string($con,$_POST['version']));
                    $key .= ",VERSION";
                    $value .= ",'$version'";
                }
                if(!empty($_POST['gama']))
                {
                    $gama = htmlspecialchars(mysqli_real_escape_string($con,$_POST['gama']));
                    $key .= ",GAMA";
                    $value .= ",'$gama'";
                }
                if(!empty($_POST['bastidor']))
                {
                    $bastidor = htmlspecialchars(mysqli_real_escape_string($con,$_POST['bastidor']));
                    $key .= ",BASTIDOR";
                    $value .= ",'$bastidor'";
                }
                if(!empty($_POST['anoFab']))
                {
                    $anoFab = htmlspecialchars(mysqli_real_escape_string($con,$_POST['anoFab']));
                    $key .= ",ANO_FAB";
                    $value .= ",$anoFab";
                }
                if(!empty($_POST['fechaITV']))
                {
                    $fechaITV = htmlspecialchars(mysqli_real_escape_string($con,$_POST['fechaITV']));
                    $key .= ",ITV_ULTIMA";
                    $value .= ",'$fechaITV'";
                }
                if(!empty($_POST['otro']))
                {
                    $otro = htmlspecialchars(mysqli_real_escape_string($con,$_POST['otro']));
                }
                if(isset($_POST['equipamiento']))
                {
                    foreach($_POST['equipamiento'] as $equi)
                    {
                        $e = htmlspecialchars(mysqli_real_escape_string($con,$equi));
                        $sql = "INSERT INTO VEHICULOS_OPCIONES VALUES(?,?)";
                        $stmt = $con->prepare($sql);
                        $stmt->bind_param('ii',$nr,$e);
                        $stmt->execute();
                    }
                }
                $key .= ",DISTINTIVO_AMB";
                $value .= ",$dist_amb";
                $sqlInsert = "INSERT INTO VEHICULOS(CODIGO,USUARIO,FAVORITO,TIPO,IDCAR, ACTIVO,ALTA,COMPRA_TOTAL,MATRICULA,MARCA, MODELO,COLOR_PRINCIPAL,MATRICULACION,CARROCERIA,COMBUSTIBLE, CAJACAMBIOS,MOSTRAR,ESTADO,OTRO_EQUIP,$key)
                VALUES($nr,'$usuarioSession',0,'VO','$idcar', 1,NOW(),$precio,'$matricula',$marca, $modelo,$color,'$fechaMatric',$carroceria, $combustible, $cambio,'$mostrar','STK','$otro',$value)";
                $con->query($sqlInsert);
                if(array_sum($_FILES['foto']['error']) == 0)
                {
                    $countFoto = count($_FILES['foto']['name']);
                    for($i = 0; $i < $countFoto; $i++)
                    {
                        $clave = get_id_unico();
                        $name = $_FILES['foto']['name'][$i];
                        $tmp = $_FILES['foto']['tmp_name'][$i];
                        $size = $_FILES['foto']['size'][$i];
                        $sqlName = "SELECT NOMBRE FROM BIBLIOTECA_ELEMENTOS WHERE NOMBRE = '$name'";
                        $resName = $con->query($sqlName);
                        if($resName->num_rows > 0)
                        {
                            $name = cambiar_nombre_doc($con,$name);
                        }
                        $paramGb = valor_parametros($con,'TAM_TABLABLOB');
                    
                        $part = pathinfo($name);
                        $extension = strtoupper($part['extension']);
                        $parte = 1;
                        $version = 0;
                        $entrada = get_id_unico();
                        $nombreArchivo = basename($name,".$extension");
                        $tipo = 'D';
                        $ambito = 'PUB';
                        $sqlPC = "SELECT ORDENADOR FROM USUARIOS_ACCESOS WHERE USUARIO = '$usuarioSession'";
                        $resPC = $con->query($sqlPC);
                        $filaPC = $resPC->fetch_array();
                        $ordenador = $filaPC['ORDENADOR'];
                        
                        copy($tmp,'uploads/'.$name);
                        $item = "uploads/$name";
                        $ruta = fopen($item,"r");
                        $dataSecondary = fread($ruta,filesize($item));
                        $data = $dataSecondary;
                        fclose($ruta);
                        $sqlTable = "SELECT TABLE_NAME,ROUND(DATA_LENGTH/(1024*1024*1024),1) AS GB
                                    FROM INFORMATION_SCHEMA.TABLES
                                    WHERE TABLE_SCHEMA = ?
                                    AND TABLE_NAME LIKE 'FICHEROS_2%'
                                    AND (ROUND(DATA_LENGTH/(1024*1024*1024),1) + ROUND(?/(1024*1024*1024),1)) < (ROUND(?,1))
                                    ORDER BY DATA_LENGTH LIMIT 1";
                        $stmt = $con->prepare($sqlTable);
                        $stmt->bind_param('sii',$database,$size,$paramGb);
                        $stmt->execute();
                        $resTable = $stmt->get_result();
                        if($resTable->num_rows)
                        {
                            $filaTable = $resTable->fetch_array();
                            $table_name = $filaTable['TABLE_NAME'];
                            $explode = explode("_",$table_name);
                            $sufijo = $explode[1];
                        }
                        else
                        {
                            $sufijo = substr(get_id_unico(),0, 14);
                            $sqlCreateTable = "CREATE TABLE `FICHEROS_$sufijo` (
                                `CLAVE` VARCHAR(18) NOT NULL DEFAULT '',
                                `PARTE` INT(11) NOT NULL DEFAULT '0',
                                `VERSION` VARCHAR(8) NOT NULL DEFAULT '',
                                `FICHERO` LONGBLOB NULL,
                                `TAMANO` DOUBLE(15,0) NULL DEFAULT '0',
                                `ENTRADA` VARCHAR(18) NULL DEFAULT '',
                                `COMPRIMIDO` INT(11) NULL DEFAULT '0',
                                `TAMANOREAL` DOUBLE(15,0) NULL DEFAULT '0',
                                `ENCRIPTADO` INT(11) NULL DEFAULT '0',
                                `FECHA` DATETIME NULL DEFAULT NULL,
                                `USUARIO` VARCHAR(50) NULL DEFAULT NULL,
                                PRIMARY KEY (`CLAVE`, `PARTE`, `VERSION`),
                                INDEX `TAMANO` (`TAMANO`),
                                INDEX `ENTRADA` (`ENTRADA`)
                            )
                            COLLATE='latin1_swedish_ci'
                            ENGINE=MyISAM
                            ;";
                            $resCreateTable = $con->query($sqlCreateTable);
                            $table_name = "FICHEROS_$sufijo";
                        }
                        if ( $size > 16777216 ) 
                        {
                            $array = str_split($data, 16777216);
                            foreach ($array as $key => $value) {
                                $sql = "INSERT INTO $table_name(CLAVE,PARTE,VERSION,FICHERO,TAMANO,ENTRADA,TAMANOREAL) 
                                    VALUES(?,?,?,?,?,?,?)";
                                $stmt = $con->prepare($sql);
                                $stmt->bind_param('siisisi',$clave,$parte,$version,$value,$size,$entrada,$size);
                                $stmt->execute();
                                $parte++;
                            }
                        }
                        else
                        {
                            $sql = "INSERT INTO $table_name(CLAVE,PARTE,VERSION,FICHERO,TAMANO,ENTRADA,TAMANOREAL) 
                                    VALUES(?,?,?,?,?,?,?)";
                            $stmt = $con->prepare($sql);
                            $stmt->bind_param('siisisi',$clave,$parte,$version,$data,$size,$entrada,$size);
                            $stmt->execute();
                        } 
                        $padreDOC = $claveEXP;
                        $sqlBE = "INSERT INTO BIBLIOTECA_ELEMENTOS(CLAVE,NOMBRE,EXTENSION,PADRE,ACCESO,UBICACION,TIPO,FECHA,TAMANO,AMBITO,CREADOR,ORDENADOR,MODIFICACION,PARTES,ENTRADA,SUFIJO) VALUES('$clave','$nombreArchivo','$extension','$padreDOC','$acceso','$ubicacion','$tipo',NOW(),$size,'$ambito','$usuarioSession','$ordenador',NOW(),$parte,'$entrada',$sufijo)";
                        $con->query($sqlBE);
                        unlink($item);

                        $sqlEsq = "SELECT CODIGO FROM ESQUEMAS WHERE ALIAS = 'DOC_VEHICULO'";
                        $resEsq = $con->query($sqlEsq);
                        $filaEsq = $resEsq->fetch_array();
                        $grupoe = 1;
                        $esquema = $filaEsq['CODIGO']; 
                        $sqlGr1 = "INSERT INTO BIBLIOTECA_ETIQUETAS(CODIGO,CLAVE,DESCRIPCION,GRUPOE,ESQUEMA,FECHA) 
                        VALUES(" . get_id_unico() . ", '$clave'," . get_id_unico() . ", $grupoe, $esquema, NOW())";
                        $con->query($sqlGr1);

                        $grupoEE = esquema_estructura($con,'FECHA',$esquema)[0];
                        $ordenEE = esquema_estructura($con,'FECHA',$esquema)[1];
                        $descripcion = date('d/m/Y');
                        $vfecha = date('Y-m-d');

                        $sqlGr2 = "INSERT INTO BIBLIOTECA_ETIQUETAS(CODIGO,CLAVE,DESCRIPCION,GRUPOE,ESQUEMA,FECHA,ORDEN,VFECHA)
                        VALUES(" . get_id_unico() .", '$clave', '$descripcion', $grupoEE, $esquema,NOW(),$ordenEE,'$vfecha')";
                        $con->query($sqlGr2);

                        $grupoEE = esquema_estructura($con,'TIPO',$esquema)[0];
                        $ordenEE = esquema_estructura($con,'TIPO',$esquema)[1];
                        $tipoEE = esquema_estructura($con,'TIPO',$esquema)[2];
                        $listaEE = esquema_estructura($con,'TIPO',$esquema)[3];
                        $descripcion = 'FOTO';
                        $sqlTipoLC = "SELECT CODIGO FROM ETIQUETAS WHERE GRUPO = $listaEE AND DESCRIPCION = 'FOTO'";
                        $resTipoLC = $con->query($sqlTipoLC);
                        $filaTipoLC = $resTipoLC->fetch_array(); 

                        $sqlGr3 = "INSERT INTO BIBLIOTECA_ETIQUETAS(CODIGO,CLAVE,DESCRIPCION,GRUPO,ETIQUETA,GRUPOE,ESQUEMA,FECHA,ORDEN)
                        VALUES(" . get_id_unico() . ", '$clave', '$descripcion',  $listaEE, " . $filaTipoLC['CODIGO'] . ", $grupoEE, $esquema, NOW(), $ordenEE)";
                        $con->query($sqlGr3);

                        $grupoEE = esquema_estructura($con,'VEHICULO',$esquema)[0];
                        $ordenEE = esquema_estructura($con,'VEHICULO',$esquema)[1];
                        $tipoEE = esquema_estructura($con,'VEHICULO',$esquema)[2];
                        $listaEE = esquema_estructura($con,'VEHICULO',$esquema)[3];
                        
                        $sqlGr4 = "INSERT INTO BIBLIOTECA_ETIQUETAS(CODIGO,CLAVE,DESCRIPCION,GRUPOE,ESQUEMA,FECHA,ORDEN)
                        VALUES(" . get_id_unico() . ", '$clave','$nr', $grupoEE, $esquema, NOW(), $ordenEE)";
                        $con->query($sqlGr4); 

                        count_biblioteca_etiquetas($con, $clave);
                    }
                }
                historial($con,1,$nr,$nuevo_vehiculo_lg);
                $_SESSION['m56'] = 1;
                header('Location:nuevo-vehiculo.php');
            }
        }
    }
    else
    {
        historial($con,1,$nr,$expediente_existente_lg);
        $_SESSION['m56'] = 98;
        header('Location:nuevo-vehiculo.php');
    }
}
?>