package gcom.gui.arrecadacao.banco; import gcom.arrecadacao.Arrecadador; import gcom.arrecadacao.FiltroArrecadador; import gcom.arrecadacao.FiltroAvisoBancario; import gcom.arrecadacao.aviso.AvisoBancario; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.util.Util; import gcom.util.filtro.ParametroNulo; import gcom.util.filtro.ParametroSimples; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Collection; import java.util.Date; import java.util.Iterator; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; public class ExibirProcessoDoisInserirAvisoBancarioAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // Declaracao de Variaveis principais ActionForward retorno = actionMapping .findForward("exibirInserirAvisoBancarioProcessoDois"); Fachada fachada = Fachada.getInstancia(); HttpSession sessao = httpServletRequest.getSession(false); InserirAvisoBancarioActionForm form = (InserirAvisoBancarioActionForm) actionForm; // Declaracao de Variaveis principais form.setAvisoBancario(null); // Inicializacao de variaveis de pesquisa String idArrecadador = form.getCodigoArrecadador(); String dataLancamento = form.getDataLancamento(); // Inicializacao de variaveis de pesquisa Arrecadador arrecadadorVolta = (Arrecadador)sessao.getAttribute("arrecadador"); String data = (String)sessao.getAttribute("data"); if((sessao.getAttribute("arrecadador") != null && !arrecadadorVolta.getId().toString().equalsIgnoreCase(idArrecadador)) || (data != null && !data.equalsIgnoreCase("") && !data.equalsIgnoreCase(dataLancamento))) { form.setTipoAviso(""); form.setNumeroDocumento(""); form.setDataRealizacao(""); form.setValorArrecadacao(""); form.setValorDevolucao(""); form.setValorDeducoes(""); form.setValorAviso(""); } // Filtro de Arrecadador caso usu�rio n�o tenho pesquisado no primeiro // processo Arrecadador arrecadador = null; Collection<Arrecadador> collectionArrecadador = null; if (idArrecadador != null && !idArrecadador.trim().equals("")) { FiltroArrecadador filtroArrecadador = new FiltroArrecadador(); filtroArrecadador.adicionarParametro(new ParametroSimples( FiltroArrecadador.CODIGO_AGENTE, idArrecadador)); filtroArrecadador .adicionarCaminhoParaCarregamentoEntidade("cliente"); collectionArrecadador = fachada.pesquisar(filtroArrecadador, Arrecadador.class.getName()); if (!collectionArrecadador.isEmpty()) { Iterator iterator = collectionArrecadador.iterator(); if (iterator.hasNext()) arrecadador = (Arrecadador) iterator.next(); form.setNomeArrecadador(arrecadador.getCliente().getNome()); sessao.setAttribute("arrecadador", arrecadador); } else { throw new ActionServletException( "atencao.arrecadador.codigo.inexistente", null, idArrecadador); } } // Inicializacao de filtrode aviso bancario FiltroAvisoBancario filtroAvisoBancario = new FiltroAvisoBancario(); if (idArrecadador != null && !idArrecadador.equals("")) { filtroAvisoBancario.adicionarParametro(new ParametroSimples( FiltroAvisoBancario.ARRECADADOR_CODIGO_AGENTE, idArrecadador)); } Date dataAtual = new Date(); Date dataLancamentoFormatada = null; if (dataLancamento != null && !dataLancamento.equals("")) { SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy"); try { dataLancamentoFormatada = format.parse(dataLancamento); } catch (ParseException ex) { throw new ActionServletException("erro.sistema"); } if (dataLancamentoFormatada.after(dataAtual)) { String dataCorrente = format.format(dataAtual); throw new ActionServletException( "atencao.data.lancamento.posterior", null, dataCorrente); } else { filtroAvisoBancario.adicionarParametro(new ParametroSimples( FiltroAvisoBancario.DATA_LANCAMENTO, Util.formatarDataSemHora(dataLancamentoFormatada))); } } // Pesquisa de aviso bancario Collection<AvisoBancario> collectionAvisoBancario = fachada.pesquisar( filtroAvisoBancario, AvisoBancario.class.getName()); String numeroPagina = httpServletRequest.getParameter("numeroPagina"); if (collectionAvisoBancario == null || collectionAvisoBancario.isEmpty()) { if (numeroPagina.equals("3")) { retorno = actionMapping .findForward("exibirInserirAvisoBancarioProcessoDoisParaUm"); } else { retorno = actionMapping .findForward("exibirInserirAvisoBancarioProcessoDoisParaTres"); Short numeroSequencial = fachada .pesquisarValorMaximoNumeroSequencial( dataLancamentoFormatada, "" + arrecadador.getId()); if (numeroSequencial != null) { numeroSequencial = new Short("" + (numeroSequencial.intValue() + 1)); } else { numeroSequencial = 1; } form.setNumeroSequencial("" + numeroSequencial); } } else { filtroAvisoBancario.adicionarParametro(new ParametroNulo( FiltroAvisoBancario.DATA_REALIZADA)); // Inicializacao de filtrode aviso bancario // Pesquisa de aviso bancario filtroAvisoBancario.setCampoOrderBy(FiltroAvisoBancario.NUMERO_SEQUENCIAL); collectionAvisoBancario = fachada.pesquisar(filtroAvisoBancario, AvisoBancario.class.getName()); // Pesquisa de aviso bancario // Validacao de collection nao nula e nao vazia if (collectionAvisoBancario != null && !collectionAvisoBancario.isEmpty()) { httpServletRequest.setAttribute("collectionAvisoBancario", collectionAvisoBancario); } else { if (numeroPagina.equals("3")) { retorno = actionMapping .findForward("exibirInserirAvisoBancarioProcessoDoisParaUm"); } else { retorno = actionMapping .findForward("exibirInserirAvisoBancarioProcessoDoisParaTres"); form.setNumeroSequencial("1"); } } // Validacao de collection nao nula e nao vazia } return retorno; } }