package gcom.gui.arrecadacao; import gcom.arrecadacao.FiltroClassificarPagamentos; import gcom.arrecadacao.pagamento.FiltroPagamentoSituacao; import gcom.arrecadacao.pagamento.Pagamento; import gcom.arrecadacao.pagamento.PagamentoSituacao; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.util.Util; import gcom.util.filtro.ParametroNaoNulo; import gcom.util.filtro.ParametroSimples; import java.util.ArrayList; import java.util.Collection; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; public class FiltrarPagamentosAClassificarAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping.findForward("filtrarPagamentosRecuperacaoDeCreditoAction"); Fachada fachada = Fachada.getInstancia(); PagamentosAClassificarActionForm form = (PagamentosAClassificarActionForm) actionForm; Integer situacaoPagamento = new Integer(form.getIdSituacaoPagamento()); Integer referenciaArrecadacao = Util.formatarMesAnoComBarraParaAnoMes(form.getReferenciaArrecadacao()); String matriculaImovel = new String (form.getMatriculaImovel()); String dataPagamento = new String (form.getDataPagamento()); FiltroClassificarPagamentos filtroClassificarPagamentos = new FiltroClassificarPagamentos(FiltroClassificarPagamentos.ORDER_BY); if ( situacaoPagamento != null && referenciaArrecadacao != null ) { filtroClassificarPagamentos.adicionarParametro(new ParametroSimples(FiltroClassificarPagamentos.ID_SITUACAO_PAGAMENTO, situacaoPagamento)); filtroClassificarPagamentos.adicionarParametro(new ParametroSimples(FiltroClassificarPagamentos.REFERENCIA_ARRECADACAO, referenciaArrecadacao)); filtroClassificarPagamentos.adicionarParametro(new ParametroNaoNulo(FiltroClassificarPagamentos.ID_CONTA)); if (isMatriculaImovelPreenchida(matriculaImovel)) { filtroClassificarPagamentos.adicionarParametro(new ParametroSimples(FiltroClassificarPagamentos.ID_IMOVEL, matriculaImovel)); } if (isDataPagementoPreenchida(dataPagamento)) { filtroClassificarPagamentos.adicionarParametro(new ParametroSimples(FiltroClassificarPagamentos.DATA_PAGAMENTO, Util.converteStringParaDate(dataPagamento))); } } @SuppressWarnings("unchecked") Collection<Pagamento> colecaoPagamentos = (Collection<Pagamento>) getFachada().pesquisar(filtroClassificarPagamentos, Pagamento.class.getName());; if (colecaoPagamentos == null || colecaoPagamentos.isEmpty() ) { throw new ActionServletException("atencao.pesquisa.nenhumresultado"); }else{ Collection<Pagamento> colecaoPagamentosAClassificar = fachada.obterPagamentos(getIdPagamentos(colecaoPagamentos)); form.setColecaoPagamentosAClassificar(colecaoPagamentosAClassificar); form.setSituacaoPagamento(getDescricaoSituacaoPagamento(situacaoPagamento)); httpServletRequest.setAttribute("colecaoPagamentosAClassificar",colecaoPagamentosAClassificar); httpServletRequest.setAttribute("totalRegistros",colecaoPagamentosAClassificar.size()); httpServletRequest.setAttribute("situacaoPesquisada",colecaoPagamentosAClassificar.size()); httpServletRequest.setAttribute("qtdPagamentos",colecaoPagamentosAClassificar.size()); return retorno; } } private Collection<Integer> getIdPagamentos(Collection<Pagamento> pagamentos) { Collection<Integer> ids = new ArrayList<Integer>(); for (Pagamento pagamento : pagamentos) { ids.add(pagamento.getId()); } return ids; } private String getDescricaoSituacaoPagamento(Integer situacaoPagamento) { FiltroPagamentoSituacao filtroSituacao = new FiltroPagamentoSituacao(); filtroSituacao.adicionarParametro(new ParametroSimples(FiltroPagamentoSituacao.CODIGO, situacaoPagamento)); PagamentoSituacao pagamentoSituacao = (PagamentoSituacao) (getFachada().pesquisar(filtroSituacao, PagamentoSituacao.class.getName()).iterator().next()); return pagamentoSituacao.getDescricao(); } private boolean isMatriculaImovelPreenchida(String matriculaImovel) { return matriculaImovel != null && !matriculaImovel.equals(""); } private boolean isDataPagementoPreenchida(String dataPagamento) { return dataPagamento != null && !dataPagamento.equals(""); } }