package gcom.gui.arrecadacao; import gcom.arrecadacao.ArrecadadorMovimento; import gcom.arrecadacao.FiltroArrecadadorMovimento; import gcom.arrecadacao.aviso.bean.AvisoBancarioHelper; import gcom.fachada.Fachada; import gcom.gui.GcomAction; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import java.math.BigDecimal; 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; /** * Esta classe tem por finalidade exibir para o usu�rio a an�lise do movimento dos arrecadadores e os avisos * banc�rios associados * * @author Raphael Rossiter * * @date 08/03/2006 */ public class ExibirApresentarAnaliseMovimentoArrecadadoresAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping.findForward("exibirApresentarAnaliseMovimentoArrecadadores"); String idArrecadadorMovimento = httpServletRequest.getParameter("arrecadadorMovimentoID"); Fachada fachada = Fachada.getInstancia(); HttpSession sessao = httpServletRequest.getSession(false); ApresentarAnaliseMovimentoArrecadadoresActionForm apresentarAnaliseMovimentoArrecadadoresActionForm = (ApresentarAnaliseMovimentoArrecadadoresActionForm) actionForm; FiltroArrecadadorMovimento filtroArrecadadorMovimento = new FiltroArrecadadorMovimento(); filtroArrecadadorMovimento.setConsultaSemLimites(true); filtroArrecadadorMovimento.adicionarParametro(new ParametroSimples(FiltroArrecadadorMovimento.ID, idArrecadadorMovimento)); Collection colecaoArrecadadorMovimento = fachada.pesquisar(filtroArrecadadorMovimento, ArrecadadorMovimento.class.getName()); ArrecadadorMovimento arrecadadorMovimento = (ArrecadadorMovimento) Util.retonarObjetoDeColecao(colecaoArrecadadorMovimento); apresentarAnaliseMovimentoArrecadadoresActionForm.setCodigoNomeArrecadador( arrecadadorMovimento.getCodigoBanco() + " - " + arrecadadorMovimento.getNomeBanco()); //1 - ENVIO 2 - RETORNO if (arrecadadorMovimento.getCodigoRemessa().equals(new Short(String.valueOf(ConstantesSistema.CODIGO_ENVIO)))){ apresentarAnaliseMovimentoArrecadadoresActionForm.setCodigoRemessa( ConstantesSistema.ENVIO); sessao.removeAttribute("formaArrecadacao"); } else if (arrecadadorMovimento.getCodigoRemessa().equals(new Short(String.valueOf(ConstantesSistema.CODIGO_RETORNO)))){ apresentarAnaliseMovimentoArrecadadoresActionForm.setCodigoRemessa( ConstantesSistema.RETORNO); sessao.setAttribute("formaArrecadacao",ConstantesSistema.RETORNO); } if (arrecadadorMovimento.getDescricaoIdentificacaoServico() != null){ apresentarAnaliseMovimentoArrecadadoresActionForm.setIdentificacaoServico( arrecadadorMovimento.getDescricaoIdentificacaoServico()); }else{ apresentarAnaliseMovimentoArrecadadoresActionForm.setIdentificacaoServico(""); } if (arrecadadorMovimento.getNumeroSequencialArquivo() != null){ apresentarAnaliseMovimentoArrecadadoresActionForm.setNsa( arrecadadorMovimento.getNumeroSequencialArquivo().toString()); }else{ apresentarAnaliseMovimentoArrecadadoresActionForm.setNsa(""); } if (arrecadadorMovimento.getDataGeracao() != null){ apresentarAnaliseMovimentoArrecadadoresActionForm.setDataGeracao( Util.formatarData(arrecadadorMovimento.getDataGeracao())); }else{ apresentarAnaliseMovimentoArrecadadoresActionForm.setDataGeracao(""); } if (arrecadadorMovimento.getNumeroRegistrosMovimento() != null){ apresentarAnaliseMovimentoArrecadadoresActionForm.setNumeroRegistrosMovimento( arrecadadorMovimento.getNumeroRegistrosMovimento().toString()); }else{ apresentarAnaliseMovimentoArrecadadoresActionForm.setNumeroRegistrosMovimento(""); } /* N�mero de registros em ocorr�ncia (n�mero de linhas da tabela ARRECADADOR_MOVIMENTO_ITEM com * ARMV_ID = ARMV_ID da tabela ARRECADADOR_MOVIMENTO e AMIT_DSOCORRENCIA diferente de "OK") */ Integer numeroRegistrosOcorrencia = fachada.obterNumeroRegistrosEmOcorrenciaPorMovimentoArrecadadores( arrecadadorMovimento, ConstantesSistema.OK); if (numeroRegistrosOcorrencia != null){ apresentarAnaliseMovimentoArrecadadoresActionForm.setNumeroRegistrosOcorrencia( numeroRegistrosOcorrencia.toString()); }else{ apresentarAnaliseMovimentoArrecadadoresActionForm.setNumeroRegistrosOcorrencia(""); } /* * N�mero de registros que n�o foram aceitos (n�mero de linhas da tabela * ARRECADADOR_MOVIMENTO_ITEM com ARMV_ID = ARMV_ID da tabela ARRECADADOR_MOVIMENTO e AMIT_ICACEITACAO * igual a 2 (N�O)) */ Integer numeroRegistrosNaoAceitos = fachada.obterNumeroRegistrosNaoAceitosPorMovimentoArrecadadores( arrecadadorMovimento, ConstantesSistema.REGISTROS_NAO_ACEITOS); if (numeroRegistrosNaoAceitos != null){ apresentarAnaliseMovimentoArrecadadoresActionForm.setNumeroRegistrosNaoAceitos( numeroRegistrosNaoAceitos.toString()); }else{ apresentarAnaliseMovimentoArrecadadoresActionForm.setNumeroRegistrosNaoAceitos(""); } BigDecimal valorTotalMovimento = new BigDecimal("0.00"); if (arrecadadorMovimento.getValorTotalMovimento() != null){ apresentarAnaliseMovimentoArrecadadoresActionForm.setValorTotalMovimento( Util.formatarMoedaReal(arrecadadorMovimento.getValorTotalMovimento())); valorTotalMovimento = arrecadadorMovimento.getValorTotalMovimento(); } if (arrecadadorMovimento.getUltimaAlteracao() != null){ apresentarAnaliseMovimentoArrecadadoresActionForm.setDataProcessamento( Util.formatarData(arrecadadorMovimento.getUltimaAlteracao())); apresentarAnaliseMovimentoArrecadadoresActionForm.setHoraProcessamento( Util.formatarHoraSemData(arrecadadorMovimento.getUltimaAlteracao())); }else{ apresentarAnaliseMovimentoArrecadadoresActionForm.setDataProcessamento(""); apresentarAnaliseMovimentoArrecadadoresActionForm.setHoraProcessamento(""); } /* * Caso o valor total do movimento (ARMV_VALORTOTALMOVIMENTO) seja diferente do valor da soma das * arrecada��es dos avisos banc�rios relacionados (ARMV_ID = ARMV_ID da tabela AVISO_BANCARIO e o campo * para totaliza��o ser� AVBC_VLARRECADACAO), a situa��o do movimento ser� "ABERTO". * Caso contr�rio a situa��o do movimento ser� "FECHADO" */ String situacaoArrecadadorMovimento = fachada.obterSituacaoArrecadadorMovimento( arrecadadorMovimento); apresentarAnaliseMovimentoArrecadadoresActionForm.setSituacaoMovimento(situacaoArrecadadorMovimento); /* * Valor total dos avisos banc�rios de um determinado movimento (Total da soma do campo * AVBC_VALORARRECADACAO da tabela AVISO_BANCARIO com ARMV_ID = ARMV_ID da tabela * ARRECADADOR_MOVIMENTO */ BigDecimal valorAvisosBancarios = fachada.obterTotalArrecadacaoAvisoBancarioPorMovimentoArrecadadores( arrecadadorMovimento); if (valorAvisosBancarios != null){ apresentarAnaliseMovimentoArrecadadoresActionForm.setValorTotalAvisosBancarios( Util.formatarMoedaReal(valorAvisosBancarios)); }else{ apresentarAnaliseMovimentoArrecadadoresActionForm.setValorTotalAvisosBancarios(""); } BigDecimal diferenca = new BigDecimal("0.00"); if (valorAvisosBancarios != null){ diferenca = valorTotalMovimento.subtract(valorAvisosBancarios); }else{ diferenca = valorTotalMovimento; } apresentarAnaliseMovimentoArrecadadoresActionForm.setValordiferencaVlMovimentoVlAvisos(Util.formatarMoedaReal(diferenca)); /* * Lista os avisos banc�rios associados ao movimento */ Collection<AvisoBancarioHelper> colecaoAvisosBancariosPorMovimentoArrecadador = fachada.obterColecaoAvisosBancariosPorArrecadadorMovimento(arrecadadorMovimento); httpServletRequest.setAttribute("colecaoAvisosBancariosPorMovimentoArrecadador", colecaoAvisosBancariosPorMovimentoArrecadador); //Par�metro que ser� utilizado para montar o link para os itens do movimento httpServletRequest.setAttribute("idArrecadadorMovimento", idArrecadadorMovimento); return retorno; } }