{% extends 'base.html.twig' %}
{% block javascripts %}
{{ parent() }}
{% if app.session.has('periodo') != false and app.session.has("avaliado") != false %}
<script src="{{ asset('js/componentes/avaliado-gps/graficoInformativo.js') }}"></script>
<script src="{{ asset('js/componentes/avaliado-gps/graficoPerformanceDominio.js') }}"></script>
<script src="{{ asset('js/confetti.browser.min.js') }}"></script>
<script>
//callback do upload de arquivos
function updateButton($this){
$this.find(".button").removeClass("transparent pointer").addClass("green no-hover tooltip").attr("title", "Arquivo enviado com sucesso!").find(".progress").remove();
$this.find("input[type='file']").remove();
$this.find(".fa-upload").removeClass("fa-upload").addClass("fa-check");
let text = $this.find("span[data-placeholder]").attr("data-placeholder");
$this.find("span[data-placeholder]").html(text);
if($this.closest(".notification").find(".inputfile").length <= 0){
$(".text-upload").addClass("d-none");
$(".text-completed").removeClass("d-none");
confetti({
particleCount: 100,
spread: 70,
origin: {
y: 0.5,
x: 0.5
}
});
}
}
</script>
{% endif %}
{% endblock %}
{% block body %}
<div id="wrapper" class="right no-content {{ app.session.has('periodo') == false or app.session.has('avaliado') == false ? 'blur' : '' }}">
<div id="header">
<a href="{{ path('visoes') }}"><h3><img src="{{ asset('images/favicon.png') }}"/></h3></a>
<div id="menu" class="menu">
<ul>
<li class="active"><a class="tooltip" title="Dashboard" href="{{ path('gps_visao_avaliado_dashboard') }}"><i class="fal fa-home"></i><span>Dashboard</span></a></li>
<li><a class="tooltip" title="Dashboard Anual" href="{{ path('gps_visao_avaliado_dashboard_anual') }}"><i class="fal fa-chart-line"></i><span>Dashboard Anual</span></a></li>
<li><a class="tooltip" title="Consentimento" href="{{ path('consenso') }}"><i class="fal fa-user-check"></i><span>Termo de Consentimento</span></a></li>
<li id="botao-comunicacao" data-url="{{ path('span_botao_contar_mensagens') }}">
{% include 'modulos/comunicacao/botao-comunicacao-notificacao.html.twig' %}
</li>
{% if app.session.get('cliente').dbname == 'analytics_unimed_sjrp' %}
<li><a class="tooltip" target="_blank" title="Manual" href="https://2im-temp.s3.sa-east-1.amazonaws.com/manual/analytics/Manual_Plataforma_UnimedSJRP.pdf"><i class="fal fa-book"></i><span>Manual</span></a></li>
{% endif %}
</ul>
</div>
{% include 'btn-sair-language.html.twig' %}
</div>
{% if app.session.has('periodo') != false %}
{{ render(controller('App\\Controller\\DefaultController::rightMenu')) }}
{% endif %}
<div id="content">
{% if app.session.has('periodo') == false or app.session.has("avaliado") == false %}
<div class="hide">
{% if (is_granted('ROLE_GESTOR') or is_granted('ROLE_2IM')) %}
{{ render(controller('App\\Controller\\Componentes\\FiltroAvaliadoController::index')) }}
{% endif %}
{{ render(controller('App\\Controller\\Componentes\\ProgramaController::index')) }}
{% if app.session.has("modelagem") != false %}
{{ render(controller('App\\Controller\\Componentes\\PeriodoController::index',{
'select_multiple' : false
,'request_referer': app.session.get('avaliado').http_referer is not defined ? 'avaliado' : 'gestor'
,'modelo': 'gps'
})) }}
{% endif %}
</div>
{% endif %}
<div class="largura">
{% if app.session.has('periodo') != false and app.session.has("avaliado") != false %}
<div class="padding-menu-right">
<div class="row justify-content-between pb-5">
<div class="col col-auto pb-3">
{% if is_granted('ROLE_GESTOR') %}
<h2 class="text-40 medium">Avaliação</h2>
{% else %}
<h2 class="text-40 medium">Minha Avaliação</h2>
{% endif %}
</div>
<div class="col-12 col-lg-auto text-lg-right">
<div class="row gx-2 pt-2">
{% if (is_granted('ROLE_GESTOR') or is_granted('ROLE_2IM')) and app.session.get('avaliado').http_referer is not defined %}
<div class="col col-auto pb-3">
{{ render(controller('App\\Controller\\Componentes\\FiltroAvaliadoController::index')) }}
</div>
{% endif %}
<div class="col col-auto pb-3">
{{ render(controller('App\\Controller\\Componentes\\PeriodoController::index',{
'select_multiple' : false
,'request_referer': app.session.get('avaliado').http_referer is not defined ? 'avaliado' : 'gestor'
,'modelo': 'gps'
})) }}
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-12 pb-3">
{{ render(controller('App\\Controller\\Visao\\GPS\\Avaliado\\Componentes\\EvsAvaliadoController::index', {} )) }}
{% if solicitacoes is not empty %}
<div class="largura text-center">
<div class="bg-dark notification alert border-x border-bottom border-radius-bottom p-3">
<div class="row">
<div class="col text-format text-14 text-left">
<div class="text-upload">
<p><b>{{ app.session.get('avaliado').nome_avaliado }}</b>, para melhorar seu EVS, você precisa fazer upload de alguns arquivos que comprovem alguns indicadores!<br/>
Você pode fazer o upload por aqui, precisamos do{{solicitacoes|length != 1 ? 's' : ''}} documento{{solicitacoes|length != 1 ? 's' : ''}} abaixo:</p>
<div class="row g-2 pb-2">
{% for documento in solicitacoes %}
{% set extensoes = '' %}
{% for ext in documento.extensao|json_decode|keys %}
{% set extensoes = extensoes ~ "." ~ ext %}
{% if ext != loop.last %}
{% set extensoes = extensoes ~ ", "%}
{% endif %}
{% endfor %}
<div class="col col-auto">
<form action="{{ path('visao_admin_documentos_adicionar', {'id_solicitacao': documento.id_solicitacao }) }}" class="uploadfile" data-callback="updateButton($this)">
<input type="file" name="arquivo[{{ documento.id_solicitacao }}]" id="arquivo[{{ documento.id_solicitacao }}]" class="inputfile" multiple accept="{{ extensoes }}" />
<label for="arquivo[{{ documento.id_solicitacao }}]" class="button transparent pointer tooltip" title="Clique para selecionar o arquivo<br/>({{ extensoes }}).">
<i class="fal fa-fw fa-upload"></i>
<span>{{ documento.nome_documento|ucwords }}</span>
</label>
</form>
</div>
{% endfor %}
</div>
</div>
<div class="text-completed text-center d-none">
<p><i class="fal fa-check-circle text-40"></i></p>
<h3 class="text-24 medium mb-2">Muito bem!</h3>
<p>Você realizou o upload de todos os arquivos!</p>
</div>
</div>
<div class="col col-auto">
<a href="#" class="button sm transparent close-notification tooltip" title="Fechar">
<i class="fal fa-times"></i>
</a>
</div>
</div>
</div>
</div>
{% endif %}
</div>
</div>
<div class="row pt-lg-5">
<div class="col-12 col-xxl-6 order-1 order-xxl-0">
<div style="position:absolute; right: 70px; z-index: 1;">
<div class="buttons">
<label class="button sm active tooltip" title="Do Avaliado e do Grupo">
<i class="fa fa-user-md"></i><span class="d-none d-lg-inline ml-2">Avaliado e Grupo</span>
<input type="radio" name="toogle-list" class="d-none toggle-content" checked data-show=".js-show-performance">
</label>
<label class="button sm transparent tooltip" title="Por Domínio">
<i class="fa fa-server"></i><span class="d-none d-lg-inline ml-2">Domínio</span>
<input type="radio" name="toogle-list" class="d-none toggle-content" data-show=".js-show-performance-dominio">
</label>
</div>
</div>
<div class="js-show-performance">
{{ render(controller('App\\Controller\\Visao\\GPS\\Avaliado\\Componentes\\PerformanceAvaliadoController::abrirGrafico', {}, {'relacionamento': true} )) }}
{% if solicitacoes is not empty %}
<div class="largura text-center">
<div class="bg-dark notification alert border-x border-bottom border-radius-bottom p-3">
<div class="row">
<div class="col text-format text-14 text-left">
<div class="text-upload">
<p><b>{{ app.session.get('avaliado').nome_avaliado }}</b>, para melhorar seu EVS, você precisa fazer upload de alguns arquivos que comprovem alguns indicadores!<br/>
Você pode fazer o upload por aqui, precisamos do{{solicitacoes|length != 1 ? 's' : ''}} documento{{solicitacoes|length != 1 ? 's' : ''}} abaixo:</p>
<div class="row g-2 pb-2">
{% for documento in solicitacoes %}
{% set extensoes = '' %}
{% for ext in documento.extensao|json_decode|keys %}
{% set extensoes = extensoes ~ "." ~ ext %}
{% if ext != loop.last %}
{% set extensoes = extensoes ~ ", "%}
{% endif %}
{% endfor %}
<div class="col col-auto">
<form action="{{ path('visao_admin_documentos_adicionar', {'id_solicitacao': documento.id_solicitacao }) }}" class="uploadfile" data-callback="updateButton($this)">
<input type="file" name="arquivo[{{ documento.id_solicitacao }}]" id="arquivo[{{ documento.id_solicitacao }}]" class="inputfile" multiple accept="{{ extensoes }}" />
<label for="arquivo[{{ documento.id_solicitacao }}]" class="button transparent pointer tooltip" title="Clique para selecionar o arquivo<br/>({{ extensoes }}).">
<i class="fal fa-fw fa-upload"></i>
<span>{{ documento.nome_documento|ucwords }}</span>
</label>
</form>
</div>
{% endfor %}
</div>
</div>
<div class="text-completed text-center d-none">
<p><i class="fal fa-check-circle text-40"></i></p>
<h3 class="text-24 medium mb-2">Muito bem!</h3>
<p>Você realizou o upload de todos os arquivos!</p>
</div>
</div>
<div class="col col-auto">
<a href="#" class="button sm transparent close-notification tooltip" title="Fechar">
<i class="fal fa-times"></i>
</a>
</div>
</div>
</div>
</div>
{% endif %}
</div>
<div class="js-show-performance-dominio hide">
{{ render(controller('App\\Controller\\Visao\\GPS\\Avaliado\\Componentes\\PerformanceAvaliadoController::evolucaoDominio')) }}
</div>
</div>
<div class="col-12 col-xxl-6 order-0 order-xxl-1">
<div class="row">
<div class="col-12 pb-5">
{{ render(controller('App\\Controller\\Visao\\GPS\\Avaliado\\Componentes\\EvsGrupoController::index', {}, {'relacionamento': true} )) }}
</div>
<div class="col-12 pb-5 d-none d-xxl-block">
<div class="row align-items-center mb-3">
<div class="col">
<h3 class="text-24 text-darker medium">Índice Por Domínio</h3>
</div>
</div>
<div class="box box-table px-4">
{% for dominio in dominios %}
<div class="row align-items-center py-3 border-bottom border-transparent">
<div class="col medium">{{ dominio.nome_dominio }}</div>
<div class="col col-auto col-lg">
<p class="bold text-darker text-right"><b class="text-{{dominio.performances|json_decode[0]['performance']|decil_range}}">{{ dominio.valor }}</b> / {{ dominio.peso }}</p>
</div>
<div class="col-12 col-lg pt-3 pt-lg-0">
<div class="row flex-nowrap justify-content-between pb-2 text-gray">
<div class="col col-auto">0</div>
<div class="col col-auto"><b>{{ dominio.performances|json_decode[0]['performance']|number_format(2, ',', '.') }}%</b></div>
<div class="col col-auto">{{ dominio.peso }}</div>
</div>
<div class="progress-bar bg-{{dominio.performances|json_decode[0]['performance']|decil_range}}">
<div class="progress" style="width: {{ dominio.performances|json_decode[0]['performance'] }}%;"></div>
</div>
</div>
</div>
{% endfor %}
</div>
</div>
</div>
</div>
<div class="col-12 d-xxl-none order-2 pb-5">
<div class="row align-items-center mb-3">
<div class="col">
<h3 class="text-24 text-darker medium">Índice Por Domínio</h3>
</div>
</div>
<div class="box box-table px-4">
{% for dominio in dominios %}
<div class="row align-items-center py-3 border-bottom border-transparent">
<div class="col medium">{{ dominio.nome_dominio }}</div>
<div class="col col-auto col-lg">
<p class="bold text-darker text-right"><b class="text-{{dominio.performances|json_decode[0]['performance']|decil_range}}">{{ dominio.valor }}</b> / {{ dominio.peso }}</p>
</div>
<div class="col-12 col-lg pt-3 pt-lg-0">
<div class="row flex-nowrap justify-content-between pb-2 text-gray">
<div class="col col-auto">0</div>
<div class="col col-auto"><b>{{ dominio.performances|json_decode[0]['performance']|number_format(2, ',', '.') }}%</b></div>
<div class="col col-auto">{{ dominio.peso }}</div>
</div>
<div class="progress-bar bg-{{dominio.performances|json_decode[0]['performance']|decil_range}}">
<div class="progress" style="width: {{ dominio.performances|json_decode[0]['performance'] }}%;"></div>
</div>
</div>
</div>
{% endfor %}
</div>
</div>
</div>
<div class="row">
{{ render(controller('App\\Controller\\Visao\\GPS\\Avaliado\\Componentes\\DesempenhoIndicadoresController::index', {}, {
'relacionamento': true
} )) }}
</div>
{% endif %}
</div>
</div>
</div>
{% endblock %}