package gcom.gui.relatorio.arrecadacao; import gcom.arrecadacao.ArrecadacaoForma; import gcom.arrecadacao.Arrecadador; import gcom.arrecadacao.FiltroArrecadacaoForma; import gcom.arrecadacao.FiltroArrecadador; import gcom.arrecadacao.FiltroAvisoBancario; import gcom.arrecadacao.aviso.AvisoBancario; import gcom.cobranca.DocumentoTipo; import gcom.cobranca.FiltroDocumentoTipo; import gcom.fachada.Fachada; import gcom.faturamento.debito.DebitoTipo; import gcom.faturamento.debito.FiltroDebitoTipo; import gcom.gui.GcomAction; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import java.util.ArrayList; import java.util.Collection; 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; /** * @author Raimundo Martins * @date 17/08/2011 */ public class ExibirGerarRelatorioTransferenciaPagamentoAction extends GcomAction{ private Fachada fachada = Fachada.getInstancia(); private HttpSession sessao = null; private GerarRelatorioTranferenciaPagamentoActionForm form = null; /** * (Desc - geral) * * [UC 1217] Gerar Relat�rio Transfer�ncia de Pagamento * * @author Raimundo Martins * @date 17/08/2011 * * @param actionMapping * @param actionForm * @param httpServletRequest * @param httpServletResponse * @return */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = null; sessao = httpServletRequest.getSession(false); form = (GerarRelatorioTranferenciaPagamentoActionForm) actionForm; String pesquisarArrecadador = httpServletRequest.getParameter("pesquisarArrecadador"); String pesquisarAvisoBancario = httpServletRequest.getParameter("pesquisarAvisoBancario"); //verifica se existe o arrecadador if (pesquisarArrecadador != null && pesquisarArrecadador.equals("true")) { boolean existeArrecadador = existeArrecadador(); if(!existeArrecadador){ httpServletRequest.setAttribute("idArrecadadorNaoEncontrado", true); } retorno = actionMapping.findForward("exibirGerarRelatorioTransferenciaPagamento"); } //Verifica se existe o aviso bancario if(pesquisarAvisoBancario !=null && pesquisarAvisoBancario.equals("true")){ boolean existeAvisoBancario = existeAvisoBancario(); if(!existeAvisoBancario){ httpServletRequest.setAttribute("avisoBancarioNaoEncontrado", true); } retorno = actionMapping.findForward("exibirGerarRelatorioTransferenciaPagamento"); } // Caso o usu�rio n�o queira realizar nenhuma das op��es acima, chama a // pagina que filtra os dados else { FiltroDebitoTipo filtroDebitoTipo = new FiltroDebitoTipo(FiltroDebitoTipo.DESCRICAO); filtroDebitoTipo.setConsultaSemLimites(true); Collection colecaoDebitoTipo = fachada.pesquisar(filtroDebitoTipo, DebitoTipo.class.getCanonicalName()); sessao.setAttribute("colecaoDebitoTipo", colecaoDebitoTipo); FiltroDocumentoTipo filtroDocumentoTipo = new FiltroDocumentoTipo(FiltroDocumentoTipo.DESCRICAO); Collection colecaoDocumentoTipo = fachada.pesquisar(filtroDocumentoTipo, DocumentoTipo.class.getName()); Collection colecaoDocumentoTiposFiltrados = new ArrayList(); Iterator iter = colecaoDocumentoTipo.iterator(); while(iter.hasNext()){ DocumentoTipo documentoTipo = (DocumentoTipo) iter.next(); if(documentoTipo.getId().compareTo(DocumentoTipo.CONTA) == 0 || documentoTipo.getId().compareTo(DocumentoTipo.DEBITO_A_COBRAR) == 0 || documentoTipo.getId().compareTo(DocumentoTipo.GUIA_PAGAMENTO) == 0){ colecaoDocumentoTiposFiltrados.add(documentoTipo); } } sessao.setAttribute("colecaoDocumentoTipo", colecaoDocumentoTiposFiltrados); FiltroArrecadacaoForma filtroArrecadacaoForma = new FiltroArrecadacaoForma(FiltroArrecadacaoForma.DESCRICAO); Collection colecaoArrecadacaoForma = fachada.pesquisar(filtroArrecadacaoForma, ArrecadacaoForma.class.getName()); sessao.setAttribute("colecaoArrecadacaoForma", colecaoArrecadacaoForma); retorno = actionMapping.findForward("exibirGerarRelatorioTransferenciaPagamento"); } return retorno; } // [FS0001] Verificar a existencia do Arrecadador private Boolean existeArrecadador() { String idArrecadador = form.getArrecadadorCodigo(); if (idArrecadador != null && !idArrecadador.trim().equals("")) { FiltroArrecadador filtroArrecadador = new FiltroArrecadador(); filtroArrecadador.adicionarParametro(new ParametroSimples(FiltroArrecadador.ID, idArrecadador)); filtroArrecadador.adicionarCaminhoParaCarregamentoEntidade("cliente"); Collection colecaoArrecadadores = fachada.pesquisar(filtroArrecadador, Arrecadador.class.getName()); if (colecaoArrecadadores != null && !colecaoArrecadadores.isEmpty()) { Arrecadador arrecadador = (Arrecadador) Util.retonarObjetoDeColecao(colecaoArrecadadores); form.setArrecadadorCodigo(arrecadador.getId().toString()); form.setArrecadadorDescricao(arrecadador.getCliente().getNome()); return true; } else { form.setArrecadadorCodigo(idArrecadador); form.setArrecadadorDescricao("Arrecadador Inexistente"); return false; } } else{ return false; } } private Boolean existeAvisoBancario() { String idAvisoBancario = form.getIdAvisoBancario(); if (idAvisoBancario != null && !idAvisoBancario.trim().equals("")) { 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); form.setCodigoAgenteArrecadador( avisoBancario.getArrecadador().getCodigoAgente().toString()); form.setDataLancamentoAviso( Util.formatarData(avisoBancario.getDataLancamento()) ); form.setNumeroSequencialAviso( avisoBancario.getNumeroSequencial().toString() ); return true; } else { form.setCodigoAgenteArrecadador( ""); form.setDataLancamentoAviso( "AVISO INEXISTENTE" ); form.setNumeroSequencialAviso( "" ); form.setIdAvisoBancario( "" ); return false; } } return false; } }