// Nova regra (Mantis 6282) - inicio
long anoMesArfMaisRecente = 0;
long anoMesArfMaisAntigo = 0;
AcompRealFisicoArf arfMaisRecente = acompRealFisicoDao.getArfMaisRecenteItem(item);
if(arfMaisRecente != null) {
String mesAux = arfMaisRecente.getMesArf().toString();
if(arfMaisRecente.getMesArf().longValue() < 10) {
mesAux = "0" + mesAux;
}
anoMesArfMaisRecente = Long.parseLong(arfMaisRecente.getAnoArf().toString() + mesAux);
}
AcompRealFisicoArf arfMaisAntigo = acompRealFisicoDao.getArfMaisAntigoItem(item);
if(arfMaisAntigo != null) {
String mesAux = arfMaisAntigo.getMesArf().toString();
if(arfMaisAntigo.getMesArf().longValue() < 10) {
mesAux = "0" + mesAux;
}
anoMesArfMaisAntigo = Long.parseLong(arfMaisAntigo.getAnoArf().toString() + mesAux);
}
// Nova regra (Mantis 6282) - fim
/* Se n�o tiver nenhuma das datas */
if (item.getDataInicioIett() == null && item.getDataTerminoIett() == null){
resultado = q.list();
}
else {
int mes = 0;
int ano = 0;
int mesFinal = 0;
int anoFinal = 0;
/* Se tiver as 2 datas */
if(item.getDataInicioIett() != null && item.getDataTerminoIett() != null){
mes = Data.getMes(item.getDataInicioIett()) + 1;
ano = Data.getAno(item.getDataInicioIett());
mesFinal = Data.getMes(item.getDataTerminoIett()) + 1;
anoFinal = Data.getAno(item.getDataTerminoIett());
}
/* se s� tiver a data inicial */
else if (item.getDataInicioIett() != null && item.getDataTerminoIett() == null){
mes = Data.getMes(item.getDataInicioIett()) + 1;
ano = Data.getAno(item.getDataInicioIett());
mesFinal = 0;
anoFinal = 0;
List exerciciosTemp = q.list();
if(exerciciosTemp != null && exerciciosTemp.size() > 0){
ExercicioExe exercicioFinal = (ExercicioExe) exerciciosTemp.get(exerciciosTemp.size()-1);
mesFinal = Data.getMes(exercicioFinal.getDataFinalExe());
anoFinal = Data.getAno(exercicioFinal.getDataFinalExe());
}
}
/* se s� tiver a data final */
else {
mes = Data.getMes(item.getDataTerminoIett()) + 2; //Acrescento +1 ao mes e ao ano da data final para ter certeza de que n�o
ano = Data.getAno(item.getDataTerminoIett()) + 1; //entre no while se n�o achar nenhum exercicio na query abaixo
mesFinal = Data.getMes(item.getDataTerminoIett()) + 1;
anoFinal = Data.getAno(item.getDataTerminoIett());
List exerciciosTemp = q.list();
if(exerciciosTemp != null && exerciciosTemp.size() > 0){
ExercicioExe exercicioInicial = (ExercicioExe) exerciciosTemp.get(0);
mes = Data.getMes(exercicioInicial.getDataInicialExe());
ano = Data.getAno(exercicioInicial.getDataInicialExe());
}
}
// Nova regra (Mantis 6282) - inicio
String mesAux = String.valueOf(mes);
if(mes < 10) {
mesAux = "0" + mesAux;
}
long anoMesItemInicio = Long.parseLong(String.valueOf(ano) + mesAux);
mesAux = String.valueOf(mesFinal);
if(mesFinal < 10) {
mesAux = "0" + mesAux;
}
long anoMesItemFim = Long.parseLong(String.valueOf(anoFinal) + mesAux);
if(anoMesArfMaisAntigo > 0 && anoMesArfMaisAntigo > anoMesItemInicio) {
mes = arfMaisAntigo.getMesArf().intValue();
ano = arfMaisAntigo.getAnoArf().intValue();
}
/*if(anoMesArfMaisRecente > 0 && anoMesArfMaisRecente > anoMesItemFim) {
mesFinal = arfMaisRecente.getMesArf().intValue();
anoFinal = arfMaisRecente.getAnoArf().intValue();
}*/
// Nova regra (Mantis 6282) - fim
int anoExeIni = 0;
double totalRealizado = 0;
double totalPrevisto = 0;
while(ano < anoFinal || (ano == anoFinal && mes <= mesFinal)){
ExercicioExe exercicio = acompReferenciaDao.getExercicio(String.valueOf(ano), String.valueOf(mes));
if(exercicio != null && !resultado.contains(exercicio)){
anoExeIni = Data.getAno(exercicio.getDataInicialExe());
if(anoExeIni <= anoFinal && anoExeIni >= ano) {
resultado.add(exercicio);
if (ari!=null) {
List indResultados;
indResultados = acompRealFisicoDao.getIndResulByAcompRefItemBySituacao(ari, tipoSelecao, false);
Iterator itIndResult = indResultados.iterator();
while(itIndResult.hasNext()) {
AcompRealFisicoArf arf = (AcompRealFisicoArf) itIndResult.next();
// verificar se valor realizado
double realizadoNoExercicio = 0;
double previstoNoExercicio = 0;
if ("S".equals(arf.getItemEstrtIndResulIettr().getIndAcumulavelIettr())) {
realizadoNoExercicio = acompRealFisicoDao.getQtdRealizadaExercicio(exercicio, arf.getItemEstrtIndResulIettr(),ari.getAcompReferenciaAref());
} else {
realizadoNoExercicio = acompRealFisicoDao.getQtdRealizadaExercicioNaoAcumulavel(exercicio,arf.getItemEstrtIndResulIettr(),ari.getAcompReferenciaAref());
}
previstoNoExercicio = new ItemEstrtIndResulDao(request).getQtdPrevistoExercicio(arf.getItemEstrtIndResulIettr(), exercicio);
if (arf.getItemEstrtIndResulIettr() != null) {
if ("S".equals(arf.getItemEstrtIndResulIettr().getIndAcumulavelIettr())) {
totalRealizado += realizadoNoExercicio;
totalPrevisto += previstoNoExercicio;
} else {
totalRealizado = realizadoNoExercicio;
totalPrevisto = previstoNoExercicio;