src/Controller/Visao/Avaliado/Componentes/DesempenhoIndicadoresController.php line 71

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Visao\Avaliado\Componentes;
  3. use App\Controller\Customs\Custom2IMController;
  4. use App\Repository\Cliente\Dados\ScorecardRepository;
  5. use App\Repository\Cliente\Modelagem\AvaliadoRepository;
  6. use Symfony\Component\HttpFoundation\Request;
  7. use Symfony\Component\HttpFoundation\Response;
  8. /**
  9.  * Componente que carrega uma listagem de indicadores separados por dominio.
  10.  */
  11. class DesempenhoIndicadoresController extends Custom2IMController
  12. {
  13.     const TEMPLATEBASE 'visao/avaliado/componentes/';
  14.     /**
  15.      * @param Request $request
  16.      * @return Response
  17.      */
  18.     public function index(Request $requestScorecardRepository $scorecardRepositoryAvaliadoRepository $avaliadoRepositorybool $evs_anual false): Response
  19.     {
  20.         $avaliado $this->getAvaliado();
  21.         $periodo $this->getPeriodo();
  22.         $dados $scorecardRepository->indicadores(
  23.             $avaliado['id_modelagem']
  24.             ,$avaliado['id_grupo']
  25.             ,$avaliado['id_avaliado']
  26.             ,$periodo['to']['ano'].$periodo['to']['periodo']
  27.             ,$evs_anual
  28.             ,(!empty($avaliado['http_referer']) && $avaliado['http_referer'] === 'visao_gestor')
  29.         );
  30.         
  31.         if($request->getSession()->get('cliente') == 'analytics_hospital_beneficiencia_portuguesa_juncao') {
  32.             $dadosGrupo $scorecardRepository->indicadoresGrupoNew(
  33.                 $avaliado['id_modelagem']
  34.                 ,$avaliado['id_grupo']
  35.                 ,$periodo['to']['ano'].$periodo['to']['periodo']
  36.                 ,$evs_anual
  37.                 ,(!empty($avaliado['http_referer']) && $avaliado['http_referer'] === 'visao_gestor')
  38.             );
  39.         } else {
  40.             $dadosGrupo $scorecardRepository->indicadoresGrupo(
  41.                 $avaliado['id_modelagem']
  42.                 ,$avaliado['id_grupo']
  43.                 ,$periodo['to']['ano'].$periodo['to']['periodo']
  44.                 ,$evs_anual
  45.                 ,(!empty($avaliado['http_referer']) && $avaliado['http_referer'] === 'visao_gestor')
  46.             );
  47.         }
  48.         
  49.         /**
  50.          * verifica se a configuração de producao está no cliente
  51.          * Se sim vai olhar a tabela robot.layout_drg_2im_out
  52.          * @TODO: fazer isso ficar dinamico para inserir uma tabela qualquer
  53.          */
  54.         if(
  55.             isset($request->getSession()->get('cliente')->getConfig()['verifica_producao'])
  56.             && $request->getSession()->get('cliente')->getConfig()['verifica_producao'] == true
  57.         ) {
  58.             $producao $avaliadoRepository->verificaProducao($avaliado['id_modelagem'],$avaliado['id_grupo'],$avaliado['id_avaliado'],$avaliado['periodo']);
  59.             
  60.             if($producao['internacao'] == AND $producao['evs'] == 0) {
  61.                 return $this->render('sem-producao.html.twig', []);
  62.             }
  63.         }
  64.         // adiciona se é possível ver datalhes do indicador:
  65.         if ( $request->getSession()->has('cliente') ) {
  66.             $permiteDetalhesCusteio $request->getSession()->get('cliente')->getConfig()['mostrar_detalhes_custeio'] ?? true;
  67.         }
  68.         
  69.         return $this->render('desempenho-indicadores.html.twig', [
  70.             'var_dados_indicadores' => $dados
  71.             ,'var_dados_indicadores_grupo' => $this->arrumaDadoGrupo($dadosGrupo)
  72.             ,'var_permite_detalhes_custeio' => $permiteDetalhesCusteio ?? false
  73.             ,'var_is_mensal' => !$evs_anual
  74.             ,'avaliado' => $avaliado
  75.         ]);
  76.     }
  77.     private function arrumaDadoGrupo($dados)
  78.     {
  79.         $return = [];
  80.         foreach($dados AS $d) {
  81.             $return[$d['id_indicador']] = $d['performance'];
  82.         }
  83.         return $return;
  84.     }
  85. }