try {
ItemEstruturaDao itemEstruturaDao = new ItemEstruturaDao(null);
TipoAcompanhamentoDao tipoAcompanhamentoDao= new TipoAcompanhamentoDao(null);
PontoCriticoDao pontoCriticoDao = new PontoCriticoDao(null);
AbaDao abaDao = new AbaDao(null);
primeiroIettClicado = this.pageContext.getRequest().getParameter("primeiroIettClicado");
StringBuffer s = new StringBuffer();
// se vier de demanda
Long linkCodDemanda = (Long) this.pageContext.getSession().getAttribute("linkCodDemanda");
// Variavel usada para que a tag BarraLinksRelatorioAcompanhamento reconhe�a que
// a requisicao para acessar a tela avalia��es veio de associacao e nao de registro de demandas
String ehAssociacao = (String) this.pageContext.getSession().getAttribute("ehAssociacao");
// o teste getAbaSuperior().equals(Dominios.NAO) � feito porque a pagina chama essa barraTag duas vezes
if (getAbaSuperior().equals(Dominios.NAO) && linkCodDemanda != null && !"".equals(linkCodDemanda)) {
//guarda se � associa��o de demanda
// se exisir, � porque aponta pra associa��o
// se n�o existir, aponta para registro demanda
String associacaoDemanda = (String) this.pageContext.getRequest().getAttribute("associacaoDemanda");
s.append("<script language=\"JavaScript\">");
s.append("function aoClicarAssociacaoDemandas(){");
s.append(" document.form.action = \"" + contextPath + "/cadastroItens/associacaoDemandas/frm_con.jsp\";");
s.append(" document.form.submit();");
s.append("}");
s.append("function aoClicarDemandas(){");
s.append(" document.form.action = \"" + contextPath + "/demandas/registro/frm_cons.jsp?tabAtual=Itens Relacionados&codRegd=" + codRegd + "\";");
s.append(" document.form.submit();");
s.append("}");
s.append("</script>");
s.append("<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">");
s.append("<tr><td align=\"right\">");
// se for voltar pra associa��o de demandas
if(associacaoDemanda != null && associacaoDemanda.equals("V")) {
s.append("<a href=\"#\" onclick=\"aoClicarAssociacaoDemandas();\">[ Voltar para Associa��o de Demandas ]</a>");
// variaves necessarias para voltar para associacao de demanda
String codAbaDemanda = (String) this.pageContext.getSession().getAttribute("codAbaDemanda");
String codIettDemanda = (String) this.pageContext.getSession().getAttribute("codIettDemanda");
// guarda no hidden
s.append("<input type=\"hidden\" name=\"codAbaDemanda\" value=\"");
s.append(codAbaDemanda);
s.append("\">");
s.append("<input type=\"hidden\" name=\"codIettDemanda\" value=\"");
s.append(codIettDemanda);
s.append("\">");
} else {
//se for voltar par registro de demandas
s.append("<a href=\"#\" onclick=\"aoClicarDemandas();\">[ Voltar para Demandas ]</a>");
}
s.append("</td></tr>");
s.append("</table>");
s.append("\n");
s.append("<input type=\"hidden\" name=\"codRegd\" value=\"" +linkCodDemanda.toString() + "\">" );
s.append("\n");
}
s.append("<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" id=\"abas\"><tr><td>");
String codItemPai = "";
TipoAcompanhamentoTa tipoAcompanhamento = (TipoAcompanhamentoTa) tipoAcompanhamentoDao.buscar(TipoAcompanhamentoTa.class, Long.valueOf(getCodTipoAcompanhamento()));
Long longPrimeiroItemClicado = (primeiroIettClicado != null && primeiroIettClicado != "")?Long.valueOf(primeiroIettClicado):null;
if(tipoAcompanhamento != null && tipoAcompanhamento.getEstruturaEtt() != null && longPrimeiroItemClicado != null){
ItemEstruturaIett itemFilho = (ItemEstruturaIett) itemEstruturaDao.buscar(ItemEstruturaIett.class, longPrimeiroItemClicado);
if(itemFilho != null && itemFilho.getItemEstruturaIett() != null){
codItemPai = itemFilho.getItemEstruturaIett().getCodIett().toString();
}
if("".equals(codItemPai)) {
codItemPai = itemFilho.getCodIett().toString();
}
}
String pagina = "";
String situacaoAba = "";
List<Aba> listAbas = null;
if (getAbaSuperior().equals(Dominios.SIM)) {
listAbas = abaDao.getListaAbasSuperiorComAcesso(tipoAcompanhamento, gruposUsuario);
} else {
listAbas = abaDao.getListaAbasComAcesso(tipoAcompanhamento, gruposUsuario);
}
ValidaPermissao validaPermissao = new ValidaPermissao();
for (Iterator it = listAbas.iterator();it.hasNext();) {
Aba aba = (Aba) it.next();
boolean possuiAba = false;
if (acompReferenciaItem != null){
if(aba.getFuncaoFun()!= null){
EstruturaDao estruturaDao = new EstruturaDao(request);
Set listaFuncoes = acompReferenciaItem.getItemEstruturaIett().getEstruturaEtt().getEstruturaFuncaoEttfs();
Iterator itListaFuncoes = listaFuncoes.iterator();
while(itListaFuncoes.hasNext()){
EstruturaFuncaoEttf funcao = (EstruturaFuncaoEttf) itListaFuncoes.next();
if(aba.getFuncaoFun().getCodFun().equals(funcao.getFuncaoFun().getCodFun())){
possuiAba = true;
break;
}
}
} else{
possuiAba = true;
}
}
if (getAbaSuperior().equals(Dominios.NAO)) {
// Mantis 0011550: Ocultar a aba de parecer se o usu�rio n�o possuir permiss�o para visualiza��o
if ("SITUACAO".equals(aba.getNomeAba())){
//Obtem a lista das fun��es de acompanhamento que podem visualizar pareceres.
List listaPermissaoTpfa = validaPermissao.permissaoVisualizarPareceres(tipoAcompanhamento,gruposUsuario);
AcompRelatorioDao arelDao = new AcompRelatorioDao(request);
//conta os pareceres que existem das funcoes de acompanhamento que podem visualizar pareceres.
if (arelDao.ContaArelsDasFuncoesDoAri(acompReferenciaItem, listaPermissaoTpfa) == 0){
possuiAba = false;
}
}
}
if(!aba.getNomeAba().equals("SITUACAO_INDICADORES") && possuiAba) {
String nomeAba = aba.getNomeAba();
String labelAba = abaDao.getLabelAbaEstrutura(aba, acompReferenciaItem.getItemEstruturaIett().getEstruturaEtt());
situacaoAba = ABA_DESABILITADA;
if (!"NIVEL_PLANEJAMENTO".equals(nomeAba)) {
if (funcaoSelecionada.equals(nomeAba)) {
situacaoAba = ABA_HABILITADA;
}
if ("PONTOS_CRITICOS".equals(nomeAba)) {
ItemEstruturaIett iett = null;
String codIettRelacao = this.pageContext.getRequest().getParameter("codIettRelacao");
if(acompReferenciaItem != null) {
iett = acompReferenciaItem.getItemEstruturaIett();
} else if(codIettRelacao != null && !"".equals(codIettRelacao) && !"situacaoDatas".equals(funcaoSelecionada) && !"situacaoIndicadores".equals(funcaoSelecionada)){
iett = (ItemEstruturaIett) itemEstruturaDao.buscar(ItemEstruturaIett.class, Long.valueOf(codIettRelacao));
}
if(iett != null) {
// verifica��o dos pontos cr�ticos
try {
Collection pontosCriticos = Collections.EMPTY_LIST;
pontosCriticos = pontoCriticoDao.getPontosCriticosNaoSolucionados(iett);
if (pontoCriticoDao.verificaDatasUltrapassadas(pontosCriticos) && !funcaoSelecionada.equals(aba.getNomeAba())) {
situacaoAba = "abapontocritico";
}
} catch (Exception e) {
situacaoAba = ABA_DESABILITADA;
}