List lista = itemEstPrevDao.getListaItemEstruturaPrevisao(itemAri.getItemEstruturaIett(), null);
//Melhoria de performance
//Iterator it = lista.iterator();
EfItemEstPrevisaoEfiep itemEstPrev = new EfItemEstPrevisaoEfiep();
//if (it.hasNext()){
if (lista != null && !lista.isEmpty()){
int colunas = 0;
int numeroColunasExibidas = 0;
String descFinanceiro[] = new String[3];
boolean mostrarDescFinanceiro[] = new boolean[3];
descFinanceiro[0] = configura.getRecursoDescValor1Cfg();
descFinanceiro[1] = configura.getRecursoDescValor2Cfg();
descFinanceiro[2] = configura.getRecursoDescValor3Cfg();
boolean mostrarValores[] = new boolean[6];
String descricoes[] = new String[6];
descricoes[0] = configura.getFinanceiroDescValor1Cfg();
descricoes[1] = configura.getFinanceiroDescValor2Cfg();
descricoes[2] = configura.getFinanceiroDescValor3Cfg();
descricoes[3] = configura.getFinanceiroDescValor4Cfg();
descricoes[4] = configura.getFinanceiroDescValor5Cfg();
descricoes[5] = configura.getFinanceiroDescValor6Cfg();
for(int i = 0; i < 6; i++){
mostrarValores[i] = itemEstRealizadoDao.getVerificarMostrarValorByPosicaoCfg(i);
if(mostrarValores[i]){
colunas++;
}
}
builder.addNode("evolucaoFinanceira", "colunasRealizadas=\"" + builder.normalize(String.valueOf(colunas)) + "\"");
builder.addNode("colunas");
builder.addClosedNode("coluna", "nome=\"Categoria Econ�mica\"");
builder.addClosedNode("coluna", "nome=\"Fonte\"");
//builder.addClosedNode("coluna", "nome=\"Aprovado\"");
//builder.addClosedNode("coluna", "nome=\"Revisado\"");
//int numeroColunasExibidas = 2; //Aprovado - Revisado
for(int i = 0; i < 3; i++){
mostrarDescFinanceiro[i] = itemEstRealizadoDao.getVerificarMostrarRecursoByPosicaoCfg(i);
if(mostrarDescFinanceiro[i]){
builder.addClosedNode("coluna", "nome=\"" + builder.normalize(Util.normalizaCaracterMarcador(descFinanceiro[i])) + "\"");
numeroColunasExibidas++;
}
}
for(int i = 0; i < 6; i++){
mostrarValores[i] = itemEstRealizadoDao.getVerificarMostrarValorByPosicaoCfg(i);
if(mostrarValores[i]){
builder.addClosedNode("coluna", "nome=\"" + builder.normalize(Util.normalizaCaracterMarcador(descricoes[i])) + "\"");
numeroColunasExibidas++;
}
}
builder.closeNode("colunas");
/*
* 13.62cm / numeroColunasExibidas = tamanho de cada coluna din�mica
* Quanto mais colunas, menos espa�o no relat�rio.
*/
double t = 13.62;
String tam = String.valueOf(t/numeroColunasExibidas) + "cm";
builder.addNode("colunasHeader");
for(int x = 1; x <= numeroColunasExibidas; x++){
builder.addClosedNode("colunaHeader", "tamanho=\"" + builder.normalize(Util.normalizaCaracterMarcador(tam)) + "\"");
}
builder.closeNode("colunasHeader");
double totFonAprovado = 0, totFonRevisado = 0;
double totGerAprovado = 0, totGerRevisado = 0;
double[] totFonValor = new double[6];
double[] totGerValor = new double[6];
/*Inicializar os valores...*/
for(int i = 0; i < 6; i++){
totFonValor[i] = 0;
totGerValor[i] = 0;
}
//Melhoria de performance
//Iterator itExe = listaExercicios.iterator();
//while(itExe.hasNext()){
for(Iterator itExe = listaExercicios.iterator(); itExe.hasNext();){
ExercicioExe exercicio = (ExercicioExe) itExe.next();
String exercicioDesc = exercicio.getDescricaoExe();
String exercicioDescTotal = exercicioDesc;
double totExeAprovado = 0, totExeRevisado = 0;
double[] totExeValor = new double[6];
/*Inicializar os valores...*/
for(int i = 0; i < 6; i++){
totExeValor[i] = 0;
}
lista = itemEstPrevDao.getListaItemEstruturaPrevisao(itemAri.getItemEstruturaIett(), exercicio);
//it = lista.iterator();
long codFonte = -1;
//while(it.hasNext()){
for(Iterator it = lista.iterator(); it.hasNext();){
itemEstPrev = (EfItemEstPrevisaoEfiep) it.next();
/* ler EfItemEstContaEfiec */
EfItemEstContaEfiec itemEstConta =
itemEstContaOrcDao.getItemEstruturaConta(
itemAri.getItemEstruturaIett(),
exercicio,
itemEstPrev.getFonteRecursoFonr(),
itemEstPrev.getRecursoRec());
/* verificar valores em Efier */
Double[] valores = itemEstRealizadoDao.getSomaItemEstruturaRealizado(
itemEstConta,
exercicio);
/* Ao trocar a fonte e ao iniciar imprimir linha de fonte */
if(codFonte != itemEstPrev.getFonteRecursoFonr().getCodFonr().longValue()){
/* se n�o � a primeira passada da fonte */
if(codFonte != -1){
builder.closeNode("fonte");
/* zerar os valores do total da fonte */
totFonAprovado = 0;
totFonRevisado = 0;
for(int i = 0; i < 6; i++){
totFonValor[i] = 0;
}
}
codFonte = itemEstPrev.getFonteRecursoFonr().getCodFonr().longValue();
//IMPRIMIR FONTE
builder.addNode("fonte", "nome=\"" + builder.normalize(Util.normalizaCaracterMarcador(itemEstPrev.getFonteRecursoFonr().getNomeFonr())) + "\" exercicio=\"" + builder.normalize(Util.normalizaCaracterMarcador(exercicioDesc)) + "\"");
exercicioDesc = "";
}
/* somar nos valores do total da fonte */
if(itemEstPrev.getValorAprovadoEfiep() != null){
totFonAprovado = totFonAprovado + itemEstPrev.getValorAprovadoEfiep().doubleValue();
totExeAprovado = totExeAprovado + itemEstPrev.getValorAprovadoEfiep().doubleValue();
}
if(itemEstPrev.getValorRevisadoEfiep() != null){
totFonRevisado = totFonRevisado + itemEstPrev.getValorRevisadoEfiep().doubleValue();
totExeRevisado = totExeRevisado + itemEstPrev.getValorRevisadoEfiep().doubleValue();
}
for(int i = 0; i < 6; i++){
if(mostrarValores[i]){
totFonValor[i] = totFonValor[i] + valores[i].doubleValue();
totExeValor[i] = totExeValor[i] + valores[i].doubleValue();
}
}
//IMPRIMIR RECURSO
builder.addNode("recursoFinanceiro", "nome=\"" + builder.normalize(Util.normalizaCaracterMarcador(itemEstPrev.getRecursoRec().getNomeRec())) + "\"");
//builder.addClosedNode("rec", "valor=\"" + builder.normalize(Util.formataNumeroSemDecimal(itemEstPrev.getValorAprovadoEfiep().doubleValue()))+ "\"");
//builder.addClosedNode("rec", "valor=\"" + builder.normalize(Util.formataNumeroSemDecimal(itemEstPrev.getValorRevisadoEfiep().doubleValue()))+ "\"");
for(int i = 0; i < 3; i++){
if(mostrarDescFinanceiro[i]){
if(i == 0)
builder.addClosedNode("rec", "valor=\"" + builder.normalize(Pagina.trocaNullNumeroSemDecimal(itemEstPrev.getValorAprovadoEfiep())) + "\"");
if(i == 1)
builder.addClosedNode("rec", "valor=\"" + builder.normalize(Pagina.trocaNullNumeroSemDecimal(itemEstPrev.getValorRevisadoEfiep())) + "\"");
}
}
for(int i = 0; i < 6; i++){
if(mostrarValores[i])