<?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');
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');
}
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);

$codigo_vehiculo = isset($_SESSION['VEHICULO_TASACION']) ? $_SESSION['VEHICULO_TASACION'] : false;
//$codigo_tasacion = isset($_POST['codigo_tasacion']) ? Statics::SafeInput($con, $_POST['codigo_tasacion']) : false;
//$value =  isset($_POST['value']) ? Statics::SafeInput($con, $_POST['value']) : false;
//$id = isset($_POST['id']) ? Statics::SafeInput($con, $_POST['id']) : false;
//$request = Statics::SafeInput($con, $_POST['request']);
$codigo_tasacion = filter_input(INPUT_POST, 'codigo_tasacion') ?? false; 
$value           = filter_input(INPUT_POST, 'value') ?? false;
$request         = (int)filter_input(INPUT_POST, 'request') ?? null;
$id              = filter_input(INPUT_POST, 'id') ?? 1;// Se utiliza como string

$Tasaciones->set_vehiculo_tasacion($codigo_vehiculo);
$Tasaciones->set_codigo_tasacion($codigo_tasacion);
switch ($request){
    case 1:
        $field = [
            'delanteras'        =>      'RUEDAS_F',
            'traseras'          =>      'RUEDAS_B'
        ];
        if($id == 'delanteras') {
            $Tasaciones->set_ruedas_front_tasacion($value);
        } else {
            $Tasaciones->set_ruedas_back_tasacion($value);
        }
        $Tasaciones->update_tasacion();
        break;      
    case 2: 
        $Tasaciones->set_km_tasacion($value);
        $Tasaciones->update_tasacion(); 
        break;
    case 3: 
        switch($id) {
            case 'volante':
                $Tasaciones->set_volante_tasacion($value);
            break;
            case 'pedales':
                $Tasaciones->set_pedales_tasacion($value);
            break;
            case 'palanca':
                $Tasaciones->set_palanca_tasacion($value);
            break;
            case 'alfombrilla':
                $Tasaciones->set_alfombrilla_tasacion($value);
            break;
            case 'asientos':
                $Tasaciones->set_asientos_tasacion($value);
            break;
            default:
                $Tasaciones->set_red_light_tasacion(1);
        }
        $Tasaciones->update_tasacion(); 
        break;
    case 4: 
        $MotherCar->set_usuario_session($usuarioSession);
        $MotherCar->set_vehiculo_notas_extra($codigo_vehiculo);
        $MotherCar->set_nota_vehiculos_notas_extra(str_replace('\n', '<br>', $value));
        $MotherCar->set_variable_tas_notas_extra($id);
        $MotherCar->set_codigo_tas_vehiculos_notas_extra($Tasaciones->get_codigo_tasacion());
        $MotherCar->insert_vehiculos_notas();
        $Tasaciones->get_codigo_tasacion(); 
        break;
    case 5: 
        $Schema->executeQuery('DELETE FROM VEHICULOS_NOTAS WHERE POS = ? AND CODIGO_TAS = ?', 'is', [$value, $codigo_tasacion]); 
        break;
    case 6: 
        //buscar por matricula
        $values = [];
        $res = $Schema->executeQuery("SELECT DISTINCT V.CODIGO as codigo, M.DESCRIPCION AS marcas, MO.DESCRIPCION AS modelos, V.MATRICULA as matricula
        FROM VEHICULOS V
        INNER JOIN VEHICULOS_TASACIONES T ON V.CODIGO = T.VEHICULO
        INNER JOIN VEHICULOS_MARCAS M ON V.MARCA = M.CODIGO
        INNER JOIN VEHICULOS_MODELOS MO ON V.MODELO = MO.CODIGO
        WHERE V.MATRICULA LIKE ? AND T.ACTIVO = ? AND V.ESTADO = ?", 'sis', ["$value%", 1, 'PRS']);
        if($res->num_rows) {
            while($row = $res->fetch_array()) {
                $values[] = $row;
            }
        }
        echo json_encode($values);
        break;
    case 7:
        //Mostrar si la tasaciónb existe o no
        $values = [];
        $value = Statics::SafeInput($con, $value);
        $res = $Schema->executeQuery('SELECT V.CODIGO as codigo, M.DESCRIPCION AS marcas, MO.DESCRIPCION AS modelos, V.MATRICULA as matricula, T.TASACION, T.CODIGO AS TAS_CODIGO
        FROM VEHICULOS V
        INNER JOIN VEHICULOS_TASACIONES T ON V.CODIGO = T.VEHICULO
        INNER JOIN VEHICULOS_MARCAS M ON V.MARCA = M.CODIGO
        INNER JOIN VEHICULOS_MODELOS MO ON V.MODELO = MO.CODIGO
        WHERE V.CODIGO = ?', 'i', [$value]);
        if($res->num_rows) {
            while($row = $res->fetch_array()) {
                $values[] = [
                    "code"              =>      $row['codigo'],
                    "brand"             =>      $row['marcas'],
                    "model"             =>      $row['modelos'],
                    "appraisal"         =>      $row['TASACION'],
                    "appraisal_code"    =>      $row['TAS_CODIGO'],
                    "enrollment"        =>      $row['matricula']    
                ];
            }
        }
        echo json_encode($values);
        break;
    case 8: // Botón mandar a validar
        $Tasaciones->set_estado(1);
       
        //Incluyo los datos económicos - ManuB 22/12/2020
        $precio = (int)filter_input(INPUT_POST, 'precio') ?? null;
        $mercado = (int)filter_input(INPUT_POST, 'mercado') ?? null;
        $sobretasacion = (int)filter_input(INPUT_POST, 'sobretasacion') ?? null;
        if (!empty($precio)|| $precio === 0){$Tasaciones->set_precio($precio);}
        if (!empty($mercado)|| $mercado === 0){$Tasaciones->set_precio_mercado($mercado);}
        if (!empty($sobretasacion)|| $sobretasacion === 0){$Tasaciones->set_precio_sobretas($sobretasacion);}
        
        $Tasaciones->update_tasacion();
        $msg = $codigo_permiso_lg;
        $msg = wordwrap($msg,70);
        /* mail("robert.ciotic@dealerbest.com", $tasacion_lg, $msg); */
        $data['estado'] = $Tasaciones->get_estado();
        $data['tas_cod'] = $Tasaciones->get_vehiculo_tasacion();
        echo json_encode($data);
        break;
    case 9: //Botón "Guardar datos"
        $status = 0;
        if($value) {
            $pin = (int)filter_input(INPUT_POST, 'pin') ?? null;
            //$pin = Statics::SafeInput($con, $_POST['pin']);
            $row = $Schema->executeQuery('SELECT CODIGO_PERMISO FROM VEHICULOS_TASACIONES WHERE CODIGO = ?', 's', [$codigo_tasacion])->fetch_array();
            if($pin === (int)$row['CODIGO_PERMISO']) {
                $status = 1;
                $Tasaciones->set_activo_tasacion(0);
                $Tasaciones->update_tasacion();
            } 
        } else {
            //Incluyo los datos económicos - ManuB 22/12/2020
            $precio = (int)filter_input(INPUT_POST, 'precio') ?? null;
            $mercado = (int)filter_input(INPUT_POST, 'mercado') ?? null;
            $sobretasacion = (int)filter_input(INPUT_POST, 'sobretasacion') ?? null;
            if (!empty($precio)|| $precio === 0){$Tasaciones->set_precio($precio);}
            if (!empty($mercado)|| $mercado === 0){$Tasaciones->set_precio_mercado($mercado);}
            if (!empty($sobretasacion)|| $sobretasacion === 0){$Tasaciones->set_precio_sobretas($sobretasacion);}
            
            $Tasaciones->update_tasacion();
        }
        $data = ['status'=>$status];
        echo json_encode($data);
        break;
    case 10:  
        $new = [];
        $dmgType = (int)filter_input(INPUT_POST,'dmgType'); 
        $damage = $dmgType === 3 ? FALSE : "$value@$dmgType#";
        $row1 = $Schema->executeQuery('SELECT DANOS FROM VEHICULOS_TASACIONES WHERE CODIGO = ?', 's', [$codigo_tasacion])->fetch_array();
        $explode = explode('#', $row1['DANOS']);
        if(count($explode) > 0) {
            for($i = 0; $i <= count($explode) - 1; $i++) {
                if($explode[$i] != "$value@1" && $explode[$i] != "$value@2") {
                    /* $new .= $explode[$i] . "#"; */
                    array_push($new, $explode[$i]);
                }
            }
        }
        $new = implode("#", $new);
        $Schema->executeQuery('UPDATE VEHICULOS_TASACIONES SET DANOS = ? WHERE CODIGO = ?', 'ss', [$new . $damage, $codigo_tasacion]);
        print_r($explode);
        print_r($new);
        break;
    case 11:  
        $json = [];
        $res = $Schema->executeQuery('SELECT T.TASACION, T.KM AS KM_TAS, T.PROCEDENCIA AS PROCE_TAS, T.PRECIO AS COMPRA_TAS, 
        V.MARCA, V.MODELO, V.MATRICULA, V.ANO_FAB, V.BASTIDOR, V.VERSION, V.CODIGO AS CAR_KEY, V.MOSTRAR, V.MATRICULACION, V.EUROTAX,
        MO.DESCRIPCION AS MO
        FROM VEHICULOS_TASACIONES T 
        INNER JOIN VEHICULOS V ON T.VEHICULO = V.CODIGO AND V.ESTADO = ?
        INNER JOIN VEHICULOS_MODELOS MO ON V.MODELO = MO.CODIGO
        WHERE T.ACTIVO = ? AND T.ESTADO = ?', 'sii', ['PRS', $value, 2]);
        if($res->num_rows) {
            $json['status'] = true;
            while($row = $res->fetch_assoc()) {
                $json['list'][] = $row;
            }
        } else {
            $json['status'] = false;
        }
        echo json_encode($json);
        break;
    case 12:
        $json['status'] = true;
        $i = 0;
        switch($value) {
            case 1:
                $res = $Schema->executeQuery('SELECT T.*, V.MOSTRAR FROM VEHICULOS_TASACIONES T INNER JOIN VEHICULOS V ON T.VEHICULO = V.CODIGO AND V.ESTADO = ? WHERE T.ACTIVO = ? AND T.ESTADO = ? ORDER BY TASACION DESC', 'sii', ['PRS', 1, 0]);
                if($res->num_rows) {
                    while($row = $res->fetch_assoc()) {
                        $json['records'][$i]['id'] = $row['CODIGO'];
                        $json['records'][$i]['title'] = $row['FECHA'];
                        $json['records'][$i]['appraisal'] = $row['TASACION'];
                        $json['records'][$i]['title'] = $row['MOSTRAR'] ;
                        $json['records'][$i]['date'] = date('H:i:s d/m/Y', strtotime($row['FECHA']));
                        $i++;
                    }
                }
                $json['total'] = $i;
                $json['subrequest'] = 1;
                break;
            case 2:
                $res = $Schema->executeQuery('SELECT T.*, V.MOSTRAR FROM VEHICULOS_TASACIONES T INNER JOIN VEHICULOS V ON T.VEHICULO = V.CODIGO AND V.ESTADO = ? WHERE T.ACTIVO = ? AND T.ESTADO = ? ORDER BY TASACION DESC', 'sii', ['PRS', 1, 1]);
                if($res->num_rows) {
                    while($row = $res->fetch_assoc()) {
                        $json['records'][$i]['id'] = $row['CODIGO'];
                        $json['records'][$i]['title'] = $row['FECHA'];
                        $json['records'][$i]['appraisal'] = $row['TASACION'];
                        $json['records'][$i]['title'] = $row['MOSTRAR'] ;
                        $json['records'][$i]['date'] = date('H:i:s d/m/Y', strtotime($row['FECHA']));
                        $i++;
                    }
                }
                $json['total'] = $i;
                $json['subrequest'] = 2;
                break;
            case 3:
                $res = $Schema->executeQuery('SELECT T.*, V.MOSTRAR FROM VEHICULOS_TASACIONES T INNER JOIN VEHICULOS V ON T.VEHICULO = V.CODIGO AND V.ESTADO = ? WHERE T.ACTIVO = ? AND T.ESTADO = ? ORDER BY TASACION DESC', 'sii', ['PRS', 0, 2]);
                if($res->num_rows) {
                    while($row = $res->fetch_assoc()) {
                        $json['records'][$i]['id'] = $row['CODIGO'];
                        $json['records'][$i]['title'] = $row['FECHA'];
                        $json['records'][$i]['appraisal'] = $row['TASACION'];
                        $json['records'][$i]['title'] = $row['MOSTRAR'] ;
                        $json['records'][$i]['date'] = date('H:i:s d/m/Y', strtotime($row['FECHA']));
                        $i++;
                    }
                }
                $json['total'] = $i;
                $json['subrequest'] = 3;
                break;
            case 4:
                $res = $Schema->executeQuery('SELECT T.*, V.MOSTRAR FROM VEHICULOS_TASACIONES T INNER JOIN VEHICULOS V ON T.VEHICULO = V.CODIGO AND V.ESTADO = ? WHERE T.ACTIVO = ? AND T.ESTADO = ? ORDER BY TASACION DESC', 'sii', ['PRS', 0, 3]);
                if($res->num_rows) {
                    while($row = $res->fetch_assoc()) {
                        $json['records'][$i]['id'] = $row['CODIGO'];
                        $json['records'][$i]['title'] = $row['FECHA'];
                        $json['records'][$i]['appraisal'] = $row['TASACION'];
                        $json['records'][$i]['title'] = $row['MOSTRAR'] ;
                        $json['records'][$i]['date'] = date('H:i:s d/m/Y', strtotime($row['FECHA']));
                        $i++;
                    }
                }
                $json['total'] = $i;
                $json['subrequest'] = 4;
                break;
            case 0:
                //Sacar el numero de tasaciones con su estado a la hora de cargar la pagina
                $res1 = $Schema->executeQuery('SELECT T.CODIGO, V.CODIGO FROM VEHICULOS_TASACIONES T INNER JOIN VEHICULOS V ON T.VEHICULO = V.CODIGO AND V.ESTADO = ? WHERE T.ACTIVO = ? AND T.ESTADO = ? ORDER BY TASACION DESC', 'sii', ['PRS', 1, 0]);//Abiertas
                $res2 = $Schema->executeQuery('SELECT T.CODIGO, V.CODIGO FROM VEHICULOS_TASACIONES T INNER JOIN VEHICULOS V ON T.VEHICULO = V.CODIGO AND V.ESTADO = ? WHERE T.ACTIVO = ? AND T.ESTADO = ? ORDER BY TASACION DESC', 'sii', ['PRS', 1, 1]);//pendientes de validar
                $res3 = $Schema->executeQuery('SELECT T.CODIGO, V.CODIGO FROM VEHICULOS_TASACIONES T INNER JOIN VEHICULOS V ON T.VEHICULO = V.CODIGO AND V.ESTADO = ? WHERE T.ACTIVO = ? AND T.ESTADO = ? ORDER BY TASACION DESC', 'sii', ['PRS', 0, 2]);//Validadas
                $res4 = $Schema->executeQuery('SELECT T.CODIGO, V.CODIGO FROM VEHICULOS_TASACIONES T INNER JOIN VEHICULOS V ON T.VEHICULO = V.CODIGO AND V.ESTADO = ? WHERE T.ACTIVO = ? AND T.ESTADO = ? ORDER BY TASACION DESC', 'sii', ['PRS', 0, 3]);//Archivadas
                $json['first_total'] = $res1->num_rows;
                $json['second_total'] = $res2->num_rows;
                $json['third_total'] = $res3->num_rows;
                $json['fourth_total'] = $res4->num_rows;
                break;
            default:
                $json['subrequest'] = 99;
        }
        echo json_encode($json);
        break;
    case 13: //Botón validar
        //Incluyo los datos económicos - ManuB 22/12/2020
        $precio = (int)filter_input(INPUT_POST, 'precio') ?? null;
        $mercado = (int)filter_input(INPUT_POST, 'mercado') ?? null;
        $sobretasacion = (int)filter_input(INPUT_POST, 'sobretasacion') ?? null;
        if (!empty($precio)|| $precio === 0){$Tasaciones->set_precio($precio);}
        if (!empty($mercado)|| $mercado === 0){$Tasaciones->set_precio_mercado($mercado);}
        if (!empty($sobretasacion)|| $sobretasacion === 0){$Tasaciones->set_precio_sobretas($sobretasacion);}
        
        $Tasaciones->set_activo_tasacion(0);
        $Tasaciones->set_estado(2); 
        $Tasaciones->update_tasacion();
        $data['estado'] = $Tasaciones->get_estado();
        $data['tas_cod'] = $Tasaciones->get_vehiculo_tasacion();
        echo json_encode($data);
        break;
    default : 
        echo "Error"; 
        break;
}