*/
public void verificaEditarAcompRealFisico(UsuarioUsu usuario,
AcompReferenciaItemAri acompReferenciaItem) throws ECARException{
/* O USU�RIO DEVE POSSUIR FUN��O COM INFORMA ANDAMENTO = "S" */
if(!new ItemEstUsutpfuacDao(request).getFuncaoAcompInfAndamento(usuario, acompReferenciaItem.getItemEstruturaIett()))
throw new ECARException(new Mensagem(null).getMensagem("acompanhamento.realizadoFisico.naoEditar.usuarioSemPermissao"));
// Estava com erro o tratamento da data limite (BUG 2133)
Calendar dataAtual = Calendar.getInstance();
dataAtual.clear(Calendar.HOUR);
dataAtual.clear(Calendar.HOUR_OF_DAY);
dataAtual.clear(Calendar.MINUTE);
dataAtual.clear(Calendar.SECOND);
dataAtual.clear(Calendar.MILLISECOND);
dataAtual.clear(Calendar.AM_PM);
Calendar dataLimite = Calendar.getInstance();
dataLimite.setTime(acompReferenciaItem.getDataLimiteAcompFisicoAri());
dataLimite.clear(Calendar.HOUR);
dataLimite.clear(Calendar.HOUR_OF_DAY);
dataLimite.clear(Calendar.MINUTE);
dataLimite.clear(Calendar.SECOND);
dataLimite.clear(Calendar.MILLISECOND);
dataLimite.clear(Calendar.AM_PM);
/* PODE SER EDITADO AT� A DATA LIMITE */
if(dataAtual.compareTo(dataLimite) > 0)
throw new ECARException(new Mensagem(null).getMensagem("acompanhamento.realizadoFisico.naoEditar.dataLimite"));
/* O ARI DEVE ESTAR EM EDI��O */
if(acompReferenciaItem.getStatusRelatorioSrl().getCodSrl().intValue() == STATUS_LIBERADO)
throw new ECARException(new Mensagem(null).getMensagem("acompanhamento.realizadoFisico.naoEditar.liberado"));
/* SE DATA DE INICIO FOR NULA - (BUG 1935) */
//if(acompReferenciaItem.getItemEstruturaIett().getDataInicioIett() == null) {
// throw new ECARException(new Mensagem(null).getMensagem("acompanhamento.realizadoFisico.naoEditar.dataInicioNaoInformada"));
//}
Calendar dataInicioIett = Calendar.getInstance();
dataInicioIett.setTime(new ItemEstruturaDao(request).ObtemDataInicialItemEstrutura( acompReferenciaItem.getItemEstruturaIett()));
Calendar dataInicioAcomp = Calendar.getInstance();
dataInicioAcomp.setTime(acompReferenciaItem.getDataInicioAri());
dataInicioAcomp.clear(Calendar.HOUR);
dataInicioAcomp.clear(Calendar.HOUR_OF_DAY);
dataInicioAcomp.clear(Calendar.MINUTE);
dataInicioAcomp.clear(Calendar.SECOND);
dataInicioAcomp.clear(Calendar.MILLISECOND);
dataInicioAcomp.clear(Calendar.AM_PM);
// (BUG 1051): M�s/Ano da data de in�cio do acompanhamento deve ser posterior ou igual ao M�s/Ano da data informada no cadastro de programas e a��es.
String mesAcomp = "";
String mesIett = "";
if (dataInicioAcomp.get(Calendar.MONTH) < 10){
mesAcomp = "0" + String.valueOf(dataInicioAcomp.get(Calendar.MONTH));
} else {
mesAcomp = String.valueOf(dataInicioAcomp.get(Calendar.MONTH));
}
if (dataInicioIett.get(Calendar.MONTH) < 10){
mesIett = "0" + String.valueOf(dataInicioIett.get(Calendar.MONTH));
} else {
mesIett = String.valueOf(dataInicioIett.get(Calendar.MONTH));
}
String inicioAcomp = String.valueOf(dataInicioAcomp.get(Calendar.YEAR)) + mesAcomp;
String inicioIett = String.valueOf(dataInicioIett.get(Calendar.YEAR)) + mesIett;
if(Integer.parseInt(inicioIett) > Integer.parseInt(inicioAcomp)) {
throw new ECARException(new Mensagem(null).getMensagem("acompanhamento.realizadoFisico.naoEditar.dataInicioIettEAcomp"));
}
// String inicioAcomp = String.valueOf(dataInicioAcomp.get(Calendar.YEAR)) + String.valueOf(dataInicioAcomp.get(Calendar.MONTH));
// String inicioIett = String.valueOf(dataInicioIett.get(Calendar.YEAR)) + String.valueOf(dataInicioIett.get(Calendar.MONTH));
//
// if(Integer.parseInt(inicioIett) > Integer.parseInt(inicioAcomp)) {
// throw new ECARException(new Mensagem(null).getMensagem("acompanhamento.realizadoFisico.naoEditar.dataInicioIettEAcomp"));
// }
// (BUG 1051): Data atual deve ser posterior ou igual a data de in�cio do acompanhamento
if(dataAtual.before(dataInicioAcomp)) {
throw new ECARException(new Mensagem(null).getMensagem("acompanhamento.realizadoFisico.naoEditar.dataAtualAnteriorDataInicioAcompanhamento"));
}
}