*/
public StringBuffer getXml(HttpServletRequest request) throws ECARException{
ConfiguracaoDao configuracaoDao = new ConfiguracaoDao(null);
this.itemDao = new ItemEstruturaDao(null);
TipoAcompanhamentoDao tipoAcompDao = new TipoAcompanhamentoDao(null);
AcompReferenciaDao acompReferenciaDao = new AcompReferenciaDao(null);
this.acompRefItemDao = new AcompReferenciaItemDao(null);
OrgaoDao orgaoDao = new OrgaoDao(null);
Util.liberarImagem();
this.request = request;
String codigosItensSelecionadosTela = Pagina.getParamStr(request, "codigosItemSelecionadosTela");
String mesReferencia = Pagina.getParamStr(request, "mesReferencia");
String codTipoAcompanhamento = Pagina.getParamStr(request, "codTipoAcompanhamento");
String codigosAri = Pagina.getParamStr(request, "codigosAri");
String orgaoResponsavelNome = Pagina.getParamStr(request, "orgaoResponsavel");
codAriFilhos = request.getParameterValues("codAriFilhos");
String tela = Pagina.getParamStr(request, "tela");
TipoAcompanhamentoTa tipoAcomp = null;
ItemEstruturaIett iett = null;
OrgaoOrg orgao = null;
String nomeReferencia = "";
AcompReferenciaAref arefOrgao = null;
Iterator itListaOrgaos = null;
String codigosItensSelecionados = "";
List listaItensSelecionadosComDescendentes = new ArrayList();
ultimo = false;
this.listaOrgaos = new ArrayList();
/* criar classe para gera��o de XML */
XmlBuilder builder = new XmlBuilder();
configura = configuracaoDao.getConfiguracao();
listFunAcomp = new ArrayList();
posicoes = false;
funcoes = false;
dadosGerais = false;
indicadores = false;
financeiro = false;
/* atribui o endere�o http */
String protocol = ( request.getRequestURL().indexOf("https") == 0 ? "https://" : "http://" );
realPath = protocol + request.getLocalName() + ":" + request.getLocalPort();
this.defineFuncoes();
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"
boolean ehSeparadoPorOrgao = false;
if(codTipoAcompanhamento != null && !codTipoAcompanhamento.equals("")) {
tipoAcomp = (TipoAcompanhamentoTa) tipoAcompDao.buscar(TipoAcompanhamentoTa.class, Long.valueOf(codTipoAcompanhamento));
}
if(tipoAcomp != null && tipoAcomp.getIndSepararOrgaoTa() != null && tipoAcomp.getIndSepararOrgaoTa().equals("S")) {
ehSeparadoPorOrgao = true;
} else {
//se nao for separado por orgao, o �rgao vai ser vazio
ultimo = true;
}
if(mesReferencia != null && !mesReferencia.equals("")) {
this.aref = (AcompReferenciaAref) acompReferenciaDao.buscar(AcompReferenciaAref.class, Long.valueOf(mesReferencia));
}
String tipoDadosGerais = Pagina.getParamStr(request, "indTipoDadosGerais");
if("S".equals(Pagina.getParamStr(request, "dadosGerais"))) {
if("L".equals(tipoDadosGerais)) {
tipoDadosGerais = "Rela��o";
} else if("R".equals(tipoDadosGerais)) {
tipoDadosGerais = "Resumo";
} else if("C".equals(tipoDadosGerais)) {
tipoDadosGerais = "Completo";
}
} else {
tipoDadosGerais = "";
}
//verifica qual vai ser o nome da referencia. Se for mais de uma, ser� consolidado.
if(acompReferenciaDao.getListaMesmaReferenciaDiaMesAno(aref).size() > 1){
nomeReferencia = ConstantesECAR.LABEL_ORGAO_CONSOLIDADO;
} else {
nomeReferencia = aref.getNomeAref();
}
builder.addNode("relatorio",
"titulo=\"" + builder.normalize(Util.normalizaCaracterMarcador(this.configura.getTituloSistema())) + "\"" +
" datahora=\"" + builder.normalize(Util.normalizaCaracterMarcador(datahora)) + "\"" +
" tipoAcomp=\"" + builder.normalize(Util.normalizaCaracterMarcador(tipoAcomp.getDescricaoTa())) + "\"" +
" mesReferencia=\""+ builder.normalize(Util.normalizaCaracterMarcador(nomeReferencia + " (" + aref.getDiaAref() + "/" + aref.getMesAref() + "/" + aref.getAnoAref() + ")")) +"\"" +
" tipoDadosGerais=\"" + builder.normalize(Util.normalizaCaracterMarcador(tipoDadosGerais)) + "\"");
if(!codigosAri.equals("") &&
//se for separado por orgao e a lista nao vier separada por orgao
((ehSeparadoPorOrgao && !codigosItensSelecionadosTela.contains("_org")) ||
//se a lista de itens nao tiver sido montada
codigosItensSelecionadosTela.equals(""))){
codigosItensSelecionadosTela = montaListaItensOrgaosPeloAri(codigosAri, ehSeparadoPorOrgao);
} else {
if(ehSeparadoPorOrgao)
montaListaOrgaosPelosItens(codigosItensSelecionadosTela);
}
if(!listaOrgaos.isEmpty())
itListaOrgaos = listaOrgaos.iterator();
while((itListaOrgaos != null && itListaOrgaos.hasNext()) || ultimo) {
if(itListaOrgaos != null && itListaOrgaos.hasNext())
orgao = (OrgaoOrg) itListaOrgaos.next();
else if(ultimo){
orgao = null;
ultimo = false;
}
if(ehSeparadoPorOrgao)
//descobre a referencia correspondente ao orgao
arefOrgao = acompReferenciaDao.getAcompReferenciaByOrgaoDiaMesAnoAref(orgao, this.aref);
else
arefOrgao = this.aref;
if(arefOrgao != null) {