<?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\RequestStack;
use Symfony\Component\HttpFoundation\Response;
class EvsAvaliadoController extends ComponenteAbstract
{
const TEMPLATEBASE = 'visao/avaliado/componentes/';
/**
* @var array
*/
private $dados_avaliado = [];
/**
* @param RequestStack $requestStack
* @param EvsRepository $evsRepository
*/
public function __construct(RequestStack $requestStack, EvsRepository $evsRepository)
{
$sess = $requestStack->getCurrentRequest()->getSession();
// parent request
$parentRequestController = $requestStack->getParentRequest()->attributes->get('_controller');
$this->dados_avaliado = ( 'App\Controller\Visao\Avaliado\AvaliadoController::anual' === $parentRequestController )
? $evsRepository->avaliadoEVSAnual($sess->get('avaliado'))
: $evsRepository->avaliado($sess->get('periodo'),$sess->get('avaliado'));
unset($sess);
}
/**
* @param Request $request
* @return Response
*/
public function index(Request $request): Response
{
return $this->render('evs-avaliado.html.twig', [
'referer' => $request->headers->get('referer'),
'localizacao' => $request->query->get('relacionamento'),
'programa' => $this->dados_avaliado['nome_programa'],
'modelagem' => $this->dados_avaliado['nome_modelagem'],
'retorno' => ['dados' => $this->dados_avaliado, 'estrelas' => ( (float) $this->dados_avaliado['valor'] * 100) / 5],
'icones' => $this->getIcones(),
'avaliado' => $this->getAvaliado()
]);
}
/**
* @return Response
*/
public function indiceQualidade() :Response
{
return $this->render('indice-qualidade.html.twig', [
'indice_qualidade' => $this->dados_avaliado['performance_qualidade'],
'peso_qualidade' => $this->dados_avaliado['peso_qualidade'],
]);
}
/**
* @return Response
*/
public function indiceCusteio() :Response
{
return $this->render('indice-custeio.html.twig', [
'indice_custeio' => $this->dados_avaliado['performance_custo'],
'peso_custo' => $this->dados_avaliado['peso_custo'],
]);
}
}