<?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/Agenda.php');
include('../class/WorkFlow.php');
include('../class/MotherCar.php');
include('../class/Expediente.php');
include('../class/Bibliotecas.php');
include('../class/Static.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');
}
if (isset($_COOKIE['idioma'])) {
    include('../lg/LG_' . $_COOKIE['idioma'] . '.php');
} else {
    include('../lg/LG_SP.php');
}
if(isset($_POST['nif'])) {
    $Schema = new Schema($con);
    $Agenda = new Agenda($con);
    $WorkFlow = new WorkFlow($con);
    $MotherCar = new MotherCar($con);
    $Expediente = new Expediente($con);
    $Bibliotecas = new Bibliotecas($con);

    $firstName = Statics::SafeInput($con, $_POST['firstName']);
    $lastName = Statics::SafeInput($con, $_POST['lastName']);
    $secondLastName = Statics::SafeInput($con, $_POST['secondLastName']);
    $email = Statics::SafeInput($con, $_POST['email']);
    $telefono = Statics::SafeInput($con, $_POST['telefono']);
    $nif = Statics::SafeInput($con, $_POST['nif']);
    $mostrarCliente = $firstName . " " . $lastName . " " . $secondLastName; 
    $clienteEsquemaEstructura = $Schema->select_esquema_estructura_valores('CLIENTE_DNI', -1);
    $resCliente = $Schema->executeQuery('SELECT CODIGO FROM CONTACTOS WHERE NIF = ?', 's', [$nif]);
    if($resCliente->num_rows > 0){
        $cliente = $resCliente->fetch_array();
        $codigo_cliente = $cliente['CODIGO'];
    } else {
        $codigo_cliente = Statics::max_codigo($con, 'CONTACTOS');
        $Agenda->set_codigo_usuario($codigo_cliente);
        $Agenda->set_nombre($firstName);
        $Agenda->set_apellido($lastName);
        $Agenda->set_apellido2(!empty($secondLastName) ? $secondLastName : '');
        $Agenda->set_email($email);
        $Agenda->set_telefono($telefono);
        $Agenda->set_usuario_session($usuarioSession);
        $Agenda->set_nif(!empty($nif) ? $nif : '');
        $Agenda->insert_contacto();
    }

    $codigo_vehiculo = $_SESSION['CODIGO_COCHE'];
    $ano = date('Y');
    $fechahoy = date('d/m/Y');
    
    $carRow = $MotherCar->getCarData($codigo_vehiculo);
    $mostrar = $carRow['MOSTRAR'];
    
    $EXP0 = 'EXP000000000000000';
    $codigo_exp_tipo = $Schema->select_expediente_tipos_valores('VENTA_VO');
    $descripcion_exp_tipo = $Schema->select_expediente_tipos_valores('VENTA_VO', '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##/";
    
        $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');   
    }
    
    
    
    $codigo_biblioteca_elementos = get_id_unico();
    $contador_vo = Statics::get_contadores($con,$str_replace);
    $Bibliotecas->set_clave_biblioteca_elementos($codigo_biblioteca_elementos);
    $Bibliotecas->set_nombre_biblioteca_elementos($contador_vo);
    $Bibliotecas->set_padre_biblioteca_elementos("XA$codigo_exp_tipo".".$ano");
    $Bibliotecas->set_acceso_biblioteca_elementos($acceso);
    $Bibliotecas->set_ubicacion_biblioteca_elementos($ubicacion);
    $Bibliotecas->set_tipo_biblioteca_elementos('C');
    $Bibliotecas->set_tamano_biblioteca_elementos(0);
    $Bibliotecas->set_ambito_biblioteca_elementos('PUB');
    $Bibliotecas->set_creador_biblioteca_elementos($usuarioSession);
    $Bibliotecas->set_partes_biblioteca_elementos(1);
    $Bibliotecas->set_icono_biblioteca_elementos('expediente');
    $Bibliotecas->set_expediente_codigo_biblioteca_elementos($contador_vo);
    $Bibliotecas->insert_biblioteca_elementos();
    
    
    $esquema = $Schema->select_esquema_o_esquema_estructura(TRUE);
    $codigo_biblioteca_etiquetas = get_id_unico();
    $Bibliotecas->set_codigo_biblioteca_etiquetas($codigo_biblioteca_etiquetas);
    $Bibliotecas->set_clave_biblioteca_elementos($Bibliotecas->get_clave_biblioteca_elementos());
    $Bibliotecas->set_descripcion_biblioteca_etiquetas($contador_vo);
    $Bibliotecas->set_esquema_biblioteca_etiquetas($esquema);
    $Bibliotecas->set_padre_biblioteca_etiquetas(FALSE);
    $Bibliotecas->set_grupoe_biblioteca_etiquetas(1);
    $Bibliotecas->set_valor_biblioteca_etiquetas($contador_vo);
    $Bibliotecas->insert_biblioteca_etiquetas();
    
    
    $Bibliotecas->set_clave_biblioteca_expedientes($contador_vo);
    $Bibliotecas->set_tipoexp_biblioteca_expedientes($codigo_exp_tipo);
    
    $Bibliotecas->set_grupoe_biblioteca_expedientes(1); 
    $Bibliotecas->set_orden_biblioteca_expedientes(0); 
    $Bibliotecas->set_descripcion_biblioteca_expedientes($contador_vo); 
    $Bibliotecas->insert_biblioteca_expedientes();
    
    $Bibliotecas->set_grupoe_biblioteca_expedientes(2); 
    $Bibliotecas->set_orden_biblioteca_expedientes(1); 
    $Bibliotecas->set_vfecha_biblioteca_expedientes(date('Y-m-d')); 
    $Bibliotecas->set_descripcion_biblioteca_expedientes($fechahoy); 
    $Bibliotecas->insert_biblioteca_expedientes();
    $Bibliotecas->set_vfecha_biblioteca_expedientes(NULL);
    
    $Bibliotecas->set_grupoe_biblioteca_expedientes(3); 
    $Bibliotecas->set_orden_biblioteca_expedientes(2); 
    $Bibliotecas->set_descripcion_biblioteca_expedientes($descripcion_exp_tipo); 
    $Bibliotecas->insert_biblioteca_expedientes();
    
    $Bibliotecas->set_grupoe_biblioteca_expedientes($codigo_esq_estr); 
    $Bibliotecas->set_orden_biblioteca_expedientes(3); 
    $Bibliotecas->set_descripcion_biblioteca_expedientes($mostrar); 
    $Bibliotecas->set_etiqueta_biblioteca_expedientes($codigo_vehiculo); 
    $Bibliotecas->insert_biblioteca_expedientes();
    
    
    
    $orden = FALSE;
    $descripcion = FALSE;
    $etiqueta = FALSE;
    $res = $Schema->executeQuery('SELECT * FROM ESQUEMAS_ESTRUCTURA WHERE ENTIDAD_REL = ? AND ESQUEMA = ?', 'ii', [$codigo_esq_estr, -1]);
    while($row = $res->fetch_array()) {
    
        switch ($row['ENTIDAD_MOS']) {
            case 'MARCA':
                $etiqueta = $carRow['M'];
                $descripcion = $carRow['MARCAS'];
            break;
            case 'MODELO':
                $etiqueta = $carRow['VEHMOD'];
                $descripcion = $carRow['MODELOS'];
            break;
            case 'COLOR_PRINCIPAL':
                $etiqueta = $carRow['COLOR_PRINCIPAL'];
                $descripcion = $carRow['COLORPRI_LIT'];
            break;
            default:
                $etiqueta = $codigo_vehiculo; 
                $descripcion = $carRow[$row['ENTIDAD_MOS']];
            break;
        }
    
        $Bibliotecas->set_grupoe_biblioteca_expedientes($row['CODIGO']); 
        $Bibliotecas->set_orden_biblioteca_expedientes($row['ORDEN']); 
        $Bibliotecas->set_descripcion_biblioteca_expedientes($descripcion); 
        $Bibliotecas->set_etiqueta_biblioteca_expedientes($etiqueta); 
        $Bibliotecas->insert_biblioteca_expedientes();
         
    } 

    $Bibliotecas->set_etiqueta_biblioteca_expedientes($codigo_cliente);

    $Bibliotecas->set_grupoe_biblioteca_expedientes($clienteEsquemaEstructura); 
    $Bibliotecas->set_orden_biblioteca_expedientes($Schema->select_esquema_estructura_valores('CLIENTE_DNI', -1, 'ORDEN')); 
    $Bibliotecas->set_descripcion_biblioteca_expedientes($nif); 
    $Bibliotecas->insert_biblioteca_expedientes();

    $Bibliotecas->set_grupoe_biblioteca_expedientes($Schema->select_esquema_estructura_valores('CLIENTE', -1)); 
    $Bibliotecas->set_orden_biblioteca_expedientes($Schema->select_esquema_estructura_valores('CLIENTE', -1, 'ORDEN')); 
    $Bibliotecas->set_descripcion_biblioteca_expedientes($mostrarCliente); 
    $Bibliotecas->insert_biblioteca_expedientes();

    $Bibliotecas->set_grupoe_biblioteca_expedientes($Schema->select_esquema_estructura_valores('MAIL PRINCIPAL CLIENTE', -1)); 
    $Bibliotecas->set_orden_biblioteca_expedientes($Schema->select_esquema_estructura_valores('MAIL PRINCIPAL CLIENTE', -1, 'ORDEN')); 
    $Bibliotecas->set_descripcion_biblioteca_expedientes($email); 
    $Bibliotecas->insert_biblioteca_expedientes();

    $WorkFlow->set_esquema_tabla_wf_esquemas(-1);
    $WorkFlow->set_concepto_tabla_wf_esquemas(3);
    $WorkFlow->set_etiqueta_tabla_wf_esquemas($codigo_exp_tipo);
    $workFlowEsquema = $WorkFlow->select_wf_esquemas()['WORKFLOW'];
    $WorkFlow->set_workflow_tabla_wf_estados($workFlowEsquema);
    $WorkFlow->set_inicial_tabla_wf_estados(1);
    $WorkFlow->set_activo(1);
    $workFlowEstados = $WorkFlow->select_wf_estados()['CODIGO'];

    $WorkFlow->set_wf_tabla_wf_historial($workFlowEsquema);
    $WorkFlow->set_documento_tabla_wf_historial($codigo_biblioteca_elementos);
    $WorkFlow->set_estado_tabla_wf_historial($workFlowEstados);
    $WorkFlow->set_accion_tabla_wf_historial('000000000000000000');
    $WorkFlow->set_usuario_session_tabla_wf_historial($usuarioSession);
    $WorkFlow->set_actual_tabla_wf_historial(1);
    $WorkFlow->set_descripcion_tabla_wf_historial(strtoupper($iniciado_lg));
    $WorkFlow->insert_wf_historial();

    $_SESSION['EXP_VENTA'] = "EXP: " . $contador_vo;
    $_SESSION['MSG'] = "PROCESO_VENTA";
} else {
    $_SESSION['MSG'] = "ERROR";
}


header('Location:../resultados-ficha.php?idCAR=' . $_SESSION['CODIGO_COCHE']);




?>