funcaoDao = new FuncaoDao(request);
situacaoDao = new SituacaoDao(request);
itensSelecionados = new ArrayList();
XmlBuilder builder = new XmlBuilder();
imprimirEstrutura = ("S".equals(Pagina.getParamStr(request, "imprimirEstrutura"))) ? true : false;
String datahora = Data.parseDateHour(new Date()).substring(0,16); //este m�todo retorna dd/mm/aaaa hh:mm:ss:ssss. Fa�o Substring para poder pegar s� "dd/mm/aaaa hh:mm"
String orgao = request.getParameter("codOrgaoSelecionado");
ConfiguracaoCfg config = new ConfiguracaoDao(null).getConfiguracao();
String titulo = config.getTituloSistema();
String tituloItens = "";
String cabecalho = "Rela��o dos Itens da Estrutura do " + titulo;
String indTipoRelatorio = Pagina.getParamStr(request, "indTipoRelatorio");
//Pegando os crit�rios que foram selecionados como filtro
String criteriosCom = Pagina.getParamStr(request, "criteriosIncluidosCom");
String criteriosSem = Pagina.getParamStr(request, "criteriosIncluidosSem");
String[] criteriosParaFiltrarCom = (!"".equals(criteriosCom.trim())) ? criteriosCom.split("\\|") : new String[] {};
String[] criteriosParaFiltrarSem = (!"".equals(criteriosSem.trim())) ? criteriosSem.split("\\|") : new String[] {};
List listaCriteriosCom = new ArrayList();
List listaCriteriosSem = new ArrayList();
for(int i = 0; i < criteriosParaFiltrarCom.length; i++){
listaCriteriosCom.add(criteriosParaFiltrarCom[i]);
}
for(int i = 0; i < criteriosParaFiltrarSem.length; i++){
listaCriteriosSem.add(criteriosParaFiltrarSem[i]);
}
//Pegando as situacoes que foram selecionados como filtro
String situacoes = Pagina.getParamStr(request, "situacoesIncluidas");
String[] situacoesParaFiltrar = (!"".equals(situacoes.trim())) ? situacoes.split("\\|") : new String[] {};
List listaSituacoes = new ArrayList();
for(int i = 0; i < situacoesParaFiltrar.length; i++){
listaSituacoes.add(situacoesParaFiltrar[i]);
}
//Pegando o �rg�o selecionado
OrgaoOrg orgaoResponsavel = new OrgaoOrg();
if(!"".equals(orgao) && orgao != null){
orgaoResponsavel = (OrgaoOrg) dao.buscar(OrgaoOrg.class, Long.valueOf(orgao));
}
String orgaoEscolhido = (orgaoResponsavel.getCodOrg() != null) ? orgaoResponsavel.getSiglaOrg() : "Todos os �rg�os";
if("T".equals(Pagina.getParamStr(request, "todosCheck"))){
tituloItens = "Todos";
}
else if("M".equals(Pagina.getParamStr(request, "todosCheck"))){
tituloItens = "Monitorados";
}
else if("N".equals(Pagina.getParamStr(request, "todosCheck"))){
tituloItens = "N�o Monitorados";
}
else {
tituloItens = "Conforme Rela��o Informada Pelo Usu�rio";
}
ItemEstruturaDao itemEstruturaDao = new ItemEstruturaDao(request);
ItemEstruturaIett item = new ItemEstruturaIett();
if(!imprimirEstrutura){
item = (ItemEstruturaIett) itemEstruturaDao.buscar(ItemEstruturaIett.class, Long.valueOf(Pagina.getParamStr(request, "codIett")));
}
builder.addNode("relatorio",
"titulo=\"" + builder.normalize(Util.normalizaCaracterMarcador(cabecalho)) + "\"" +
" datahora=\"" + datahora + "\"");
geraXMLCapa(builder, titulo, tituloItens, orgaoEscolhido, listaCriteriosCom, listaCriteriosSem, listaSituacoes);
builder.addNode("item");
String[] filhos = request.getParameterValues("itemFilho");
if(filhos != null){
for(int i=0; i < filhos.length;i++){
itensSelecionados.add((ItemEstruturaIett) itemEstruturaDao.buscar(ItemEstruturaIett.class, Long.valueOf(filhos[i])));
}
}
List listaFilhos = new ArrayList();
if(!imprimirEstrutura){
//listaFilhos.addAll(itemEstruturaDao.getArvoreItens(itensSelecionados, item));
listaFilhos.addAll(itensSelecionados);
}
else {
// long codIettPai = Pagina.getParamLong(request, "codIettPaiImprimir");
// ItemEstruturaIett iettPai = null;
// if(codIettPai != 0){
// iettPai = (ItemEstruturaIett) itemEstruturaDao.buscar(ItemEstruturaIett.class, Long.valueOf(codIettPai));
// }
//listaFilhos.addAll(itemEstruturaDao.getArvoreItens(itensSelecionados,iettPai));
listaFilhos.addAll(itensSelecionados);
}
List listaFilhosOrdenada = new ArrayList(itemEstruturaDao.getItensOrdenados(listaFilhos, null));
//Iterator itFilhos = listaFilhos.iterator();
Iterator itFilhos = listaFilhosOrdenada.iterator();
while(itFilhos.hasNext()){
AtributoEstruturaListagemItens atbList = (AtributoEstruturaListagemItens) itFilhos.next();
//ItemEstruturaIett filho = (ItemEstruturaIett) itFilhos.next();
ItemEstruturaIett filho = atbList.getItem();
String nomeDinamico = "".equals(atbList.getDescricao().trim()) ? filho.getNomeIett() : atbList.getDescricao();
geraXMLEstrutura(builder, atbList.getItem(), nomeDinamico, indTipoRelatorio, orgao, request);
}
builder.closeNode("item");
this.geraXMLTotalizador(builder);
builder.closeNode("relatorio");
return builder.toStringBuffer();
}