ItemEstruturaIett item = pItemEstrutura;
Iterator<AcompReferenciaAref> itPeriodos = getPeriodosConsiderados().iterator();
AcompReferenciaItemDao acompReferenciaItemDao = new AcompReferenciaItemDao(getRequest());
TipoAcompanhamentoDao taDao = new TipoAcompanhamentoDao(getRequest());
CorDao corDao = new CorDao(getRequest());
AcompReferenciaDao acompReferenciaDao = new AcompReferenciaDao(getRequest());
AbaDao abaDao = new AbaDao(null);
SegurancaECAR seguranca = (SegurancaECAR) request.getSession().getAttribute("seguranca");
AcompReferenciaAref acompReferencia = null;
AcompReferenciaAref acompReferenciaOrgaoAtual = null;
TipoFuncAcompDao tipoFuncAcompDao = new TipoFuncAcompDao(getRequest());
try {
TipoAcompanhamentoTa tipoAcompanhamento = (TipoAcompanhamentoTa) taDao.buscar(TipoAcompanhamentoTa.class, Long.valueOf(codTipoAcompanhamento));
String enderecoAbaVisualizacao = abaDao.pesquisaEnderecoAbaRegistro(tipoAcompanhamento, seguranca.getGruposAcesso(), 2, null);
ConfiguracaoCfg configuracao = new ConfiguracaoDao(request).getConfiguracao();
String pathRaiz = configuracao.getRaizUpload();
if(codAref != null && !codAref.equals(""))
acompReferenciaOrgaoAtual = (AcompReferenciaAref) acompReferenciaDao.buscar(AcompReferenciaAref.class, Long.valueOf(codAref));
Map map = null;
//map utilizado para recuperar o Ari
if(tipoAcompanhamento != null && tipoAcompanhamento.getIndSepararOrgaoTa() != null && tipoAcompanhamento.getIndSepararOrgaoTa().equals("S")) {
Collection listaReferenciasOrgaoAtual = new ArrayList();
Iterator itPeriodosOrgaoAtual = periodosConsiderados.iterator();
if(acompReferenciaOrgaoAtual != null)
listaReferenciasOrgaoAtual.add(acompReferenciaOrgaoAtual);
//agrupa outros arefs de outros periodos com o mesmo orgao
while(itPeriodosOrgaoAtual.hasNext()) {
AcompReferenciaAref arefPeriodo = (AcompReferenciaAref) itPeriodosOrgaoAtual.next();
AcompReferenciaAref refOrgaoAtual = acompReferenciaDao.getAcompReferenciaByOrgaoDiaMesAnoAref(acompReferenciaOrgaoAtual.getOrgaoOrg(), arefPeriodo);
if(refOrgaoAtual != null && !listaReferenciasOrgaoAtual.contains(refOrgaoAtual)) {
listaReferenciasOrgaoAtual.add(refOrgaoAtual);
}
}
map = acompReferenciaItemDao.criarMapPeriodoAriMontarListagem(periodosConsiderados, listaReferenciasOrgaoAtual, item);
} else {
map = acompReferenciaItemDao.criarMapPeriodoAri(periodosConsiderados, item);
}
while(itPeriodos.hasNext()) {
acompReferencia = (AcompReferenciaAref) itPeriodos.next();
if(map.isEmpty()) {
retorno.append("<td align=\"center\"> </td>");
} else if(!map.containsKey(acompReferencia)) {
retorno.append("<td align=\"center\" valign=\"middle\">");
retorno.append("<p title=\"N�o foi solicitado acompanhamento\">N/A</p>");
retorno.append("</td>");
} else {
AcompReferenciaItemAri ari = (AcompReferenciaItemAri) map.get(acompReferencia);
retorno.append("<td align=\"center\" nowrap>");
if((Dominios.NAO).equals(getExigeLiberarAcompanhamento()) || ari.getStatusRelatorioSrl().equals(getStatusLiberado())) {
if(!"true".equals(status)){
retorno.append("<a name=\"ancora"+ari.getItemEstruturaIett().getCodIett()+"\" href=\"#\" " +
"onclick=\"javascript:aoClicarConsultarExibicaoAba(form, '" + enderecoAbaVisualizacao + "', "+
+ari.getCodAri()+ ", "+ ari.getItemEstruturaIett().getCodIett()+ ", "+ this.temPermissaAcessarAbaVisualizacao
+ ",'" + this.nomeAbaVisualizacao + "')\">");
itensSessaoVisualizar.add(ari.getCodAri().toString());
request.setAttribute("itensSessaoVisualizar",itensSessaoVisualizar );
if(usuarioLogadoEmiteParecer || permissaoAdministradorAcompanhamento) {
itensSessao.add(ari.getCodAri().toString());
request.setAttribute("itensSessao",itensSessao );
}
}
List<AcompRelatorioArel> relatorios = acompReferenciaItemDao.getAcompRelatorioArelOrderByFuncaoAcomp(ari, tpfaOrdenadosPorEstrutura);
Iterator<AcompRelatorioArel> itRelatorios = relatorios.iterator();
String imagePath = "";
String aval = "";
ValidaPermissao validaPermissao = new ValidaPermissao();
List listaPermissaoTpfa = validaPermissao.permissaoVisualizarPareceres(tipoAcompanhamento,seguranca.getGruposAcesso());
while(itRelatorios.hasNext()){
AcompRelatorioArel relatorio = (AcompRelatorioArel) itRelatorios.next();
if(listaPermissaoTpfa.contains(relatorio.getTipoFuncAcompTpfa())
&& validaPermissao.permissaoLeituraAcompanhamento(relatorio.getAcompReferenciaItemAri(), seguranca.getUsuario(), seguranca.getGruposAcesso())){
UsuarioUsu usuarioImagem = null;
String hashNomeArquivo = null;
boolean imageError = false;
if( (Dominios.SIM).equals(relatorio.getIndLiberadoArel()) ) {
Cor cor = ( relatorio.getCor()!=null ? relatorio.getCor() : null );
TipoFuncAcompTpfa tpfa = ( relatorio.getTipoFuncAcompTpfa() != null ? relatorio.getTipoFuncAcompTpfa() : null );
imagePath = corDao.getImagemPersonalizada(cor, tpfa, "L");
if( imagePath != null ) {
usuarioImagem = ((ecar.login.SegurancaECAR)request.getSession().getAttribute("seguranca")).getUsuario();
hashNomeArquivo = Util.calcularHashNomeArquivo(pathRaiz, imagePath);
Util.adicionarMapArquivosAtuaisUsuarios(usuarioImagem, hashNomeArquivo, pathRaiz, imagePath);
aval += "<img border=\"0\" src=\"" + request.getContextPath() + "/DownloadFile?tipo=open&RemoteFile=";
aval += hashNomeArquivo + "\" style=\"width: 23px; height: 23px;\" title=\"" + relatorio.getTipoFuncAcompTpfa().getLabelTpfa() + "\">";
} else {
if( relatorio.getCor() != null && relatorio.getCor().getCodCor() != null ) {
aval += "<img border=\"0\" src=\"" + getPathEcar() + "/images/relAcomp/";
aval += corDao.getImagemRelatorio(relatorio.getCor(), relatorio.getTipoFuncAcompTpfa()) + "\" title=\"";
aval += relatorio.getTipoFuncAcompTpfa().getLabelTpfa() + "\" >";
} else {
imageError = true;
}
}
} else {
imageError = true;
}
// Verifica se o parecer � obrigatorio ou opcional
List<TipoAcompFuncAcompTafc> listTipoAcompFuncAcomp = new ArrayList<TipoAcompFuncAcompTafc>(acompReferencia.getTipoAcompanhamentoTa().getTipoAcompFuncAcompTafcs());
boolean ehObrigatorio = true;
if(listTipoAcompFuncAcomp != null) {
Iterator<TipoAcompFuncAcompTafc> tipoFuncAcompIt = listTipoAcompFuncAcomp.iterator();
while(tipoFuncAcompIt.hasNext()) {
TipoAcompFuncAcompTafc tipoAcompFuncAcompTafc = (TipoAcompFuncAcompTafc)tipoFuncAcompIt.next();
if( relatorio.getTipoFuncAcompTpfa().getCodTpfa().equals(tipoAcompFuncAcompTafc.getTipoFuncAcompTpfa().getCodTpfa())
&& tipoAcompFuncAcompTafc.getIndRegistroPosicaoTafc() != null
&& tipoAcompFuncAcompTafc.getIndRegistroPosicaoTafc().equals(Dominios.OPCIONAL)) {
ehObrigatorio = false;
}
}
}
if( imageError && ehObrigatorio) {
aval += "<img border=\"0\" src=\"" + getPathEcar() + "/images/relAcomp/";
aval += corDao.getImagemRelatorio(null, relatorio.getTipoFuncAcompTpfa()) + "\" title=\"";
aval += relatorio.getTipoFuncAcompTpfa().getLabelTpfa() + "\" >";
}
}
}