package gcom.gui.arrecadacao.pagamento; import gcom.arrecadacao.ArrecadacaoForma; import gcom.arrecadacao.FiltroArrecadacaoForma; import gcom.arrecadacao.FiltroAvisoBancario; import gcom.arrecadacao.aviso.AvisoBancario; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.gui.StatusWizard; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Collection; 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; import org.apache.struts.validator.DynaValidatorActionForm; /** * Action que finaliza a primeira p�gina do processo de inserir pagamentos * * @author Pedro Alexandre * @created 16/02/2006 */ public class InserirPagamentosAvisoBancarioAction extends GcomAction { /** * Description of the Method * * @param actionMapping * Description of the Parameter * @param actionForm * Description of the Parameter * @param httpServletRequest * Description of the Parameter * @param httpServletResponse * Description of the Parameter * @return Description of the Return Value */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { //cria a vari�vel que vai armazenar o retorno ActionForward retorno = null; //cria uma inst�ncia da sess�o HttpSession sessao = httpServletRequest.getSession(false); //recupera o form DynaValidatorActionForm pagamentoActionForm = (DynaValidatorActionForm) actionForm; //cria uma inst�ncia da fachada Fachada fachada = Fachada.getInstancia(); //recupera os dados informados na p�gina de aviso banc�rio String tipoInclusao = (String) pagamentoActionForm.get("tipoInclusao"); String dataPagamento = (String) pagamentoActionForm.get("dataPagamento"); String idAvisoBancario = (String) pagamentoActionForm.get("idAvisoBancario"); String idFormaArrecadacao =(String) pagamentoActionForm.get("idFormaArrecadacao"); //se o tipo de inclus�o n�o for informado if(tipoInclusao == null || tipoInclusao.trim().equalsIgnoreCase("")){ //levanta a exce��o para a pr�xima camada throw new ActionServletException("atencao.naoinformado",null, "Tipo de Inclus�o"); } //se a data de pagamento n�o for informada if(dataPagamento == null || dataPagamento.trim().equalsIgnoreCase("")){ //levanta a exce��o para a pr�xima camada throw new ActionServletException("atencao.naoinformado",null, "Data de Pagamento"); } //se o aviso banc�rio n�o for informado if(idAvisoBancario == null || idAvisoBancario.trim().equalsIgnoreCase("")){ //levanta a exce��o para a pr�xima camada throw new ActionServletException("atencao.naoinformado",null, "Aviso Banc�rio"); } else { FiltroAvisoBancario filtroAvisoBancario = new FiltroAvisoBancario(); filtroAvisoBancario.adicionarCaminhoParaCarregamentoEntidade(FiltroAvisoBancario.ARRECADADOR); filtroAvisoBancario.adicionarParametro(new ParametroSimples(FiltroAvisoBancario.ID, idAvisoBancario)); Collection colecaoAvisoBancario = fachada.pesquisar(filtroAvisoBancario, AvisoBancario.class.getName()); if (colecaoAvisoBancario != null && !colecaoAvisoBancario.isEmpty()) { AvisoBancario avisoBancario = (AvisoBancario) Util.retonarObjetoDeColecao(colecaoAvisoBancario); pagamentoActionForm.set("codigoAgenteArrecadador", avisoBancario.getArrecadador().getCodigoAgente().toString()); pagamentoActionForm.set("dataLancamentoAviso", Util.formatarData(avisoBancario.getDataLancamento())); pagamentoActionForm.set("numeroSequencialAviso", avisoBancario.getNumeroSequencial().toString()); } else { throw new ActionServletException("atencao.pesquisa_inexistente", null, "Aviso Banc�rio"); } } // se a forma de arrecada��o n�o for informada if(idFormaArrecadacao == null || idFormaArrecadacao.trim().equalsIgnoreCase("")){ //levanta a exce��o para a pr�xima camada throw new ActionServletException("atencao.naoinformado",null, "Forma de Arrecada��o"); } // else if (tipoInclusao.equals("ficha") && // !idFormaArrecadacao.equals(ArrecadacaoForma.FICHA_COMPENSACAO.toString())){ // //levanta a exce��o para a pr�xima camada // throw new ActionServletException("atencao.arrecadacao_forma_invalida"); // } //cria o formato da data SimpleDateFormat dataFormato = new SimpleDateFormat("dd/MM/yyyy"); try { //tenta converter a data de apagamento dataFormato.parse(dataPagamento); //se n�o conseguir converter } catch (ParseException ex) { //levanta a exce��o para a pr�xima camada throw new ActionServletException("atencao.data_pagamento_invalida"); } //recupera o status atual do wizard StatusWizard statusWizard = (StatusWizard) sessao.getAttribute("statusWizard"); //cria o filtro de forma de arrecada��o FiltroArrecadacaoForma filtroArrecadacaoForma = new FiltroArrecadacaoForma(); //seta o c�digo da forma de arrecada��o no filtro filtroArrecadacaoForma.adicionarParametro(new ParametroSimples(FiltroArrecadacaoForma.CODIGO, idFormaArrecadacao)); //pesquisa a forma de arrecada��o no sistema Collection colecaoFormaArrecadacao = fachada.pesquisar(filtroArrecadacaoForma, ArrecadacaoForma.class.getName()); //se n�o existir a forma de arrecada��o no sistema if(colecaoFormaArrecadacao == null || colecaoFormaArrecadacao.isEmpty()){ //levanta a exce��o para a pr�xima camada throw new ActionServletException("atencao.naocadastrado",null, "Forma de Arrecada��o"); }else{ //recupera a forma de arrecada��o da cole��o ArrecadacaoForma formaArrecadacao =(ArrecadacaoForma) Util.retonarObjetoDeColecao(colecaoFormaArrecadacao); //setaa descri��o da forma de arrecada��o no form pagamentoActionForm.set("descricaoFormaArrecadacao", formaArrecadacao.getDescricao()); } //se o tipo de inclus�o for "manual" if (tipoInclusao != null && tipoInclusao.equalsIgnoreCase("manual")) { //seta o status do wizard para a p�gina de inclus�o manual statusWizard.inserirNumeroPaginaCaminho(statusWizard.new StatusWizardItem( 2, "TipoInclusaoA.gif", "TipoInclusaoD.gif", "exibirInserirPagamentosTipoInclusaoManualAction", "inserirPagamentosTipoInclusaoManualAction")); retorno = actionMapping.findForward("inserirPagamentosTipoInclusaoManual"); //Limpa os c�digos de barras do form da p�gina de inserir pagamento por caneta �ptica pagamentoActionForm.set("codigoBarraDigitadoCampo1",""); pagamentoActionForm.set("codigoBarraDigitadoDigitoVerificadorCampo1",""); pagamentoActionForm.set("codigoBarraDigitadoCampo2",""); pagamentoActionForm.set("codigoBarraDigitadoDigitoVerificadorCampo2",""); pagamentoActionForm.set("codigoBarraDigitadoCampo3",""); pagamentoActionForm.set("codigoBarraDigitadoDigitoVerificadorCampo3",""); pagamentoActionForm.set("codigoBarraDigitadoCampo4",""); pagamentoActionForm.set("codigoBarraDigitadoDigitoVerificadorCampo4",""); pagamentoActionForm.set("codigoBarraPorLeituraOtica",""); //pagamentoActionForm.set("tipoLeitura","optica"); pagamentoActionForm.set("tipoLeitura",""); //se o tipo de inclus�o for "caneta" } else if(tipoInclusao != null && tipoInclusao.equalsIgnoreCase("caneta")){ //seta o status do wizard para a p�gina de inclus�o por caneta statusWizard.inserirNumeroPaginaCaminho(statusWizard.new StatusWizardItem( 2, "TipoInclusaoA.gif", "TipoInclusaoD.gif", "exibirInserirPagamentosTipoInclusaoCanetaAction", "inserirPagamentosTipoInclusaoCanetaAction")); retorno = actionMapping.findForward("inserirPagamentosTipoInclusaoCaneta"); //Limpa os dados do form da p�gina de inserir pagamento manual pagamentoActionForm.set("valorPagamento",""); pagamentoActionForm.set("idTipoDocumento",""); pagamentoActionForm.set("idImovel",""); pagamentoActionForm.set("descricaoImovel",""); pagamentoActionForm.set("idGuiaPagamento",""); pagamentoActionForm.set("descricaoGuiaPagamento",""); pagamentoActionForm.set("valorGuiaPagamento",""); pagamentoActionForm.set("idDebitoACobrar",""); pagamentoActionForm.set("descricaoDebitoACobrar",""); pagamentoActionForm.set("valorDebitoACobrar",""); pagamentoActionForm.set("idLocalidade",""); pagamentoActionForm.set("descricaoLocalidade",""); pagamentoActionForm.set("referenciaConta",""); pagamentoActionForm.set("descricaoReferenciaConta",""); pagamentoActionForm.set("idCliente",""); pagamentoActionForm.set("nomeCliente",""); pagamentoActionForm.set("idTipoDebito",""); pagamentoActionForm.set("descricaoTipoDebito",""); } else if(tipoInclusao != null && tipoInclusao.equalsIgnoreCase("ficha")){ //seta o status do wizard para a p�gina de inclus�o por caneta statusWizard.inserirNumeroPaginaCaminho(statusWizard.new StatusWizardItem( 2, "TipoInclusaoA.gif", "TipoInclusaoD.gif", "exibirInserirPagamentosTipoInclusaoFichaCompensacaoAction", "inserirPagamentosTipoInclusaoFichaCompensacaoAction")); retorno = actionMapping.findForward("inserirPagamentosTipoInclusaoFichaCompensacao"); } //seta o form na sess�o sessao.setAttribute("PagamentoActionForm",pagamentoActionForm); //seta o status do wizard na sess�o sessao.setAttribute("statusWizard",statusWizard); //retorna o mapeamento contido na vari�vel retorno return retorno; } }