<?php

namespace App\Http\Controllers;

use App\Models\Busqueda;
use App\Models\Indicadores;
use App\Models\Meses;
use Illuminate\Support\Facades\DB;

class GraficasController extends Controller
{
    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('auth');
    }

    /**
     * Display all the static pages when authenticated
     *
     *
     * @return \Illuminate\View\View
     */
    public function busqueda()
    {
        $busqueda = Busqueda::where('estado', '=', '1')->first();
        $array = explode(",", $busqueda->todos);
        return $array;
    }
    public function meses($tipo)
    {

        $enero[] = 0;
        $anio = date("Y");
        $dataEnero = Indicadores::join('resultado', 'resultado.idIndicador', '=', 'indicadores.idIndicador')
            ->where('resultado.idMes', '=', 1)
            ->where('indicadores.idTablero', '=', $tipo)
            ->where('resultado.año', '=', $anio)
            ->where('resultado.estado', '=', 0)
            ->get();

        foreach ($dataEnero as $value) {

            if ($value->valor == '') {
                $enero[] = $value->valor;
            } else if ($value->tipo == 'n' && $value->meta == $value->valor) {
                $enero[] = $value->peso;
            } else if ($value->tipo == 'n' && $value->meta != $value->valor) {
                $enero[] = '0';
            } else if ($value->tipo == 'h' && $value->valor >= $value->meta) {
                $enero[] = $value->peso;
            } else if ($value->tipo == 'h' && $value->valor < $value->meta && $value->peso * ($value->valor / $value->meta) >= 0) {
                $enero[] = round($value->peso * ($value->valor / $value->meta), 2);
            } else if ($value->tipo == 'h' && $value->valor < $value->meta && $value->peso * ($value->valor / $value->meta) < 0) {
                $enero[] = '0';
            } else if ($value->tipo == 'i' && $value->valor <= $value->meta) {
                $enero[] = $value->peso;
            } else if ($value->tipo == 'i' && $value->valor > $value->meta && $value->valor >= (2 * $value->meta)) {
                $enero[] = '0';
            }
        }

        $febrero[] = 0;
        $datafebrero = Indicadores::join('resultado', 'resultado.idIndicador', '=', 'indicadores.idIndicador')
            ->where('resultado.idMes', '=', 2)
            ->where('indicadores.idTablero', '=', $tipo)
            ->where('resultado.año', '=', $anio)
            ->where('resultado.estado', '=', 0)
            ->get();

        foreach ($datafebrero as $value) {

            if ($value->valor == '') {
                $febrero[] = $value->valor;
            } else if ($value->tipo == 'n' && $value->meta == $value->valor) {
                $febrero[] = $value->peso;
            } else if ($value->tipo == 'n' && $value->meta != $value->valor) {
                $febrero[] = '0';
            } else if ($value->tipo == 'h' && $value->valor >= $value->meta) {
                $febrero[] = $value->peso;
            } else if ($value->tipo == 'h' && $value->valor < $value->meta && $value->peso * ($value->valor / $value->meta) >= 0) {
                $febrero[] = round($value->peso * ($value->valor / $value->meta), 2);
            } else if ($value->tipo == 'h' && $value->valor < $value->meta && $value->peso * ($value->valor / $value->meta) < 0) {
                $febrero[] = '0';
            } else if ($value->tipo == 'i' && $value->valor <= $value->meta) {
                $febrero[] = $value->peso;
            } else if ($value->tipo == 'i' && $value->valor > $value->meta && $value->valor >= (2 * $value->meta)) {
                $febrero[] = '0';
            }
        }

        $marzo[] = 0;
        $datamarzo = Indicadores::join('resultado', 'resultado.idIndicador', '=', 'indicadores.idIndicador')
            ->where('resultado.idMes', '=', 3)
            ->where('indicadores.idTablero', '=', $tipo)
            ->where('resultado.año', '=', $anio)
            ->where('resultado.estado', '=', 0)
            ->get();

        foreach ($datamarzo as $value) {

            if ($value->valor == '') {
                $marzo[] = $value->valor;
            } else if ($value->tipo == 'n' && $value->meta == $value->valor) {
                $marzo[] = $value->peso;
            } else if ($value->tipo == 'n' && $value->meta != $value->valor) {
                $marzo[] = '0';
            } else if ($value->tipo == 'h' && $value->valor >= $value->meta) {
                $marzo[] = $value->peso;
            } else if ($value->tipo == 'h' && $value->valor < $value->meta && $value->peso * ($value->valor / $value->meta) >= 0) {
                $marzo[] = round($value->peso * ($value->valor / $value->meta), 2);
            } else if ($value->tipo == 'h' && $value->valor < $value->meta && $value->peso * ($value->valor / $value->meta) < 0) {
                $marzo[] = '0';
            } else if ($value->tipo == 'i' && $value->valor <= $value->meta) {
                $marzo[] = $value->peso;
            } else if ($value->tipo == 'i' && $value->valor > $value->meta && $value->valor >= (2 * $value->meta)) {
                $marzo[] = '0';
            }
        }

        $abril[] = 0;
        $dataabril = Indicadores::join('resultado', 'resultado.idIndicador', '=', 'indicadores.idIndicador')
            ->where('resultado.idMes', '=', 4)
            ->where('indicadores.idTablero', '=', $tipo)
            ->where('resultado.año', '=', $anio)
            ->where('resultado.estado', '=', 0)
            ->get();

        foreach ($dataabril as $value) {

            if ($value->valor == '') {
                $abril[] = $value->valor;
            } else if ($value->tipo == 'n' && $value->meta == $value->valor) {
                $abril[] = $value->peso;
            } else if ($value->tipo == 'n' && $value->meta != $value->valor) {
                $abril[] = '0';
            } else if ($value->tipo == 'h' && $value->valor >= $value->meta) {
                $abril[] = $value->peso;
            } else if ($value->tipo == 'h' && $value->valor < $value->meta && $value->peso * ($value->valor / $value->meta) >= 0) {
                $abril[] = round($value->peso * ($value->valor / $value->meta), 2);
            } else if ($value->tipo == 'h' && $value->valor < $value->meta && $value->peso * ($value->valor / $value->meta) < 0) {
                $abril[] = '0';
            } else if ($value->tipo == 'i' && $value->valor <= $value->meta) {
                $abril[] = $value->peso;
            } else if ($value->tipo == 'i' && $value->valor > $value->meta && $value->valor >= (2 * $value->meta)) {
                $abril[] = '0';
            }
        }

        $mayo[] = 0;
        $datamayo = Indicadores::join('resultado', 'resultado.idIndicador', '=', 'indicadores.idIndicador')
            ->where('resultado.idMes', '=', 5)
            ->where('indicadores.idTablero', '=', $tipo)
            ->where('resultado.año', '=', $anio)
            ->where('resultado.estado', '=', 0)
            ->get();

        foreach ($datamayo as $value) {

            if ($value->valor == '') {
                $mayo[] = $value->valor;
            } else if ($value->tipo == 'n' && $value->meta == $value->valor) {
                $mayo[] = $value->peso;
            } else if ($value->tipo == 'n' && $value->meta != $value->valor) {
                $mayo[] = '0';
            } else if ($value->tipo == 'h' && $value->valor >= $value->meta) {
                $mayo[] = $value->peso;
            } else if ($value->tipo == 'h' && $value->valor < $value->meta && $value->peso * ($value->valor / $value->meta) >= 0) {
                $mayo[] = round($value->peso * ($value->valor / $value->meta), 2);
            } else if ($value->tipo == 'h' && $value->valor < $value->meta && $value->peso * ($value->valor / $value->meta) < 0) {
                $mayo[] = '0';
            } else if ($value->tipo == 'i' && $value->valor <= $value->meta) {
                $mayo[] = $value->peso;
            } else if ($value->tipo == 'i' && $value->valor > $value->meta && $value->valor >= (2 * $value->meta)) {
                $mayo[] = '0';
            }
        }

        $junio[] = 0;
        $datajunio = Indicadores::join('resultado', 'resultado.idIndicador', '=', 'indicadores.idIndicador')
            ->where('resultado.idMes', '=', 6)
            ->where('indicadores.idTablero', '=', $tipo)
            ->where('resultado.año', '=', $anio)
            ->where('resultado.estado', '=', 0)
            ->get();

        foreach ($datajunio as $value) {

            if ($value->valor == '') {
                $junio[] = $value->valor;
            } else if ($value->tipo == 'n' && $value->meta == $value->valor) {
                $junio[] = $value->peso;
            } else if ($value->tipo == 'n' && $value->meta != $value->valor) {
                $junio[] = '0';
            } else if ($value->tipo == 'h' && $value->valor >= $value->meta) {
                $junio[] = $value->peso;
            } else if ($value->tipo == 'h' && $value->valor < $value->meta && $value->peso * ($value->valor / $value->meta) >= 0) {
                $junio[] = round($value->peso * ($value->valor / $value->meta), 2);
            } else if ($value->tipo == 'h' && $value->valor < $value->meta && $value->peso * ($value->valor / $value->meta) < 0) {
                $junio[] = '0';
            } else if ($value->tipo == 'i' && $value->valor <= $value->meta) {
                $junio[] = $value->peso;
            } else if ($value->tipo == 'i' && $value->valor > $value->meta && $value->valor >= (2 * $value->meta)) {
                $junio[] = '0';
            }
        }

        $julio[] = 0;
        $datajulio = Indicadores::join('resultado', 'resultado.idIndicador', '=', 'indicadores.idIndicador')
            ->where('resultado.idMes', '=', 7)
            ->where('indicadores.idTablero', '=', $tipo)
            ->where('resultado.año', '=', $anio)
            ->where('resultado.estado', '=', 0)
            ->get();

        foreach ($datajulio as $value) {

            if ($value->valor == '') {
                $julio[] = $value->valor;
            } else if ($value->tipo == 'n' && $value->meta == $value->valor) {
                $julio[] = $value->peso;
            } else if ($value->tipo == 'n' && $value->meta != $value->valor) {
                $julio[] = '0';
            } else if ($value->tipo == 'h' && $value->valor >= $value->meta) {
                $julio[] = $value->peso;
            } else if ($value->tipo == 'h' && $value->valor < $value->meta && $value->peso * ($value->valor / $value->meta) >= 0) {
                $julio[] = round($value->peso * ($value->valor / $value->meta), 2);
            } else if ($value->tipo == 'h' && $value->valor < $value->meta && $value->peso * ($value->valor / $value->meta) < 0) {
                $julio[] = '0';
            } else if ($value->tipo == 'i' && $value->valor <= $value->meta) {
                $julio[] = $value->peso;
            } else if ($value->tipo == 'i' && $value->valor > $value->meta && $value->valor >= (2 * $value->meta)) {
                $julio[] = '0';
            }
        }

        $agosto[] = 0;
        $dataagosto = Indicadores::join('resultado', 'resultado.idIndicador', '=', 'indicadores.idIndicador')
            ->where('resultado.idMes', '=', 8)
            ->where('indicadores.idTablero', '=', $tipo)
            ->where('resultado.año', '=', $anio)
            ->where('resultado.estado', '=', 0)
            ->get();

        foreach ($dataagosto as $value) {

            if ($value->valor == '') {
                $agosto[] = $value->valor;
            } else if ($value->tipo == 'n' && $value->meta == $value->valor) {
                $agosto[] = $value->peso;
            } else if ($value->tipo == 'n' && $value->meta != $value->valor) {
                $agosto[] = '0';
            } else if ($value->tipo == 'h' && $value->valor >= $value->meta) {
                $agosto[] = $value->peso;
            } else if ($value->tipo == 'h' && $value->valor < $value->meta && $value->peso * ($value->valor / $value->meta) >= 0) {
                $agosto[] = round($value->peso * ($value->valor / $value->meta), 2);
            } else if ($value->tipo == 'h' && $value->valor < $value->meta && $value->peso * ($value->valor / $value->meta) < 0) {
                $agosto[] = '0';
            } else if ($value->tipo == 'i' && $value->valor <= $value->meta) {
                $agosto[] = $value->peso;
            } else if ($value->tipo == 'i' && $value->valor > $value->meta && $value->valor >= (2 * $value->meta)) {
                $agosto[] = '0';
            }
        }

        $septiembre[] = 0;
        $dataseptiembre = Indicadores::join('resultado', 'resultado.idIndicador', '=', 'indicadores.idIndicador')
            ->where('resultado.idMes', '=', 9)
            ->where('indicadores.idTablero', '=', $tipo)
            ->where('resultado.año', '=', $anio)
            ->where('resultado.estado', '=', 0)
            ->get();

        foreach ($dataseptiembre as $value) {

            if ($value->valor == '') {
                $septiembre[] = $value->valor;
            } else if ($value->tipo == 'n' && $value->meta == $value->valor) {
                $septiembre[] = $value->peso;
            } else if ($value->tipo == 'n' && $value->meta != $value->valor) {
                $septiembre[] = '0';
            } else if ($value->tipo == 'h' && $value->valor >= $value->meta) {
                $septiembre[] = $value->peso;
            } else if ($value->tipo == 'h' && $value->valor < $value->meta && $value->peso * ($value->valor / $value->meta) >= 0) {
                $septiembre[] = round($value->peso * ($value->valor / $value->meta), 2);
            } else if ($value->tipo == 'h' && $value->valor < $value->meta && $value->peso * ($value->valor / $value->meta) < 0) {
                $septiembre[] = '0';
            } else if ($value->tipo == 'i' && $value->valor <= $value->meta) {
                $septiembre[] = $value->peso;
            } else if ($value->tipo == 'i' && $value->valor > $value->meta && $value->valor >= (2 * $value->meta)) {
                $septiembre[] = '0';
            }
        }

        $octubre[] = 0;
        $dataoctubre = Indicadores::join('resultado', 'resultado.idIndicador', '=', 'indicadores.idIndicador')
            ->where('resultado.idMes', '=', 10)
            ->where('indicadores.idTablero', '=', $tipo)
            ->where('resultado.año', '=', $anio)
            ->where('resultado.estado', '=', 0)
            ->get();

        foreach ($dataoctubre as $value) {

            if ($value->valor == '') {
                $octubre[] = $value->valor;
            } else if ($value->tipo == 'n' && $value->meta == $value->valor) {
                $octubre[] = $value->peso;
            } else if ($value->tipo == 'n' && $value->meta != $value->valor) {
                $octubre[] = '0';
            } else if ($value->tipo == 'h' && $value->valor >= $value->meta) {
                $octubre[] = $value->peso;
            } else if ($value->tipo == 'h' && $value->valor < $value->meta && $value->peso * ($value->valor / $value->meta) >= 0) {
                $octubre[] = round($value->peso * ($value->valor / $value->meta), 2);
            } else if ($value->tipo == 'h' && $value->valor < $value->meta && $value->peso * ($value->valor / $value->meta) < 0) {
                $octubre[] = '0';
            } else if ($value->tipo == 'i' && $value->valor <= $value->meta) {
                $octubre[] = $value->peso;
            } else if ($value->tipo == 'i' && $value->valor > $value->meta && $value->valor >= (2 * $value->meta)) {
                $octubre[] = '0';
            }
        }

        $noviembre[] = 0;
        $datanoviembre = Indicadores::join('resultado', 'resultado.idIndicador', '=', 'indicadores.idIndicador')
            ->where('resultado.idMes', '=', 11)
            ->where('indicadores.idTablero', '=', $tipo)
            ->where('resultado.año', '=', $anio)
            ->where('resultado.estado', '=', 0)
            ->get();

        foreach ($datanoviembre as $value) {

            if ($value->valor == '') {
                $noviembre[] = $value->valor;
            } else if ($value->tipo == 'n' && $value->meta == $value->valor) {
                $noviembre[] = $value->peso;
            } else if ($value->tipo == 'n' && $value->meta != $value->valor) {
                $noviembre[] = '0';
            } else if ($value->tipo == 'h' && $value->valor >= $value->meta) {
                $noviembre[] = $value->peso;
            } else if ($value->tipo == 'h' && $value->valor < $value->meta && $value->peso * ($value->valor / $value->meta) >= 0) {
                $noviembre[] = round($value->peso * ($value->valor / $value->meta), 2);
            } else if ($value->tipo == 'h' && $value->valor < $value->meta && $value->peso * ($value->valor / $value->meta) < 0) {
                $noviembre[] = '0';
            } else if ($value->tipo == 'i' && $value->valor <= $value->meta) {
                $noviembre[] = $value->peso;
            } else if ($value->tipo == 'i' && $value->valor > $value->meta && $value->valor >= (2 * $value->meta)) {
                $noviembre[] = '0';
            }
        }

        $diciembre[] = 0;
        $datadiciembre = Indicadores::join('resultado', 'resultado.idIndicador', '=', 'indicadores.idIndicador')
            ->where('resultado.idMes', '=', 12)
            ->where('indicadores.idTablero', '=', $tipo)
            ->where('resultado.año', '=', $anio)
            ->where('resultado.estado', '=', 0)
            ->get();

        foreach ($datadiciembre as $value) {

            if ($value->valor == '') {
                $diciembre[] = $value->valor;
            } else if ($value->tipo == 'n' && $value->meta == $value->valor) {
                $diciembre[] = $value->peso;
            } else if ($value->tipo == 'n' && $value->meta != $value->valor) {
                $diciembre[] = '0';
            } else if ($value->tipo == 'h' && $value->valor >= $value->meta) {
                $diciembre[] = $value->peso;
            } else if ($value->tipo == 'h' && $value->valor < $value->meta && $value->peso * ($value->valor / $value->meta) >= 0) {
                $diciembre[] = round($value->peso * ($value->valor / $value->meta), 2);
            } else if ($value->tipo == 'h' && $value->valor < $value->meta && $value->peso * ($value->valor / $value->meta) < 0) {
                $diciembre[] = '0';
            } else if ($value->tipo == 'i' && $value->valor <= $value->meta) {
                $diciembre[] = $value->peso;
            } else if ($value->tipo == 'i' && $value->valor > $value->meta && $value->valor >= (2 * $value->meta)) {
                $diciembre[] = '0';
            }
        }
        return View('paginas.meses', [
            'enero' => array_sum($enero),
            'febrero' => array_sum($febrero),
            'marzo' => array_sum($marzo),
            'abril' => array_sum($abril),
            'mayo' => array_sum($mayo),
            'junio' => array_sum($junio),
            'julio' => array_sum($julio),
            'agosto' => array_sum($agosto),
            'septiembre' => array_sum($septiembre),
            'octubre' => array_sum($octubre),
            'noviembre' => array_sum($noviembre),
            'diciembre' => array_sum($diciembre),
            'tipo' => $tipo,

        ]);
    }
    public function mes($mes, $tipo)
    {
        $array = $this->busqueda();
        $anio = date("Y");
        $data = indicadores::where('idTablero', '=', $tipo)
            ->join('resultado', 'resultado.idIndicador', '=', 'indicadores.idIndicador')
            ->where('resultado.estado', '=', '0')
            ->where('idMes', '=', $mes)
            ->where('año', '=', $anio)
            ->whereIn('indicadores.idIndicador', $array)
            ->get();

        $indicador = DB::table('tablero')
            ->where('idTablero', '=', $tipo)
            ->first();

        $meses = Meses::where('idMes', '=', $mes)
            ->get();
        return View('paginas.mes', [
            'data' => $data,
            'indicador' => $indicador->nombreTablero,
            'mes' => $meses[0]->mes,
            'tipo' => $tipo,

        ]);
    }

    public function indicadoresMeses($tipo)
    {
        $array = $this->busqueda();
        $indicador = DB::table('indicadores')
            ->where('idTablero', '=', $tipo)
            ->whereIn('indicadores.idIndicador', $array)
            ->get();

        $tablero = DB::table('tablero')
            ->where('idTablero', '=', $tipo)
            ->first();

        return View('paginas.indicadoresMeses', [
            'data' => $indicador,
            'indicador' => $tablero->nombreTablero,
            'tipo' => $tipo,
        ]);
    }

    public function indicadorXmes($tipo, $id, $anio)
    {
        $indicador = DB::table('indicadores')
            ->where('idTablero', '=', $tipo)
            ->where('idIndicador', '=', $id)
            ->first();

        $tablero = DB::table('tablero')
            ->where('idTablero', '=', $tipo)
            ->first();

        $resultado = DB::table('resultado')
            ->where('idIndicador', '=', $id)
            ->where('año', '=', $anio)
            ->get();

        $meses[] = 0;
        $cont = 0;
        foreach ($resultado as $item) {
            $meses[$item->idMes] = $item->valor;
        }

        return View('paginas.indicadorXMes', [
            'objetivo' => $indicador->indicador,
            'indicador' => $tablero->nombreTablero,
            'tipo' => $tipo,
            'meses' => $meses,
        ]);
    }

    public function todosXmes($tipo, $id)
    {
        $indicador = DB::table('indicadores')
            ->where('idTablero', '=', $tipo)
            ->where('idIndicador', '=', $id)
            ->first();

        $tablero = DB::table('tablero')
            ->where('idTablero', '=', $tipo)
            ->first();

        $_2023 = DB::table('resultado')
            ->where('idIndicador', '=', $id)
            ->where('año', '=', '2023')
            ->get();
        $_2024 = DB::table('resultado')
            ->where('idIndicador', '=', $id)
            ->where('año', '=', '2024')
            ->get();

        $r2023[] = 0;
        $r2024[] = 0;
        $cont = 0;
        $cont2 = 0;
        foreach ($_2023 as $item) {
            $cont++;
            $r2023[$item->idMes] = $item->valor;
        }
        foreach ($_2024 as $item) {
            $cont2++;
            $r2024[$item->idMes] = $item->valor;
        }
        return View('paginas.todosXMes', [
            'objetivo' => $indicador->indicador,
            'indicador' => $tablero->nombreTablero,
            'tipo' => $tipo,
            'r2023' => $r2023,
            'r2024' => $r2024,
        ]);
    }

    public function desempe_o($tipo)
    {
        $meses = Meses::all();
        $anio = 2024;

        $data[] = 0;
        $array1[] = 0;
        $tablero1[] = 0;

        $data2[] = 0;
        $array2[] = 0;
        $tablero2[] = 0;

        $data3[] = 0;
        $array3[] = 0;
        $tablero3[] = 0;

        $data4[] = 0;
        $array4[] = 0;
        $tablero4[] = 0;

        $data5[] = 0;
        $array5[] = 0;
        $tablero5[] = 0;

        $data6[] = 0;
        $array6[] = 0;
        $tablero6[] = 0;
        $array = $this->busqueda();
        foreach ($meses as $item) {

            $equipoHumano = Indicadores::join('resultado', 'resultado.idIndicador', '=', 'indicadores.idIndicador')
                ->where('resultado.idMes', '=', $item->idMes)
                ->where('indicadores.idTablero', '=', 1)
                ->where('resultado.año', '=', $anio)
                ->whereIn('indicadores.idIndicador', $array)
                ->get();

            foreach ($equipoHumano as $value) {

                if ($value->valor == '') {
                    $data[] = $value->valor;
                } else if ($value->tipo == 'n' && $value->meta == $value->valor) {
                    $data[] = $value->peso;
                } else if ($value->tipo == 'n' && $value->meta != $value->valor) {
                    $data[] = '0';
                } else if ($value->tipo == 'h' && $value->valor >= $value->meta) {
                    $data[] = $value->peso;
                } else if ($value->tipo == 'h' && $value->valor < $value->meta && $value->peso * ($value->valor / $value->meta) >= 0) {
                    $data[] = round($value->peso * ($value->valor / $value->meta), 2);
                } else if ($value->tipo == 'h' && $value->valor < $value->meta && $value->peso * ($value->valor / $value->meta) < 0) {
                    $data[] = '0';
                } else if ($value->tipo == 'i' && $value->valor <= $value->meta) {
                    $data[] = $value->peso;
                } else if ($value->tipo == 'i' && $value->valor > $value->meta && $value->valor >= (2 * $value->meta)) {
                    $data[] = '0';
                }
            }
            $array1[$item->idMes] = array_sum($data);
            $tablero1[$item->idMes] = $array1[$item->idMes] - $array1[$item->idMes - 1];

            $inovacion = Indicadores::join('resultado', 'resultado.idIndicador', '=', 'indicadores.idIndicador')
                ->where('resultado.idMes', '=', $item->idMes)
                ->where('indicadores.idTablero', '=', 2)
                ->where('resultado.año', '=', $anio)
                ->whereIn('indicadores.idIndicador', $array)
                ->get();

            foreach ($inovacion as $value) {

                if ($value->valor == '') {
                    $data2[] = $value->valor;
                } else if ($value->tipo == 'n' && $value->meta == $value->valor) {
                    $data2[] = $value->peso;
                } else if ($value->tipo == 'n' && $value->meta != $value->valor) {
                    $data2[] = '0';
                } else if ($value->tipo == 'h' && $value->valor >= $value->meta) {
                    $data2[] = $value->peso;
                } else if ($value->tipo == 'h' && $value->valor < $value->meta && $value->peso * ($value->valor / $value->meta) >= 0) {
                    $data2[] = round($value->peso * ($value->valor / $value->meta), 2);
                } else if ($value->tipo == 'h' && $value->valor < $value->meta && $value->peso * ($value->valor / $value->meta) < 0) {
                    $data2[] = '0';
                } else if ($value->tipo == 'i' && $value->valor <= $value->meta) {
                    $data2[] = $value->peso;
                } else if ($value->tipo == 'i' && $value->valor > $value->meta && $value->valor >= (2 * $value->meta)) {
                    $data2[] = '0';
                }
            }
            $array2[$item->idMes] = array_sum($data2);
            $tablero2[$item->idMes] = $array2[$item->idMes] - $array2[$item->idMes - 1];

            $mejora = Indicadores::join('resultado', 'resultado.idIndicador', '=', 'indicadores.idIndicador')
                ->where('resultado.idMes', '=', $item->idMes)
                ->where('indicadores.idTablero', '=', 3)
                ->where('resultado.año', '=', $anio)
                ->whereIn('indicadores.idIndicador', $array)
                ->get();

            foreach ($mejora as $value) {

                if ($value->valor == '') {
                    $data3[] = $value->valor;
                } else if ($value->tipo == 'n' && $value->meta == $value->valor) {
                    $data3[] = $value->peso;
                } else if ($value->tipo == 'n' && $value->meta != $value->valor) {
                    $data3[] = '0';
                } else if ($value->tipo == 'h' && $value->valor >= $value->meta) {
                    $data3[] = $value->peso;
                } else if ($value->tipo == 'h' && $value->valor < $value->meta && $value->peso * ($value->valor / $value->meta) >= 0) {
                    $data3[] = round($value->peso * ($value->valor / $value->meta), 2);
                } else if ($value->tipo == 'h' && $value->valor < $value->meta && $value->peso * ($value->valor / $value->meta) < 0) {
                    $data3[] = '0';
                } else if ($value->tipo == 'i' && $value->valor <= $value->meta) {
                    $data3[] = $value->peso;
                } else if ($value->tipo == 'i' && $value->valor > $value->meta && $value->valor >= (2 * $value->meta)) {
                    $data3[] = '0';
                }
            }
            $array3[$item->idMes] = array_sum($data3);
            $tablero3[$item->idMes] = $array3[$item->idMes] - $array3[$item->idMes - 1];

            $participacion = Indicadores::join('resultado', 'resultado.idIndicador', '=', 'indicadores.idIndicador')
                ->where('resultado.idMes', '=', $item->idMes)
                ->where('indicadores.idTablero', '=', 4)
                ->where('resultado.año', '=', $anio)
                ->whereIn('indicadores.idIndicador', $array)
                ->get();

            foreach ($participacion as $value) {

                if ($value->valor == '') {
                    $data4[] = $value->valor;
                } else if ($value->tipo == 'n' && $value->meta == $value->valor) {
                    $data4[] = $value->peso;
                } else if ($value->tipo == 'n' && $value->meta != $value->valor) {
                    $data4[] = '0';
                } else if ($value->tipo == 'h' && $value->valor >= $value->meta) {
                    $data4[] = $value->peso;
                } else if ($value->tipo == 'h' && $value->valor < $value->meta && $value->peso * ($value->valor / $value->meta) >= 0) {
                    $data4[] = round($value->peso * ($value->valor / $value->meta), 2);
                } else if ($value->tipo == 'h' && $value->valor < $value->meta && $value->peso * ($value->valor / $value->meta) < 0) {
                    $data4[] = '0';
                } else if ($value->tipo == 'i' && $value->valor <= $value->meta) {
                    $data4[] = $value->peso;
                } else if ($value->tipo == 'i' && $value->valor > $value->meta && $value->valor >= (2 * $value->meta)) {
                    $data4[] = '0';
                }
            }
            $array4[$item->idMes] = array_sum($data4);
            $tablero4[$item->idMes] = $array4[$item->idMes] - $array4[$item->idMes - 1];

            $sustentabilidad = Indicadores::join('resultado', 'resultado.idIndicador', '=', 'indicadores.idIndicador')
                ->where('resultado.idMes', '=', $item->idMes)
                ->where('indicadores.idTablero', '=', 5)
                ->where('resultado.año', '=', $anio)
                ->whereIn('indicadores.idIndicador', $array)
                ->get();

            foreach ($sustentabilidad as $value) {

                if ($value->valor == '') {
                    $data5[] = $value->valor;
                } else if ($value->tipo == 'n' && $value->meta == $value->valor) {
                    $data5[] = $value->peso;
                } else if ($value->tipo == 'n' && $value->meta != $value->valor) {
                    $data5[] = '0';
                } else if ($value->tipo == 'h' && $value->valor >= $value->meta) {
                    $data5[] = $value->peso;
                } else if ($value->tipo == 'h' && $value->valor < $value->meta && $value->peso * ($value->valor / $value->meta) >= 0) {
                    $data5[] = round($value->peso * ($value->valor / $value->meta), 2);
                } else if ($value->tipo == 'h' && $value->valor < $value->meta && $value->peso * ($value->valor / $value->meta) < 0) {
                    $data5[] = '0';
                } else if ($value->tipo == 'i' && $value->valor <= $value->meta) {
                    $data5[] = $value->peso;
                } else if ($value->tipo == 'i' && $value->valor > $value->meta && $value->valor >= (2 * $value->meta)) {
                    $data5[] = '0';
                }
            }
            $array5[$item->idMes] = array_sum($data5);
            $tablero5[$item->idMes] = $array5[$item->idMes] - $array5[$item->idMes - 1];

            $rentabilidad = Indicadores::join('resultado', 'resultado.idIndicador', '=', 'indicadores.idIndicador')
                ->where('resultado.idMes', '=', $item->idMes)
                ->where('indicadores.idTablero', '=', 6)
                ->where('resultado.año', '=', $anio)
                ->whereIn('indicadores.idIndicador', $array)
                ->get();

            foreach ($rentabilidad as $value) {

                if ($value->valor == '') {
                    $data6[] = $value->valor;
                } else if ($value->tipo == 'n' && $value->meta == $value->valor) {
                    $data6[] = $value->peso;
                } else if ($value->tipo == 'n' && $value->meta != $value->valor) {
                    $data6[] = '0';
                } else if ($value->tipo == 'h' && $value->valor >= $value->meta) {
                    $data6[] = $value->peso;
                } else if ($value->tipo == 'h' && $value->valor < $value->meta && $value->peso * ($value->valor / $value->meta) >= 0) {
                    $data6[] = round($value->peso * ($value->valor / $value->meta), 2);
                } else if ($value->tipo == 'h' && $value->valor < $value->meta && $value->peso * ($value->valor / $value->meta) < 0) {
                    $data6[] = '0';
                } else if ($value->tipo == 'i' && $value->valor <= $value->meta) {
                    $data6[] = $value->peso;
                } else if ($value->tipo == 'i' && $value->valor > $value->meta && $value->valor >= (2 * $value->meta)) {
                    $data6[] = '0';
                }
            }
            $array6[$item->idMes] = array_sum($data6);
            $tablero6[$item->idMes] = $array6[$item->idMes] - $array6[$item->idMes - 1];
        }

        return View('paginas.desempe_o', [

            'tipo' => $tipo,
            'tablero1' => $tablero1,
            'tablero2' => $tablero2,
            'tablero3' => $tablero3,
            'tablero4' => $tablero4,
            'tablero5' => $tablero5,
            'tablero6' => $tablero6,

        ]);
    }

    public function desempe_o2($tipo)
    {
        $meses = Meses::all();
        $anio = 2024;

        $data[] = 0;
        $dataMax[] = 0;
        $array1[] = 0;
        $tablero1[] = 0;

        $data2[] = 0;
        $dataMax2[] = 0;
        $array2[] = 0;
        $tablero2[] = 0;

        $data3[] = 0;
        $dataMax3[] = 0;
        $array3[] = 0;
        $tablero3[] = 0;

        $data4[] = 0;
        $dataMax4[] = 0;
        $array4[] = 0;
        $tablero4[] = 0;

        $data5[] = 0;
        $dataMax5[] = 0;
        $array5[] = 0;
        $tablero5[] = 0;

        $data6[] = 0;
        $dataMax6[] = 0;
        $array6[] = 0;
        $tablero6[] = 0;
        $array = $this->busqueda();

        $cont1 = Indicadores::join('resultado', 'resultado.idIndicador', '=', 'indicadores.idIndicador')
            ->where('resultado.idMes', '=', 1)
            ->where('indicadores.idTablero', '=', 1)
            ->where('resultado.año', '=', $anio)
            ->where('resultado.estado', '=', 0)
            ->whereIn('indicadores.idIndicador', $array)
            ->count();
        $cont2 = Indicadores::join('resultado', 'resultado.idIndicador', '=', 'indicadores.idIndicador')
            ->where('resultado.idMes', '=', 1)
            ->where('indicadores.idTablero', '=', 2)
            ->where('resultado.año', '=', $anio)
            ->where('resultado.estado', '=', 0)
            ->whereIn('indicadores.idIndicador', $array)
            ->count();

        $cont3 = Indicadores::join('resultado', 'resultado.idIndicador', '=', 'indicadores.idIndicador')
            ->where('resultado.idMes', '=', 1)
            ->where('indicadores.idTablero', '=', 3)
            ->where('resultado.año', '=', $anio)
            ->where('resultado.estado', '=', 0)
            ->whereIn('indicadores.idIndicador', $array)
            ->count();

        $cont4 = Indicadores::join('resultado', 'resultado.idIndicador', '=', 'indicadores.idIndicador')
            ->where('resultado.idMes', '=', 1)
            ->where('indicadores.idTablero', '=', 4)
            ->where('resultado.año', '=', $anio)
            ->where('resultado.estado', '=', 0)
            ->whereIn('indicadores.idIndicador', $array)
            ->count();

        $cont5 = Indicadores::join('resultado', 'resultado.idIndicador', '=', 'indicadores.idIndicador')
            ->where('resultado.idMes', '=', 1)
            ->where('indicadores.idTablero', '=', 5)
            ->where('resultado.año', '=', $anio)
            ->where('resultado.estado', '=', 0)
            ->whereIn('indicadores.idIndicador', $array)
            ->count();

        $cont6 = Indicadores::join('resultado', 'resultado.idIndicador', '=', 'indicadores.idIndicador')
            ->where('resultado.idMes', '=', 1)
            ->where('indicadores.idTablero', '=', 6)
            ->where('resultado.año', '=', $anio)
            ->where('resultado.estado', '=', 0)
            ->whereIn('indicadores.idIndicador', $array)
            ->count();

        foreach ($meses as $item) {
            $inovacionRes = Indicadores::join('resultado', 'resultado.idIndicador', '=', 'indicadores.idIndicador')
                ->where('resultado.idMes', '=', $item->idMes)
                ->where('indicadores.idTablero', '=', 2)
                ->where('resultado.año', '=', $anio)
                ->where('resultado.estado', '=', 0)
                ->whereIn('indicadores.idIndicador', $array)
                ->max('resultado.valor');
            $dataRes2[] = $inovacionRes;

            $participacionRes = Indicadores::join('resultado', 'resultado.idIndicador', '=', 'indicadores.idIndicador')
                ->where('resultado.idMes', '=', $item->idMes)
                ->where('indicadores.idTablero', '=', 4)
                ->where('resultado.año', '=', $anio)
                ->where('resultado.estado', '=', 0)
                ->whereIn('indicadores.idIndicador', $array)
                ->max('resultado.valor');
            $dataRes4[] = $participacionRes;

            $sustentabilidadRes = Indicadores::join('resultado', 'resultado.idIndicador', '=', 'indicadores.idIndicador')
                ->where('resultado.idMes', '=', $item->idMes)
                ->where('indicadores.idTablero', '=', 5)
                ->where('resultado.año', '=', $anio)
                ->where('resultado.estado', '=', 0)
                ->max('resultado.valor');
            $dataRes5[] = $sustentabilidadRes;
        }
//echo max( $dataRes5);
//die();
        foreach ($meses as $item) {

            $equipoHumanoMax = Indicadores::join('resultado', 'resultado.idIndicador', '=', 'indicadores.idIndicador')
                ->where('resultado.idMes', '=', $item->idMes)
                ->where('indicadores.idTablero', '=', 1)
                ->where('resultado.año', '=', $anio)
                ->where('resultado.estado', '=', 0)
                ->whereIn('indicadores.idIndicador', $array)
                ->max('resultado.meta');
            $dataMax[] = $equipoHumanoMax;

            $equipoHumano = Indicadores::join('resultado', 'resultado.idIndicador', '=', 'indicadores.idIndicador')
                ->where('resultado.idMes', '=', $item->idMes)
                ->where('indicadores.idTablero', '=', 1)
                ->where('resultado.año', '=', $anio)
                ->where('resultado.estado', '=', 0)
                ->whereIn('indicadores.idIndicador', $array)
                ->get();

            foreach ($equipoHumano as $value) {

                $data[] = (($value->valor * 100) / $value->total);
            }
            if ($cont1 == 0) {
                $array[$item->idMes] = 0;
                $tablero1[$item->idMes] = 0;

            } else {

                $array1[$item->idMes] = array_sum($data) / $cont1;
                $tablero1[$item->idMes] = ($array1[$item->idMes] - $array1[$item->idMes - 1]);
            }

            //--------------------//
            $inovacionMax = Indicadores::join('resultado', 'resultado.idIndicador', '=', 'indicadores.idIndicador')
                ->where('resultado.idMes', '=', $item->idMes)
                ->where('indicadores.idTablero', '=', 2)
                ->where('resultado.año', '=', $anio)
                ->where('resultado.estado', '=', 0)
                ->whereIn('indicadores.idIndicador', $array)
                ->max('resultado.meta');
            $dataMax2[] = $inovacionMax;

            $inovacion = Indicadores::join('resultado', 'resultado.idIndicador', '=', 'indicadores.idIndicador')
                ->where('resultado.idMes', '=', $item->idMes)
                ->where('indicadores.idTablero', '=', 2)
                ->where('resultado.año', '=', $anio)
                ->where('resultado.estado', '=', 0)
                ->whereIn('indicadores.idIndicador', $array)
                ->get();

            foreach ($inovacion as $value) {
                //$data2[] = ((($value->valor) * 100) / max($dataRes2));
                $data2[] = (($value->valor * 100) / $value->total);

            }

            if ($cont2 == 0) {
                $array2[$item->idMes] = 0;
                $tablero2[$item->idMes] = 0;

            } else {
                $array2[$item->idMes] = array_sum($data2) / $cont2;
                $tablero2[$item->idMes] = $array2[$item->idMes] - $array2[$item->idMes - 1];
            }

            //--------------------//
            $mejoraMax = Indicadores::join('resultado', 'resultado.idIndicador', '=', 'indicadores.idIndicador')
                ->where('resultado.idMes', '=', $item->idMes)
                ->where('indicadores.idTablero', '=', 3)
                ->where('resultado.año', '=', $anio)
                ->where('resultado.estado', '=', 0)
                ->whereIn('indicadores.idIndicador', $array)
                ->max('resultado.meta');
            $dataMax3[] = $mejoraMax;

            $mejora = Indicadores::join('resultado', 'resultado.idIndicador', '=', 'indicadores.idIndicador')
                ->where('resultado.idMes', '=', $item->idMes)
                ->where('indicadores.idTablero', '=', 3)
                ->where('resultado.año', '=', $anio)
                ->where('resultado.estado', '=', 0)
                ->whereIn('indicadores.idIndicador', $array)
                ->get();

            foreach ($mejora as $value) {
                $data3[] = (($value->valor * 100) / $value->total);
            }

            if ($cont3 == 0) {
                $array3[$item->idMes] = 0;
                $tablero3[$item->idMes] =0;
            } else {
                $array3[$item->idMes] = (array_sum($data3)) / $cont3;
                $tablero3[$item->idMes] = $array3[$item->idMes] - $array3[$item->idMes - 1];
            }



            //--------------------//
            $participacionMax = Indicadores::join('resultado', 'resultado.idIndicador', '=', 'indicadores.idIndicador')
                ->where('resultado.idMes', '=', $item->idMes)
                ->where('indicadores.idTablero', '=', 4)
                ->where('resultado.año', '=', $anio)
                ->where('resultado.estado', '=', 0)
                ->whereIn('indicadores.idIndicador', $array)
                ->max('resultado.meta');
            $dataMax4[] = $participacionMax;

            $participacion = Indicadores::join('resultado', 'resultado.idIndicador', '=', 'indicadores.idIndicador')
                ->where('resultado.idMes', '=', $item->idMes)
                ->where('indicadores.idTablero', '=', 4)
                ->where('resultado.año', '=', $anio)
                ->where('resultado.estado', '=', 0)
                ->whereIn('indicadores.idIndicador', $array)
                ->get();

            foreach ($participacion as $value) {
                //$data4[] = (($value->valor) * 100) / max($dataRes4);
                $data4[] = (($value->valor * 100) / $value->total);
            }
            if ($cont4 == 0) {
                $array4[$item->idMes] = 0;
                $tablero4[$item->idMes] =0;
            } else {
                $array4[$item->idMes] = (array_sum($data4)) / $cont4;
                $tablero4[$item->idMes] = $array4[$item->idMes] - $array4[$item->idMes - 1];

            }


            //--------------------//
            $sustentabilidadMax = Indicadores::join('resultado', 'resultado.idIndicador', '=', 'indicadores.idIndicador')
                ->where('resultado.idMes', '=', $item->idMes)
                ->where('indicadores.idTablero', '=', 5)
                ->where('resultado.año', '=', $anio)
                ->where('resultado.estado', '=', 0)
                ->whereIn('indicadores.idIndicador', $array)
                ->max('resultado.meta');

            $dataMax5[] = $sustentabilidadMax;

            $sustentabilidad = Indicadores::join('resultado', 'resultado.idIndicador', '=', 'indicadores.idIndicador')
                ->where('resultado.idMes', '=', $item->idMes)
                ->where('indicadores.idTablero', '=', 5)
                ->where('resultado.año', '=', $anio)
                ->where('resultado.estado', '=', 0)
                ->whereIn('indicadores.idIndicador', $array)
                ->get();

            foreach ($sustentabilidad as $value) {

                //$data5[] = (($value->valor) * 100) / max($dataRes5);
                $data5[] = (($value->valor * 100) / $value->total);
            }
            if ($cont5 == 0) {
                $array5[$item->idMes] = 0;
                $tablero5[$item->idMes] =0;
            } else {
                $array5[$item->idMes] = (array_sum($data5)) / $cont5;
                $tablero5[$item->idMes] = $array5[$item->idMes] - $array5[$item->idMes - 1];
            }



            $rentabilidadMax = Indicadores::join('resultado', 'resultado.idIndicador', '=', 'indicadores.idIndicador')
                ->where('resultado.idMes', '=', $item->idMes)
                ->where('indicadores.idTablero', '=', 6)
                ->where('resultado.año', '=', $anio)
                ->where('resultado.estado', '=', 0)
                ->whereIn('indicadores.idIndicador', $array)
                ->max('resultado.meta');
            $dataMax6[] = $rentabilidadMax;

            $rentabilidad = Indicadores::join('resultado', 'resultado.idIndicador', '=', 'indicadores.idIndicador')
                ->where('resultado.idMes', '=', $item->idMes)
                ->where('indicadores.idTablero', '=', 6)
                ->where('resultado.año', '=', $anio)
                ->where('resultado.estado', '=', 0)
                ->whereIn('indicadores.idIndicador', $array)
                ->get();

            foreach ($rentabilidad as $value) {
                $data6[] = (($value->valor * 100) / $value->total);
            }
            if ($cont6 == 0) {
                $array6[$item->idMes] = 0;
                $tablero6[$item->idMes] =0;
            } else {
                $array6[$item->idMes] = (array_sum($data6)) / $cont6;
                $tablero6[$item->idMes] = $array6[$item->idMes] - $array6[$item->idMes - 1];
            }


        }
/*         print_r($tablero2[7]);
die();
 */
        $dataMax7 = (max($dataMax) + max($dataMax2) + max($dataMax3) + max($dataMax4) + max($dataMax5) + max($dataMax6)) / 6;
        return View('paginas.desempe_o2', [

            'tipo' => $tipo,
            'tablero1' => $tablero1,
            'tablero2' => $tablero2,
            'tablero3' => $tablero3,
            'tablero4' => $tablero4,
            'tablero5' => $tablero5,
            'tablero6' => $tablero6,
            /*'dataMax' => max($dataMax),
            'dataMax2' => max($dataMax2) == 0 ? 0 : ((max($dataMax2)) * 100) / max($dataMax2),
            //'dataMax2' => max($dataMax2),
            //'dataMax3' => max($dataMax3),
            'dataMax3' => max($dataMax3) == 0 ? 0 : ((max($dataMax3)) * 100) / max($dataMax3),
            'dataMax4' => max($dataMax4) == 0 ? 0 : ((max($dataMax4)) * 100) / max($dataMax4),
            //'dataMax4' => max($dataMax4),
            'dataMax5' => max($dataMax5) == 0 ? 0 : ((max($dataMax5)) * 100) / max($dataMax5),
            //'dataMax5' => max($dataMax5),
            'dataMax6' => max($dataMax6),
            'dataMax7' => $dataMax7,*/
            'dataMax' => 80,
            'dataMax2' => 80,
            'dataMax3' => 80,
            'dataMax4' => 80,
            'dataMax5' => 80,
            'dataMax6' => 80,
            'dataMax7' => 80,

        ]);
    }

}
