<?php

    class Tasaciones{
        private $con;
        private $red_light = 0;
        private $tas;
        private $tag;
        private $clave;
        private $key;
        private $activo;
        private $vehiculo;
        private $ruedas_front;
        private $ruedas_back;
        private $km;
        private $box_style;
        private $volante;
        private $pedales;
        private $palanca;
        private $alfombrilla;
        private $asientos;
        private $codigo_permiso;
        private $precio;
        private $precio_mercado;
        private $precio_sobretas;
        private $damage;
        private $estado;


        public function __construct($con) {
            $this->con = $con;
        }
        //2032302013123
        public function set_codigo_tasacion($tas) {
            $this->tas = $tas;
            return $this;
        }
        public function get_codigo_tasacion() {
            return $this->tas;
        }
        public function set_red_light_tasacion($red_light) {
            $this->red_light = $red_light;
            return $this;
        }
        public function get_red_light_tasacion() {
            return $this->red_light;
        }
        //TAS-123
        public function set_clave_tasacion($clave) {
            $this->clave = $clave;
            return $this;
        }
        public function get_clave_tasacion() {
            return $this->clave;
        }
        public function set_key_tasacion($key) {
            $this->key = $key;
            return $this;
        }
        public function get_key_tasacion() {
            return $this->key;
        }
        public function set_activo_tasacion($activo) {
            $this->activo = $activo;
            return $this;
        }
        public function get_activo_tasacion() {
            return $this->activo;
        }
        public function set_vehiculo_tasacion($vehiculo) {
            $this->vehiculo = $vehiculo;
            return $this;
        }
        public function get_vehiculo_tasacion() {
            return $this->vehiculo;
        }
        public function set_ruedas_front_tasacion($ruedas_front) {
            $this->ruedas_front = $ruedas_front;
            return $this;
        }
        public function get_ruedas_front_tasacion() {
            return $this->ruedas_front;
        }
        public function set_ruedas_back_tasacion($ruedas_back) {
            $this->ruedas_back = $ruedas_back;
            return $this;
        }
        public function get_ruedas_back_tasacion() {
            return $this->ruedas_back;
        }
        public function set_km_tasacion($km) {
            $this->km = $km;
            return $this;
        }
        public function get_km_tasacion() {
            return $this->km;
        }
        public function set_volante_tasacion($volante) {
            $this->volante = $volante;
            return $this;
        }
        public function get_volante_tasacion() {
            return $this->volante;
        }
        public function set_pedales_tasacion($pedales) {
            $this->pedales = $pedales;
            return $this;
        }
        public function get_pedales_tasacion() {
            return $this->pedales;
        }
        public function set_palanca_tasacion($palanca) {
            $this->palanca = $palanca;
            return $this;
        }
        public function get_palanca_tasacion() {
            return $this->palanca;
        }
        public function set_alfombrilla_tasacion($alfombrilla) {
            $this->alfombrilla = $alfombrilla;
            return $this;
        }
        public function get_alfombrilla_tasacion() {
            return $this->alfombrilla;
        }
        public function set_asientos_tasacion($asientos) {
            $this->asientos = $asientos;
            return $this;
        }
        public function get_asientos_tasacion() {
            return $this->asientos;
        }
        public function set_codigo_permiso($codigo_permiso) {
            $this->codigo_permiso = $codigo_permiso;
            return $this;
        }
        public function get_codigo_permiso() {
            return $this->codigo_permiso;
        }
        public function set_precio($precio) {
            $this->precio = $precio;
            return $this;
        }
        public function get_precio() {
            return $this->precio;
        }
        public function set_precio_mercado($precio_mercado) {
            $this->precio_mercado = $precio_mercado;
            return $this;
        }
        public function get_precio_mercado() {
            return $this->precio_mercado;
        }
        public function set_precio_sobretas($precio_sobretas) {
            $this->precio_sobretas = $precio_sobretas;
            return $this;
        }
        public function get_precio_sobretas() {
            return $this->precio_sobretas;
        }
        public function set_damage($damage) {
            $this->damage = $damage;
            return $this;
        }
        public function get_damage() {
            return $this->damage;
        }
        public function set_estado($estado) {
            $this->estado = $estado;
            return $this;
        }
        public function get_estado() {
            return $this->estado;
        }
        public function getDataTas() {
            global $lg;
            $Schema = new Schema($this->con);
            $res = $Schema->executeQuery("SELECT T.*, T.ACTIVO AS T_ACTIVO, T.CODIGO AS CODIGO_TASACION, T.PRECIO AS PRECIO_T, T.KM AS KM_T,
            V.*, V.CODIGO AS CODIGO_VEHICULO, V.MOSTRAR AS MOSTRAR_V, C.*, C.CODIGO AS CODIGO_CONTACTO, C.MOSTRAR AS MOSTRAR_C,
            M.DESCRIPCION AS M, MO.DESCRIPCION AS MO,
            L1.DESCRIPCION_$lg AS CAJA_CAMBIOS,
            L2.DESCRIPCION_$lg AS COMBUSTIBLES,
            L3.DESCRIPCION_$lg AS COLOR_PRINCIPAL,
            L4.DESCRIPCION_$lg AS PROCEDENCIAS
            FROM VEHICULOS_TASACIONES T 
            INNER JOIN VEHICULOS V ON T.VEHICULO = V.CODIGO 
            INNER JOIN CONTACTOS C ON T.CONTACTO = C.CODIGO
            INNER JOIN VEHICULOS_MARCAS M ON M.CODIGO = V.MARCA
            INNER JOIN VEHICULOS_MODELOS MO ON MO.CODIGO = V.MODELO
            LEFT JOIN VEHICULOS_LITERALES L1 ON L1.CODIGO = V.CAJACAMBIOS AND L1.TIPO = ?
            LEFT JOIN VEHICULOS_LITERALES L2 ON L2.CODIGO = V.COMBUSTIBLE AND L2.TIPO = ?
            LEFT JOIN VEHICULOS_LITERALES L3 ON L3.CODIGO = V.COLOR_PRINCIPAL AND L3.TIPO = ?
            LEFT JOIN VEHICULOS_LITERALES L4 ON L4.CODIGO = V.PROCEDENCIA AND L4.TIPO = ?
            WHERE T.CODIGO = ?", 'sssss', ['TIP_CAJ', 'TIP_COM', 'TIP_COL', 'TIP_PRO', $this->get_codigo_tasacion()]);
            if($res->num_rows) {
                $row = $res->fetch_array();
                return $row;
            }

            return FALSE;
        }
        public function select_doc($alias) {
            $Schema = new Schema($this->con);
            $res = $Schema->executeQuery("SELECT T.DOCUMENTO
            FROM VEHICULOS_TASACIONES_DOCS T
            INNER JOIN BIBLIOTECA_ELEMENTOS E ON T.DOCUMENTO = E.CLAVE AND E.PAPELERA = ?
            WHERE T.TASACION = ? AND T.ALIAS = ?", 'iss', [0, $this->get_clave_tasacion(), $alias]);
            if($res->num_rows) {
                return TRUE;
            }

            return FALSE;
        }
        public function set_box_style_tasacion($box_style) {
            $this->box_style = $box_style;
            return $this;
        }
        public function get_box_style_tasacion() {
            return $this->box_style;
        }
        public function box($alias) {
            switch ($alias) {
                case 'PERMCIRC':
                    global $permiso_circulacion_lg;
                    $title =  $permiso_circulacion_lg;
                break;
                case 'FICHATECNICA1':
                    global $ficha_tecnica_delantera_lg;
                    $title = $ficha_tecnica_delantera_lg;
                break;
                case 'FICHATECNICA2':
                    global $ficha_tecnica_trasera_lg;
                    $title = $ficha_tecnica_trasera_lg;
                case 'FRONTAL':
                    global $frontal_lg;
                    $title = $frontal_lg;
                break;
                case 'LUNAFRONT':
                    global $luna_delantera_lg;
                    $title = $luna_delantera_lg;
                break;
                case 'LATERALLEFT':
                    global $lateral_izq_lg;
                    $title = $lateral_izq_lg;
                break;
                case 'TRASERO':
                    global $trasero_lg;
                    $title = $trasero_lg;
                break;
                case 'LUNABACK':
                    global $luna_trasera_lg;
                    $title = $luna_trasera_lg;
                break;
                case 'LATERALRIGHT':
                    global $lateral_dr_lg;
                    $title = $lateral_dr_lg;
                break;
                case 'CUENTAKM':
                    global $cuentakm_lg;
                    $title = $cuentakm_lg;
                break;
                default:
                    $title = 'Error';
            }
            $html = '';
            if($title != 'Error') {
                $html .= '<div class="' . $this->get_box_style_tasacion() . '">';
                    $html .= '<div class="d-flex justify-content-between">';
                        $html .= '<p>' . $title .'</p>';
                        if($this->select_doc($alias)) {
                            $html .= '<i class="fas fa-folder-open mt-2 mr-1 text-muted c-pointer files-modal" data-toggle="modal" data-target="#files" data-alias="' . $alias . '" data-tas="' . $this->get_clave_tasacion() . '"></i>';
                        }
                    $html .= '</div>';
    
                    $html .= '<form action="ajax/upload-file.php" class="dropzone border rounded-lg" style="background: #E4E4E4B0 0% 0% no-repeat padding-box;" id="' . $alias . '">';
                        $html .= '<input type="hidden" name="codigo_tasacion" value="' . $this->get_clave_tasacion() . '">';
                        $html .= '<input type="hidden" name="key" value="' . $alias . '">';
                    $html .= '</form> ';
                $html .= '</div>';
            } else {
                $html .= 'Error';
            }

            return $html;

        }
        public function update_tasacion() {
            $Schema = new Schema($this->con);
            $conditions = "SET VEHICULO = ?";
            $type = 'i';
            $values = [$this->get_vehiculo_tasacion()];
            if(isset($this->activo)) {
                $conditions .= ', ACTIVO = ?';
                $type .= 'i';
                array_push($values, $this->get_activo_tasacion());
            }
            if(isset($this->ruedas_front)) {
                $conditions .= ', RUEDAS_F = ?';
                $type .= 's';
                array_push($values, $this->get_ruedas_front_tasacion());
            }
            if(isset($this->ruedas_back)) {
                $conditions .= ', RUEDAS_B = ?';
                $type .= 's';
                array_push($values, $this->get_ruedas_back_tasacion());
            }
            if(isset($this->km)) {
                $conditions .= ', KM = ?';
                $type .= 'i';
                array_push($values, $this->get_km_tasacion());
            }
            if(isset($this->volante)) {
                $conditions .= ', VOLANTE = ?';
                $type .= 's';
                array_push($values, $this->get_volante_tasacion());
            }
            if(isset($this->pedales)) {
                $conditions .= ', PEDALES = ?';
                $type .= 's';
                array_push($values, $this->get_pedales_tasacion());
            }
            if(isset($this->palanca)) {
                $conditions .= ', PALANCA = ?';
                $type .= 's';
                array_push($values, $this->get_palanca_tasacion());
            }
            if(isset($this->alfombrilla)) {
                $conditions .= ', ALFOMBRILLAS = ?';
                $type .= 's';
                array_push($values, $this->get_alfombrilla_tasacion());
            }
            if(isset($this->asientos)) {
                $conditions .= ', ASIENTOS = ?';
                $type .= 's';
                array_push($values, $this->get_asientos_tasacion());
            }
            if(isset($this->codigo_permiso)) {
                $conditions .= ', CODIGO_PERMISO = ?';
                $type .= 'i';
                array_push($values, $this->get_codigo_permiso());
            }
            if(isset($this->precio)) {
                $conditions .= ', PRECIO = ?';
                $type .= 'i';
                array_push($values, $this->get_precio());
            }
            if(isset($this->precio_mercado)) {
                $conditions .= ', PRECIO_MERCADO = ?';
                $type .= 'i';
                array_push($values, $this->get_precio_mercado());
            }
            if(isset($this->precio_sobretas)) {
                $conditions .= ', PRECIO_SOBRETAS = ?';
                $type .= 'i';
                array_push($values, $this->get_precio_sobretas());
            }
            if(isset($this->damage)) {
                $conditions .= ', DANOS = ?';
                $type .= 's';
                array_push($values, $this->get_damage());
            }
            if(isset($this->estado)) {
                $conditions .= ', ESTADO = ?';
                $type .= 's';
                array_push($values, $this->get_estado());
            }
            $conditions .= " WHERE CODIGO = ?";
            $type .= 's';
            array_push($values, $this->get_codigo_tasacion());
            if(!$this->get_red_light_tasacion()) {
                $Schema->executeQuery("UPDATE VEHICULOS_TASACIONES $conditions", $type, $values);
                return TRUE;
            }
            return FALSE;

        }
    }