* @version N/C
* @return StringBuffer
* @throws ECARException
*/
public StringBuffer getXml(HttpServletRequest request) throws ECARException{
XmlBuilder builder = new XmlBuilder();
acompReferenciaDao = new AcompReferenciaDao(request);
acompReferenciaItemDao = new AcompReferenciaItemDao(request);
acompRealFisicoDao = new AcompRealFisicoDao(request);
configDao = new ConfiguracaoDao(request);
corDao = new CorDao(request);
configRelDao = new ConfigRelatorioCfgrelDAO(request);
estruturaDao = new EstruturaDao(request);
estAtribDao = new EstruturaAtributoDao(request);
estFuncDao = new EstruturaFuncaoDao(request);
itemEstruturaDao = new ItemEstruturaDao(request);
itemEstPrevDao = new ItemEstruturaPrevisaoDao(request);
itemEstRealizadoDao = new ItemEstruturaRealizadoDao(request);
itemEstContaOrcDao = new ItemEstruturaContaOrcamentoDao(request);
itemEstrtIndResulDao = new ItemEstrtIndResulDao(request);
this.request = request;
config = configDao.getConfiguracao();
pathEcar = request.getContextPath();
configRel = configRelDao.getConfigRelatorioCfgrel();
pathRaiz = config.getRaizUpload();
ehSeparadoPorOrgao = false;
AcompReferenciaAref mesReferencia = null;
String nomeReferencia = "";
EmpresaDao empresaDao = new EmpresaDao(request);
List confg = empresaDao.listar(EmpresaEmp.class, null);
EmpresaEmp empresa = new EmpresaEmp();
if(confg != null && confg.size() > 0){
empresa = (EmpresaEmp) confg.iterator().next();
}
String opcaoModelo = Pagina.getParamStr(request, "opcaoModelo");
ModeloRelatorioMrel mrel = new ModeloRelatorioMrelDAO(request).getModeloRelatorioByCodAlfa(opcaoModelo);
String strMesReferencia = Pagina.getParamStr(request, "mesReferencia");
if(!strMesReferencia.equals("")) {
mesReferencia = (AcompReferenciaAref) acompReferenciaDao.buscar(AcompReferenciaAref.class, Long.valueOf(strMesReferencia));
}
if(mesReferencia != null) {
this.tipoAcomp = mesReferencia.getTipoAcompanhamentoTa().getDescricaoTa();
this.exigeLiberarAcompanhamento = mesReferencia.getTipoAcompanhamentoTa().getIndLiberarAcompTa();
if(mesReferencia.getTipoAcompanhamentoTa().getIndSepararOrgaoTa() != null && mesReferencia.getTipoAcompanhamentoTa().getIndSepararOrgaoTa().equals("S"))
ehSeparadoPorOrgao = true;
}
/*Definindo o t�tulo*/
String titulo = "";
if(!"".equals(Pagina.getParamStr(request, "tituloCustomizado")))
titulo = Pagina.getParamStr(request, "tituloCustomizado");
else {
if(configRel != null && !"".equals(configRel.getTituloCfgrel()))
titulo = configRel.getTituloCfgrel();
else
titulo = config.getTituloSistema();
}
/*Definindo o rodap�*/
String rodape = geraDataRodape();
if(!"".equals(Pagina.getParamStr(request, "rodapeCustomizado")))
rodape += " - " + Pagina.getParamStr(request, "rodapeCustomizado");
else {
if(configRel != null && configRel.getNotaRodapeCfgrel() != null && !"".equals(configRel.getNotaRodapeCfgrel()))
rodape += " - " + configRel.getNotaRodapeCfgrel();
}
String arisSelecionados = Pagina.getParamStr(request, "arisSelecionados");
/*
* Se arisSelecionados == "", � por que o relat�rio foi pedido da tela de Op�oes,
* ou seja, se opcaoModelo == ECAR-001B, s�o escolhidos todos os itens de um �rg�o espec�fico;
* se opcaoModelo == ECAR-002B, s�o escolhidos todos os itens que possuem uma situa��o espec�fica.
*
* Obs.: opcaoModelo s� vai ter esses valores se arisSelecionados == "". Caso arisSelecionados != "",
* � por que os itens foram filtrados e as op��es escolhidas vir�o da tela de Formato.
*/
List codArisSelecionados = new ArrayList();
if(!"".equals(arisSelecionados)){
String[] codAris = arisSelecionados.split(";");
for(int i = 0; i < codAris.length; i++){
if(!"".equals(codAris[i]) && !";".equals(codAris[i])){
codArisSelecionados.add(Long.valueOf(codAris[i]));
}
}
}
Util.liberarImagem();
//verifica qual vai ser o nome da referencia. Se for mais de uma, ser� consolidado.
if(ehSeparadoPorOrgao && acompReferenciaDao.getListaMesmaReferenciaDiaMesAno(mesReferencia).size() > 1){
nomeReferencia = mesReferencia.getDiaAref() + "/" + mesReferencia.getMesAref() + "/" + mesReferencia.getAnoAref() + " - " + ConstantesECAR.LABEL_ORGAO_CONSOLIDADO;
} else {
nomeReferencia = mesReferencia.getNomeAref();
}
/* In�cio do relat�rio */
builder.addNode("relatorio",
" titulo=\"" + builder.normalize(Util.normalizaCaracterMarcador(titulo)) + "\"" +
" mesReferencia=\"" + builder.normalize(Util.normalizaCaracterMarcador(nomeReferencia)) + "\"" +
" codModelo=\"" + builder.normalize(Util.normalizaCaracterMarcador(mrel.getCodAlfaMrel() + " - " + mrel.getClassifMrel())) + "\"" +
" rodape=\"" + builder.normalize(Util.normalizaCaracterMarcador(rodape)) + "\"" +
" caminhoImagemCab=\"" + builder.normalize(Util.normalizaCaracterMarcador(pathRaiz + empresa.getLogotipoRelatorioEmp())) + "\"" +
"");
modelo = mrel.getCodAlfaMrel();
List referenciasAgrupadas = new ArrayList();
if(ehSeparadoPorOrgao) {
if(codArisSelecionados != null && !codArisSelecionados.isEmpty()) {
referenciasAgrupadas = montaListaReferenciasAgrupadas(codArisSelecionados);
} else {
//op��o de filtrar por �rg�o
if("ECAR-001B".equalsIgnoreCase(opcaoModelo)) {
String nomeCodOrg = Pagina.getParamStr(request, "chaveEscolhida");
if(!nomeCodOrg.equals("")) {
OrgaoDao orgaoDao = new OrgaoDao (request);
OrgaoOrg orgao = (OrgaoOrg) orgaoDao.buscar(OrgaoOrg.class, Long.valueOf(nomeCodOrg));
AcompReferenciaAref arefOrgao = acompReferenciaDao.getAcompReferenciaByOrgaoDiaMesAnoAref(orgao, mesReferencia);
if(arefOrgao != null)
referenciasAgrupadas.add(arefOrgao);
}
//op��o de filtrar por situacao
} else if("ECAR-002B".equalsIgnoreCase(opcaoModelo)){
referenciasAgrupadas = acompReferenciaDao.getListaMesmaReferenciaDiaMesAno(mesReferencia);
}
}
} else {
referenciasAgrupadas.add(mesReferencia);
}
if(referenciasAgrupadas != null) {
Iterator itReferenciasAgrupadas = referenciasAgrupadas.iterator();
while(itReferenciasAgrupadas.hasNext()) {
mesReferencia = (AcompReferenciaAref) itReferenciasAgrupadas.next();
List arels = acompReferenciaItemDao.getAcompRelatorioAcompanhamentoByAris(codArisSelecionados, mesReferencia, opcaoModelo, Pagina.getParamStr(request, "chaveEscolhida"), Pagina.getParamStr(request, "tipoFuncAcompTpfa"));
geraXmlPrincipal(builder, arels, mesReferencia.getOrgaoOrg());
}
}
builder.closeNode("relatorio");
return builder.toStringBuffer();
}