/** * Método do 1º step-method * * @param comp * @param prest * @throws ValidateException */ public AbstractFaturamento informarDados(String comp, Prestador prest, Integer tipoFaturamento) throws ValidateException { SearchAgent sa = new SearchAgent(); sa.addParameter(new Equals("competencia", Utils.gerarCompetencia(comp))); List<AbstractFaturamento> faturamentos = sa.list(getKlass(tipoFaturamento)); if (faturamentos.isEmpty()) { throw new ValidateException("O faturamento desta competência ainda não foi processado"); } sa.addParameter(new Equals("status", Constantes.FATURAMENTO_ABERTO)); faturamentos = sa.list(Faturamento.class); if (faturamentos.isEmpty()) { throw new ValidateException("O faturamento desta competência não está na situação Aberto"); } AbstractFaturamento faturamento = null; if (tipoFaturamento == FATURAMENTO_NORMAL) faturamento = prest.getFaturamento(Utils.gerarCompetencia(comp)); if (tipoFaturamento == FATURAMENTO_PASSIVO) faturamento = prest.getFaturamentoPassivo(Utils.gerarCompetencia(comp)); boolean isPrestadorTemFaturamento = faturamento == null ? false : true; if (isPrestadorTemFaturamento) { if (faturamento.getStatus() == Constantes.FATURAMENTO_FECHADO) { throw new ValidateException( "O faturamento do Prestador desta competência não está na situação Aberto"); } } competencia = comp; prestador = prest; tipo = tipoFaturamento; return faturamento; }