<?php

namespace App\Http\Livewire\Home;
use Illuminate\Support\Facades\DB;
use Livewire\Component;
use App\Models\Registros;

class BuscadorRegistros extends Component
{

    /*****************************/
    /*** ATRIBUTOS              **/
    /*****************************/
    public $buscador_registro;
    public $registro_seleccionado;
    public $registro;
    public $display = "d-none";
    protected $listeners = ['ev_ocultar_barra_registro' => 'ocultar_lista_registros'];

    /*****************************/
    /*** MOSTAR                 **/
    /*****************************/
    public function montar_lista_registros()
    {
      
        $this->display = 'd-block';
  
    }    
    /*****************************/
    /*** OCULTAR                **/
    /*****************************/
    public function ocultar_lista_registros()
    {
       if( $this->display == 'd-block' )   
       {
             $this->display = 'd-none';
       }
    
    }    
    /*****************************/
    /*** RENDER                **/
    /*****************************/
    public function render()
    {
        $registros = 0;
        $count_registros_busqueda = 0;

        if (!$this->buscador_registro  == null)
        {
            if(strlen($this->buscador_registro) > 2 )  
            {
                    // $this->emit('ev_modal_test');
                $registros = DB::table('registros')
                ->where('registros.activo', '!=', '0')
                ->join('tasas', 'tasas.id', '=', 'registros.tasa_id')
                ->join('cirujanos', 'cirujanos.id', '=', 'registros.cirujano_id')
                ->join('intervencions', 'intervencions.id', '=', 'registros.intervencion_id')
                ->join('anestesiologos', 'anestesiologos.id', '=', 'registros.anestesiologo_id')
                ->join('clinicas', 'clinicas.id', '=', 'intervencions.clinica_id')
                ->select(
                        'registros.id',
                        'registros.codigo',
                        'registros.documento',
                        'registros.nombres',
                        'registros.apellidos',
                        'registros.genero',
                        'registros.fecha_nac',
                        'registros.nro_factura',
                        'registros.fecha_factura',
                        'registros.status',
                        'registros.monto',
                        'registros.monto_pagado',
                        'registros.monto_diferencia',
                        'tasas.monto_tasa as monto_tasa',
                        'cirujanos.nombre as cirujano',
                        'anestesiologos.nombre as anestesiologo',
                        'intervencions.nombre as intervencion',
                        'clinicas.nombre as clinica',
                        'registros.activo'
                    )
                    ->where(function ($query) {
                        $query->where('registros.documento', 'like', '%' . $this->buscador_registro . '%')
                            ->Orwhere('registros.nombres', 'like', '%' . $this->buscador_registro . '%')
                            ->Orwhere('registros.apellidos', 'like', '%' . $this->buscador_registro . '%')
                            ->Orwhere('registros.nro_factura', 'like', '%' . $this->buscador_registro . '%')
                            ->Orwhere('registros.codigo', 'like', '%' . $this->buscador_registro . '%')
                            ->Orwhere('registros.fecha_factura', 'like', '%' . $this->buscador_registro . '%')
                            ->Orwhere('cirujanos.nombre', 'like', '%' . $this->buscador_registro . '%')
                            ->Orwhere('clinicas.nombre', 'like', '%' . $this->buscador_registro . '%')
                            ->Orwhere('anestesiologos.nombre', 'like', '%' . $this->buscador_registro . '%')
                            ->Orwhere('intervencions.nombre', 'like', '%' . $this->buscador_registro . '%');
                    })->limit(10)->get();

                $count_registros_busqueda = $registros->count();
            }        
                
        }
        return view('livewire.home.buscador-registros',compact('registros','count_registros_busqueda'));
    }
}