<?php

namespace App\Http\Controllers\prefactura;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App;
use DB;
use Illuminate\Contracts\Encryption\DecryptException;
use Crypt;

class prefacturacionController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        //
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        //

    }



    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        //
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        //
    }

    public function filtrarFechaServicio(Request $request)
    {

        $f1 = $request->datepicker;
        $f2 = $request->datepicker2;
        $fechaWhere = "";

        if ($f1 == "" || $f2 == "") {
            $fechaWhere = "";
        } else {

            $f1 = $f1 . " 00:00:00";
            $f2 = $f2 . " 23:59:59";

            $fechaWhere = "where asignacion_solicitudes.fecha_inicio between  " . "'" . $f1 . "'" . " and " . "'" . $f2 . "'" . "";
        }

        $servicios = DB::select('SELECT
            check_formulario_solicitudes.observaciones as observacion,
            asignacion_solicitudes.estado_interno as estado_asignacion,
            api_solicitudes.id,
            api_solicitudes.fecha_asignado as dFecha_instalacion,
            api_solicitudes.dFecha as fecha_registrado,
            asignacion_solicitudes.fecha_fin as fecha_termino,
            asignacion_solicitudes.fecha_local as fecha_instalacion,
            api_solicitudes.sCliente,
            api_solicitudes.sSC,
            api_solicitudes.sRegion,
            api_solicitudes.sComuna,
            api_solicitudes.sSerie,
            api_solicitudes.sDireccion,
            api_solicitudes.estado_interno as estado_final,
            personas.nombre_uno,
            personas.apellido_uno
            FROM
                api_solicitudes
            INNER JOIN
                asignacion_solicitudes
            ON
                asignacion_solicitudes.api_solicitudes_id = api_solicitudes.id
            INNER JOIN
                check_formulario_solicitudes
            ON
                check_formulario_solicitudes.id = asignacion_solicitudes.check_formulario_solicitudes_id
            INNER JOIN
                trabajadors
            ON
                trabajadors.id = asignacion_solicitudes.trabajadors_id
            INNER JOIN
                personas
            ON
                personas.id = trabajadors.id_persona
             ' . $fechaWhere);


        return view('solicitudes_servicios.ver_todoschecklistservicios', compact('servicios', 'fechaWhere'));
    }
    public function vistaPreviaServicio(Request $request)
    {

        $fechaWhere = $request->fecha;

        $uf = $this->calcularUF();
        //$uf = "32.000";

        $servicios = DB::select('SELECT
            check_formulario_solicitudes.id as id_check,
            check_formulario_solicitudes.observaciones as observacion,
            asignacion_solicitudes.estado_interno as estado_asignacion,
            api_solicitudes.id,
            api_solicitudes.fecha_asignado as dFecha_instalacion,
            api_solicitudes.dFecha as fecha_registrado,
            asignacion_solicitudes.fecha_fin,
            asignacion_solicitudes.fecha_inicio,
            asignacion_solicitudes.numero_visita,
            asignacion_solicitudes.fecha_local as fecha_instalacion,
            api_solicitudes.sCliente,
            api_solicitudes.sSC,
            api_solicitudes.sRegion,
            api_solicitudes.sComuna,
            api_solicitudes.sSerie,
            api_solicitudes.sDireccion,
            api_solicitudes.estado_interno as estado_final,
            personas.nombre_uno,
            personas.apellido_uno
            FROM
                api_solicitudes
            INNER JOIN
                asignacion_solicitudes
            ON
                asignacion_solicitudes.api_solicitudes_id = api_solicitudes.id
            INNER JOIN
                check_formulario_solicitudes
            ON
                check_formulario_solicitudes.id = asignacion_solicitudes.check_formulario_solicitudes_id
            INNER JOIN
                trabajadors
            ON
                trabajadors.id = asignacion_solicitudes.trabajadors_id
            INNER JOIN
                personas
            ON
                personas.id = trabajadors.id_persona
             ' . $fechaWhere . '
            ORDER BY
                check_formulario_solicitudes.sSC
            DESC');

        $carga_select = DB::table('ciudad_bases')
            ->join('regions', 'regions.id', '=', 'ciudad_bases.id_region')
            ->select('regions.id as id_regiones', 'ciudad_bases.id', 'regions.des_region', 'ciudad_bases.ciudad_base', 'regions.num_r', 'regions.abreviatura', 'regions.num_region')
            ->orderby('regions.num_region', 'DESC')
            ->distinct()
            ->get();

        $kilometros = 0;

        return view('solicitudes_servicios.ver_vistapreviaservicio', compact(
            'servicios',
            'carga_select',
            'uf',
        ));
    }
    public function filtrarFecha(Request $request, $banco = '')
    {

        $f1 = $request->datepicker;
        $f2 = $request->datepicker2;
        $fechaWhere = "";

        if ($f1 == "" || $f2 == "") {
            $fechaWhere = "";
        } else {

            $f1 = $f1 . " 00:00:00";
            $f2 = $f2 . " 23:59:59";


            $fechaWhere = " and  checklist_instalacions.fecha_inicio between  " . "'" . $f1 . "'" . " and " . "'" . $f2 . "'" . "and checklist_instalacions.fecha_fin <> ''";
        }

        $idProyectoSeleccionado = $banco;

        $instalaciones = DB::select(
            'SELECT
        checklist_instalacions.Cscantidad_usuarios,
        checklist_instalacions.observacion,
        asignacion_instalacions.estado_asignacion,
        instalacions.id,
        instalacions.dFecha_instalacion,
        instalacions.fecha_registrado,
        instalacions.sEstado_despacho,
        asignacion_instalacions.fecha_termino,
        asignacion_instalacions.fecha_instalacion,
        instalacions.sCliente,
        instalacions.sRegion,
        instalacions.sComuna,
        instalacions.sSerie,
        checklist_instalacions.Csserie_remplazo as remplazo,
        checklist_instalacions.Csserie_es as serie_salida,
        checklist_instalacions.Csserie_remplazo,
        instalacions.sDireccion,
        instalacions.fecha_registrado,
        instalacions.sEstado_instalacion,
        instalacions.fecha_instalacion_coordinadora,
        personas.nombre_uno,
        personas.apellido_uno
    FROM
        tracker
    INNER JOIN
        instalacions
    ON
        tracker.id = instalacions.tracker_idtracker
    INNER JOIN
        asignacion_instalacions
    ON
        asignacion_instalacions.lista_instalacion_id = instalacions.id
    INNER JOIN
        checklist_instalacions
    ON
        checklist_instalacions.asignacion_instalacion_retiro_id = asignacion_instalacions.id
    INNER JOIN
        trabajadors
    ON
        trabajadors.id = asignacion_instalacions.trabajadors_id
    INNER JOIN
        personas
    ON
        personas.id = trabajadors.id_persona
    WHERE
        tracker.tipo_tracker = "instalacion" 
    AND 
        tracker.estado_tracker = "activo" 
    AND 
        tracker.proyecto_id =' . " '$idProyectoSeleccionado '" . "" . $fechaWhere . '
     
        order by asignacion_instalacions.fecha_termino DESC'
        );

        $arrayFechas = array(
            "f1" => $f1,
            "f2" =>  $f2,
            "idProyectoSeleccionado" =>  $idProyectoSeleccionado
        );

        $proyectosSeleccionadoID = DB::table('proyectos')
            ->select('proyectos.id', 'proyectos.nombre')
            ->where('proyectos.id', "=", $idProyectoSeleccionado)
            ->get();

        $a = json_encode($arrayFechas);
        return view('check.ver_todoschecklist', compact('instalaciones', 'idProyectoSeleccionado', 'arrayFechas', 'a', 'f1', 'f2', 'proyectosSeleccionadoID'));
    }

    public function vistaPrevia(Request $request)
    {

        $f1 = $request->variable;
        $f2 = $request->variable1;
        $fechaWhere = "";

        $uf = $this->calcularUF();
        //$uf = 29590.39;

        if ($f1 == "" || $f2 == "") {
            $fechaWhere = "";
        } else {

            $f1 = $f1;
            $f2 = $f2;
            $fechaWhere = " and  checklist_instalacions.fecha_inicio between  " . "'" . $f1 . "'" . " and " . "'" . $f2 . "'" . "and checklist_instalacions.fecha_fin <> ''";
        }
        $idProyectoSeleccionado = $request->variable2;

        $instalaciones = DB::select('SELECT
        checklist_instalacions.Cscantidad_usuarios,
        checklist_instalacions.observacion,
        checklist_instalacions.CsSerie,
        checklist_instalacions.Csserie_remplazo as remplazo,
        checklist_instalacions.fecha_inicio,
        checklist_instalacions.fecha_fin,
        checklist_instalacions.Cstipo_sucursal,
        checklist_instalacions.Csdireccion,
        checklist_instalacions.estado_inicio,
        checklist_instalacions.Csserie_es,
        asignacion_instalacions.estado_asignacion,
        instalacions.id,
        instalacions.dFecha_instalacion,
        instalacions.fecha_registrado,
        instalacions.sEstado_despacho,
        asignacion_instalacions.fecha_termino,
        asignacion_instalacions.fecha_instalacion,
        asignacion_instalacions.tipos_visitas_id,
        asignacion_instalacions.numero_visita,
        instalacions.sCliente,
        instalacions.sRegion,
        checklist_instalacions.Cscomuna as sComuna ,
        instalacions.sDireccion,
        instalacions.fecha_registrado,
        instalacions.sEstado_instalacion,
        instalacions.fecha_instalacion_coordinadora,
        personas.nombre_uno,
        personas.apellido_uno

        FROM
            tracker
        INNER JOIN
            instalacions
        ON
            tracker.id = instalacions.tracker_idtracker
        INNER JOIN
            asignacion_instalacions
        ON
            asignacion_instalacions.lista_instalacion_id = instalacions.id
        INNER JOIN
            checklist_instalacions
        ON
            checklist_instalacions.asignacion_instalacion_retiro_id = asignacion_instalacions.id
        INNER JOIN
            trabajadors
        ON
            trabajadors.id = asignacion_instalacions.trabajadors_id
        INNER JOIN
            personas
        ON
            personas.id = trabajadors.id_persona
        WHERE
            tracker.tipo_tracker = "instalacion" AND tracker.estado_tracker = "activo" and tracker.proyecto_id =' . " '$idProyectoSeleccionado '" . "" . $fechaWhere . "" . '
        ORDER By
            checklist_instalacions.fecha_fin
        DESC
        ');

        $valor_atencion1 = DB::table('costos_proyectos')
            ->select(
                'costos_proyectos.costo_habilitacion',
                'costos_proyectos.costo_instalacionaccesorios',
                'costos_proyectos.costo_actualizacionfirmware',
                'costos_proyectos.costo_cortesia',
                'costos_proyectos.costo_garantia'
            )
            ->where('costos_proyectos.numero_visita', '=', "1")
            ->where('costos_proyectos.proyecto_id', '=', $idProyectoSeleccionado)
            ->get();
        $valor_atencion2 = DB::table('costos_proyectos')
            ->select(
                'costos_proyectos.costo_habilitacion',
                'costos_proyectos.costo_instalacionaccesorios',
                'costos_proyectos.costo_actualizacionfirmware',
                'costos_proyectos.costo_cortesia',
                'costos_proyectos.costo_garantia'
            )
            ->where('costos_proyectos.numero_visita', '=', "2")
            ->where('costos_proyectos.proyecto_id', '=', $idProyectoSeleccionado)
            ->get();
        $valor_atencion3 = DB::table('costos_proyectos')
            ->select(
                'costos_proyectos.costo_habilitacion',
                'costos_proyectos.costo_instalacionaccesorios',
                'costos_proyectos.costo_actualizacionfirmware',
                'costos_proyectos.costo_cortesia',
                'costos_proyectos.costo_garantia'
            )
            ->where('costos_proyectos.numero_visita', '=', "3")
            ->where('costos_proyectos.proyecto_id', '=', $idProyectoSeleccionado)
            ->get();
        $valor_atencion4 = DB::table('costos_proyectos')
            ->select(
                'costos_proyectos.costo_habilitacion',
                'costos_proyectos.costo_instalacionaccesorios',
                'costos_proyectos.costo_actualizacionfirmware',
                'costos_proyectos.costo_cortesia',
                'costos_proyectos.costo_garantia'
            )
            ->where('costos_proyectos.numero_visita', '=', "4")
            ->where('costos_proyectos.proyecto_id', '=', $idProyectoSeleccionado)
            ->get();
        $valor_atencion5 = DB::table('costos_proyectos')
            ->select(
                'costos_proyectos.costo_habilitacion',
                'costos_proyectos.costo_instalacionaccesorios',
                'costos_proyectos.costo_actualizacionfirmware',
                'costos_proyectos.costo_cortesia',
                'costos_proyectos.costo_garantia'
            )
            ->where('costos_proyectos.numero_visita', '=', "5")
            ->where('costos_proyectos.proyecto_id', '=', $idProyectoSeleccionado)
            ->get();

        $valor_atencion6 = DB::table('costos_proyectos')
            ->select(
                'costos_proyectos.costo_habilitacion',
                'costos_proyectos.costo_instalacionaccesorios',
                'costos_proyectos.costo_actualizacionfirmware',
                'costos_proyectos.costo_cortesia',
                'costos_proyectos.costo_garantia'
            )
            ->where('costos_proyectos.numero_visita', '=', "6")
            ->where('costos_proyectos.proyecto_id', '=', $idProyectoSeleccionado)
            ->get();

        $valor_atencion7 = DB::table('costos_proyectos')
            ->select(
                'costos_proyectos.costo_habilitacion',
                'costos_proyectos.costo_instalacionaccesorios',
                'costos_proyectos.costo_actualizacionfirmware',
                'costos_proyectos.costo_cortesia',
                'costos_proyectos.costo_garantia'
            )
            ->where('costos_proyectos.numero_visita', '=', "7")
            ->where('costos_proyectos.proyecto_id', '=', $idProyectoSeleccionado)
            ->get();

        $valor_atencion8 = DB::table('costos_proyectos')
            ->select(
                'costos_proyectos.costo_habilitacion',
                'costos_proyectos.costo_instalacionaccesorios',
                'costos_proyectos.costo_actualizacionfirmware',
                'costos_proyectos.costo_cortesia',
                'costos_proyectos.costo_garantia'
            )
            ->where('costos_proyectos.numero_visita', '=', "8")
            ->where('costos_proyectos.proyecto_id', '=', $idProyectoSeleccionado)
            ->get();

        $valor_atencion9 = DB::table('costos_proyectos')
            ->select(
                'costos_proyectos.costo_habilitacion',
                'costos_proyectos.costo_instalacionaccesorios',
                'costos_proyectos.costo_actualizacionfirmware',
                'costos_proyectos.costo_cortesia',
                'costos_proyectos.costo_garantia'
            )
            ->where('costos_proyectos.numero_visita', '=', "9")
            ->where('costos_proyectos.proyecto_id', '=', $idProyectoSeleccionado)
            ->get();

        $valor_atencion10 = DB::table('costos_proyectos')
            ->select(
                'costos_proyectos.costo_habilitacion',
                'costos_proyectos.costo_instalacionaccesorios',
                'costos_proyectos.costo_actualizacionfirmware',
                'costos_proyectos.costo_cortesia',
                'costos_proyectos.costo_garantia'
            )
            ->where('costos_proyectos.numero_visita', '=', "10")
            ->where('costos_proyectos.proyecto_id', '=', $idProyectoSeleccionado)
            ->get();

        $valor_atencion11 = DB::table('costos_proyectos')
            ->select(
                'costos_proyectos.costo_habilitacion',
                'costos_proyectos.costo_instalacionaccesorios',
                'costos_proyectos.costo_actualizacionfirmware',
                'costos_proyectos.costo_cortesia',
                'costos_proyectos.costo_garantia'
            )
            ->where('costos_proyectos.numero_visita', '=', "11")
            ->where('costos_proyectos.proyecto_id', '=', $idProyectoSeleccionado)
            ->get();

        $valor_atencion12 = DB::table('costos_proyectos')
            ->select(
                'costos_proyectos.costo_habilitacion',
                'costos_proyectos.costo_instalacionaccesorios',
                'costos_proyectos.costo_actualizacionfirmware',
                'costos_proyectos.costo_cortesia',
                'costos_proyectos.costo_garantia'
            )
            ->where('costos_proyectos.numero_visita', '=', "12")
            ->where('costos_proyectos.proyecto_id', '=', $idProyectoSeleccionado)
            ->get();

        $usuarioadicional = DB::table('proyectos')
            ->select('costo_usuarioadicional', 'nombre')
            ->where('proyectos.id', '=', $idProyectoSeleccionado)
            ->get();

        $carga_select = DB::table('ciudad_bases')
            ->join('regions', 'regions.id', '=', 'ciudad_bases.id_region')
            ->select('regions.id as id_regiones', 'ciudad_bases.id', 'regions.des_region', 'ciudad_bases.ciudad_base', 'regions.num_r', 'regions.abreviatura', 'regions.num_region')
            ->distinct()
            ->get();

        $kilometros = 0;

        $arrayFechas = array(
            "f1" => $f1,
            "f2" =>  $f2,
            "cliente_seleccionado" =>  $idProyectoSeleccionado
        );
        $a = json_encode($arrayFechas);


        $valor_kilometro = DB::table('proyectos')
            ->select('proyectos.valor_kilometro', 'proyectos.costo_usuarioadicional')
            ->where('proyectos.id', "=", $idProyectoSeleccionado)
            ->get();
        $valor_usuarioadicional = DB::table('proyectos')
            ->select('proyectos.costo_usuarioadicional')
            ->where('proyectos.id', "=", $idProyectoSeleccionado)
            ->get();

        $valor_kilometro = $valor_kilometro[0]->valor_kilometro;
        $valor_usuarioadicional = $valor_usuarioadicional[0]->costo_usuarioadicional;


        return view('check.ver_vistaprevia', compact(
            'valor_kilometro',
            'instalaciones',
            'idProyectoSeleccionado',
            'carga_select',
            'kilometros',
            'a',
            'f1',
            'f2',
            'usuarioadicional',
            'valor_atencion1',
            'valor_atencion2',
            'valor_atencion3',
            'valor_atencion4',
            'valor_atencion5',
            'valor_atencion6',
            'valor_atencion7',
            'valor_atencion8',
            'valor_atencion9',
            'valor_atencion10',
            'valor_atencion11',
            'valor_atencion12',
            'uf',
            'valor_usuarioadicional'
        ));
    }

    public function calculo(Request $request)
    {

        $f1 = $request->variable;
        $f2 = $request->variable1;
        $fechaWhere = "";

        if ($f1 == "" || $f2 == "") {
            $fechaWhere = "";
        } else {

            $f1 = $f1;
            $f2 = $f2;
            $fechaWhere = " and  checklist_instalacions.fecha_inicio between  " . "'" . $f1 . "'" . " and " . "'" . $f2 . "'" . "";
        }
        $cliente_seleccionado = $request->variable2;

        $prefactura = DB::select(
            'select 
        asignacion_instalacions.tipos_visitas_id,
        tipos_visitas.descripcion,
        personas.nombre_uno,
        personas.apellido_uno,
        instalacions.sRegion,
        checklist_instalacions.Cscantidad_usuarios,
        checklist_instalacions.observacion,
        asignacion_instalacions.estado_asignacion,
        instalacions.id,
        instalacions.sEstado_despacho,
        asignacion_instalacions.fecha_termino,
        asignacion_instalacions.fecha_instalacion,
        instalacions.sCliente,
        checklist_instalacions.Cscomuna as sComuna ,

        instalacions.sSerie,
        instalacions.sDireccion,
        instalacions.fecha_registrado,
        instalacions.sEstado_instalacion,
        instalacions.fecha_instalacion_coordinadora,
        proyectos.nombre
        from personas inner join trabajadors on personas.id = trabajadors.id_persona
        inner join users on trabajadors.id_login = users.id
        inner join asignacion_instalacions on trabajadors.id  =  asignacion_instalacions.trabajadors_id
        inner join checklist_instalacions on  checklist_instalacions.asignacion_instalacion_retiro_id = asignacion_instalacions.id
        inner join instalacions on instalacions.id = asignacion_instalacions.lista_instalacion_id 
        inner join tracker on tracker.id = instalacions.tracker_idtracker
        inner join proyectos on proyectos.id =tracker.proyecto_id 
        inner join tipos_visitas on tipos_visitas.id = asignacion_instalacions.tipos_visitas_id 
        where instalacions.sCliente =' . " '$cliente_seleccionado '" . "" . $fechaWhere
        );

        $carga_select = DB::table('ciudad_bases')
            ->join('regions', 'regions.id', '=', 'ciudad_bases.id_region')
            ->select('ciudad_bases.id', 'regions.des_region', 'ciudad_bases.ciudad_base', 'regions.num_r', 'regions.abreviatura')
            ->distinct()
            ->get();



        return "hola";

        $rm = $request->random;
        $regionmodificable = $request->comuna;
        $ciudadbase = $request->ciudad_base;
        $id_row = $request->id;

        $kilometros = DB::table('kilometros_ciudad_bases')
            ->join('ciudad_bases', 'ciudad_bases.id', '=', 'kilometros_ciudad_bases.id_ciudad_bases')
            ->select('kilometros_ciudad_bases.kilometros')
            ->where('kilometros_ciudad_bases.id_ciudad_bases', '=', $ciudadbase)
            ->where('kilometros_ciudad_bases.ciudad', '=', $regionmodificable)
            ->get();

        $arrayFechas = array(
            "f1" => $f1,
            "f2" =>  $f2,
            "cliente_seleccionado" =>  $cliente_seleccionado
        );
        $a = json_encode($arrayFechas);

        return view('check.ver_vistaprevia', compact('prefactura', 'cliente_seleccionado', 'carga_select', 'kilometros', 'f1', 'f2', 'a'));
    }

    public function calculo1(Request $request)
    {


        $regionmodificable = $request->region_modificable;
        $ciudadbase = $request->ciudad_base;

        $r_m = " and kilometros_ciudad_bases.ciudad = " . "'" . $regionmodificable . "'";
        $c_b = " and kilometros_ciudad_bases.id_ciudad_bases = " . "'" . $ciudadbase . "'";

        $f1 = $request->variable;
        $f2 = $request->variable1;
        $fechaWhere = "";

        if ($f1 == "" || $f2 == "") {
            $fechaWhere = "";
        } else {

            $f1 = $f1;
            $f2 = $f2;
            $fechaWhere = " and  checklist_instalacions.fecha_inicio between  " . "'" . $f1 . "'" . " and " . "'" . $f2 . "'" . "";
        }
        $cliente_seleccionado = $request->variable2;

        $prefactura = DB::select(
            'select 
        asignacion_instalacions.tipos_visitas_id,
        tipos_visitas.descripcion,
        personas.nombre_uno,
        personas.apellido_uno,
        instalacions.sRegion,
        kilometros_ciudad_bases.kilometros,
        checklist_instalacions.Cscantidad_usuarios,
        checklist_instalacions.observacion,
        asignacion_instalacions.estado_asignacion,
        instalacions.id,
        instalacions.sEstado_despacho,
        asignacion_instalacions.fecha_termino,
        asignacion_instalacions.fecha_instalacion,
        instalacions.sCliente,
 
        checklist_instalacions.Cscomuna as sComuna ,
        instalacions.sSerie,
        instalacions.sDireccion,
        instalacions.fecha_registrado,
        instalacions.sEstado_instalacion,
        instalacions.fecha_instalacion_coordinadora,
        proyectos.nombre
        from personas inner join trabajadors on personas.id = trabajadors.id_persona
        inner join users on trabajadors.id_login = users.id
        inner join asignacion_instalacions on trabajadors.id  =  asignacion_instalacions.trabajadors_id
        inner join checklist_instalacions on  checklist_instalacions.asignacion_instalacion_retiro_id = asignacion_instalacions.id
        inner join instalacions on instalacions.id = asignacion_instalacions.lista_instalacion_id 
        inner join tracker on tracker.id = instalacions.tracker_idtracker
        inner join proyectos on proyectos.id =tracker.proyecto_id 
        inner join tipos_visitas on tipos_visitas.id = asignacion_instalacions.tipos_visitas_id 
        inner join clientes on clientes.id = proyectos.clientes_id
        inner join direccions on direccions.id = clientes.id_direccion
        inner join regions on regions.id = direccions.id_region
        inner join ciudad_bases on ciudad_bases.id_region = regions.id
        inner join kilometros_ciudad_bases on kilometros_ciudad_bases.id_ciudad_bases = ciudad_bases.id 
        where instalacions.sCliente =' . " '$cliente_seleccionado '" . "" . $fechaWhere
        );

        $arrayFechas = array(
            "f1" => $f1,
            "f2" =>  $f2,
            "cliente_seleccionado" =>  $cliente_seleccionado
        );

        $a = json_encode($arrayFechas);

        $carga_select = DB::table('ciudad_bases')
            ->join('regions', 'regions.id', '=', 'ciudad_bases.id_region')
            ->select('ciudad_bases.id', 'regions.des_region', 'ciudad_bases.ciudad_base', 'regions.num_r', 'regions.abreviatura')
            ->distinct()
            ->get();

        return view('check.ver_vistaprevia', compact('prefactura', 'cliente_seleccionado', 'carga_select', 'a'));
    }

    public function calularKilometros(Request $request)
    {
        //  data: { 'region': region,'regionModificable': regionModificable,'ciudad': ciudad },

        $region = $request->region;
        $idRegionModificable = $request->regionModificable;
        $ciudad = $request->ciudad;
        $ciudadBase = $request->ciudadBase;
        $respuesta = "";
        $res = "";

        if ($ciudad == "" || $ciudadBase == "") {

            return  "sinDatos";
        }

        $carga_select = DB::table('kilometros_ciudad_bases')
            ->select('kilometros')
            ->where('ciudad', 'LIKE', '%' . $ciudad . '%')
            ->where('id_ciudad_bases', '=', $ciudadBase)
            ->get();

        //return $carga_select;
        if (count($carga_select) != 0) {
            $res = $carga_select[0]->kilometros;
            $res  =  str_replace(",", ".", $res);
            if (is_numeric($res)) {
                $respuesta = $carga_select[0]->kilometros;
                $respuesta = round($respuesta);
            } else {
                $respuesta = "false";
            }
            if ($respuesta == "0") {
                $respuesta = "00";
            }
            return $respuesta;
        } else {
            return "0";
        }
    }

    public function obtenerCiudad(Request $request)
    {
        $idRegion = DB::table('ciudad_bases')
            ->select('id')
            ->where("id_region", "=", $request->idRegion)
            ->get();
        return $idRegion;
    }

    static function calcularUF()
    {

        $apiUrl = 'https://www.nacionales.cl/valor-uf';
        //Es necesario tener habilitada la directiva allow_url_fopen para usar file_get_contents
        if (ini_get('allow_url_fopen')) {
            $json = file_get_contents($apiUrl);
        } else {
            //De otra forma utilizamos cURL
            $curl = curl_init($apiUrl);
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
            $json = curl_exec($curl);
            curl_close($curl);
        }


        $pos = strpos($json, '1 UF = CLP $ ');
        $rest = substr($json, $pos + 12, 10);

        return $rest;

        //$ufPesos = explode(",", $rest);


        return $ufPesos[0];

        $dailyIndicators = json_decode($json);
        return $dailyIndicators;
        // echo 'El valor actual de la UF es $' . $dailyIndicators->uf->valor;
        // echo 'El valor actual del Dólar observado es $' . $dailyIndicators->dolar->valor;
        // echo 'El valor actual del Dólar acuerdo es $' . $dailyIndicators->dolar_intercambio->valor;
        // echo 'El valor actual del Euro es $' . $dailyIndicators->euro->valor;
        // echo 'El valor actual del IPC es ' . $dailyIndicators->ipc->valor;
        // echo 'El valor actual de la UTM es $' . $dailyIndicators->utm->valor;
        // echo 'El valor actual del IVP es $' . $dailyIndicators->ivp->valor;
        // echo 'El valor actual del Imacec es ' . $dailyIndicators->imacec->valor;

        // return  $dailyIndicators->uf->valor;

    }
}
