package gcom.gui.arrecadacao; import java.util.Collection; import gcom.cobranca.DocumentoTipo; import gcom.cobranca.FiltroDocumentoTipo; import gcom.cobranca.bean.DebitoACobrarValoresHelper; import gcom.cobranca.bean.GuiaPagamentoValoresHelper; import gcom.fachada.Fachada; import gcom.faturamento.conta.Conta; import gcom.faturamento.conta.ContaHistorico; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; 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 ExibirSelecionarDebitosPagosPopupAction 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) { //Localiza o action no objeto actionmapping ActionForward retorno = actionMapping.findForward("selecionarDebitosPagosPopup"); //Obt�m a inst�ncia da sess�o HttpSession sessao = httpServletRequest.getSession(false); SelecionarDebitosPagosPopupActionForm form = (SelecionarDebitosPagosPopupActionForm) actionForm; Fachada fachada = Fachada.getInstancia(); if (httpServletRequest.getParameter("abrirPopup") != null && httpServletRequest.getParameter("abrirPopup").trim().equalsIgnoreCase("SIM") && httpServletRequest.getParameter("idImovel") != null && !httpServletRequest.getParameter("idImovel").trim().equals("")) { String idImovel = httpServletRequest.getParameter("idImovel"); String descricaoImovel = httpServletRequest.getParameter("descricaoImovel"); form.setIdImovel(idImovel); form.setDescricaoImovel(descricaoImovel); // 1.1. Tipo do Documento (obrigat�rio) // seleciona a partir da tabela DOCUMENTO_TIPO os tipos de documento // correspondentes a Conta, Guia de Pagamento e D�bito A Cobrar FiltroDocumentoTipo filtroDocumentoTipo = new FiltroDocumentoTipo(); filtroDocumentoTipo.adicionarParametro(new ParametroSimples( FiltroDocumentoTipo.ID, DocumentoTipo.CONTA, ParametroSimples.CONECTOR_OR)); filtroDocumentoTipo.adicionarParametro(new ParametroSimples( FiltroDocumentoTipo.ID, DocumentoTipo.GUIA_PAGAMENTO, ParametroSimples.CONECTOR_OR)); filtroDocumentoTipo.adicionarParametro(new ParametroSimples( FiltroDocumentoTipo.ID, DocumentoTipo.DEBITO_A_COBRAR)); Collection<DocumentoTipo> colecaoDocumentoTipo = fachada.pesquisar( filtroDocumentoTipo, DocumentoTipo.class.getName()); if (colecaoDocumentoTipo == null || colecaoDocumentoTipo.isEmpty()) { throw new ActionServletException("atencao.naocadastrado", null, "Tipo de Documento"); } else { sessao.setAttribute("colecaoDocumentoTipo", colecaoDocumentoTipo); form.setIdTipoDocumento("-1"); form.setReferenciaConta(""); form.setDescricaoReferenciaConta(""); form.setIdGuiaPagamento(""); form.setDescricaoGuiaPagamento(""); form.setIdDebitoACobrar(""); form.setDescricaoDebitoACobrar(""); } } // [FS0012] - Verificar exist�ncia da conta String referenciaContaDigitadoEnter = form.getReferenciaConta(); String codigoImovel = form.getIdImovel(); // Caso o usu�rio tenha informado a refer�ncia da conta if (referenciaContaDigitadoEnter != null && !referenciaContaDigitadoEnter.trim().equalsIgnoreCase("")) { if (codigoImovel == null || codigoImovel.trim().equalsIgnoreCase("")) { throw new ActionServletException("atencao.required", null, "Matr�cula do Im�vel"); } // Recupera a conta do im�vel com a refer�ncia informada Conta contaEncontrada = fachada.pesquisarContaDigitada( codigoImovel, referenciaContaDigitadoEnter); // [FS0012] - Verificar exist�ncia do d�bito. if (contaEncontrada != null) { form.setReferenciaConta(referenciaContaDigitadoEnter); form.setDescricaoReferenciaConta(Util.formatarMoedaReal(contaEncontrada .getValorTotal())); httpServletRequest.setAttribute("referenciaContaNaoEncontrada", "true"); } else { ContaHistorico contaHistorico = fachada.pesquisarContaHistoricoDigitada( form.getIdImovel(), form.getReferenciaConta()); if (contaHistorico != null) { form.setReferenciaConta(referenciaContaDigitadoEnter); form.setDescricaoReferenciaConta(Util.formatarMoedaReal(contaHistorico .getValorTotal())); httpServletRequest.setAttribute("referenciaContaNaoEncontrada", "true"); } else { form.setReferenciaConta(""); form.setDescricaoReferenciaConta("Conta inexistente"); httpServletRequest.setAttribute("referenciaContaNaoEncontrada", "exception"); } } } // [FS0009] ? Verificar exist�ncia da guia de pagamento String codigoGuiaPagamentoDigitadoEnter = form.getIdGuiaPagamento(); // Caso o usu�rio tenha informado o c�digo da guia de pagamento if (codigoGuiaPagamentoDigitadoEnter != null && !codigoGuiaPagamentoDigitadoEnter.trim() .equalsIgnoreCase("")) { if (codigoImovel == null || codigoImovel.trim().equalsIgnoreCase("")) { throw new ActionServletException("atencao.required", null, "Matr�cula do Im�vel"); } // Pesquisa a guia de pagamento para o im�vel informado GuiaPagamentoValoresHelper guiaPagamentoEncontradaHelper = fachada .pesquisarGuiaPagamentoDigitada(codigoImovel, codigoGuiaPagamentoDigitadoEnter); if (guiaPagamentoEncontradaHelper != null) { form.setIdGuiaPagamento(codigoGuiaPagamentoDigitadoEnter); form.setDescricaoGuiaPagamento(guiaPagamentoEncontradaHelper.getGuiaPagamento().getDebitoTipo() .getDescricao()); httpServletRequest.setAttribute("idGuiaPagamentoNaoEncontrado", "true"); } else { form.setIdGuiaPagamento(""); form.setDescricaoGuiaPagamento("Guia de Pagamento inexistente"); httpServletRequest.setAttribute("idGuiaPagamentoNaoEncontrado", "exception"); } } // [FS0012] - Verificar exist�ncia do d�bito. String codigoDebitoACobrarDigitadoEnter = form.getIdDebitoACobrar(); // Caso o usu�rio tenha informado o c�digo do d�bito a cobrar if (codigoDebitoACobrarDigitadoEnter != null && !codigoDebitoACobrarDigitadoEnter.trim() .equalsIgnoreCase("")) { if (codigoImovel == null || codigoImovel.trim().equalsIgnoreCase("")) { throw new ActionServletException("atencao.required", null, "Matr�cula do Im�vel"); } // Pesquisa o d�bito a cobrar para o im�vel informado DebitoACobrarValoresHelper debitoACobrarEncontradoHelper = fachada .pesquisarDebitoACobrarImovelDigitado(codigoImovel, codigoDebitoACobrarDigitadoEnter); if (debitoACobrarEncontradoHelper != null) { form.setIdDebitoACobrar(codigoDebitoACobrarDigitadoEnter); form.setDescricaoDebitoACobrar(debitoACobrarEncontradoHelper.getDebitoACobrar() .getDebitoTipo().getDescricao()); httpServletRequest.setAttribute("idDebitoACobrarNaoEncontrado", "true"); } else { form.setIdDebitoACobrar(""); form.setDescricaoDebitoACobrar("D�bito a Cobrar inexistente"); httpServletRequest.setAttribute("idDebitoACobrarNaoEncontrado", "exception"); } } if ((httpServletRequest.getParameter("tipoConsulta") != null && !httpServletRequest.getParameter("tipoConsulta").equals(""))) { if (httpServletRequest.getParameter("tipoConsulta").equals("conta")) { form.setIdTipoDocumento(DocumentoTipo.CONTA.toString()); form.setReferenciaConta(httpServletRequest.getParameter("descricaoCampoEnviarDados")); form.setDescricaoReferenciaConta(httpServletRequest.getParameter("codigoAuxiliarEnviarDados")); } else if (httpServletRequest.getParameter("tipoConsulta").equals("debitoACobrar")) { form.setIdTipoDocumento(DocumentoTipo.DEBITO_A_COBRAR.toString()); form.setIdDebitoACobrar(httpServletRequest.getParameter("idCampoEnviarDados")); form.setDescricaoDebitoACobrar(httpServletRequest.getParameter("descricaoCampoEnviarDados3")); } else if (httpServletRequest.getParameter("tipoConsulta").equals("guiaPagamento")) { form.setIdTipoDocumento(DocumentoTipo.GUIA_PAGAMENTO.toString()); form.setIdGuiaPagamento(httpServletRequest.getParameter("idCampoEnviarDados")); form.setDescricaoGuiaPagamento(httpServletRequest.getParameter("descricaoCampoEnviarDados3")); } } return retorno; } }