<?php
namespace App\Controller\Visao\Avaliado\Componentes;
use App\Controller\Componentes\ComponenteAbstract;
use App\Repository\Cliente\Dados\EvsRepository;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
class GraficoQualidadeCustoController extends ComponenteAbstract
{
const TEMPLATEBASE = 'visao/avaliado/componentes/';
/**
* @var EvsRepository
*/
private $evs;
/**
* @param EvsRepository $evsRepository
*/
public function __construct(EvsRepository $evsRepository)
{
$this->evs = $evsRepository;
}
/**
* @param Request $request
* @return Response
*/
public function index(Request $request): Response
{
// array com informacoes da sessao do avaliado
$avaliado = $this->getAvaliado();
// AAAAMM
$periodo = (int) join('',array_values(array_intersect_key($this->getSession()->get('periodo')['to'], ['ano'=>NULL,'periodo'=>NULL])));
// dados de todos os pares (do grupo)
$dadosGraficoDispersao = $this->evs->dispersaoQualidadeCustoAvaliados($avaliado, $periodo);
// É necessário que existam mais de 3 outros avaliados no grupo para que sejam apresentados
// de forma anônima ao avaliado, caso contrário deve apresentar somente a perfomance do
// próprio avaliado
$dadosAvaliadosGrupo = $dadosGraficoDispersao;
if ( count($dadosGraficoDispersao) <= 3 ) {
$dadosAvaliadosGrupo = [];
}
return $this->render('grafico-qualidade-custo.html.twig', [
'tamanhoModal' => $request->query->get('tamanho', $request->query->get('tamanhoModal', 'col-12')),
'referer' => $request->headers->get('referer'),
'avaliado_grafico' => $dadosGraficoDispersao[0]['json_avaliado'],
'dados' => json_encode($dadosAvaliadosGrupo, true),
'icones' => $this->getIcones(),
'avaliado' => $avaliado,
]);
}
}