<?php

namespace App\Http\Livewire\Buscador;

use Illuminate\Support\Facades\DB;
use Livewire\Component;

class PorRegistroResultado extends Component
{
    public $sql_query = null;
    public $sql_documento = null;
    public $sql_nombre = null;
    public $sql_apellido = null;
    public $sql_tipo_paciente = null;
    public $sql_fecha_nac = null;
    public $sql_fecha_intervencion = null;
    public $sql_fecha_factura = null;
    public $sql_fecha_pago = null;
    public $sql_status = null;
    public $sql_cirujano = null;
    public $sql_intervencion = null;
    public $sql_anestesiologo = null;

    protected $listeners = ['recibir_parametros_busqueda_registros' => 'recibir'];

    public function recibir(
        $tipo_documento,
        $nro_documento,
        $nombre_paciente,
        $apellido_paciente,
        $tipo_paciente,
        $fecha_nac_inc,
        $fecha_nac_fin,
        $fecha_intervencion_inc,
        $fecha_intervencion_fin,
        $fecha_factura_inc,
        $fecha_factura_fin,
        $fecha_pago_inc,
        $fecha_pago_fin,
        $status_registro,
        $cirujano,
        $intervencion,
        $anestesiologo
    ) {
        /*************************/
        /** DOCUMENTO */
        /*************************/
        if (!empty($tipo_documento) && !empty($nro_documento)) {
            $this->sql_documento = " AND registros.documento = '" . $tipo_documento . $nro_documento . "'";
        }
        /*************************/
        /** NOMBRE */
        /*************************/
        if (!empty($nombre_paciente)) {
            $this->sql_nombre = " AND registros.nombres LIKE '%" . $nombre_paciente . "%'";
        }
        /*************************/
        /** APELLIDO */
        /*************************/
        if (!empty($apellido_paciente)) {
            $this->sql_apellido = " AND registros.apellidos LIKE '%" . $apellido_paciente . "%'";
        }
        /*************************/
        /** TIPO PACIENTE */
        /*************************/
        if (!empty($tipo_paciente)) {
            $this->sql_tipo_paciente = " AND tipo_paciente = '" . $tipo_paciente . "'";
        }
        /***********************/
        /** FECHE NAC */
        /*************************/
        if (!empty($fecha_nac_inc) && !empty($fecha_nac_fin)) {
            $this->sql_fecha_nac = " AND fecha_nac  BETWEEN '" . $fecha_nac_inc . "' AND '" . $fecha_nac_fin . "'";
        }
        /*************************/
        /** FECHE INTERVENCION */
        /*************************/
        if (!empty($fecha_intervencion_inc) && !empty($fecha_intervencion_fin)) {
            $this->sql_fecha_intervencion = " AND fecha_intervencion BETWEEN '" . $fecha_intervencion_inc . "' AND '" . $fecha_intervencion_fin . "'";
        }
        /*************************/
        /** FECHE FACTURA */
        /*************************/
        if (!empty($fecha_factura_inc) && !empty($fecha_factura_fin)) {
            $this->sql_fecha_factura = " AND fecha_factura BETWEEN '" . $fecha_factura_inc . "' AND '" . $fecha_factura_fin . "'";
        }
        /*************************/
        /** FECHE PAGO */
        /*************************/
        if (!empty($fecha_pago_inc) && !empty($fecha_pago_fin)) {
            $this->sql_fecha_pago = " AND fecha_pago  BETWEEN '" . $fecha_pago_inc . "' AND '" . $fecha_pago_fin . "'";
        }
        /*************************/
        /** STATUS */
        /*************************/
        if (!empty($status_registro)) {
            $this->sql_status = " AND status = '" . $status_registro . "'";
        }
        /*************************/
        /** CIRUJANO */
        /*************************/
        if (!empty($cirujano)) {
            $this->sql_cirujano = " AND cirujano_id = '" . $cirujano . "'";
        }
        /*************************/
        /** INTERVENCION */
        /*************************/
        if (!empty($intervencion)) {
            $this->sql_intervencion = " AND intervencion_id = '" . $intervencion . "'";
        }
        /*************************/
        /** FECHE PAGO */
        /*************************/
        if (!empty($anestesiologo)) {
            $this->sql_anestesiologo = " AND anestesiologo_id = '" . $anestesiologo . "'";
        }
        /*************************/
        /** ARMAR QUERY */
        /*************************/
        $this->sql_query = $this->sql_documento . ' ' . $this->sql_nombre . ' ' . $this->sql_apellido . ' ' . $this->sql_fecha_nac . ' '
            . $this->sql_tipo_paciente . ' ' . $this->sql_fecha_intervencion . ' ' . $this->sql_fecha_factura . ' ' . $this->sql_fecha_pago . ' '
            . $this->sql_status . ' ' . $this->sql_cirujano . ' ' . $this->sql_intervencion . ' ' . $this->sql_anestesiologo;
    }

    public function render()
    {
        $this->query = "SELECT 
        registros.id,
        registros.codigo,
        registros.documento,
        registros.nombres,
        registros.apellidos,
        registros.genero,
        registros.fecha_nac,
        registros.tipo_paciente,
        registros.fecha_intervencion,
        registros.responsable_pago,
        registros.status,
        registros.nro_factura,
        registros.fecha_factura,
        registros.fecha_pago,
        registros.fecha_iq,
        registros.comentario,
        registros.activo,
        registros.monto,
        intervencions.nombre as intervencion,
        cirujanos.nombre as cirujano,
        anestesiologos.nombre as anestesiologo,
        tasas.monto_tasa as tasa,
        clinicas.nombre as clinica
        FROM  registros  
        JOIN cirujanos ON cirujanos.id = registros.cirujano_id 
        JOIN intervencions ON intervencions.id = registros.intervencion_id 
        JOIN anestesiologos ON anestesiologos.id = registros.anestesiologo_id 
        JOIN tasas ON tasas.id = registros.tasa_id 
        JOIN clinicas ON clinicas.id = intervencions.clinica_id 
        WHERE registros.activo = '1' " . $this->sql_query;

        if (
            $this->sql_documento == null &&
            $this->sql_nombre == null &&
            $this->sql_apellido == null &&
            $this->sql_tipo_paciente == null &&
            $this->sql_fecha_nac == null &&
            $this->sql_fecha_intervencion == null &&
            $this->sql_fecha_factura == null &&
            $this->sql_fecha_pago == null &&
            $this->sql_status == null &&
            $this->sql_cirujano == null &&
            $this->sql_intervencion == null &&
            $this->sql_anestesiologo == null
        ) {
            $registros = 0;
        } else {
            $registros = DB::select($this->query);
            
        }

        return view('livewire.buscador.por-registro-resultado', compact('registros'));
    }
}
