package gcom.gui.arrecadacao.pagamento; import gcom.arrecadacao.ArrecadacaoForma; import gcom.arrecadacao.FiltroAvisoBancario; import gcom.arrecadacao.aviso.AvisoBancario; import gcom.arrecadacao.pagamento.FiltroGuiaPagamento; import gcom.arrecadacao.pagamento.FiltroGuiaPagamentoHistorico; import gcom.arrecadacao.pagamento.GuiaPagamento; import gcom.arrecadacao.pagamento.GuiaPagamentoHistorico; import gcom.arrecadacao.pagamento.Pagamento; import gcom.cadastro.cliente.Cliente; import gcom.cadastro.cliente.FiltroCliente; import gcom.cadastro.imovel.FiltroImovel; import gcom.cadastro.imovel.Imovel; import gcom.cadastro.localidade.FiltroLocalidade; import gcom.cadastro.localidade.Localidade; import gcom.cadastro.sistemaparametro.SistemaParametro; import gcom.cobranca.DocumentoTipo; import gcom.cobranca.FiltroDocumentoTipo; import gcom.fachada.Fachada; import gcom.faturamento.conta.Conta; import gcom.faturamento.conta.ContaGeral; import gcom.faturamento.conta.ContaHistorico; import gcom.faturamento.conta.FiltroConta; import gcom.faturamento.conta.FiltroContaHistorico; import gcom.faturamento.debito.DebitoACobrar; import gcom.faturamento.debito.DebitoACobrarGeral; import gcom.faturamento.debito.DebitoACobrarHistorico; import gcom.faturamento.debito.DebitoCreditoSituacao; import gcom.faturamento.debito.DebitoTipo; import gcom.faturamento.debito.FiltroDebitoACobrar; import gcom.faturamento.debito.FiltroDebitoACobrarHistorico; import gcom.faturamento.debito.FiltroDebitoTipo; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.util.ConstantesSistema; import gcom.util.ControladorException; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import java.math.BigDecimal; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Collection; import java.util.Date; 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; import org.apache.struts.validator.DynaValidatorActionForm; /** * Action que inicializa a p�gina de inserir pagamento manual do processo de * inserir pagamentos * * @author Pedro Alexandre * @date 16/02/2006 */ public class ExibirInserirPagamentosTipoInclusaoManualAction extends GcomAction { /** * <Breve descri��o sobre o caso de uso> * * <Identificador e nome do caso de uso> * * <Breve descri��o sobre o subfluxo> * * <Identificador e nome do subfluxo> * * <Breve descri��o sobre o fluxo secund�rio> * * <Identificador e nome do fluxo secund�rio> * * @author Pedro Alexandre * @date 16/02/2006 * * @param actionMapping * @param actionForm * @param httpServletRequest * @param httpServletResponse * @return */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // Seta o mapeamento de retorno para a p�gina de inserir pagamento // manual ActionForward retorno = actionMapping .findForward("inserirPagamentosTipoInclusaoManual"); // Cria uma inst�ncia da fachada Fachada fachada = Fachada.getInstancia(); // Cria uma inst�ncia da sess�o HttpSession sessao = httpServletRequest.getSession(false); // recupera o form DynaValidatorActionForm pagamentoActionForm = (DynaValidatorActionForm) actionForm; /* * Colocado por Raphael Rossiter em 24/09/2007 (Analista: Aryed Lins) * OBJ: Inserir mais de um pagamento por vez */ String informarPagamento = httpServletRequest.getParameter("informarPagamento"); String removerPagamento = httpServletRequest.getParameter("removerPagamento"); String clicouAdicionar = httpServletRequest.getParameter("clicouAdicionar"); // Cria o filtro de tipo de documento, e seta no filtro quais os tipo de // documentos necess�rios // para pesquisar os tipos de documento de 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()); // [FS0002] - Verificar exist�ncia de dados // Caso a cole��o de tipo de documento estiver nula ou vazia, levanta // uma // exce��o para o usu�rio indicando que nenhum tipo de documento est� // cadastrado // Caso contr�rio manda os tipos de documentos pesquisados pela sess�o if (colecaoDocumentoTipo == null || colecaoDocumentoTipo.isEmpty()) { throw new ActionServletException("atencao.naocadastrado", null, "Tipo de Documento"); } else { sessao.setAttribute("colecaoDocumentoTipo", colecaoDocumentoTipo); } // [FS0007] - Verificar exist�ncia da localidade // Recupera o c�digo da localidade digitado pelo usu�rio String codigoLocalidadeDigitadoEnter = (String) pagamentoActionForm .get("idLocalidade"); // Caso o c�digo da localidade informado n�o estiver vazio if (codigoLocalidadeDigitadoEnter != null && !codigoLocalidadeDigitadoEnter.trim().equalsIgnoreCase("")) { // Recupera a localidade informada pelo usu�rio Localidade localidadeEncontrada = fachada .pesquisarLocalidadeDigitada(new Integer( codigoLocalidadeDigitadoEnter)); // Localidade localidadeEncontrada = // this.pesquisarLocalidadeDigitada(new // Integer(codigoLocalidadeDigitadoEnter)); // Caso a localidade informada pelo usu�rio esteja cadastrada no // sistema // Seta os dados da localidade no form // Caso contr�rio seta as informa��es da localidade para vazio // e indica ao usu�rio que a localidade n�o existe if (localidadeEncontrada != null) { pagamentoActionForm.set("idLocalidade", "" + localidadeEncontrada.getId()); pagamentoActionForm.set("descricaoLocalidade", localidadeEncontrada.getDescricao()); httpServletRequest.setAttribute("idLocalidadeNaoEncontrada", "true"); } else { pagamentoActionForm.set("idLocalidade", ""); httpServletRequest.setAttribute("idLocalidadeNaoEncontrada", "exception"); pagamentoActionForm.set("descricaoLocalidade", "Localidade inexistente"); } } // [FS0008] - Verificar exist�ncia da matr�cula do im�vel String codigoImovelDigitadoEnter = (String) pagamentoActionForm .get("idImovel"); // Caso o c�digo do im�vel informado n�o estiver vazio if (codigoImovelDigitadoEnter != null && !codigoImovelDigitadoEnter.trim().equalsIgnoreCase("")) { // Recupera o im�vel informado pelo usu�rio Imovel imovelEncontrado = fachada .pesquisarImovelDigitado(new Integer( codigoImovelDigitadoEnter)); // Imovel imovelEncontrado = this.pesquisarImovelDigitado(new // Integer(codigoImovelDigitadoEnter)); // Caso o im�vel informado pelo usu�rio esteja cadastrado no sistema // Seta os dados o im�vel no form // Caso contr�rio seta as informa��es o im�vel para vazio // e indica ao usu�rio que o im�vel informado n�o existe if (imovelEncontrado != null) { pagamentoActionForm.set("idImovel", "" + imovelEncontrado.getId()); pagamentoActionForm.set("descricaoImovel", "" + imovelEncontrado.getInscricaoFormatada()); httpServletRequest .setAttribute("idImovelNaoEncontrado", "true"); // Recupera a localidade do im�vel,caso o mesmo exista na base Localidade localidadeImovel = imovelEncontrado.getLocalidade(); // Caso o usu�rio tenha informado a localidade if (codigoLocalidadeDigitadoEnter != null && !codigoLocalidadeDigitadoEnter.trim() .equalsIgnoreCase("")) { // [FS0009] - Verificar localidade da matr�cula do im�vel if (!fachada.verificarLocalidadeMatriculaImovel( codigoLocalidadeDigitadoEnter, imovelEncontrado)) { pagamentoActionForm.set("idImovel", ""); httpServletRequest.setAttribute( "idImovelNaoEncontrado", "exception"); pagamentoActionForm .set( "descricaoImovel", "A Localidade da Matr�cula " + localidadeImovel.getId() + " � diferente da localidade informada " + codigoLocalidadeDigitadoEnter); } } else { pagamentoActionForm.set("idLocalidade", "" + localidadeImovel.getId()); pagamentoActionForm.set("descricaoLocalidade", localidadeImovel.getDescricao()); httpServletRequest.setAttribute( "idLocalidadeNaoEncontrada", "true"); } } else { pagamentoActionForm.set("idImovel", ""); httpServletRequest.setAttribute("idImovelNaoEncontrado", "exception"); pagamentoActionForm.set("descricaoImovel", "Matr�cula do Im�vel inexistente"); //limpa todos os campos das pesquisas q dependem de Matricula do imovel pagamentoActionForm.set("referenciaConta", ""); pagamentoActionForm.set("descricaoReferenciaConta", ""); pagamentoActionForm.set("valorPagamento", ""); pagamentoActionForm.set("idGuiaPagamento", ""); pagamentoActionForm.set("descricaoGuiaPagamento",""); pagamentoActionForm.set("valorGuiaPagamento", ""); pagamentoActionForm.set("valorPagamento", ""); pagamentoActionForm.set("idDebitoACobrar", ""); pagamentoActionForm.set("descricaoDebitoACobrar", ""); pagamentoActionForm.set("valorDebitoACobrar", ""); pagamentoActionForm.set("valorPagamento", ""); } } // [FS0011] - Verificar exist�ncia do c�digo do cliente String codigoClienteDigitadoEnter = (String) pagamentoActionForm .get("idCliente"); // Recupera a metr�cula do im�vel e o c�digo do cliente do form de // pagamento String codigoImovel = (String) pagamentoActionForm.get("idImovel"); String codigoCliente = (String) pagamentoActionForm.get("idCliente"); // Caso o usu�rio tenha informado o c�digo do cliente if (codigoClienteDigitadoEnter != null && !codigoClienteDigitadoEnter.trim().equalsIgnoreCase("")) { // Recupera o cliente ,caso o mesmo exista na base Cliente clienteEncontrado = fachada .pesquisarClienteDigitado(new Integer( codigoClienteDigitadoEnter)); // Cliente clienteEncontrado = this.pesquisarClienteDigitado(new // Integer(codigoClienteDigitadoEnter)); // Caso o cliente esteja cadastrado no sistema // Seta no form todos os dados do cliente // Caso contr�rio seta os dados do cliente para vazio e informa que // o cliente n�o existe if (clienteEncontrado != null) { pagamentoActionForm.set("idCliente", "" + clienteEncontrado.getId()); pagamentoActionForm.set("nomeCliente", clienteEncontrado .getNome()); httpServletRequest.setAttribute("idClienteNaoEncontrado", "true"); } else { pagamentoActionForm.set("idCliente", ""); httpServletRequest.setAttribute("idClienteNaoEncontrado", "exception"); pagamentoActionForm.set("nomeCliente", "C�digo de Cliente inexistente"); //limpa todos os campos das pesquisas q dependem de C�digo de Cliente pagamentoActionForm.set("idGuiaPagamento", ""); pagamentoActionForm.set("descricaoGuiaPagamento",""); pagamentoActionForm.set("valorGuiaPagamento", ""); pagamentoActionForm.set("valorPagamento", ""); } } // [FS0012] - Verificar exist�ncia da conta String referenciaContaDigitadoEnter = (String) pagamentoActionForm .get("referenciaConta"); // Caso o usu�rio tenha informado a refer�ncia da conta if (referenciaContaDigitadoEnter != null && !referenciaContaDigitadoEnter.trim().equalsIgnoreCase("")) { // Caso o usu�rio n�o tenha informado a matr�cula do im�vel // Levanta uma exce��o para o usu�rio indicado que ele n�o informou // a matr�cula do im�vel 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); // Conta contaEncontrada = this.pesquisarContaDigitada(codigoImovel, // referenciaContaDigitadoEnter); // Caso a conta esteja cadastrada no sistema // Seta todas as informa��es da conta no form // Caso contr�rio seta as informa��es da conta para nulo // e indica ao usu�rio que n�o existe conta para o im�el // informadocom a refer�ncia indicada if (contaEncontrada != null && clicouAdicionar == null) { pagamentoActionForm.set("referenciaConta", "" + referenciaContaDigitadoEnter); pagamentoActionForm.set("descricaoReferenciaConta", "" + Util.formatarMoedaReal(contaEncontrada .getValorTotal())); pagamentoActionForm.set("valorPagamento", "" + Util.formatarMoedaReal(contaEncontrada .getValorTotal())); httpServletRequest.setAttribute("referenciaContaNaoEncontrada", "true"); } else if ((informarPagamento == null || informarPagamento.equals("")) && (removerPagamento == null || removerPagamento.equals("")) && clicouAdicionar == null) { pagamentoActionForm.set("referenciaConta", "" + referenciaContaDigitadoEnter); pagamentoActionForm.set("descricaoReferenciaConta", ""); pagamentoActionForm.set("valorPagamento", ""); httpServletRequest.setAttribute("referenciaContaNaoEncontrada", "true"); /*httpServletRequest.setAttribute("referenciaContaNaoEncontrada", "exception"); pagamentoActionForm.set("descricaoReferenciaConta", "N�o h� Conta com a refer�ncia " + referenciaContaDigitadoEnter + " para o im�vel " + codigoImovel); //pagamentoActionForm.set("descricaoReferenciaConta",""); pagamentoActionForm.set("valorPagamento", ""); throw new ActionServletException("atencao.referencia.naocadastrada", null, "" + referenciaContaDigitadoEnter, "" + codigoImovel);*/ } } // [FS0022] - Verificar exist�ncia da guia de pagamento String codigoGuiaPagamentoDigitadoEnter = (String) pagamentoActionForm .get("idGuiaPagamento"); // Caso o usu�rio tenha informado o c�digo da guia de pagamento if (codigoGuiaPagamentoDigitadoEnter != null && !codigoGuiaPagamentoDigitadoEnter.trim() .equalsIgnoreCase("")) { // Caso o usu�rio n�o tenha informado a matr�cula do im�vel // Levanta uma exce��o para o usu�rio indicado que ele n�o informou // a matr�cula do im�vel if (codigoImovel == null || codigoImovel.trim().equalsIgnoreCase("")) { if (codigoCliente == null || codigoCliente.trim().equalsIgnoreCase("")) { throw new ActionServletException("atencao.required", null, "Matr�cula do Im�vel ou C�digo do Cliente"); } } // Pesquisa a guia de pagamento para o im�vel informado GuiaPagamento guiaPagamentoEncontrada = this .pesquisarGuiaPagamentoDigitada(codigoImovel, codigoCliente, codigoGuiaPagamentoDigitadoEnter, fachada); // GuiaPagamento guiaPagamentoEncontrada = // this.pesquisarGuiaPagamentoDigitada(codigoImovel, codigoCliente, // codigoGuiaPagamentoDigitadoEnter); // Caso a guia de pagamento esteja cadastrada no sistema // Seta os dados da guai de pagamento no form // Caso contr�rio seta os dados da guia para nulo e informa ao // usu�rio que n�o existe guia de pagamento cadastrada no sistema if (guiaPagamentoEncontrada != null && clicouAdicionar == null) { pagamentoActionForm.set("idGuiaPagamento", "" + codigoGuiaPagamentoDigitadoEnter); pagamentoActionForm.set("descricaoGuiaPagamento", "" + guiaPagamentoEncontrada.getDebitoTipo() .getDescricao()); pagamentoActionForm.set("valorGuiaPagamento", "" + Util.formatarMoedaReal(guiaPagamentoEncontrada .getValorDebito())); pagamentoActionForm.set("valorPagamento", "" + Util.formatarMoedaReal(guiaPagamentoEncontrada .getValorDebito())); httpServletRequest.setAttribute("idGuiaPagamentoNaoEncontrado", "true"); // Seta os dados da localidade pagamentoActionForm.set("idLocalidade", "" + guiaPagamentoEncontrada.getLocalidade().getId()); pagamentoActionForm.set("descricaoLocalidade", guiaPagamentoEncontrada.getLocalidade().getDescricao()); httpServletRequest.setAttribute("idLocalidadeNaoEncontrada", "true"); } else if (clicouAdicionar == null){ pagamentoActionForm.set("idGuiaPagamento", ""); pagamentoActionForm.set("descricaoGuiaPagamento", "Guia de Pagamento inexistente"); pagamentoActionForm.set("valorGuiaPagamento", ""); httpServletRequest.setAttribute("idGuiaPagamentoNaoEncontrado", "exception"); } } // [FS0024] - Verificar exist�ncia do d�bito a cobrar String codigoDebitoACobrarDigitadoEnter = (String) pagamentoActionForm .get("idDebitoACobrar"); // Caso o usu�rio tenha informado o c�digo do d�bito a cobrar if (codigoDebitoACobrarDigitadoEnter != null && !codigoDebitoACobrarDigitadoEnter.trim() .equalsIgnoreCase("")) { // Caso o usu�rio n�o tenha informado a matr�cula do im�vel // Levanta uma exce��o para o usu�rio indicado que ele n�o informou // a matr�cula do im�vel 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 DebitoACobrar debitoACobrarEncontrado = this .pesquisarDebitoACobrarDigitado(codigoImovel, codigoDebitoACobrarDigitadoEnter, fachada); // DebitoACobrar debitoACobrarEncontrado = // this.pesquisarDebitoACobrarDigitado(codigoImovel, // codigoDebitoACobrarDigitadoEnter); // Caso o d�bito a cobrar esteja cadastrado no sistema // Seta os dados do d�bito a cobrar no form // Caso contr�rio seta os dados do d�bito para nulo e informa ao // usu�rio que n�o existe // d�bito a cobrar cadastrado no sistema if (debitoACobrarEncontrado != null && clicouAdicionar == null) { pagamentoActionForm.set("idDebitoACobrar", "" + codigoDebitoACobrarDigitadoEnter); pagamentoActionForm.set("descricaoDebitoACobrar", "" + debitoACobrarEncontrado.getDebitoTipo() .getDescricao()); pagamentoActionForm.set("valorDebitoACobrar", "" + Util.formatarMoedaReal(debitoACobrarEncontrado .getValorDebito())); pagamentoActionForm.set("valorPagamento", "" + Util.formatarMoedaReal(debitoACobrarEncontrado .getValorDebito())); httpServletRequest.setAttribute("idDebitoACobrarNaoEncontrado", "true"); } else if (clicouAdicionar == null){ pagamentoActionForm.set("idDebitoACobrar", ""); pagamentoActionForm.set("descricaoDebitoACobrar", "D�bito a Cobrar inexistente"); pagamentoActionForm.set("descricaoDebitoACobrar", ""); httpServletRequest.setAttribute("idDebitoACobrarNaoEncontrado", "exception"); } } // [FS0020] - Verificar exist�ncia do tipo de d�bito String codigoTipoDebitoDigitadoEnter = (String) pagamentoActionForm .get("idTipoDebito"); // Caso o usu�rio tenha informado o c�digo do tipo de d�bito if (codigoTipoDebitoDigitadoEnter != null && !codigoTipoDebitoDigitadoEnter.trim().equalsIgnoreCase("")) { // Recupera o tipo de d�bito ,caso o mesmo exista na base DebitoTipo tipoDebitoEncontrado = fachada .pesquisarTipoDebitoDigitado(new Integer( codigoTipoDebitoDigitadoEnter)); // Caso o tipo de d�bito esteja cadastrado no sistema // Seta no form todos os dados do tipo de d�bito // Caso contr�rio seta os dados do tipo de d�bito para vazio e // informa que o tipo de d�bito n�o existe if (tipoDebitoEncontrado != null) { pagamentoActionForm.set("idTipoDebito", "" + tipoDebitoEncontrado.getId()); pagamentoActionForm.set("descricaoTipoDebito", tipoDebitoEncontrado.getDescricao()); httpServletRequest.setAttribute("idTipoDebitoNaoEncontrado", "true"); } else { pagamentoActionForm.set("idTipoDebito", ""); httpServletRequest.setAttribute("idTipoDebitoNaoEncontrado", "exception"); pagamentoActionForm.set("descricaoTipoDebito", "Tipo de D�bito inexistente"); } } /* * Colocado por Raphael Rossiter em 24/09/2007 (Analista: Aryed Lins) * OBJ: Inserir mais de um pagamento por vez */ if (informarPagamento != null && !informarPagamento.equals("")){ Collection<Pagamento> colecaoPagamento = (Collection) sessao.getAttribute("colecaoPagamento"); if (colecaoPagamento != null && !colecaoPagamento.isEmpty()){ //VALIDA E GERA O PAGAMENTO EM MEMORIA Pagamento pagamentoInformado = this.validarDadosPagamento(pagamentoActionForm, fachada, httpServletRequest); //VERIFICA SE O PAGAMENTO JA FOI INFORMADO NESSA SESSAO this.verificarPagamentoJaInformado(colecaoPagamento, pagamentoInformado); colecaoPagamento.add(pagamentoInformado); } else{ colecaoPagamento = new ArrayList(); //VALIDA E GERA O PAGAMENTO EM MEMORIA colecaoPagamento.add(this.validarDadosPagamento(pagamentoActionForm, fachada, httpServletRequest)); sessao.setAttribute("colecaoPagamento", colecaoPagamento); } //LIMAPA OS CAMPOS DO FORMULARIO PRA RECEBER OS DADOS DO PROXIMO PAGAMENTO this.limparDadosPagamento(pagamentoActionForm); } /* * Colocado por Raphael Rossiter em 24/09/2007 (Analista: Aryed Lins) * OBJ: Remover um pagamento informado */ if (removerPagamento != null && !removerPagamento.equals("")){ Collection<Pagamento> colecaoPagamento = (Collection) sessao.getAttribute("colecaoPagamento"); //REMOVE O PAGAMENTO DA MEMORIA this.removerPagamento(colecaoPagamento, removerPagamento, sessao); //LIMAPA OS CAMPOS DO FORMULARIO PRA RECEBER OS DADOS DO PROXIMO PAGAMENTO this.limparDadosPagamento(pagamentoActionForm); } return retorno; } // /** // * Este fluxo secund�rio tem como objetivo pesquisar a localidade digitada // pelo usu�rio // * // * [FS0007] - Verificar exist�ncia da localidade // * // * @author Pedro Alexandre // * @date 16/02/2006 // * // * @param idLocalidadeDigitada // * @return // */ // private Localidade pesquisarLocalidadeDigitada(Integer // idLocalidadeDigitada){ // // //Varai�vel que vai armazenar a localidade digitada pelo usu�rio // Localidade localidadeDigitada = null; // // //Cria uma inst�ncia da fachada // Fachada fachada = Fachada.getInstancia(); // // //Pesquisa a localidade informada pelo usu�rio no sistema // FiltroLocalidade filtroLocalidade = new FiltroLocalidade(); // filtroLocalidade.adicionarParametro(new // ParametroSimples(FiltroLocalidade.ID, idLocalidadeDigitada)); // Collection<Localidade> colecaoLocalidade = // fachada.pesquisar(filtroLocalidade, Localidade.class.getName()); // // //Caso exista a localidade no sistema // //Retorna para o usu�rio a localidade retornada pela pesquisa // //Caso contr�rio retorna um objeto nulo // if(colecaoLocalidade != null && !colecaoLocalidade.isEmpty()){ // localidadeDigitada =(Localidade) // Util.retonarObjetoDeColecao(colecaoLocalidade); // } // // //Retorna a localdiade encontrada ou nulo se n�o existir // return localidadeDigitada; // } // // /** // * Este fluxo secund�rio tem como objetivo pesquisar o im�vel digitado // pelo usu�rio // * // * [FS0008] - Verificar exist�ncia da matr�cula do im�vel // * // * @author Pedro Alexandre // * @date 16/02/2006 // * // * @param idImovelDigitado // * @return // */ // private Imovel pesquisarImovelDigitado(Integer idImovelDigitado){ // // //Cria a vari�vel que vai armazenar o im�vel pesquisado // Imovel imovelDigitado = null; // // //Cria uma inst�ncia da fachada // Fachada fachada = Fachada.getInstancia(); // // //Pesquisa o im�vel informado pelo usu�rio no sistema // FiltroImovel filtroImovel = new FiltroImovel(); // filtroImovel.adicionarCaminhoParaCarregamentoEntidade("localidade"); // filtroImovel.adicionarParametro(new ParametroSimples(FiltroImovel.ID, // idImovelDigitado)); // Collection colecaoImovel = fachada.pesquisar(filtroImovel, // Imovel.class.getName()); // // //Caso exista o im�vel no sistema // //Retorna para o usu�rio o im�vel retornado pela pesquisa // //Caso contr�rio retorna um objeto nulo // if(colecaoImovel != null && !colecaoImovel.isEmpty()){ // imovelDigitado =(Imovel) Util.retonarObjetoDeColecao(colecaoImovel); // } // // //Retorna o im�vel encontrado ou nulo se n�o existir // return imovelDigitado; // } // // /** // * Este fluxo secund�rio tem como objetivo pesquisar o cliente digitado // pelo usu�rio // * // * [FS0011] - Verificar exist�ncia do c�digo do cliente // * // * @author Pedro Alexandre // * @date 16/02/2006 // * // * @param idClienteDigitado // * @return // */ // private Cliente pesquisarClienteDigitado(Integer idClienteDigitado){ // // //Cria a vari�vel que vai armazenar o cliente pesquisado // Cliente clienteDigitado = null; // // //Cria uma inst�ncia da fachada // Fachada fachada = Fachada.getInstancia(); // // //Pesquisa o cliente informado pelo usu�rio no sistema // FiltroCliente filtroCliente = new FiltroCliente(); // filtroCliente.adicionarParametro(new ParametroSimples(FiltroCliente.ID, // idClienteDigitado)); // Collection<Cliente> colecaoCliente = fachada.pesquisar(filtroCliente, // Cliente.class.getName()); // // //Caso exista o cliente no sistema // //Retorna para o usu�rio o cliente retornado pela pesquisa // //Caso contr�rio retorna um objeto nulo // if(colecaoCliente != null && !colecaoCliente.isEmpty()){ // clienteDigitado =(Cliente) Util.retonarObjetoDeColecao(colecaoCliente); // } // // //Retorna o cliente encontrado ou nulo se n�o existir // return clienteDigitado; // } // // // /** // * Verifica se a localidade informada � a mesma do im�vel informado // * // * [FS0009] - Verificar localidade da matr�cula do im�vel // * // * @author Pedro Alexandre // * @date 16/02/2006 // * // * @param idLocalidadeInformada // * @param imovelInformado // * @return // */ // private boolean verificarLocalidadeMatriculaImovel(String // idLocalidadeInformada, Imovel imovelInformado){ // // //Recupera a localidade do im�vel // Localidade localidadeImovel = imovelInformado.getLocalidade(); // // //Caso a localidade informada pelo usu�rio seja a mesma do im�vel // //Retorna "true" indicandoque a localidade � a mesma // //Caso contr�rio retorna "false" indicando que a localidade � diferente // if(idLocalidadeInformada.equalsIgnoreCase(localidadeImovel.getId().toString()) // ){ // return true; // }else{ // return false; // } // } // // /** // * Pesquisa a conta do im�vel com a refer�ncia informada pelo usu�rio // * // * [FS0012] - Verificar exist�ncia da conta // * // * @author Pedro Alexandre // * @date 16/02/2006 // * // * @param idImovel // * @param referenciaConta // * @return // */ // private Conta pesquisarContaDigitada(String idImovel,String // referenciaConta){ // // //Vari�vel que vai armazenar a conta pesquisada // Conta contaDigitada = null; // // //Cria uma inst�ncia da fachada // Fachada fachada = Fachada.getInstancia(); // // //Formata a refer�ncia da conta informada para o formato (AAAAMM) sem a // barra // String anoMesConta = // Util.formatarMesAnoParaAnoMesSemBarra(referenciaConta); // // //Cria o filtro de conta e seta todos os par�metros para pesquisar a // conta do im�vel // FiltroConta filtroConta = new FiltroConta(); // filtroConta.adicionarParametro(new // ParametroSimples(FiltroConta.IMOVEL_ID,idImovel)); // filtroConta.adicionarParametro(new // ParametroSimples(FiltroConta.REFERENCIA,anoMesConta)); // filtroConta.adicionarParametro(new // ParametroSimples(FiltroConta.DEBITO_CREDITO_SITUACAO_ATUAL,DebitoCreditoSituacao.NORMAL, // ParametroSimples.CONECTOR_OR,3)); // filtroConta.adicionarParametro(new // ParametroSimples(FiltroConta.DEBITO_CREDITO_SITUACAO_ATUAL,DebitoCreditoSituacao.RETIFICADA, // ParametroSimples.CONECTOR_OR)); // filtroConta.adicionarParametro(new // ParametroSimples(FiltroConta.DEBITO_CREDITO_SITUACAO_ATUAL,DebitoCreditoSituacao.INCLUIDA)); // Collection colecaoContas = fachada.pesquisar(filtroConta, // Conta.class.getName()); // // //Caso exista a conta para a refer�ncia informada cadastrada no sistema // //Retorna para o usu�rio a conta retornada pela pesquisa // //Caso contr�rio retorna um objeto nulo // if(colecaoContas != null && !colecaoContas.isEmpty()){ // contaDigitada = (Conta)Util.retonarObjetoDeColecao(colecaoContas); // } // // //Retorna a conta encontrada ou nulo se n�o existir a conta // return contaDigitada; // } // // /** // * Pesquisa o d�bito a cobrar do im�vel informado pelo usu�rio // * // * [FS0024] - Verificar exist�ncia do d�bito a cobrar // * // * @author Pedro Alexandre // * @date 16/02/2006 // * // * @param idImovel // * @param idDebitoACobrar // * @return // */ // private DebitoACobrar pesquisarDebitoACobrarDigitado(String // idImovel,String idDebitoACobrar){ // // //Cria a vari�vel que vai armazenar o d�bito a cobrar pesquisado // DebitoACobrar debitoACobrarDigitado = null; // // //Cria uma inst�ncia da fachada // Fachada fachada = Fachada.getInstancia(); // // //Cria o filtro de d�bito a cobrar e seta todos os par�metros para // pesquisar o d�bito a cobrar do im�vel // FiltroDebitoACobrar filtroDebitoACobrar = new FiltroDebitoACobrar(); // filtroDebitoACobrar.adicionarParametro(new // ParametroSimples(FiltroDebitoACobrar.IMOVEL_ID,idImovel)); // filtroDebitoACobrar.adicionarParametro(new // ParametroSimples(FiltroDebitoACobrar.ID,idDebitoACobrar)); // filtroDebitoACobrar.adicionarCaminhoParaCarregamentoEntidade("debitoTipo"); // Collection colecaoDebitoACobrar = fachada.pesquisar(filtroDebitoACobrar, // DebitoACobrar.class.getName()); // // //Caso exista o d�bito a cobrar para o im�vel informado cadastrado no // sistema // //Retorna para o usu�rio o d�bito a cobrar retornado pela pesquisa // //Caso contr�rio retorna um objeto nulo // if(colecaoDebitoACobrar == null || colecaoDebitoACobrar.isEmpty()){ // throw new ActionServletException("atencao.naocadastrado",null, "D�bito a // Cobrar"); // }else{ // debitoACobrarDigitado = // (DebitoACobrar)Util.retonarObjetoDeColecao(colecaoDebitoACobrar); // } // // //Retorna o d�bito a cobrar encontrado ou nulo se n�o existir o d�bito a // cobrar // return debitoACobrarDigitado; // } // // // /** // * <Breve descri��o sobre o fluxo secund�rio> // * // * [FS0022] - Verificar exist�ncia da guia de pagamento // * // * @author Pedro Alexandre // * @date 16/02/2006 // * // * @param idImovel // * @param idCliente // * @param idGuiaPagamento // * @return // */ // private GuiaPagamento pesquisarGuiaPagamentoDigitada(String idImovel, // String idCliente, String idGuiaPagamento){ // // //Cria a vari�vel que vai armazenar a guia de pagamento pequisada // GuiaPagamento guiaPagamentoDigitada = null; // // //Cria uma inst�ncia da fachada // Fachada fachada = Fachada.getInstancia(); // // //Cria o filtro de guia de pagamento // FiltroGuiaPagamento filtroGuiaPagamento = new FiltroGuiaPagamento(); // // //Caso o usu�rio tenha informado o im�vel, seta o c�digo do im�vel no // filtro // //Caso contr�rio, o usu�rio tenha informado o cliente seta o c�digo do // cliente no filtro // //Caso o usu�rio n�o tenha informado nem o im�vel nem o cliente levanta // uma exce��o // //para o usu�rio informando que tem de informar o cliente ou o im�vel // if(idImovel != null && !idImovel.trim().equalsIgnoreCase("")){ // filtroGuiaPagamento.adicionarParametro(new // ParametroSimples(FiltroGuiaPagamento.IMOVEL_ID,idImovel)); // }else if(idCliente != null || !idCliente.trim().equalsIgnoreCase("")){ // filtroGuiaPagamento.adicionarParametro(new // ParametroSimples(FiltroGuiaPagamento.CLIENTE_ID,idCliente)); // }else{ // throw new ActionServletException("atencao.naoinformado", null, "Im�vel ou // Cliente"); // } // // //Pesquisa a guia de pagamento de acordo com os par�metros no filtro // filtroGuiaPagamento.adicionarParametro(new // ParametroSimples(FiltroGuiaPagamento.ID,idGuiaPagamento)); // filtroGuiaPagamento.adicionarCaminhoParaCarregamentoEntidade("debitoTipo"); // Collection colecaoGuiaPagamento = fachada.pesquisar(filtroGuiaPagamento, // GuiaPagamento.class.getName()); // // //Caso exista a guia de pagamento para o im�vel ou o cliente informado // cadastrado no sistema // //Retorna para o usu�rio a guia de pagamento retornada pela pesquisa // //Caso contr�rio retorna um objeto nulo // if(colecaoGuiaPagamento == null || colecaoGuiaPagamento.isEmpty()){ // throw new ActionServletException("atencao.naocadastrado",null, "Guia de // Pagamento"); // }else{ // guiaPagamentoDigitada = // (GuiaPagamento)Util.retonarObjetoDeColecao(colecaoGuiaPagamento); // } // // //Retorna a guia de pagamento encontrada ou nulo se n�o existir aa guia // de pagamento // return guiaPagamentoDigitada; // } /** * * Este fluxo secund�rio tem como objetivo pesquisar o im�vel informado pelo usu�rio * * [FS0008] Verificar exist�ncia da matr�cula do im�vel * * @author Pedro Alexandre * @date 16/02/2006 * * @param idImovel * @return */ public Imovel verificarExistenciaMatriculaImovel(String idImovel){ //Cria a vari�vel que vai armazenar o im�vel pesquisado Imovel imovelEncontrado = null; //Cria uma inst�ncia da fachada Fachada fachada = Fachada.getInstancia(); //Pesquisa o im�vel informado pelo usu�rio no sistema FiltroImovel filtroImovel = new FiltroImovel(); filtroImovel.adicionarParametro(new ParametroSimples(FiltroImovel.ID,idImovel)); filtroImovel.adicionarCaminhoParaCarregamentoEntidade("localidade"); Collection colecaoImoveis = fachada.pesquisar(filtroImovel, Imovel.class.getName()); //Caso exista o im�vel no sistema //Retorna para o usu�rio o im�vel retornado pela pesquisa //Caso contr�rio retorna um objeto nulo if(colecaoImoveis == null || colecaoImoveis.isEmpty()){ // throw new ActionServletException("atencao.naocadastrado",null, "Matr�cula do im�vel"); throw new ActionServletException("atencao.pesquisa_inexistente", null, "Matr�cula"); }else{ imovelEncontrado = (Imovel)Util.retonarObjetoDeColecao(colecaoImoveis); } //Retorna o im�vel encontrado ou nulo se n�o existir return imovelEncontrado; } /** * Este fluxo secund�rio tem como objetivo pesquisar a localidade digitada pelo usu�rio * * [FS0007] Verificar exist�ncia da localidade * * @author Pedro Alexandre * @date 16/02/2006 * * @param idLocalidade * @return */ private Localidade verificarExistenciaLocalidade(Integer idLocalidade) { //Vari�vel que vai armazenar a localidade digitada pelo usu�rio Localidade localidadeEncontrada = null; //Cria uma inst�ncia da fachada Fachada fachada = Fachada.getInstancia(); //Pesquisa a localidade informada pelo usu�rio no sistema FiltroLocalidade filtroLocalidade = new FiltroLocalidade(); filtroLocalidade.adicionarParametro(new ParametroSimples(FiltroLocalidade.ID, idLocalidade)); Collection<Localidade> colecaoLocalidade = fachada.pesquisar(filtroLocalidade, Localidade.class.getName()); //Caso exista a localidade no sistema //Retorna para o usu�rio a localidade retornada pela pesquisa //Caso contr�rio retorna um objeto nulo if(colecaoLocalidade == null || colecaoLocalidade.isEmpty()){ throw new ActionServletException("atencao.pesquisa_inexistente", null, "Localidade"); }else{ localidadeEncontrada =(Localidade) Util.retonarObjetoDeColecao(colecaoLocalidade); } //Retorna a localdiade encontrada ou nulo se n�o existir return localidadeEncontrada; } /** * Verifica se a localidade informada � a mesma do im�vel informado * * [FS0009] Verificar localidade da matr�cula do im�vel * * @author Pedro Alexandre * @date 16/02/2006 * * @param idLocalidade * @param imovel * @return */ private boolean verificarLocalidadeMatriculaImovel(String idLocalidade, Imovel imovel){ //Caso o im�vel tenha sido informado if(imovel != null){ //Recupera a localidade do im�vel Localidade localidadeImovel = imovel.getLocalidade(); Integer codigoLocalidade = new Integer(idLocalidade); //Caso a localidade informada pelo usu�rio seja a mesma do im�vel //Retorna "true" indicandoque a localidade � a mesma //Caso contr�rio retorna "false" indicando que a localidade � diferente if(codigoLocalidade.intValue() == localidadeImovel.getId().intValue() ){ return true; }else{ return false; } }else{ return true; } } /** * Verifica se existe conta para o im�vel e refer�ncia informados, caso n�o xista retorna uma conta nula * * [FS0012] Verificar exist�ncia da conta * * @author Pedro Alexandre * @date 16/02/2006 * * @param referenciaConta * @param idImovel * @return */ private Conta verificarExistenciaConta(String referenciaConta, String idImovel){ //Vari�vel que vai armazenar a conta pesquisada Conta contaEncontrada = null; //Cria uma inst�ncia da fachada Fachada fachada = Fachada.getInstancia(); //Formata a refer�ncia da conta informada para o formato (AAAAMM) sem a barra String anoMesConta = Util.formatarMesAnoParaAnoMesSemBarra(referenciaConta); //Cria o filtro de conta e seta todos os par�metros para pesquisar a conta do im�vel FiltroConta filtroConta = new FiltroConta(); filtroConta.adicionarCaminhoParaCarregamentoEntidade("localidade"); filtroConta.adicionarParametro(new ParametroSimples(FiltroConta.IMOVEL_ID,idImovel)); filtroConta.adicionarParametro(new ParametroSimples(FiltroConta.REFERENCIA,anoMesConta)); filtroConta.adicionarParametro(new ParametroSimples(FiltroConta.DEBITO_CREDITO_SITUACAO_ATUAL_ID,DebitoCreditoSituacao.NORMAL, ParametroSimples.CONECTOR_OR,3)); filtroConta.adicionarParametro(new ParametroSimples(FiltroConta.DEBITO_CREDITO_SITUACAO_ATUAL_ID,DebitoCreditoSituacao.RETIFICADA, ParametroSimples.CONECTOR_OR)); filtroConta.adicionarParametro(new ParametroSimples(FiltroConta.DEBITO_CREDITO_SITUACAO_ATUAL_ID,DebitoCreditoSituacao.INCLUIDA)); Collection colecaoContas = fachada.pesquisar(filtroConta, Conta.class.getName()); //Caso exista a conta para a refer�ncia informada cadastrada no sistema //Retorna para o usu�rio a conta retornada pela pesquisa //Caso contr�rio retorna um objeto nulo if(colecaoContas != null && !colecaoContas.isEmpty()){ contaEncontrada = (Conta) Util.retonarObjetoDeColecao(colecaoContas); } else{ FiltroContaHistorico filtroContaHistorico = new FiltroContaHistorico(); filtroContaHistorico.adicionarCaminhoParaCarregamentoEntidade("localidade"); filtroContaHistorico.adicionarParametro(new ParametroSimples(FiltroContaHistorico.IMOVEL_ID,idImovel)); filtroContaHistorico.adicionarParametro(new ParametroSimples(FiltroContaHistorico.ANO_MES_REFERENCIA,anoMesConta)); colecaoContas = fachada.pesquisar(filtroContaHistorico, ContaHistorico.class.getName()); if(colecaoContas != null && !colecaoContas.isEmpty()){ ContaHistorico contaHistorico = (ContaHistorico) Util.retonarObjetoDeColecao(colecaoContas); contaEncontrada = new Conta(); contaEncontrada.setLocalidade(contaHistorico.getLocalidade()); } } //Retorna a conta encontrada ou nulo se n�o existir a conta return contaEncontrada; } /** * Verifica se o usu�rio preencheu o im�vel ou o cliente, n�o pode existir os doi nem nenhum * * [FS0010] Verificar preenchimento do im�vel e do cliente * * @author Pedro Alexandre * @date 16/02/2006 * * @param idImovel * @param idCliente */ private void verificarPreeenchimentoImovelECliente(String idImovel,String idCliente){ //Caso o usu�rio n�o tenha informado o im�vel if(idImovel == null || idImovel.trim().equalsIgnoreCase("")){ //Caso o usu�rio n�o tenha informado o cliente, levanta uma exce��o indicando que o //usu�rio n�o informou nem o im�vel nem o cliente if(idCliente == null || idCliente.trim().equalsIgnoreCase("")){ throw new ActionServletException("atencao.naoinformado", null, "Matr�cula do Im�vel ou C�digo do Cliente"); } }else{ //Caso o usu�rio tenha informado o im�vel e o cliente, levanta uma exce��o para //indicando que s� pode informar um dos dois if(idCliente != null && !idCliente.trim().equalsIgnoreCase("")){ throw new ActionServletException("atencao.cliente_imovel_informado"); } } } /** * Este fluxo secund�rio tem como objetivo verificar a exist�ncia do cliente informado pelo usu�rio * * [FS0011] Verificar exist�ncia do c�digo do cliente * * @author Pedro Alexandre * @date 16/02/2006 * * @param idCliente * @return */ private Cliente verificarExistenciaCodigoCliente(Integer idCliente){ //Cria a vari�vel que vai armazenar o cliente pesquisado Cliente clienteEncontrado = null; //Cria uma inst�ncia da fachada Fachada fachada = Fachada.getInstancia(); //Pesquisa o cliente informado pelo usu�rio no sistema FiltroCliente filtroCliente = new FiltroCliente(); filtroCliente.adicionarParametro(new ParametroSimples(FiltroCliente.ID, idCliente)); Collection<Cliente> colecaoCliente = fachada.pesquisar(filtroCliente, Cliente.class.getName()); //Caso exista o cliente no sistema //Retorna para o usu�rio o cliente retornado pela pesquisa //Caso contr�rio retorna um objeto nulo if(colecaoCliente != null && !colecaoCliente.isEmpty()){ clienteEncontrado =(Cliente) Util.retonarObjetoDeColecao(colecaoCliente); }else{ throw new ActionServletException("atencao.pesquisa_inexistente", null, "Cliente"); } //Retorna o cliente encontrado ou nulo se n�o existir return clienteEncontrado; } /** * Verifica se o usu�rio informou o c�digo da guia de pagamento e o tipo de d�bito, * s� pode ser informado um dos dois * * [FS0021] Verificar preenchimento da guia de pagamento e do tipo de d�bito * * @author Pedro Alexandre * @date 16/02/2006 * * @param idGuiaPagamento * @param idTipoDebito */ private void verificarPreeenchimentoGuiaPagamentoETipoDebito(String idGuiaPagamento,String idTipoDebito){ //Caso o usu�rio n�o informou a guia de pagamento if(idGuiaPagamento == null || idGuiaPagamento.trim().equalsIgnoreCase("")){ //Caso o usu�rio n�o informou o tipo de d�bito, levanta uma exce��o para o us�rio //indicando que o usu�rio precisa informar ou a guia ou o tipo de d�bito if(idTipoDebito == null || idTipoDebito.trim().equalsIgnoreCase("")){ throw new ActionServletException("atencao.naoinformado", null, "Guia Pagamento ou Tipo de D�bito"); } }else{ //Caso o usu�rio informou a guia de pagamento e o tipo de d�bito, //levanta uma exce��o para o us�rio indicando que o usu�rio informou a guia e o tipo de d�bito if(idTipoDebito != null && !idTipoDebito.trim().equalsIgnoreCase("")){ throw new ActionServletException("atencao.guia_pagamento_tipo_debito_informado"); } } } /** * Verifica se existe guia de pagamento como c�digo da guia informado para o cliente ou im�vel * * [FS0022] Verificar exist�ncia da guia de pagamento * * @author Pedro Alexandre * @date 16/02/2006 * * @param idImovel * @param idCliente * @param idGuiaPagamento * @return */ private GuiaPagamento verificarExistenciaGuiaPagamento(String idImovel, String idCliente, String idGuiaPagamento){ //Cria a vari�vel que vai armazenar a guiade pagamento pesquisada GuiaPagamento guiaPagamentoDigitada = null; //Cria uma inst�ncia da fachada Fachada fachada = Fachada.getInstancia(); //Cria o filtro da guia para pesquisar FiltroGuiaPagamento filtroGuiaPagamento = new FiltroGuiaPagamento(); FiltroGuiaPagamentoHistorico filtroGuiaPagamentoHistorico = new FiltroGuiaPagamentoHistorico(); //Caso o usu�rio tenha informado o im�vel, seta o c�digo do im�vel no filtro da guia if(idImovel != null && !idImovel.trim().equalsIgnoreCase("")){ filtroGuiaPagamento.adicionarParametro(new ParametroSimples(FiltroGuiaPagamento.IMOVEL_ID,idImovel)); filtroGuiaPagamentoHistorico.adicionarParametro(new ParametroSimples(FiltroGuiaPagamentoHistorico.IMOVEL_ID,idImovel)); //Caso o usu�rio tenha informado o cliente, seta o c�digo do cliente no filtro da guia }else if(Util.verificarNaoVazio(idCliente)){ filtroGuiaPagamento.adicionarParametro(new ParametroSimples(FiltroGuiaPagamento.CLIENTE_ID,idCliente)); filtroGuiaPagamentoHistorico.adicionarParametro(new ParametroSimples(FiltroGuiaPagamentoHistorico.CLIENTE_ID,idCliente)); //Caso n�o tenha informado nem o im�vel e nem o cliente, levanta uma exce��o para o usu�rio //indicando que o im�vel ou o cliente tem de ser informados }else{ throw new ActionServletException("atencao.naoinformado", null, "Im�vel ou Cliente"); } //Seta o c�digoda guia no filtro e indica quais objetos para carregar no retorno da pesquisa filtroGuiaPagamento.adicionarParametro(new ParametroSimples(FiltroGuiaPagamento.ID,idGuiaPagamento)); filtroGuiaPagamento.adicionarCaminhoParaCarregamentoEntidade("debitoTipo"); filtroGuiaPagamento.adicionarCaminhoParaCarregamentoEntidade("localidade"); //Pesquisa a guia de pagamento no sistema Collection colecaoGuiaPagamento = fachada.pesquisar(filtroGuiaPagamento, GuiaPagamento.class.getName()); //Caso n�o exista guia de pagamento cadastrada no sistema, levanta uma exce��o para o //usu�rio indicando que a guia de apagamento n�o est� cadastrada //Caso contr�rio recupera a guia de pagamento pesquisada if(colecaoGuiaPagamento != null && !colecaoGuiaPagamento.isEmpty()){ // throw new ActionServletException("atencao.naocadastrado",null, "Guia de Pagamento"); guiaPagamentoDigitada = (GuiaPagamento)Util.retonarObjetoDeColecao(colecaoGuiaPagamento); } else{ filtroGuiaPagamentoHistorico.adicionarParametro(new ParametroSimples(FiltroGuiaPagamentoHistorico.ID,idGuiaPagamento)); filtroGuiaPagamentoHistorico.adicionarCaminhoParaCarregamentoEntidade("debitoTipo"); filtroGuiaPagamentoHistorico.adicionarCaminhoParaCarregamentoEntidade("localidade"); colecaoGuiaPagamento = fachada.pesquisar(filtroGuiaPagamentoHistorico, GuiaPagamentoHistorico.class.getName()); if(colecaoGuiaPagamento == null || colecaoGuiaPagamento.isEmpty()){ throw new ActionServletException("atencao.pesquisa_inexistente", null, "Guia de Pagamento"); } else{ GuiaPagamentoHistorico guiaPagamentoHistorico = (GuiaPagamentoHistorico) Util.retonarObjetoDeColecao(colecaoGuiaPagamento); guiaPagamentoDigitada = new GuiaPagamento(); guiaPagamentoDigitada.setDebitoTipo(guiaPagamentoHistorico.getDebitoTipo()); guiaPagamentoDigitada.setLocalidade(guiaPagamentoHistorico.getLocalidade()); guiaPagamentoDigitada.setImovel(guiaPagamentoHistorico.getImovel()); guiaPagamentoDigitada.setCliente(guiaPagamentoHistorico.getCliente()); guiaPagamentoDigitada.setValorDebito(guiaPagamentoHistorico.getValorDebito()); } } //Retorna a guia de pagamento pesquisada ou um objeto vazio se a guia n�o existir return guiaPagamentoDigitada; } /** * Verifica se a localidade informada � a mesma da guia de pagamento * * [FS0014] Verificar localidade da guia de pagamento * * @author Pedro Alexandre * @date 16/02/2006 * * @param guiaPagamento * @param idLocalidade */ private void verificarLocalidadeGuiaPagamento(GuiaPagamento guiaPagamento,String idLocalidade){ //Caso o usu�rio tenha informado a localidade if(idLocalidade != null && !idLocalidade.trim().equalsIgnoreCase("")){ //Caso a localidade da guia de pagamento seja diferente da localidade informada if(!guiaPagamento.getLocalidade().getId().equals(new Integer(idLocalidade))){ //Cria a mensagem que vai ser exibida ao usu�rio //e levanta a exce��o String mensagem = "A Localidade da Guia de Pagamento "+guiaPagamento.getLocalidade().getId()+" � diferente da Localidade informada "+idLocalidade; throw new ActionServletException("atencao.localidade_guia_pagamento_diferente", null, mensagem); } } } /** * Este fluxo secund�rio tem como objetivo pesquisar o tipo de d�bito informado pelo usu�rio * * [FS0020] Verificar exist�ncia do tipo de d�bito * * @author Pedro Alexandre * @date 16/02/2006 * * @param idTipoDebito * @return */ private DebitoTipo verificarExistenciaTipoDebito(Integer idTipoDebito){ //Vari�vel que vai armazenar o tipo de dp�bito digitado pelo usu�rio DebitoTipo tipoDebitoEncontrado = null; //Cria uma inst�ncia da fachada Fachada fachada = Fachada.getInstancia(); //Pesquisa o tipo de d�bito informado pelo usu�rio no sistema FiltroDebitoTipo filtroDebitoTipo = new FiltroDebitoTipo(); filtroDebitoTipo.adicionarParametro(new ParametroSimples(FiltroDebitoTipo.ID, idTipoDebito)); Collection<DebitoTipo> colecaoDebitoTipo = fachada.pesquisar(filtroDebitoTipo, DebitoTipo.class.getName()); //Caso exista o tipo de d�bito no sistema //Retorna para o usu�rio o tipo de d�bito retornado pela pesquisa //Caso contr�rio retorna um objeto nulo if(colecaoDebitoTipo == null || colecaoDebitoTipo.isEmpty()){ throw new ActionServletException("atencao.pesquisa_inexistente", null, "Tipo de D�bito"); }else{ tipoDebitoEncontrado =(DebitoTipo) Util.retonarObjetoDeColecao(colecaoDebitoTipo); } //Retorna o tipo de d�bito encontrado ou nulo se n�o existir return tipoDebitoEncontrado; } /** * Verifica a exist�ncia de guia de pagamento com o tipo de d�bito e o im�vel informados * * [FS0013] Verificar exist�ncia de guia de pagamento com tipo de d�bito informado * * @author Pedro Alexandre * @date 16/02/2006 * * @param idGuiaPagamento * @param idImovel */ private GuiaPagamento verificarExistenciaGuiaPagamentoComTipoDebito(DebitoTipo tipoDebito,String idImovel, String idCliente){ //Cria a vari�vel que vai armazenar a guia de pagamento pesquisada GuiaPagamento guiaPagamento = null; //Cria o filtro de guia de pagamento, e seta os par�metros para pesquisar FiltroGuiaPagamento filtroGuiaPagamento = new FiltroGuiaPagamento(); filtroGuiaPagamento.adicionarParametro(new ParametroSimples(FiltroGuiaPagamento.DEBITO_TIPO_ID, tipoDebito.getId())); filtroGuiaPagamento.adicionarParametro(new ParametroSimples(FiltroGuiaPagamento.DEBITO_CREDITO_SITUACAO_ATUAL_ID, DebitoCreditoSituacao.NORMAL)); FiltroGuiaPagamentoHistorico filtroGuiaPagamentoHistorico = new FiltroGuiaPagamentoHistorico(); filtroGuiaPagamentoHistorico.adicionarParametro(new ParametroSimples(FiltroGuiaPagamentoHistorico.DEBITO_TIPO_ID, tipoDebito.getId())); filtroGuiaPagamentoHistorico.adicionarParametro(new ParametroSimples(FiltroGuiaPagamentoHistorico.DEBITO_CREDITO_SITUACAO_ATUAL_ID, DebitoCreditoSituacao.NORMAL)); //Caso o usu�rio tenha informado a matr�cula do im�vel, //seta a metr�culo do im�vel no filtro //Caso contr�rio seta o c�digodo cliente no filtro if(idImovel != null && !idImovel.trim().equalsIgnoreCase("")){ filtroGuiaPagamento.adicionarParametro(new ParametroSimples(FiltroGuiaPagamento.IMOVEL_ID, idImovel)); filtroGuiaPagamentoHistorico.adicionarParametro(new ParametroSimples(FiltroGuiaPagamentoHistorico.IMOVEL_ID, idImovel)); }else{ filtroGuiaPagamento.adicionarParametro(new ParametroSimples(FiltroGuiaPagamento.CLIENTE_ID, idCliente)); filtroGuiaPagamentoHistorico.adicionarParametro(new ParametroSimples(FiltroGuiaPagamentoHistorico.CLIENTE_ID, idCliente)); } //Pesquisa as guias de pagamento no sistema Collection colecaoGuiaPagamento = Fachada.getInstancia().pesquisar(filtroGuiaPagamento,GuiaPagamento.class.getName()); //Caso exista guia de pagamento cadastrada no sistema com os par�metros informados no filtro if(colecaoGuiaPagamento != null && !colecaoGuiaPagamento.isEmpty()){ //Caso exista mais que uma guia de pagamento cadastrada if(colecaoGuiaPagamento.size() > 1){ //Cria a vari�vel que vai armazenar a mensagem que vai ser exibida ao usu�rio String mensagem = null; //Caso a pequisa foi para im�vel //Cria a mensagem para im�vel //Caso contr�rio cria a mensagem para cliente if(idImovel != null && !idImovel.trim().equalsIgnoreCase("")){ mensagem = "H� mais de uma Guia de Pagamento com o tipo de d�bito "+ tipoDebito.getDescricao() +" para o Im�vel "+idImovel+". Efetue uma pesquisa para selecionar a Guia"; }else{ mensagem = "H� mais de uma Guia de Pagamento com o tipo de d�bito "+ tipoDebito.getDescricao() +" para o Cliente "+idCliente+". Efetue uma pesquisa para selecionar a Guia"; } //levanta a exce��o para o usu�rio com a mensagem criada throw new ActionServletException("atencao.descricao_concatenada", null, mensagem); }else{ //Caso s� exista apenas uma guia de pagamento cadastrada para o tipo de d�bito guiaPagamento = (GuiaPagamento) Util.retonarObjetoDeColecao(colecaoGuiaPagamento); } } else{ colecaoGuiaPagamento = Fachada.getInstancia() .pesquisar(filtroGuiaPagamentoHistorico, GuiaPagamentoHistorico.class.getName()); if(colecaoGuiaPagamento != null && !colecaoGuiaPagamento.isEmpty()){ //Caso exista mais que uma guia de pagamento cadastrada if(colecaoGuiaPagamento.size() > 1){ //Cria a vari�vel que vai armazenar a mensagem que vai ser exibida ao usu�rio String mensagem = null; //Caso a pequisa foi para im�vel //Cria a mensagem para im�vel //Caso contr�rio cria a mensagem para cliente if(idImovel != null && !idImovel.trim().equalsIgnoreCase("")){ mensagem = "H� mais de uma Guia de Pagamento com o tipo de d�bito "+ tipoDebito.getDescricao() +" para o Im�vel "+idImovel+". Efetue uma pesquisa para selecionar a Guia"; }else{ mensagem = "H� mais de uma Guia de Pagamento com o tipo de d�bito "+ tipoDebito.getDescricao() +" para o Cliente "+idCliente+". Efetue uma pesquisa para selecionar a Guia"; } //levanta a exce��o para o usu�rio com a mensagem criada throw new ActionServletException("atencao.descricao_concatenada", null, mensagem); } else{ //Caso s� exista apenas uma guia de pagamento cadastrada para o tipo de d�bito GuiaPagamentoHistorico guiaPagamentoHistorico = (GuiaPagamentoHistorico) Util.retonarObjetoDeColecao(colecaoGuiaPagamento); guiaPagamento = new GuiaPagamento(); guiaPagamento.setLocalidade(guiaPagamentoHistorico.getLocalidade()); } } } //Retorna a guia de pagamento encontrada ou nulo se n�o existir a guia de pagamento return guiaPagamento; } /** * Verifica se o usu�rio informou o c�digo do d�bito a cobrar e o tipo de d�bito, * s� pode ser informado um dos dois * * [FS0023] Verificar preenchimento do d�bito a cobrar e do tipo de d�bito * * @author Pedro Alexandre * @date 16/02/2006 * * @param idDebitoACobrar * @param idTipoDebito */ private void verificarPreeenchimentoDebitoACobrarETipoDebito(String idDebitoACobrar,String idTipoDebito){ //Caso o usu�rio n�o informou o d�bito a cobrar if(idDebitoACobrar == null || idDebitoACobrar.trim().equalsIgnoreCase("")){ //Caso o usu�rio n�o informou o tipo de d�bito, levanta uma exce��o para o us�rio //indicando que o usu�rio precisa informar ou o d�bito a cobrar ou o tipo de d�bito if(idTipoDebito == null || idTipoDebito.trim().equalsIgnoreCase("")){ throw new ActionServletException("atencao.naoinformado", null, "D�bito a Cobrar ou Tipo de D�bito"); } }else{ //Caso o usu�rio informou o d�bito a cobrar e o tipo de d�bito, levanta uma exce��o //para o us�rio indicando que o usu�rio informou o d�bito a cobrar e o tipo de d�bito if(idTipoDebito != null && !idTipoDebito.trim().equalsIgnoreCase("")){ throw new ActionServletException("atencao.debto_a_cobrar_tipo_debito_informado"); } } } /** * * Verifica se o d�bito a cobrar do im�vel informado pelo usu�rio existe no sistema * * [FS0024] Verificar exist�ncia do d�bito a cobrar * * @author Pedro Alexandre * @date 16/02/2006 * * @param idImovel * @param idDebitoACobrar * @return */ private DebitoACobrar verificarExistenciaDebitoACobrar(String idImovel, String idDebitoACobrar){ //Cria a vari�vel que vai armazenar o d�bito a cobrar pesquisado DebitoACobrar debitoACobrarDigitado = null; //Cria uma inst�ncia da fachada Fachada fachada = Fachada.getInstancia(); //Cria o filtro de d�bito a cobrar e seta todos os par�metros para pesquisar o d�bito a cobrar do im�vel FiltroDebitoACobrar filtroDebitoACobrar = new FiltroDebitoACobrar(); filtroDebitoACobrar.adicionarParametro(new ParametroSimples(FiltroDebitoACobrar.IMOVEL_ID,idImovel)); filtroDebitoACobrar.adicionarParametro(new ParametroSimples(FiltroDebitoACobrar.ID,idDebitoACobrar)); filtroDebitoACobrar.adicionarCaminhoParaCarregamentoEntidade("debitoTipo"); filtroDebitoACobrar.adicionarCaminhoParaCarregamentoEntidade("localidade"); Collection colecaoDebitoACobrar = fachada.pesquisar(filtroDebitoACobrar, DebitoACobrar.class.getName()); //Caso exista o d�bito a cobrar para o im�vel informado cadastrado no sistema //Retorna para o usu�rio o d�bito a cobrar retornado pela pesquisa //Caso contr�rio retorna um objeto nulo if(colecaoDebitoACobrar != null && !colecaoDebitoACobrar.isEmpty()){ debitoACobrarDigitado = (DebitoACobrar)Util.retonarObjetoDeColecao(colecaoDebitoACobrar); } else{ FiltroDebitoACobrarHistorico filtroDebitoACobrarHistorico = new FiltroDebitoACobrarHistorico(); filtroDebitoACobrarHistorico.adicionarParametro(new ParametroSimples(FiltroDebitoACobrarHistorico.IMOVEL_ID,idImovel)); filtroDebitoACobrarHistorico.adicionarParametro(new ParametroSimples(FiltroDebitoACobrarHistorico.ID,idDebitoACobrar)); filtroDebitoACobrarHistorico.adicionarCaminhoParaCarregamentoEntidade("debitoTipo"); filtroDebitoACobrarHistorico.adicionarCaminhoParaCarregamentoEntidade("localidade"); colecaoDebitoACobrar = fachada.pesquisar(filtroDebitoACobrarHistorico, DebitoACobrarHistorico.class.getName()); if(colecaoDebitoACobrar == null || colecaoDebitoACobrar.isEmpty()){ throw new ActionServletException("atencao.pesquisa_inexistente", null, "D�bito a Cobrar"); } else{ DebitoACobrarHistorico debitoACobrarHistorico = (DebitoACobrarHistorico)Util.retonarObjetoDeColecao(colecaoDebitoACobrar); debitoACobrarDigitado = new DebitoACobrar(); debitoACobrarDigitado.setDebitoTipo(debitoACobrarHistorico.getDebitoTipo()); debitoACobrarDigitado.setLocalidade(debitoACobrarHistorico.getLocalidade()); } } //Retorna o d�bito a cobrar encontrado ou nulo se n�o existir o d�bito a cobrar return debitoACobrarDigitado; } /** * Verifica se a localidade informada � a mesma do d�bito a cobrar * * [FS0017] Verificar localidade do d�bito a cobrar * * @author Pedro Alexandre * @date 16/02/2006 * * @param debitoACobrar * @param idLocalidade */ private void verificarLocalidadeDebitoACobrar(DebitoACobrar debitoACobrar,String idLocalidade){ //Caso o usu�rio tenha informado a localidade if(idLocalidade != null && !idLocalidade.trim().equalsIgnoreCase("")){ //Caso a localidade do d�bito a cobrar seja diferente da localidade informada if(!debitoACobrar.getLocalidade().getId().equals(new Integer(idLocalidade))){ //Cria a mensagem que vai ser exibida ao usu�rio //e levanta a exce��o String mensagem = "A Localidade do D�bito a Cobrar "+debitoACobrar.getLocalidade().getId()+" � diferente da Localidade informada "+idLocalidade; throw new ActionServletException("atencao.localidade_debito_a_cobrar_diferente", null, mensagem); } } } /** * Verifica a exist�ncia de d�bito a cobrar com o tipo de d�bito e o im�vel informados * * [FS0016] Verificar exist�ncia de d�bito a cobrar com tipo de d�bito informado * * @author Pedro Alexandre * @date 16/02/2006 * * @param idTipoDebito * @param idImovel */ private DebitoACobrar verificarExistenciaDebitoACobrarComTipoDebito(DebitoTipo tipoDebito,String idImovel, BigDecimal valorInformado){ //Cria a vari�vel que vai armazenar o d�bito a cobrar pesquisado DebitoACobrar debitoACobrar = null; //Cria o filtro de d�bito a cobrar, e seta os par�metros para pesquisar FiltroDebitoACobrar filtroDebitoACobrar = new FiltroDebitoACobrar(); filtroDebitoACobrar.adicionarParametro(new ParametroSimples(FiltroDebitoACobrar.DEBITO_TIPO_ID, tipoDebito.getId())); filtroDebitoACobrar.adicionarParametro(new ParametroSimples(FiltroDebitoACobrar.IMOVEL_ID, idImovel)); filtroDebitoACobrar.adicionarParametro(new ParametroSimples(FiltroDebitoACobrar.DEBITO_CREDITO_SITUACAO_ATUAL_ID, DebitoCreditoSituacao.NORMAL)); Collection colecaoDebitoACobrar = Fachada.getInstancia().pesquisar(filtroDebitoACobrar,DebitoACobrar.class.getName()); DebitoACobrar debitoColecao = null; //Caso exista d�bito a cobrar cadastrado com o tipo de d�bito informado if(colecaoDebitoACobrar != null && !colecaoDebitoACobrar.isEmpty()){ debitoColecao = (DebitoACobrar)colecaoDebitoACobrar.iterator().next(); //Caso exista mais que um d�bito a cobrar cadastrado para o tipo de d�bito //Monta a mensagem para o usu�rio e levanta a exce��o if(colecaoDebitoACobrar.size() > 1){ BigDecimal valorFaltaDebito = BigDecimal.ZERO; BigDecimal valorDebito = debitoColecao.getValorDebito(); short numeroPrestacaoDebito = debitoColecao.getNumeroPrestacaoDebito(); short numeroPrestacaoCobrada = debitoColecao.getNumeroPrestacaoCobradas(); valorDebito = valorDebito.divide(new BigDecimal(numeroPrestacaoDebito+"")); valorFaltaDebito = valorFaltaDebito.add(debitoColecao.getValorDebito()); valorFaltaDebito = valorFaltaDebito.subtract(valorDebito); valorFaltaDebito = valorFaltaDebito.multiply(new BigDecimal(numeroPrestacaoCobrada+"")); if(!valorInformado.equals(valorFaltaDebito)){ String mensagem = "H� mais de um D�bito a Cobrar com o tipo de d�bito "+ tipoDebito.getDescricao() +" para o Im�vel "+idImovel + " " + valorFaltaDebito; throw new ActionServletException("atencao.descricao_concatenada", null, mensagem); } }else{ //Caso s� exista apenas um d�bito a cobrar cadastrado para o tipo de d�bito debitoACobrar =(DebitoACobrar) Util.retonarObjetoDeColecao(colecaoDebitoACobrar); } } else{ FiltroDebitoACobrarHistorico filtroDebitoACobrarHistorico = new FiltroDebitoACobrarHistorico(); filtroDebitoACobrarHistorico.adicionarParametro(new ParametroSimples(FiltroDebitoACobrarHistorico.DEBITO_TIPO_ID, tipoDebito.getId())); filtroDebitoACobrarHistorico.adicionarParametro(new ParametroSimples(FiltroDebitoACobrarHistorico.IMOVEL_ID, idImovel)); filtroDebitoACobrarHistorico.adicionarParametro(new ParametroSimples(FiltroDebitoACobrarHistorico.DEBITO_CREDITO_SITUACAO_ATUAL_ID, DebitoCreditoSituacao.NORMAL)); colecaoDebitoACobrar = Fachada.getInstancia().pesquisar(filtroDebitoACobrarHistorico,DebitoACobrarHistorico.class.getName()); //Caso exista mais que um d�bito a cobrar cadastrado para o tipo de d�bito //Monta a mensagem para o usu�rio e levanta a exce��o if(colecaoDebitoACobrar.size() > 1){ DebitoACobrarHistorico debitoColecaoHistorico = (DebitoACobrarHistorico)colecaoDebitoACobrar.iterator().next(); BigDecimal valorFaltaDebito = BigDecimal.ZERO; BigDecimal valorDebito = debitoColecaoHistorico.getValorDebito(); short numeroPrestacaoDebito = debitoColecaoHistorico.getPrestacaoDebito(); short numeroPrestacaoCobrada = debitoColecaoHistorico.getPrestacaoCobradas(); valorDebito = valorDebito.divide(new BigDecimal(numeroPrestacaoDebito+"")); valorFaltaDebito = valorFaltaDebito.add(debitoColecaoHistorico.getValorDebito()); valorFaltaDebito = valorFaltaDebito.subtract(valorDebito); valorFaltaDebito = valorFaltaDebito.multiply(new BigDecimal(numeroPrestacaoCobrada+"")); if(!valorInformado.equals(valorFaltaDebito)){ String mensagem = "H� mais de um D�bito a Cobrar com o tipo de d�bito "+ tipoDebito.getDescricao() +" para o Im�vel "+idImovel; throw new ActionServletException("atencao.descricao_concatenada", null, mensagem); } } else{ //Caso s� exista apenas um d�bito a cobrar cadastrado para o tipo de d�bito debitoACobrar = new DebitoACobrar(); } } //Retorna o d�bito a cobrar encontrado ou nulo se n�o existir o d�bito a cobrar return debitoACobrar; } /** * @author Raphael Rossiter * @date 24/09/2007 */ private Pagamento validarDadosPagamento(DynaValidatorActionForm pagamentoActionForm, Fachada fachada, HttpServletRequest httpServletRequest){ //Cria o objeto que vai armazenar os dados de pagamento Pagamento pagamento = new Pagamento(); //[FS0001] - Validar data do pagamento //Recupera a data de pagamento e verifica se a data � uma data v�lida String dataPagamentoString = (String)pagamentoActionForm.get("dataPagamento"); Date dataPagamento = null; SimpleDateFormat dataFormato = new SimpleDateFormat("dd/MM/yyyy"); try { dataPagamento = dataFormato.parse(dataPagamentoString); } catch (ParseException ex) { throw new ActionServletException("atencao.data_pagamento_invalida"); } //Recupera a forma de arrecadaa��o e pesquisa o objeto no sistema String idFormaArrecadacao = (String)pagamentoActionForm.get("idFormaArrecadacao"); ArrecadacaoForma arrecadacaoForma = new ArrecadacaoForma(); arrecadacaoForma.setId(new Integer(idFormaArrecadacao)); //Recupera o aviso banc�rio e pequisa o objeto no sistema String idAvisoBancario = (String)pagamentoActionForm.get("idAvisoBancario"); FiltroAvisoBancario filtroAvisoBancario = new FiltroAvisoBancario(); filtroAvisoBancario.adicionarParametro(new ParametroSimples(FiltroAvisoBancario.ID, idAvisoBancario)); AvisoBancario avisoBancario = (AvisoBancario)(fachada.pesquisar(filtroAvisoBancario,AvisoBancario.class.getName())).iterator().next(); //Recupera o valor do pagamento BigDecimal valorPagamento = Util.formatarMoedaRealparaBigDecimal( (String)pagamentoActionForm.get("valorPagamento")); //Recupera o c�digo do im�vel String idImovel = (String)pagamentoActionForm.get("idImovel"); //Cria a vari�vel que vai armazenar o im�vel informado Imovel imovel = null; //Caso o usu�rio tenha informado o im�vel if(idImovel != null && !idImovel.trim().equalsIgnoreCase("")){ //[FS0008] - Verificar exist�ncia da matr�cula do im�vel imovel = this.verificarExistenciaMatriculaImovel(idImovel); } //Recupera o tipo de documento String idTipoDocumento = (String)pagamentoActionForm.get("idTipoDocumento"); //Recupera o c�digo da localidade String idLocalidade = (String)pagamentoActionForm.get("idLocalidade"); //Cria a vari�vel que vai armazenar a localidade informada Localidade localidade = null; //Caso o tipo de documento n�o seja conta if(!idTipoDocumento.equals(DocumentoTipo.CONTA.toString())){ if(idLocalidade != null && !idLocalidade.equalsIgnoreCase("")){ //[FS0007] - Verificar exist�ncia da localidade localidade = this.verificarExistenciaLocalidade(new Integer(idLocalidade)); } } //[FS0009] - Verificar localidade da matr�cula do im�vel if(! this.verificarLocalidadeMatriculaImovel(idLocalidade, imovel)){ throw new ActionServletException("atencao.localidade_imovel_diferente",imovel.getLocalidade().getId().toString(),idLocalidade); } //Recupera o tipo de d�bito String idTipoDebito = (String)pagamentoActionForm.get("idTipoDebito"); //Cria a vari�vel que vai armazenar o tipo de d�bito DebitoTipo debitoTipo = null; //Formata a refer�ncia do pagamento para o formato AAAAMM Integer anoMesReferenciaPagamento = new Integer(Util.formatarMesAnoParaAnoMesSemBarra( dataPagamentoString.substring(3,10))); //Recupera os par�metros do sistema SistemaParametro sistemaParametro = fachada.pesquisarParametrosDoSistema(); //cria a vari�vel que vai armazenar a refer�ncia da arrecada��o int anoMesReferenciaArrecadacao; //Caso a refer�ncia do pagamento seja maior que a refer�ncia da arrecada��o //dos par�metros do sistema, atribui a refer�ncia do pagamento a refer�ncia da arrecada��o //Caso contr�rio atribui a refer�ncia da arrecada��o do par�metro do sistema a refer�ncia de arrecada��o if(anoMesReferenciaPagamento > sistemaParametro.getAnoMesArrecadacao()){ anoMesReferenciaArrecadacao = anoMesReferenciaPagamento; }else{ anoMesReferenciaArrecadacao = sistemaParametro.getAnoMesArrecadacao(); } //Caso nenhum tipo de documento informado, levanta uma exce��o para o usu�rio //indicando que o tipo de documento n�o foi informado if(idTipoDocumento == null || idTipoDocumento.equalsIgnoreCase("")){ throw new ActionServletException("atencao.naoinformado",null, "Tipo de Documento"); }else{ //Cria o objeto que vai armazenar o tipo de documento DocumentoTipo documentoTipo = new DocumentoTipo(); //Caso o tipo de documento seja conta if(idTipoDocumento.equals(DocumentoTipo.CONTA.toString())){ //Seta o tipo de documento para conta documentoTipo.setId(new Integer(DocumentoTipo.CONTA)); documentoTipo.setDescricaoAbreviado(ConstantesSistema.TIPO_PAGAMENTO_CONTA); documentoTipo.setDescricaoDocumentoTipo(ConstantesSistema.TIPO_PAGAMENTO_CONTA); //Recupera a refer�ncia da conta String referenciaConta = (String)pagamentoActionForm.get("referenciaConta"); //[FS0012] - Verificar exist�ncia da conta Conta conta = this.verificarExistenciaConta(referenciaConta, idImovel); //Formata a refer�ncia da conta para AAAAMM Integer anoMesReferencia = new Integer(Util.formatarMesAnoParaAnoMesSemBarra(referenciaConta)); //Cria o pagamento para conta pagamento.setAnoMesReferenciaPagamento(anoMesReferencia); pagamento.setAnoMesReferenciaArrecadacao(anoMesReferenciaArrecadacao); pagamento.setValorPagamento(valorPagamento); pagamento.setDataPagamento(dataPagamento); pagamento.setPagamentoSituacaoAtual(null); pagamento.setPagamentoSituacaoAnterior(null); pagamento.setDebitoTipo(null); ContaGeral contaGeral = new ContaGeral(); if (conta != null) { contaGeral.setId(conta.getId()); contaGeral.setConta(conta); } pagamento.setContaGeral(contaGeral); pagamento.setGuiaPagamento(null); pagamento.setDebitoACobrarGeral(null); pagamento.setDocumentoTipo(documentoTipo); pagamento.setAvisoBancario(avisoBancario); pagamento.setImovel(imovel); pagamento.setArrecadadorMovimentoItem(null); pagamento.setArrecadacaoForma(arrecadacaoForma); pagamento.setUltimaAlteracao(new Date()); pagamento.setCliente(null); DocumentoTipo documentoTipoAgregador = new DocumentoTipo(); documentoTipoAgregador.setId(DocumentoTipo.CONTA); pagamento.setDocumentoTipoAgregador(documentoTipoAgregador); pagamento.setDataProcessamento(new Date()); //Caso a conta com a refer�ncia informada n�o esteja cadastrada no sistema if(conta == null){ /*throw new ActionServletException("atencao.pesquisa.conta_referencia_imovel_inexistente",null, Util.formatarAnoMesParaMesAno(referenciaConta), idImovel.toString());*/ /* * Colocado por Raphael Rossiter em 09/06/2008 - Analista: Aryed e Eduardo * OBJ: Atribuir a localidade do im�vel no pagamento */ pagamento.setLocalidade(imovel.getLocalidade()); httpServletRequest.setAttribute("msg", "N�o h� Conta com a refer�ncia " + referenciaConta + " para o Im�vel " + idImovel); httpServletRequest.setAttribute("pagamento", String.valueOf( GcomAction.obterTimestampIdObjeto(pagamento))); } else{ pagamento.setLocalidade(conta.getLocalidade()); } //Caso o tipo de documento seja guia de pagamento }else if(idTipoDocumento.equals(DocumentoTipo.GUIA_PAGAMENTO.toString())){ //Seta o tipo de documento para guia de pagamento documentoTipo.setId(new Integer(DocumentoTipo.GUIA_PAGAMENTO)); documentoTipo.setDescricaoAbreviado(ConstantesSistema.TIPO_PAGAMENTO_GUIA_PAGAMENTO); documentoTipo.setDescricaoDocumentoTipo(ConstantesSistema.TIPO_PAGAMENTO_GUIA_PAGAMENTO); //Recupera o c�digo do cliente String idCliente = (String)pagamentoActionForm.get("idCliente"); //[FS0010] - Verificar preenchimento do im�vel e do cliente this.verificarPreeenchimentoImovelECliente(idImovel, idCliente); //Caso o usu�rio tenha informado o cliente //Recupera o cliente informado do sistema Cliente cliente = null; if(idCliente != null && !idCliente.trim().equalsIgnoreCase("")){ //[FS0011] - Verificar exist�ncia do c�digo do cliente cliente = this.verificarExistenciaCodigoCliente(new Integer(idCliente)); } //Recupera o c�digo da guia de pagamento String idGuiaPagamento = (String)pagamentoActionForm.get("idGuiaPagamento"); //[FS0021] - Verificar preenchimento da guia de pagamento e do tipo de d�bito this.verificarPreeenchimentoGuiaPagamentoETipoDebito(idGuiaPagamento, idTipoDebito); //Caso o usu�rio informou a guia de pagamento //Recupera a guia de pagamento informada do sistema GuiaPagamento guiaPagamento = null; if(idGuiaPagamento != null && !idGuiaPagamento.trim().equals("")){ //[FS0022] - Verificar exist�ncia da guia de pagamento guiaPagamento = this.verificarExistenciaGuiaPagamento(idImovel, idCliente, idGuiaPagamento); //Caso existaa guia de pagamento, seta o tipo de d�bito da guia de pagamento //para o tipo de d�bito do pagamento que vai ser inserido debitoTipo = guiaPagamento.getDebitoTipo(); //[FS0014] - Verificar localidade da guia de pagamento this.verificarLocalidadeGuiaPagamento(guiaPagamento,idLocalidade); } //Caso o tipo de d�bito tenha sido informado if(idTipoDebito != null && !idTipoDebito.trim().equals("")){ //[FS0020] - Verificar exist�ncia do tipo de d�bito debitoTipo = this.verificarExistenciaTipoDebito(new Integer(idTipoDebito)); //[FS0013] - Verificar exist�ncia de guia de pagamento com o tipo de d�bito informado if(idImovel != null && !idImovel.trim().equalsIgnoreCase("")){ guiaPagamento = this.verificarExistenciaGuiaPagamentoComTipoDebito(debitoTipo,idImovel, null); } if(idCliente != null && !idCliente.trim().equalsIgnoreCase("")){ guiaPagamento = this.verificarExistenciaGuiaPagamentoComTipoDebito(debitoTipo,null, idCliente); } //Caso n�o exista nenhuma guia de pagamento com o tipo de d�bito informado if(guiaPagamento == null){ if(idImovel != null && !idImovel.trim().equalsIgnoreCase("")){ /*throw new ActionServletException("atencao.descricao_concatenada", null, "N�o h� Guia de Pagamento com o tipo de d�bito " + debitoTipo.getDescricao() + " para o Im�vel " + idImovel);*/ httpServletRequest.setAttribute("msg", "N�o h� Guia de Pagamento com o tipo de d�bito " + debitoTipo.getDescricao() + " para o Im�vel " + idImovel); } else{ throw new ActionServletException("atencao.descricao_concatenada", null, "N�o h� Guia de Pagamento com o tipo de d�bito " + debitoTipo.getDescricao() + " para o Cliente " + idCliente); /*httpServletRequest.setAttribute("msg", "N�o h� Guia de Pagamento com o tipo de d�bito " + debitoTipo.getDescricao() + " para o Cliente " + idCliente);*/ } } } //Cria o pagamento para a guia de pagamento pagamento.setAnoMesReferenciaPagamento(null); pagamento.setAnoMesReferenciaArrecadacao(anoMesReferenciaArrecadacao); pagamento.setValorPagamento(valorPagamento); pagamento.setDataPagamento(dataPagamento); pagamento.setPagamentoSituacaoAtual(null); pagamento.setPagamentoSituacaoAnterior(null); pagamento.setDebitoTipo(debitoTipo); pagamento.setContaGeral(null); pagamento.setGuiaPagamento(guiaPagamento); pagamento.setDebitoACobrarGeral(null); pagamento.setLocalidade(localidade); pagamento.setDocumentoTipo(documentoTipo); pagamento.setAvisoBancario(avisoBancario); pagamento.setImovel(imovel); pagamento.setArrecadadorMovimentoItem(null); pagamento.setArrecadacaoForma(arrecadacaoForma); pagamento.setUltimaAlteracao(new Date()); pagamento.setCliente(cliente); DocumentoTipo documentoTipoAgregador = new DocumentoTipo(); documentoTipoAgregador.setId(DocumentoTipo.GUIA_PAGAMENTO); pagamento.setDocumentoTipoAgregador(documentoTipoAgregador); pagamento.setDataProcessamento(new Date()); httpServletRequest.setAttribute("pagamento", String.valueOf( GcomAction.obterTimestampIdObjeto(pagamento))); //Caso o tipo de documento seja d�bito a cobrar }else if(idTipoDocumento.equals(DocumentoTipo.DEBITO_A_COBRAR.toString())){ //Seta o tipo de documento do pagamento para d�bito a cobrar documentoTipo.setId(new Integer(DocumentoTipo.DEBITO_A_COBRAR)); documentoTipo.setDescricaoAbreviado(ConstantesSistema.TIPO_PAGAMENTO_DEBITO_A_COBRAR); documentoTipo.setDescricaoDocumentoTipo(ConstantesSistema.TIPO_PAGAMENTO_DEBITO_A_COBRAR); //Recupera o c�digo do d�bito a cobrar String idDebitoACobrar = (String)pagamentoActionForm.get("idDebitoACobrar"); //[FS0024] - Verificar exist�ncia do d�bito a cobrar this.verificarPreeenchimentoDebitoACobrarETipoDebito(idDebitoACobrar, idTipoDebito); //Caso o usu�rio informou o d�bito a cobrar //Recupera o d�bito a cobrar informado do sistema DebitoACobrar debitoACobrar = null; if(idDebitoACobrar != null && !idDebitoACobrar.trim().equals("")){ //[FS0023] - Verificar preenchimento do d�bito a cobrar e do tipo de d�bito debitoACobrar = this.verificarExistenciaDebitoACobrar(idImovel, idDebitoACobrar); //Caso exista o d�bito a cobrar, seta o tipo de d�bito do d�bito a cobrar //para o tipo de d�bito do pagamento que vai ser inserido debitoTipo = debitoACobrar.getDebitoTipo(); //[FS0017] - Verificar localidade do d�bito a cobrar this.verificarLocalidadeDebitoACobrar(debitoACobrar,idLocalidade); } //Caso o tipo de d�bito tenha sido informado if(idTipoDebito != null && !idTipoDebito.trim().equals("")){ //[FS0020] - Verificar exist�ncia do tipo de d�bito debitoTipo = this.verificarExistenciaTipoDebito(new Integer(idTipoDebito)); BigDecimal valorPagamentoInformado = Util.formatarMoedaRealparaBigDecimal( (String)pagamentoActionForm.get("valorPagamento")); //[FS0016] - Verificar exist�ncia de d�bito a cobrar com o tipo de d�bito debitoACobrar = this.verificarExistenciaDebitoACobrarComTipoDebito(debitoTipo,idImovel, valorPagamentoInformado); //Caso n�o exista nenhum d�bito a cobrar com o tipo de d�bito informado if(debitoACobrar == null){ httpServletRequest.setAttribute("msg", "N�o h� D�bito a Cobrar com o tipo de d�bito " + debitoTipo.getDescricao() + " para o Im�vel " + idImovel); } } //Cria o pagamento para o d�bito a cobrar pagamento.setAnoMesReferenciaPagamento(null); pagamento.setAnoMesReferenciaArrecadacao(anoMesReferenciaArrecadacao); pagamento.setValorPagamento(valorPagamento); pagamento.setDataPagamento(dataPagamento); pagamento.setPagamentoSituacaoAtual(null); pagamento.setPagamentoSituacaoAnterior(null); pagamento.setDebitoTipo(debitoTipo); pagamento.setContaGeral(null); pagamento.setGuiaPagamento(null); DebitoACobrarGeral debitoACobrarGeral = null; if(debitoACobrar != null){ debitoACobrarGeral = new DebitoACobrarGeral(); debitoACobrarGeral.setId(debitoACobrar.getId()); debitoACobrarGeral.setDebitoACobrar(debitoACobrar); } pagamento.setDebitoACobrarGeral(debitoACobrarGeral); pagamento.setLocalidade(localidade); pagamento.setDocumentoTipo(documentoTipo); pagamento.setAvisoBancario(avisoBancario); pagamento.setImovel(imovel); pagamento.setArrecadadorMovimentoItem(null); pagamento.setArrecadacaoForma(arrecadacaoForma); pagamento.setUltimaAlteracao(new Date()); pagamento.setCliente(null); DocumentoTipo documentoTipoAgregador = new DocumentoTipo(); documentoTipoAgregador.setId(DocumentoTipo.DEBITO_A_COBRAR); pagamento.setDocumentoTipoAgregador(documentoTipoAgregador); pagamento.setDataProcessamento(new Date()); httpServletRequest.setAttribute("pagamento", String.valueOf( GcomAction.obterTimestampIdObjeto(pagamento))); } } return pagamento; } /** * @author Raphael Rossiter * @date 24/09/2007 */ private void removerPagamento(Collection<Pagamento> colecaoPagamento, String identificadorPagamento, HttpSession sessao){ if (colecaoPagamento != null && !colecaoPagamento.isEmpty()){ long idPagamento = Long.parseLong(identificadorPagamento); Iterator itPagamento = colecaoPagamento.iterator(); Pagamento pagamento = null; while(itPagamento.hasNext()){ pagamento = (Pagamento) itPagamento.next(); if (GcomAction.obterTimestampIdObjeto(pagamento) == idPagamento){ itPagamento.remove(); break; } } if (colecaoPagamento.isEmpty()){ sessao.removeAttribute("colecaoPagamento"); } } } /** * @author Raphael Rossiter * @date 24/09/2007 */ private void limparDadosPagamento(DynaValidatorActionForm pagamentoActionForm){ //pagamentoActionForm.set("idTipoDocumento", ""); pagamentoActionForm.set("idLocalidade", ""); pagamentoActionForm.set("descricaoLocalidade", ""); //pagamentoActionForm.set("idImovel", ""); //pagamentoActionForm.set("descricaoImovel", ""); pagamentoActionForm.set("idCliente", ""); pagamentoActionForm.set("nomeCliente", ""); pagamentoActionForm.set("referenciaConta", ""); pagamentoActionForm.set("descricaoReferenciaConta", ""); pagamentoActionForm.set("idGuiaPagamento", ""); pagamentoActionForm.set("descricaoGuiaPagamento", ""); pagamentoActionForm.set("valorGuiaPagamento", ""); pagamentoActionForm.set("idDebitoACobrar", ""); pagamentoActionForm.set("descricaoDebitoACobrar", ""); pagamentoActionForm.set("valorDebitoACobrar", ""); pagamentoActionForm.set("idTipoDebito", ""); pagamentoActionForm.set("descricaoTipoDebito", ""); pagamentoActionForm.set("valorPagamento", ""); } /** * @author Raphael Rossiter * @date 24/09/2007 */ private void verificarPagamentoJaInformado(Collection colecaoPagamento, Pagamento pagamentoInformado){ boolean informado = true; if (colecaoPagamento != null && !colecaoPagamento.isEmpty()){ Iterator itPagamento = colecaoPagamento.iterator(); Pagamento pagamentoColecao = null; while(itPagamento.hasNext()){ informado = true; pagamentoColecao = (Pagamento) itPagamento.next(); //TIPO DO DOCUMENTO if (!pagamentoColecao.getDocumentoTipo().getId().equals( pagamentoInformado.getDocumentoTipo().getId())){ informado = false; } //IMOVEL if ((pagamentoColecao.getImovel() != null && pagamentoInformado.getImovel() == null) || (pagamentoColecao.getImovel() == null && pagamentoInformado.getImovel() != null)){ informado = false; } else if (pagamentoColecao.getImovel() != null && pagamentoInformado.getImovel() != null && !pagamentoColecao.getImovel().getId().equals( pagamentoInformado.getImovel().getId())){ informado = false; } /* * Compara��o do CLIENTE apenas ser� realizada para os documentoS do tipo * GUIA DE PAGAMENTO. */ if (pagamentoInformado.getDocumentoTipo().getId().equals(DocumentoTipo.GUIA_PAGAMENTO)){ //CLIENTE if ((pagamentoColecao.getCliente() != null && pagamentoInformado.getCliente() == null) || (pagamentoColecao.getCliente() == null && pagamentoInformado.getCliente() != null)){ informado = false; } else if (pagamentoColecao.getCliente() != null && pagamentoInformado.getCliente() != null && !pagamentoColecao.getCliente().getId().equals( pagamentoInformado.getCliente().getId())){ informado = false; } } //CONTA if ((pagamentoColecao.getContaGeral() != null && pagamentoInformado.getContaGeral() == null) || (pagamentoColecao.getContaGeral() == null && pagamentoInformado.getContaGeral() != null)){ informado = false; } else if (pagamentoColecao.getContaGeral() != null && pagamentoInformado.getContaGeral() != null && pagamentoColecao.getContaGeral().getConta() != null && pagamentoInformado.getContaGeral().getConta() != null && pagamentoColecao.getContaGeral().getConta().getReferencia() != pagamentoInformado.getContaGeral().getConta().getReferencia()){ informado = false; }else if(pagamentoColecao.getContaGeral() != null && pagamentoInformado.getContaGeral() != null && pagamentoColecao.getContaGeral().getConta() != null && pagamentoInformado.getContaGeral().getConta() != null && pagamentoColecao.getContaGeral().getConta().getReferencia() == pagamentoInformado.getContaGeral().getConta().getReferencia() && !pagamentoInformado.getValorPagamento().equals( pagamentoColecao.getValorPagamento())){ informado = false; } //TIPO DO DEBITO if ((pagamentoColecao.getDebitoTipo() != null && pagamentoInformado.getDebitoTipo() == null) || (pagamentoColecao.getDebitoTipo() == null && pagamentoInformado.getDebitoTipo() != null)){ informado = false; } else if (pagamentoColecao.getDebitoTipo() != null && pagamentoInformado.getDebitoTipo() != null && !pagamentoColecao.getDebitoTipo().getId().equals( pagamentoInformado.getDebitoTipo().getId())){ informado = false; } if (informado){ throw new ActionServletException("atencao.pagamento_ja_informado"); } } } } /** * Inseri uma cole��o de pagamentos no sistema * * [UC0265] Inserir Pagamentos * * Pesquisa a guia de pagamento do im�vel informado pelo usu�rio * * [FS0022] - Verificar exist�ncia da guia de pagamento * * @author Raphael Rossiter * @date 21/05/2008 * * @param idImovel * @param idCliente * @param idGuiaPagamento * @return * @throws ControladorException */ public GuiaPagamento pesquisarGuiaPagamentoDigitada(String idImovel, String idCliente, String idGuiaPagamento, Fachada fachada){ GuiaPagamento guiaPagamentoDigitada = null; FiltroGuiaPagamento filtroGuiaPagamento = new FiltroGuiaPagamento(); FiltroGuiaPagamentoHistorico filtroGuiaPagamentoHistorico = new FiltroGuiaPagamentoHistorico(); // Caso o usu�rio tenha informado o im�vel, seta o c�digo do im�vel no // filtro // Caso contr�rio, o usu�rio tenha informado o cliente seta o c�digo do // cliente no filtro // Caso o usu�rio n�o tenha informado nem o im�vel nem o cliente levanta // uma exce��o // para o usu�rio informando que tem de informar o cliente ou o im�vel if (idImovel != null && !idImovel.trim().equalsIgnoreCase("")) { filtroGuiaPagamento.adicionarParametro(new ParametroSimples( FiltroGuiaPagamento.IMOVEL_ID, idImovel)); filtroGuiaPagamentoHistorico.adicionarParametro(new ParametroSimples( FiltroGuiaPagamentoHistorico.IMOVEL_ID, idImovel)); } else if (Util.verificarNaoVazio(idCliente)) { filtroGuiaPagamento.adicionarParametro(new ParametroSimples( FiltroGuiaPagamento.CLIENTE_ID, idCliente)); filtroGuiaPagamentoHistorico.adicionarParametro(new ParametroSimples( FiltroGuiaPagamentoHistorico.CLIENTE_ID, idCliente)); } else { throw new ActionServletException("atencao.naoinformado", null, "Im�vel ou Cliente"); } filtroGuiaPagamento.adicionarParametro(new ParametroSimples(FiltroGuiaPagamento.ID, idGuiaPagamento)); filtroGuiaPagamento.adicionarCaminhoParaCarregamentoEntidade("debitoTipo"); filtroGuiaPagamento.adicionarCaminhoParaCarregamentoEntidade("localidade"); filtroGuiaPagamento.adicionarCaminhoParaCarregamentoEntidade("imovel"); filtroGuiaPagamento.adicionarCaminhoParaCarregamentoEntidade("cliente"); Collection colecaoGuiaPagamento = fachada.pesquisar(filtroGuiaPagamento, GuiaPagamento.class.getName()); // Caso exista a guia de pagamento para o im�vel ou o cliente informado // cadastrado no sistema // Retorna para o usu�rio a guia de pagamento retornada pela pesquisa // Caso contr�rio retorna um objeto nulo if (colecaoGuiaPagamento != null && !colecaoGuiaPagamento.isEmpty()) { guiaPagamentoDigitada = (GuiaPagamento) Util.retonarObjetoDeColecao(colecaoGuiaPagamento); } else { filtroGuiaPagamentoHistorico.adicionarParametro(new ParametroSimples(FiltroGuiaPagamentoHistorico.ID, idGuiaPagamento)); filtroGuiaPagamentoHistorico.adicionarCaminhoParaCarregamentoEntidade("debitoTipo"); filtroGuiaPagamentoHistorico.adicionarCaminhoParaCarregamentoEntidade("localidade"); filtroGuiaPagamentoHistorico.adicionarCaminhoParaCarregamentoEntidade("imovel"); filtroGuiaPagamentoHistorico.adicionarCaminhoParaCarregamentoEntidade("cliente"); colecaoGuiaPagamento = fachada.pesquisar(filtroGuiaPagamentoHistorico, GuiaPagamentoHistorico.class.getName()); if (colecaoGuiaPagamento == null || colecaoGuiaPagamento.isEmpty()) { throw new ActionServletException("atencao.pesquisa_inexistente", null, "Guia de Pagamento"); } else{ GuiaPagamentoHistorico guiaPagamentoHistorico = (GuiaPagamentoHistorico) Util.retonarObjetoDeColecao(colecaoGuiaPagamento); guiaPagamentoDigitada = new GuiaPagamento(); guiaPagamentoDigitada.setDebitoTipo(guiaPagamentoHistorico.getDebitoTipo()); guiaPagamentoDigitada.setLocalidade(guiaPagamentoHistorico.getLocalidade()); guiaPagamentoDigitada.setImovel(guiaPagamentoHistorico.getImovel()); guiaPagamentoDigitada.setCliente(guiaPagamentoHistorico.getCliente()); guiaPagamentoDigitada.setValorDebito(guiaPagamentoHistorico.getValorDebito()); } } // Retorna a guia de pagamento encontrada ou nulo se n�o existir aa guia // de pagamento return guiaPagamentoDigitada; } /** * Inseri uma cole��o de pagamentos no sistema * * [UC0265] Inserir Pagamentos * * Pesquisa o d�bito a cobrar do im�vel informado pelo usu�rio * * [FS0024] - Verificar exist�ncia do d�bito a cobrar * * @author Pedro Alexandre * @date 21/05/2008 * * @param idImovel * @param idDebitoACobrar * @return * @throws ControladorException */ public DebitoACobrar pesquisarDebitoACobrarDigitado(String idImovel, String idDebitoACobrar, Fachada fachada) { // Cria a vari�vel que vai armazenar o d�bito a cobrar pesquisado DebitoACobrar debitoACobrarDigitado = null; // Cria o filtro de d�bito a cobrar e seta todos os par�metros para // pesquisar o d�bito a cobrar do im�vel FiltroDebitoACobrar filtroDebitoACobrar = new FiltroDebitoACobrar(); filtroDebitoACobrar.adicionarParametro(new ParametroSimples(FiltroDebitoACobrar.IMOVEL_ID, idImovel)); filtroDebitoACobrar.adicionarParametro(new ParametroSimples(FiltroDebitoACobrar.ID, idDebitoACobrar)); filtroDebitoACobrar.adicionarCaminhoParaCarregamentoEntidade("debitoTipo"); filtroDebitoACobrar.adicionarCaminhoParaCarregamentoEntidade("localidade"); filtroDebitoACobrar.adicionarCaminhoParaCarregamentoEntidade("imovel"); Collection colecaoDebitoACobrar = fachada.pesquisar(filtroDebitoACobrar, DebitoACobrar.class.getName()); // Caso exista o d�bito a cobrar para o im�vel informado cadastrado no // sistema // Retorna para o usu�rio o d�bito a cobrar retornado pela pesquisa // Caso contr�rio retorna um objeto nulo if (colecaoDebitoACobrar != null && !colecaoDebitoACobrar.isEmpty()) { debitoACobrarDigitado = (DebitoACobrar) Util.retonarObjetoDeColecao(colecaoDebitoACobrar); } else { FiltroDebitoACobrarHistorico filtroDebitoACobrarHistorico = new FiltroDebitoACobrarHistorico(); filtroDebitoACobrarHistorico.adicionarParametro(new ParametroSimples(FiltroDebitoACobrarHistorico.IMOVEL_ID, idImovel)); filtroDebitoACobrarHistorico.adicionarParametro(new ParametroSimples(FiltroDebitoACobrarHistorico.ID, idDebitoACobrar)); filtroDebitoACobrarHistorico.adicionarCaminhoParaCarregamentoEntidade("debitoTipo"); filtroDebitoACobrarHistorico.adicionarCaminhoParaCarregamentoEntidade("localidade"); filtroDebitoACobrarHistorico.adicionarCaminhoParaCarregamentoEntidade("imovel"); colecaoDebitoACobrar = fachada.pesquisar(filtroDebitoACobrarHistorico, DebitoACobrarHistorico.class.getName()); if (colecaoDebitoACobrar == null || colecaoDebitoACobrar.isEmpty()) { throw new ActionServletException("atencao.pesquisa_inexistente", null, "D�bito a Cobrar"); } else{ DebitoACobrarHistorico debitoACobrarHistorico = (DebitoACobrarHistorico) Util.retonarObjetoDeColecao(colecaoDebitoACobrar); debitoACobrarDigitado = new DebitoACobrar(); debitoACobrarDigitado.setDebitoTipo(debitoACobrarHistorico.getDebitoTipo()); debitoACobrarDigitado.setLocalidade(debitoACobrarHistorico.getLocalidade()); debitoACobrarDigitado.setImovel(debitoACobrarHistorico.getImovel()); debitoACobrarDigitado.setValorDebito(debitoACobrarHistorico.getValorDebito()); } } // Retorna o d�bito a cobrar encontrado ou nulo se n�o existir o d�bito // a cobrar return debitoACobrarDigitado; } }