package gcom.gui.cobranca.parcelamento; import gcom.cadastro.cliente.Cliente; import gcom.cadastro.cliente.FiltroCliente; import gcom.cobranca.bean.ParcelamentoDadosCartaoCreditoDebitoHelper; import gcom.cobranca.parcelamento.FiltroParcelamentoPagamentoCartaoCredito; import gcom.cobranca.parcelamento.ParcelamentoPagamentoCartaoCredito; import gcom.fachada.Fachada; import gcom.gui.GcomAction; import gcom.seguranca.acesso.PermissaoEspecial; import gcom.seguranca.acesso.usuario.FiltroUsuarioPemissaoEspecial; import gcom.seguranca.acesso.usuario.Usuario; import gcom.seguranca.acesso.usuario.UsuarioPermissaoEspecial; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import java.util.Collection; import java.util.Iterator; import java.util.List; 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 ConsultarDadosParcelamentoCartaoCreditoAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // cria a vari�vel de retorno e seta o mapeamento para a tela de // consultar d�bito cobrado ActionForward retorno = actionMapping .findForward("consultarDadosParcelamentoCartaoCredito"); HttpSession sessao = httpServletRequest.getSession(false); Fachada fachada = Fachada.getInstancia(); ParcelamentoCartaoConfirmarForm parcelamentoCartaoConfirmarForm = (ParcelamentoCartaoConfirmarForm) actionForm; Usuario usuarioLogado = (Usuario)sessao.getAttribute(Usuario.USUARIO_LOGADO); String parcelamentoId = (String) sessao.getAttribute("parcelamentoCartaCredito"); String codigoParcelamento = httpServletRequest.getParameter("numeroParcelamento"); String objetoConsulta = httpServletRequest.getParameter("objetoConsulta"); String idDigitadoEnterCliente = parcelamentoCartaoConfirmarForm.getIdCliente(); String tipoConsulta = httpServletRequest.getParameter("tipoConsulta"); String atualizado = httpServletRequest.getParameter("atualizado"); String carregamentoInicial = httpServletRequest.getParameter("carregamentoInicial"); if (carregamentoInicial != null && carregamentoInicial.equals("ok")){ FiltroParcelamentoPagamentoCartaoCredito filtroParcelamento = new FiltroParcelamentoPagamentoCartaoCredito(); filtroParcelamento.adicionarParametro(new ParametroSimples(FiltroParcelamentoPagamentoCartaoCredito.ID_PARCELAMENTO, parcelamentoId)); filtroParcelamento.adicionarCaminhoParaCarregamentoEntidade("usuarioConfirmacao"); filtroParcelamento.adicionarCaminhoParaCarregamentoEntidade("cliente"); filtroParcelamento.adicionarCaminhoParaCarregamentoEntidade("arrecadador"); filtroParcelamento.adicionarCaminhoParaCarregamentoEntidade("arrecadador.cliente"); filtroParcelamento.adicionarCaminhoParaCarregamentoEntidade("parcelamento"); Collection<ParcelamentoPagamentoCartaoCredito> colecaoParcelamento = fachada.pesquisar(filtroParcelamento, ParcelamentoPagamentoCartaoCredito.class.getName()); sessao.setAttribute("colecaoParcelamentos", colecaoParcelamento); } if(atualizado != null && !atualizado.equals("")){ httpServletRequest.setAttribute("atualizado", "ok"); httpServletRequest.removeAttribute("dados"); } if(tipoConsulta != null && tipoConsulta.equals("cliente")){ idDigitadoEnterCliente = httpServletRequest.getParameter("idCampoEnviarDados"); codigoParcelamento = (String)sessao.getAttribute("ParcelamemtoSelecionado"); } if(objetoConsulta != null && objetoConsulta.equals("cliente")){ this.pesquisarCliente(actionMapping, actionForm, httpServletRequest, httpServletResponse, codigoParcelamento, fachada, usuarioLogado, idDigitadoEnterCliente); } if (objetoConsulta != null && objetoConsulta.equals("selecionar")) { this.selecionar(actionMapping, actionForm, httpServletRequest, httpServletResponse, codigoParcelamento, fachada, usuarioLogado); } if(tipoConsulta != null && tipoConsulta.equals("cliente")){ this.pesquisarCliente(actionMapping, actionForm, httpServletRequest, httpServletResponse, codigoParcelamento, fachada, usuarioLogado, idDigitadoEnterCliente); } if (objetoConsulta != null && objetoConsulta.equals("pesquisarClientePopup")) { this.pesquisarClientePopup(actionMapping, actionForm, httpServletRequest, httpServletResponse); return actionMapping.findForward("pesquisarClientePopup"); } // retorna o mapeamento contido na vari�vel retorno return retorno; } public void selecionar(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, String codigoParcelamento, Fachada fachada, Usuario usuarioLogado) { ParcelamentoCartaoConfirmarForm parcelamentoCartaoConfirmarForm = (ParcelamentoCartaoConfirmarForm) actionForm; HttpSession sessao = httpServletRequest.getSession(false); ParcelamentoPagamentoCartaoCredito parcelamentoAtualizado = null; String numeroCartaoDecrypt = null; Collection colecaoParcelamentoPagamentoCartaoCredito = (Collection) sessao.getAttribute("colecaoParcelamentos"); boolean formularioCarregado = false; if (colecaoParcelamentoPagamentoCartaoCredito != null && !colecaoParcelamentoPagamentoCartaoCredito.isEmpty()){ Iterator iterator = colecaoParcelamentoPagamentoCartaoCredito.iterator(); while(iterator.hasNext()){ ParcelamentoPagamentoCartaoCredito parcelamentoPagamentoCartaoCreditoColecao = (ParcelamentoPagamentoCartaoCredito) iterator.next(); if (parcelamentoPagamentoCartaoCreditoColecao.getId().equals(Integer.valueOf(codigoParcelamento))){ parcelamentoAtualizado = parcelamentoPagamentoCartaoCreditoColecao; parcelamentoCartaoConfirmarForm.setDocumentoCartao(parcelamentoPagamentoCartaoCreditoColecao.getDocumentoCartaoCredito().toString()); parcelamentoCartaoConfirmarForm.setAutorizacaoCartao(parcelamentoPagamentoCartaoCreditoColecao.getNumeroAutorizacao().toString()); numeroCartaoDecrypt = Util.decrypt(parcelamentoPagamentoCartaoCreditoColecao.getNumeroCartaoCredito()); String numeroCartao = numeroCartaoDecrypt.substring(0, 4); for (int i = 0; i < (numeroCartaoDecrypt.length() - 4); i++) { numeroCartao = numeroCartao + "*"; } parcelamentoCartaoConfirmarForm.setCartaoCredito(parcelamentoPagamentoCartaoCreditoColecao.getArrecadador().getCliente().getNome()); parcelamentoCartaoConfirmarForm.setNumeroCartao(numeroCartao); parcelamentoCartaoConfirmarForm.setValidadeCartao(Util.formatarAnoMesParaMesAno(parcelamentoPagamentoCartaoCreditoColecao.getAnoMesValidade().toString())); parcelamentoCartaoConfirmarForm.setIdCliente(parcelamentoPagamentoCartaoCreditoColecao.getCliente().getId().toString()); parcelamentoCartaoConfirmarForm.setNomeCliente(parcelamentoPagamentoCartaoCreditoColecao.getCliente().getNome()); parcelamentoCartaoConfirmarForm.setUsuarioConfirmacao(parcelamentoPagamentoCartaoCreditoColecao.getUsuarioConfirmacao().getNomeUsuario()); parcelamentoCartaoConfirmarForm.setNumeroIdentificacaoTransacao(parcelamentoPagamentoCartaoCreditoColecao.getIdentificacaoTransacao()); parcelamentoCartaoConfirmarForm.setQtdParcelas(parcelamentoPagamentoCartaoCreditoColecao.getQuantidadeParcelas().toString()); parcelamentoCartaoConfirmarForm.setValorTransacao(Util.formatarMoedaReal(parcelamentoPagamentoCartaoCreditoColecao.getValorParcelado())); parcelamentoCartaoConfirmarForm.setDataOperadora(Util.formatarData(parcelamentoPagamentoCartaoCreditoColecao.getDataConfirmacao())); formularioCarregado = true; break; } } } if (!formularioCarregado){ FiltroParcelamentoPagamentoCartaoCredito filtro = new FiltroParcelamentoPagamentoCartaoCredito(); filtro.adicionarParametro(new ParametroSimples(FiltroParcelamentoPagamentoCartaoCredito.ID, codigoParcelamento)); filtro.adicionarCaminhoParaCarregamentoEntidade("usuarioConfirmacao"); filtro.adicionarCaminhoParaCarregamentoEntidade("cliente"); filtro.adicionarCaminhoParaCarregamentoEntidade("arrecadador"); filtro.adicionarCaminhoParaCarregamentoEntidade("arrecadador.cliente"); Collection<ParcelamentoPagamentoCartaoCredito> colecao = fachada.pesquisar(filtro, ParcelamentoPagamentoCartaoCredito.class.getName()); parcelamentoAtualizado = (ParcelamentoPagamentoCartaoCredito) Util.retonarObjetoDeColecao(colecao); parcelamentoCartaoConfirmarForm.setDocumentoCartao(parcelamentoAtualizado.getDocumentoCartaoCredito().toString()); parcelamentoCartaoConfirmarForm.setAutorizacaoCartao(parcelamentoAtualizado.getNumeroAutorizacao().toString()); numeroCartaoDecrypt = Util.decrypt(parcelamentoAtualizado.getNumeroCartaoCredito()); String numeroCartao = numeroCartaoDecrypt.substring(0, 4); for (int i = 0; i < (numeroCartaoDecrypt.length() - 4); i++) { numeroCartao = numeroCartao + "*"; } parcelamentoCartaoConfirmarForm.setCartaoCredito(parcelamentoAtualizado.getArrecadador().getCliente().getNome()); parcelamentoCartaoConfirmarForm.setNumeroCartao(numeroCartao); parcelamentoCartaoConfirmarForm.setValidadeCartao(Util.formatarAnoMesParaMesAno(parcelamentoAtualizado.getAnoMesValidade().toString())); parcelamentoCartaoConfirmarForm.setIdCliente(parcelamentoAtualizado.getCliente().getId().toString()); parcelamentoCartaoConfirmarForm.setNomeCliente(parcelamentoAtualizado.getCliente().getNome()); parcelamentoCartaoConfirmarForm.setUsuarioConfirmacao(parcelamentoAtualizado.getUsuarioConfirmacao().getNomeUsuario()); parcelamentoCartaoConfirmarForm.setNumeroIdentificacaoTransacao(parcelamentoAtualizado.getIdentificacaoTransacao()); parcelamentoCartaoConfirmarForm.setQtdParcelas(parcelamentoAtualizado.getQuantidadeParcelas().toString()); parcelamentoCartaoConfirmarForm.setValorTransacao(Util.formatarMoedaReal(parcelamentoAtualizado.getValorParcelado())); parcelamentoCartaoConfirmarForm.setDataOperadora(Util.formatarData(parcelamentoAtualizado.getDataConfirmacao())); } //UC 0927 //Desenvolvedor: Fl�vio Cordeiro - Analista: Rafael Rossiter - 01/02/2010 //4 - Caso o usu�rio tenha permiss�o especial para alterar dados das informa��es // de confirma��o pagamento com cart�o de cr�dito/d�bito e o im�vel selecionado tenha // estas modalidades de pagamento informdas(IMOV_ID existindo nas tabelas //PARCELAMENTO_PAGAMENTO_CARTAO_CREDITO PAGAMENTO_CARTAO_DEBITO), o sistema dever� permitir altera��o //[SB0005 - Alterar dados cofirma��es]. FiltroUsuarioPemissaoEspecial filtroUsuarioPemissaoEspecial = new FiltroUsuarioPemissaoEspecial(); filtroUsuarioPemissaoEspecial.adicionarParametro(new ParametroSimples(FiltroUsuarioPemissaoEspecial.USUARIO_ID, usuarioLogado.getId())); filtroUsuarioPemissaoEspecial.adicionarParametro(new ParametroSimples(FiltroUsuarioPemissaoEspecial.PERMISSAO_ESPECIAL_ID, PermissaoEspecial.ALTERAR_DADOS_CONFIRMACAO_CARTAO_CREDITO_DEBITO)); Collection colecaoUsuarioPermisao = fachada.pesquisar(filtroUsuarioPemissaoEspecial, UsuarioPermissaoEspecial.class.getName()); if(!colecaoUsuarioPermisao.isEmpty()){ httpServletRequest.setAttribute("temPermissaoAlterarDadosCartao", "s"); parcelamentoCartaoConfirmarForm.setNumeroCartao(numeroCartaoDecrypt); } //Carregar Help ParcelamentoDadosCartaoCreditoDebitoHelper helper = new ParcelamentoDadosCartaoCreditoDebitoHelper( parcelamentoCartaoConfirmarForm); sessao.setAttribute("ParcelamemtoSelecionado",codigoParcelamento); httpServletRequest.setAttribute("dados", parcelamentoCartaoConfirmarForm); sessao.setAttribute("dadosFormulario", helper); sessao.setAttribute("parcelamentoAtualizacao", parcelamentoAtualizado); } public void pesquisarCliente(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse,String codigoParcelamento, Fachada fachada, Usuario usuarioLogado, String idDigitadoEnterCliente) { HttpSession sessao = httpServletRequest.getSession(false); ParcelamentoCartaoConfirmarForm form = (ParcelamentoCartaoConfirmarForm)actionForm; ParcelamentoDadosCartaoCreditoDebitoHelper helper = (ParcelamentoDadosCartaoCreditoDebitoHelper)sessao.getAttribute("dadosFormulario"); //------------------------------------- form.setDocumentoCartao(helper.getDocumentoCartao()); form.setAutorizacaoCartao(helper.getAutorizacaoCartao()); form.setCartaoCredito(helper.getCartaoCredito()); form.setNumeroCartao(helper.getNumeroCartao()); form.setValidadeCartao(helper.getValidadeCartao()); form.setIdCliente(helper.getIdCliente()); form.setNomeCliente(helper.getNomeCliente()); form.setUsuarioConfirmacao(helper.getUsuarioConfirmacao()); form.setNumeroIdentificacaoTransacao(helper.getNumeroIdentificacaoTransacao()); form.setQtdParcelas(helper.getQtdParcelas()); form.setValorTransacao(helper.getValorTransacao()); form.setDataOperadora(helper.getDataOperadora()); //---------------------------------- ParcelamentoPagamentoCartaoCredito parcelamento = (ParcelamentoPagamentoCartaoCredito)sessao.getAttribute("parcelamentoAtualizacao"); //UC 0927 //Desenvolvedor: Fl�vio Cordeiro - Analista: Rafael Rossiter - 01/02/2010 //4 - Caso o usu�rio tenha permiss�o especial para alterar dados das informa��es // de confirma��o pagamento com cart�o de cr�dito/d�bito e o im�vel selecionado tenha // estas modalidades de pagamento informdas(IMOV_ID existindo nas tabelas //PARCELAMENTO_PAGAMENTO_CARTAO_CREDITO PAGAMENTO_CARTAO_DEBITO), o sistema dever� permitir altera��o //[SB0005 - Alterar dados cofirma��es]. FiltroUsuarioPemissaoEspecial filtroUsuarioPemissaoEspecial = new FiltroUsuarioPemissaoEspecial(); filtroUsuarioPemissaoEspecial.adicionarParametro(new ParametroSimples(FiltroUsuarioPemissaoEspecial.USUARIO_ID, usuarioLogado.getId())); filtroUsuarioPemissaoEspecial.adicionarParametro(new ParametroSimples(FiltroUsuarioPemissaoEspecial.PERMISSAO_ESPECIAL_ID, PermissaoEspecial.ALTERAR_DADOS_CONFIRMACAO_CARTAO_CREDITO_DEBITO)); Collection colecaoUsuarioPermisao = fachada.pesquisar(filtroUsuarioPemissaoEspecial, UsuarioPermissaoEspecial.class.getName()); if(!colecaoUsuarioPermisao.isEmpty()){ httpServletRequest.setAttribute("temPermissaoAlterarDadosCartao", "s"); } sessao.setAttribute("ParcelamemtoSelecionado",codigoParcelamento); httpServletRequest.setAttribute("dados", form); sessao.setAttribute("parcelamentoAtualizacao", parcelamento); //verifica se o codigo do cliente foi digitado if (idDigitadoEnterCliente != null && !idDigitadoEnterCliente.trim().equals("") && Integer.parseInt(idDigitadoEnterCliente) > 0) { FiltroCliente filtroCliente = new FiltroCliente(); filtroCliente.adicionarParametro(new ParametroSimples( FiltroCliente.ID, idDigitadoEnterCliente)); filtroCliente.adicionarParametro(new ParametroSimples( FiltroCliente.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection clienteEncontrado = fachada.pesquisar(filtroCliente, Cliente.class.getName()); if (clienteEncontrado != null && !clienteEncontrado.isEmpty()) { form.setIdCliente(((Cliente) ((List) clienteEncontrado).get(0)).getId()+""); form.setNomeCliente(((Cliente) ((List) clienteEncontrado).get(0)).getNome()); httpServletRequest.setAttribute("idClienteNaoEncontrado", "true"); httpServletRequest.setAttribute("nomeCampo", "cep"); } else { form.setIdCliente(""); httpServletRequest.setAttribute("codigoClienteNaoEncontrado", "exception"); form.setNomeCliente("Cliente inexistente"); httpServletRequest.setAttribute("nomeCampo", "idCliente"); } //Carregar Help ParcelamentoDadosCartaoCreditoDebitoHelper helperSessao = new ParcelamentoDadosCartaoCreditoDebitoHelper( form); httpServletRequest.setAttribute("dados", form); sessao.setAttribute("dadosFormulario", helperSessao); httpServletRequest.setAttribute("temPermissaoAlterarDadosCartao", "s"); } } public void pesquisarClientePopup(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { HttpSession sessao = httpServletRequest.getSession(false); ParcelamentoCartaoConfirmarForm form = (ParcelamentoCartaoConfirmarForm) actionForm; ParcelamentoDadosCartaoCreditoDebitoHelper helper = new ParcelamentoDadosCartaoCreditoDebitoHelper(form); sessao.setAttribute("dadosFormulario", helper); httpServletRequest.setAttribute("limparForm", "s"); } }