<?php

namespace App\Http\Historico;

// Controladores
use App\Http\Historico\Historico;
use App\Http\Controllers\ModoController;
use App\Http\Controllers\UnidadController;
use App\Http\Controllers\AnalitoController;
use App\Http\Controllers\AnalizadorController;
use App\Http\Controllers\ProyectoEP15Controller;

// Historico
use App\Http\Controllers\MetodologiaController;
use App\Http\Controllers\AnalitoEP15Controller;

class AnalitoEP15Historico extends Historico {

    public function store($accion, $obj){


        $this->SetInformacionLog($accion, $obj);

        switch($this->accion){
            case "store":
                $nom_unidad = UnidadController::ListItem($this->req->id_unidad)->nom_unidad;
                $nom_analizador = AnalizadorController::ListItem($this->req->id_analizador)->nom_analizador;
                $nom_analito = AnalitoController::listItem($this->req->id_analito)->nom_analito;

                $no_laboratorio = ProyectoEP15Controller::listItem($this->req->id_proyecto_ep15)->no_laboratorio;
                $nom_laboratorio = ProyectoEP15Controller::listItem($this->req->id_proyecto_ep15)->nom_laboratorio;
                $area = ProyectoEP15Controller::listItem($this->req->id_proyecto_ep15)->nom_area;
                $fecha_inicio = ProyectoEP15Controller::listItem($this->req->id_proyecto_ep15)->fecha_inicio;
                $nom_proyecto = "lab: $no_laboratorio - $nom_laboratorio, área: $area, fecha: $fecha_inicio";

                $lote_reactivo = $this->req->lote_reactivo;
                $lote_calibrador = $this->req->lote_calibrador;

                $this->tableLog->titulo = "Registro";
                $this->tableLog->descripcion = "analito: $nom_analito, proyecto: $nom_proyecto, analizador: $nom_analizador, unidad: $nom_unidad, Lote reactivo: $lote_reactivo, Lote calibrador: $lote_calibrador";
            break;

            case "update":

                $nom_analito = AnalitoEP15Controller::listItem($this->req->id)->nom_analito;
                $no_laboratorio = AnalitoEP15Controller::listItem($this->req->id)->no_laboratorio;
                $nom_laboratorio = AnalitoEP15Controller::listItem($this->req->id)->nom_laboratorio;
                $area = AnalitoEP15Controller::listItem($this->req->id)->nom_area;
                $fecha_inicio = AnalitoEP15Controller::listItem($this->req->id)->fecha_inicio;
                $nom_proyecto = "lab: $no_laboratorio - $nom_laboratorio, área: $area, fecha: $fecha_inicio";

                switch($this->req->campo){

                    case "id_analito":
                        $new_nom_analito = AnalitoController::ListItem($this->req->id_analito)->nom_analito;
                        $this->tableLog->titulo = "Modificación de analito";
                        $this->tableLog->descripcion = "Para el analito: $nom_analito del proyecto: $nom_proyecto se actualiza el analito a: $new_nom_analito";
                    break;
                    case "id_analizador":
                        $new_nom_analizador = AnalizadorController::ListItem($this->req->id_analizador)->nom_analizador;
                        $this->tableLog->titulo = "Modificación de analizador";
                        $nombres = $this->req->nombres;
                        $this->tableLog->descripcion = "Para el analito: $nom_analito del proyecto: $nom_proyecto se actualiza el analizador a: $new_nom_analizador";
                    break;
                    case "id_unidad":
                        $new_nom = UnidadController::ListItem($this->req->id_unidad)->nom_unidad;
                        $this->tableLog->titulo = "Modificación de unidad de prueba";
                        $nombres = $this->req->nombres;
                        $this->tableLog->descripcion = "Para el analito: $nom_analito del proyecto: $nom_proyecto se actualiza la unidad a: $new_nom";
                    break;
                    case "etmp":
                        $this->tableLog->titulo = "Modificación de etmp";
                        $new_etmp = $this->req->lote_reactivo;
                        $this->tableLog->descripcion = "Para el analito: $nom_analito del proyecto: $nom_proyecto se actualiza el etpm a: $new_etmp";
                    break;
                    case "lote_reactivo":
                        $this->tableLog->titulo = "Modificación de lote de reactivo";
                        $new_lote_reactivo = $this->req->lote_reactivo;
                        $this->tableLog->descripcion = "Para el analito: $nom_analito del proyecto: $nom_proyecto se actualiza el lote reactivo a: $new_lote_reactivo";
                    break;
                    case "lote_calibrador":
                        $this->tableLog->titulo = "Modificación de lote calibrador";
                        $new_lote_calibrador = $this->req->lote_calibrador;
                        $this->tableLog->descripcion = "Para el analito: $nom_analito del proyecto: $nom_proyecto se actualiza el lote calibrador a: $new_lote_calibrador";
                        break;
                }
                break;

            case "destroy":
                $nom_analito = AnalitoEP15Controller::listItem($this->req->id)->nom_analito;
                $no_laboratorio = AnalitoEP15Controller::listItem($this->req->id)->no_laboratorio;
                $nom_laboratorio = AnalitoEP15Controller::listItem($this->req->id)->nom_laboratorio;
                $area = AnalitoEP15Controller::listItem($this->req->id)->nom_area;
                $fecha_inicio = AnalitoEP15Controller::listItem($this->req->id)->fecha_inicio;
                $nom_proyecto = "lab: $no_laboratorio - $nom_laboratorio, área: $area, fecha: $fecha_inicio";

                $this->tableLog->titulo = "Eliminación";
                $this->tableLog->descripcion = "analito: $nom_analito del proyecto $nom_proyecto";
                break;

            case "status":
                $nom_analito = AnalitoEP15Controller::listItem($this->req->id)->nom_analito;
                $no_laboratorio = AnalitoEP15Controller::listItem($this->req->id)->no_laboratorio;
                $nom_laboratorio = AnalitoEP15Controller::listItem($this->req->id)->nom_laboratorio;
                $area = AnalitoEP15Controller::listItem($this->req->id)->nom_area;
                $fecha_inicio = AnalitoEP15Controller::listItem($this->req->id)->fecha_inicio;
                $nom_proyecto = "lab: $no_laboratorio - $nom_laboratorio, área: $area, fecha: $fecha_inicio";
                $statusNow = AnalitoEP15Controller::listItem($this->req->id)->estado_analito_ep15;
                if($statusNow == 1){
                    $this->tableLog->titulo = "Inactivación";
                    $this->tableLog->descripcion = "analito: $nom_analito del proyecto $nom_proyecto";
                } else {
                    $this->tableLog->titulo = "Reactivación";
                    $this->tableLog->descripcion = "analito: $nom_analito del proyecto $nom_proyecto";
                }
                break;
        }

        $this->tableLog->tabla = 'Analito EP15';
        $this->tableLog->save();
    }
}
