package gcom.arrecadacao; import gcom.arrecadacao.bean.ArrecadadorMovimentoItemHelper; import gcom.arrecadacao.bean.PagamentoHelperCodigoBarras; import gcom.arrecadacao.bean.RegistroHelperCodigoBarras; import gcom.arrecadacao.bean.RegistroHelperCodigoBarrasTipoPagamento; import gcom.arrecadacao.bean.RegistroHelperCodigoG; import gcom.arrecadacao.pagamento.GuiaPagamento; import gcom.arrecadacao.pagamento.Pagamento; import gcom.cadastro.imovel.Imovel; import gcom.cadastro.localidade.Localidade; import gcom.cadastro.sistemaparametro.SistemaParametro; import gcom.cobranca.CobrancaDocumento; import gcom.cobranca.DocumentoTipo; import gcom.faturamento.conta.ContaGeral; import gcom.faturamento.credito.CreditoARealizarGeral; import gcom.faturamento.debito.DebitoACobrarGeral; import gcom.faturamento.debito.DebitoTipo; import gcom.seguranca.acesso.usuario.Usuario; import gcom.util.ConstantesSistema; import gcom.util.ControladorException; import gcom.util.ErroRepositorioException; import gcom.util.Util; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Collection; import java.util.Date; import java.util.Iterator; import javax.ejb.SessionBean; /** * Controlador Faturamento CAEMA * * @author S�vio Luiz * @date 28/04/2008 */ public class ControladorArrecadacaoCAEMASEJB extends ControladorArrecadacao implements SessionBean { private static final long serialVersionUID = 1L; //============================================================================================================== // M�TODOS EXCLUSIVOS DA CAEMA //============================================================================================================== /** * [UC0264] - Distribuir Dados do C�digo de Barras * * @author S�vio Luiz, Rafael Corr�a, Raphael Rossiter * @date 15/02/2006, 12/05/2008, 18/11/2008 * * @param codigoBarras * @return RegistroHelperCodigoBarras * @throws ControladorException */ public RegistroHelperCodigoBarras distribuirDadosCodigoBarras( String codigoBarras) throws ControladorException { // instancia o objeto de c�digo de barras, setando os valores que s�o iguais para todas as empresas RegistroHelperCodigoBarras registroHelperCodigoBarras = distribuirDadosCodigoBarrasGeral(codigoBarras); // recupera o id pagamento da string String idPagamento = codigoBarras.substring(19, 44); //TIPO PAGAMENTO GSAN String tipoPagamento = idPagamento.substring(24, 25).trim(); //TIPO PAGAMENTO LEGADO String tipoPagamentoLegado = idPagamento.substring(21, 23).trim(); String tipoPagamentoLegadoConta = idPagamento.substring(22, 23).trim(); //PARA IDENTIFICAR LEGADO boolean eHLegado = false; String dataVencimentoParaVerificar = idPagamento.substring(0, 8); Integer anoVencimentoParaVerificar = Integer.parseInt(dataVencimentoParaVerificar.substring(4, 8)); Integer anoReferenciaParaVerificar = Integer.parseInt(idPagamento.substring(8, 12)); if (tipoPagamento.equals("0")){ eHLegado = true; } else if (!tipoPagamento.equals(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_CONTA.toString()) && !tipoPagamento.equals(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_GUIA_PAGAMENTO.toString()) && !tipoPagamento.equals(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_DOCUMENTO_COBRANCA.toString()) && !tipoPagamento.equals(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_GUIA_PAGAMENTO_CLIENTE.toString()) && !tipoPagamento.equals(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_FATURA_CLIENTE_RESPONSAVEL.toString()) && !tipoPagamento.equals(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_DOCUMENTO_COBRANCA_NOVO.toString()) && !tipoPagamento.equals(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_GUIA_PAGAMENTO_COM_IDENTIFICACAO_MATRICULA.toString()) && !tipoPagamento.equals(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_GUIA_PAGAMENTO_COM_IDENTIFICACAO_CLIENTE.toString())){ eHLegado = true; } else if (!Util.validarDiaMesAnoSemBarra(dataVencimentoParaVerificar) && anoVencimentoParaVerificar > 2000 && anoReferenciaParaVerificar < 2009 && anoReferenciaParaVerificar <= anoVencimentoParaVerificar && (tipoPagamentoLegado.equals(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_FATURA_LEGADO_CAEMA) || tipoPagamentoLegadoConta.equals(""+(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_CONTA_LEGADO_CAEMA_INTEGER)))){ eHLegado = true; } //IDENTIFICAR TIPO DE PAGAMENTO CAMPANHA - CONTINUA��O LEGADO if (!eHLegado){ String mesAnoFaturaParaVerificar = idPagamento.substring(11, 17); mesAnoFaturaParaVerificar = Util.formatarMesAnoSemBarraParaMesAnoComBarra(mesAnoFaturaParaVerificar); if (tipoPagamento.equals(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_FATURA_CLIENTE_RESPONSAVEL.toString()) && (tipoPagamentoLegado.substring(1, 2)).equals( ConstantesSistema.CODIGO_TIPO_PAGAMENTO_CAMPANHA_AVISO_DEBITO_LEGADO_CAEMA.toString()) && !Util.validarMesAno(mesAnoFaturaParaVerificar)){ eHLegado = true; } } if (eHLegado){ if ((tipoPagamentoLegado.substring(1, 2)).equals( ConstantesSistema.CODIGO_TIPO_PAGAMENTO_CONTA_LEGADO_CAEMA_INTEGER.toString())){ tipoPagamento = ConstantesSistema.CODIGO_TIPO_PAGAMENTO_CONTA_LEGADO_CAEMA; } else if ((tipoPagamentoLegado.substring(1, 2)).equals( ConstantesSistema.CODIGO_TIPO_PAGAMENTO_FATURA_LEGADO_CAEMA_INTEGER.toString())){ tipoPagamento = ConstantesSistema.CODIGO_TIPO_PAGAMENTO_FATURA_LEGADO_CAEMA; } else if ((tipoPagamentoLegado.substring(1, 2)).equals( ConstantesSistema.CODIGO_TIPO_PAGAMENTO_GUIA_PAGAMENTO_LEGADO_CAEMA_INTEGER.toString())){ tipoPagamento = ConstantesSistema.CODIGO_TIPO_PAGAMENTO_GUIA_PAGAMENTO_LEGADO_CAEMA; } else{ tipoPagamento = ConstantesSistema.CODIGO_TIPO_PAGAMENTO_CAMPANHA_AVISO_DEBITO_LEGADO_CAEMA; } } registroHelperCodigoBarras.setTipoPagamento(tipoPagamento); RegistroHelperCodigoBarrasTipoPagamento registroHelperCodigoBarrasTipoPagamento = distribuirDadosCodigoBarrasPorTipoPagamento( idPagamento, tipoPagamento, registroHelperCodigoBarras.getIdEmpresa()); registroHelperCodigoBarras .setRegistroHelperCodigoBarrasTipoPagamento(registroHelperCodigoBarrasTipoPagamento); return registroHelperCodigoBarras; } /** * [UC0264] - Distribuir Dados do C�digo de Barras - LEGADO * * @author Raphael Rossiter * @date 19/11/2008 * * @param idPagamento * @param tipoPagamento * @param idEmpresa * @return RegistroHelperCodigoBarrasTipoPagamento * @throws ControladorException */ public RegistroHelperCodigoBarrasTipoPagamento distribuirDadosCodigoBarrasPorTipoPagamento( String idPagamento, String tipoPagamento, String idEmpresa) throws ControladorException { RegistroHelperCodigoBarrasTipoPagamento registroHelperCodigoBarrasTipoPagamento = new RegistroHelperCodigoBarrasTipoPagamento(); registroHelperCodigoBarrasTipoPagamento = super.distribuirDadosCodigoBarrasPorTipoPagamento(idPagamento, tipoPagamento, idEmpresa); //LEGADO - CAEMA //=============================================================================================================================== if (tipoPagamento.equals(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_NEGOCIACAO_A_VISTA_LEGADO_CAEMA.toString()) || tipoPagamento.equals(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_GUIA_PAGAMENTO_LEGADO_CAEMA.toString())){ //Ano de Emiss�o da Guia registroHelperCodigoBarrasTipoPagamento.setIdPagamento1(idPagamento .substring(0, 4).trim()); // N�mero da Guia registroHelperCodigoBarrasTipoPagamento.setIdPagamento2(idPagamento .substring(4, 12).trim()); // Matr�cula do Im�vel sem o d�gito verificador registroHelperCodigoBarrasTipoPagamento.setIdPagamento3(idPagamento .substring(12, 21).trim()); // Tipo de Documento registroHelperCodigoBarrasTipoPagamento.setIdPagamento4(idPagamento .substring(21, 23).trim()); // N�o Utilizado registroHelperCodigoBarrasTipoPagamento.setIdPagamento5(idPagamento .substring(23, 25).trim()); } else if (tipoPagamento.equals(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_FATURA_LEGADO_CAEMA.toString())){ //Vencimento da Fatura registroHelperCodigoBarrasTipoPagamento.setIdPagamento1(idPagamento .substring(0, 8).trim()); // Quantidade de D�bitos registroHelperCodigoBarrasTipoPagamento.setIdPagamento2(idPagamento .substring(8, 12).trim()); // C�digo Or�ament�rio passou a ser o id do cliente - Raphael Rossiter e S�vio em 11/09/2008 registroHelperCodigoBarrasTipoPagamento.setIdPagamento3(idPagamento .substring(12, 21).trim()); // Tipo de Documento registroHelperCodigoBarrasTipoPagamento.setIdPagamento4(idPagamento .substring(21, 23).trim()); // M�s da Fatura registroHelperCodigoBarrasTipoPagamento.setIdPagamento5(idPagamento .substring(23, 25).trim()); } else if (tipoPagamento.equals(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_CONTA_LEGADO_CAEMA.toString())){ //Vencimento da Fatura registroHelperCodigoBarrasTipoPagamento.setIdPagamento1(idPagamento .substring(0, 8).trim()); // Ano da Fatura registroHelperCodigoBarrasTipoPagamento.setIdPagamento2(idPagamento .substring(8, 12).trim()); // Matr�cula do Im�vel sem o d�gito verificador registroHelperCodigoBarrasTipoPagamento.setIdPagamento3(idPagamento .substring(12, 21).trim()); // Tipo da Fatura registroHelperCodigoBarrasTipoPagamento.setIdPagamento4(idPagamento .substring(21, 22).trim()); // Tipo de Documento registroHelperCodigoBarrasTipoPagamento.setIdPagamento5(idPagamento .substring(22, 23).trim()); // M�s da Fatura registroHelperCodigoBarrasTipoPagamento.setIdPagamento6(idPagamento .substring(23, 25).trim()); } else if (tipoPagamento.equals(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_CAMPANHA_AVISO_DEBITO_LEGADO_CAEMA.toString())){ //Aviso de D�bitos if (idPagamento.substring(23, 25).trim().equals("00")) { // Vencimento da Fatura registroHelperCodigoBarrasTipoPagamento.setIdPagamento1(idPagamento .substring(0, 8).trim()); // Ano da Fatura registroHelperCodigoBarrasTipoPagamento.setIdPagamento2(idPagamento .substring(8, 12).trim()); // Matr�cula do Im�vel sem o d�gito verificador registroHelperCodigoBarrasTipoPagamento.setIdPagamento3(idPagamento .substring(12, 21).trim()); // Tipo de Documento registroHelperCodigoBarrasTipoPagamento.setIdPagamento4(idPagamento .substring(21, 23).trim()); // N�o Utilizado (Zeros) registroHelperCodigoBarrasTipoPagamento.setIdPagamento5(idPagamento .substring(23, 25).trim()); } // Campanha else { // N�mero do Lote registroHelperCodigoBarrasTipoPagamento.setIdPagamento1(idPagamento .substring(0, 8).trim()); // Ano do Lote registroHelperCodigoBarrasTipoPagamento.setIdPagamento2(idPagamento .substring(8, 12).trim()); // Matr�cula do Im�vel sem o d�gito verificador registroHelperCodigoBarrasTipoPagamento.setIdPagamento3(idPagamento .substring(12, 21).trim()); // Tipo de Documento registroHelperCodigoBarrasTipoPagamento.setIdPagamento4(idPagamento .substring(21, 22).trim()); // Tipo de Documento registroHelperCodigoBarrasTipoPagamento.setIdPagamento5(idPagamento .substring(22, 23).trim()); // Plano do Financiamento registroHelperCodigoBarrasTipoPagamento.setIdPagamento6(idPagamento .substring(23, 25).trim()); } } //=============================================================================================================================== return registroHelperCodigoBarrasTipoPagamento; } /** * [UC0259] - Processar Pagamento com C�digo de Barras - LEGADO * * @author Raphael Rossiter * @date 26/05/2008 * * @param registroHelperCodigoBarras * @param dataPagamento * @param anoMesPagamento * @param valorPagamento * @param idFormaPagamento * @param sistemaParametro * @return PagamentoHelperCodigoBarras * @throws ControladorException */ protected PagamentoHelperCodigoBarras processarPagamentosCodigoBarrasPorTipoPagamento( RegistroHelperCodigoBarras registroHelperCodigoBarras, Date dataPagamento, Integer anoMesPagamento, BigDecimal valorPagamento, Integer idFormaArrecadacao, SistemaParametro sistemaParametro, Usuario usuarioLogado) throws ControladorException { PagamentoHelperCodigoBarras pagamentoHelperCodigoBarras = null; String tipoPagamento = registroHelperCodigoBarras.getTipoPagamento(); //LEGADO - CAEMA //=============================================================================================================================== if (tipoPagamento.equals(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_NEGOCIACAO_A_VISTA_LEGADO_CAEMA.toString()) || tipoPagamento.equals(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_GUIA_PAGAMENTO_LEGADO_CAEMA.toString())){ pagamentoHelperCodigoBarras = this.processarPagamentosCodigoBarrasGuiaPagamento_CAEMA_LEGADO( registroHelperCodigoBarras, sistemaParametro,dataPagamento, anoMesPagamento, valorPagamento, idFormaArrecadacao); //=============================================================================================================================== } else if (tipoPagamento.equals(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_FATURA_LEGADO_CAEMA.toString())){ pagamentoHelperCodigoBarras = this.processarPagamentosCodigoBarrasClienteResponsavel_CAEMA_LEGADO( registroHelperCodigoBarras, sistemaParametro,dataPagamento, anoMesPagamento, valorPagamento, idFormaArrecadacao); //=============================================================================================================================== } else if (tipoPagamento.equals(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_CONTA_LEGADO_CAEMA.toString())){ pagamentoHelperCodigoBarras = this.processarPagamentosCodigoBarrasConta_CAEMA_LEGADO( registroHelperCodigoBarras, sistemaParametro,dataPagamento, anoMesPagamento, valorPagamento, idFormaArrecadacao); //=============================================================================================================================== } else if (tipoPagamento.equals(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_CAMPANHA_AVISO_DEBITO_LEGADO_CAEMA.toString())){ /* * Caso o G05.7.2.6 - PLANO DE FINANCIAMENTO tenha sido informado � CAMPANHA, caso * contr�rio ser� AVISO DE D�BITO. */ if (registroHelperCodigoBarras.getRegistroHelperCodigoBarrasTipoPagamento().getIdPagamento6() != null){ //CAMPANHA pagamentoHelperCodigoBarras = this.processarPagamentosCodigoBarrasCampanha_CAEMA_LEGADO( registroHelperCodigoBarras, sistemaParametro,dataPagamento, anoMesPagamento, valorPagamento, idFormaArrecadacao); //=============================================================================================================================== } else{ //AVISO DE D�BITO pagamentoHelperCodigoBarras = processarPagamentosCodigoBarrasDocumentoCobrancaTipo5_CAEMA_LEGADO( registroHelperCodigoBarras, sistemaParametro, dataPagamento, anoMesPagamento, valorPagamento, idFormaArrecadacao); //=============================================================================================================================== } } else{ pagamentoHelperCodigoBarras = super.processarPagamentosCodigoBarrasPorTipoPagamento( registroHelperCodigoBarras, dataPagamento, anoMesPagamento, valorPagamento, idFormaArrecadacao, sistemaParametro, usuarioLogado); } return pagamentoHelperCodigoBarras; } /** * [UC0259] - Processar Pagamento com C�digo de Barras - LEGADO * * [SB0014] - Processar Pagamento Legado CAEMA - FATURA * * @author Raphael Rossiter * @date 27/05/2008 * * @param registroHelperCodigoBarras * @param sistemaParametro * @param dataPagamento * @param anoMesPagamento * @param valorPagamento * @param idFormaPagamento * @return PagamentoHelperCodigoBarras * @throws ControladorException */ protected PagamentoHelperCodigoBarras processarPagamentosCodigoBarrasClienteResponsavel_CAEMA_LEGADO( RegistroHelperCodigoBarras registroHelperCodigoBarras, SistemaParametro sistemaParametro, Date dataPagamento, Integer anoMesPagamento, BigDecimal valorPagamento, Integer idFormaPagamento) throws ControladorException { PagamentoHelperCodigoBarras pagamentoHelperCodigoBarras = new PagamentoHelperCodigoBarras(); String descricaoOcorrencia = "OK"; String indicadorAceitacaoRegistro = "1"; Collection colecaoPagamentos = new ArrayList(); /* * Alterado por Raphael Rossiter e S�vio em 11/09/2008 * O c�digo or�ament�rio na realizade � o id do cliente respons�vel */ //[FS0011] - Validar C�digo Or�ament�rio /*Short codigoOrcamentario = null; Integer codigoOrcamentarioInteger = null; boolean codigoOrcamentarioInvalido = Util.validarValorNaoNumerico(registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento().getIdPagamento3()); if (codigoOrcamentarioInvalido) { descricaoOcorrencia = "C�DIGO OR�AMENT�RIO N�O NUM�RICO"; } else{ codigoOrcamentarioInteger = new Integer(registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento().getIdPagamento3()); codigoOrcamentario = new Short(codigoOrcamentarioInteger.toString()); }*/ //[FS0000] - Validar Cliente boolean idClienteInvalido = Util.validarValorNaoNumerico(registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento().getIdPagamento3()); Integer idClienteNaBase = null; if (idClienteInvalido) { descricaoOcorrencia = "C�DIGO DO CLIENTE N�O NUM�RICO"; } else { // Verifica se existe o id do cliente na base Integer idCliente = new Integer(registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento().getIdPagamento3()); try { idClienteNaBase = repositorioCliente.verificarExistenciaCliente(idCliente); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } if (idClienteNaBase == null) { descricaoOcorrencia = "CLIENTE RESPONS�VEL N�O CADASTRADO"; } } //[FS0012] - Validar Data de Vencimento Date dataVencimento = null; boolean dataVencimentoInvalido = Util.validarDiaMesAnoSemBarra(registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento().getIdPagamento1()); if (dataVencimentoInvalido) { descricaoOcorrencia = "DATA DE VENCIMENTO INV�LIDO"; } else{ dataVencimento = Util.converteStringSemBarraParaDate(registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento().getIdPagamento1()); } if (descricaoOcorrencia.equals("OK")) { /* * O anoMesReferencia ser� formado pelo ano da data de vencimento da fatura com o m�s * que vem no c�digo de barras - Raphael Rossiter e Rosana Carvalho */ String mesFatura = registroHelperCodigoBarras.getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento5(); String anoMesReferencia = String.valueOf(Util.getAno(dataVencimento)) + mesFatura; // inicializa a cole��o de fatura item Collection faturaItens = null; try { faturaItens = repositorioFaturamento.pesquisarFaturaItem(idClienteNaBase, new Integer(anoMesReferencia), valorPagamento); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } // verifica se a cole��o � diferente de nula if (faturaItens != null && !faturaItens.isEmpty()) { Iterator faturaItensIterator = faturaItens.iterator(); while (faturaItensIterator.hasNext()) { Object[] faturaItem = (Object[]) faturaItensIterator.next(); // inicializa as variaveis que veio da pesquisa Integer idContaPesquisa = null; Integer idImovelPesquisa = null; Integer idLocalidadePesquisa = null; BigDecimal valorConta = null; Integer anoMesReferenciaFatura = null; // verifica o valor da conta if (faturaItem[0] != null) { valorConta = (BigDecimal) faturaItem[0]; } // verifica o id da conta if (faturaItem[1] != null) { idContaPesquisa = (Integer) faturaItem[1]; } // verifica o id da localidade if (faturaItem[2] != null) { idLocalidadePesquisa = (Integer) faturaItem[2]; } // verifica o id do imovel if (faturaItem[3] != null) { idImovelPesquisa = (Integer) faturaItem[3]; } // verifica o id da localidade de Conta // Hist�rico if (faturaItem[4] != null) { idLocalidadePesquisa = (Integer) faturaItem[4]; } // verifica o id do imovel de Conta Hist�rico if (faturaItem[5] != null) { idImovelPesquisa = (Integer) faturaItem[5]; } //verifica o id da conta Historico if (faturaItem[6] != null) { idContaPesquisa = (Integer) faturaItem[6]; } //verifica o id da conta Historico if (faturaItem[7] != null) { anoMesReferenciaFatura = (Integer) faturaItem[7]; } // cria o objeto pagamento para setar os dados Pagamento pagamento = new Pagamento(); pagamento.setAnoMesReferenciaPagamento(anoMesReferenciaFatura); // caso o ano mes da data de dedito seja // maior que o ano mes de arrecada��o da // tabela sistema parametro ent�o seta o ano // mes da data de debito if (anoMesPagamento > sistemaParametro .getAnoMesArrecadacao()) { pagamento .setAnoMesReferenciaArrecadacao(anoMesPagamento); } else { // caso contrario seta o o ano mes // arrecada��o da tabela sistema // parametro pagamento .setAnoMesReferenciaArrecadacao(sistemaParametro .getAnoMesArrecadacao()); } pagamento.setValorPagamento(valorConta); pagamento.setDataPagamento(dataPagamento); pagamento.setPagamentoSituacaoAtual(null); pagamento.setPagamentoSituacaoAnterior(null); pagamento.setDebitoTipo(null); // verifica se o id da conta � diferente de // nulo if (idContaPesquisa != null) { ContaGeral conta = new ContaGeral(); conta.setId(idContaPesquisa); pagamento.setContaGeral(conta); } else { pagamento.setContaGeral(null); } pagamento.setGuiaPagamento(null); pagamento.setDebitoACobrarGeral(null); // verifica se o id da conta � diferente de // nulo if (idLocalidadePesquisa != null) { Localidade localidade = new Localidade(); localidade.setId(idLocalidadePesquisa); pagamento.setLocalidade(localidade); } else { pagamento.setLocalidade(null); } DocumentoTipo documentoTipo = new DocumentoTipo(); documentoTipo.setId(DocumentoTipo.FATURA_CLIENTE); pagamento.setDocumentoTipo(documentoTipo); // seta o id do aviso bancario pagamento.setAvisoBancario(null); // seta o imovel if (idImovelPesquisa != null) { Imovel imovel = new Imovel(); imovel.setId(idImovelPesquisa); pagamento.setImovel(imovel); } else { pagamento.setImovel(null); } pagamento.setArrecadadorMovimentoItem(null); ArrecadacaoForma arrecadacaoForma = new ArrecadacaoForma(); arrecadacaoForma.setId(idFormaPagamento); pagamento.setArrecadacaoForma(arrecadacaoForma); pagamento.setCliente(null); pagamento.setUltimaAlteracao(new Date()); colecaoPagamentos.add(pagamento); } } else{ //atribui o valor 2(N�O) ao indicador aceitacao registro indicadorAceitacaoRegistro = "2"; descricaoOcorrencia = "FATURA DO C�DIGO OR�AMENT�RIO INEXISTENTE"; } } else { // atribui o valor 2(N�O) ao indicador aceitacao registro indicadorAceitacaoRegistro = "2"; } // Seta os parametros que ser�o retornados pagamentoHelperCodigoBarras.setColecaoPagamentos(colecaoPagamentos); pagamentoHelperCodigoBarras.setDescricaoOcorrencia(descricaoOcorrencia); pagamentoHelperCodigoBarras.setIndicadorAceitacaoRegistro(indicadorAceitacaoRegistro); return pagamentoHelperCodigoBarras; } /** * [UC0259] - Processar Pagamento com C�digo de Barras - LEGADO * * [SB0014] - Processar Pagamento Legado CAEMA - CONTA ou 2 VIA * * @author Raphael Rossiter * @date 27/05/2008 * * @param registroHelperCodigoBarras * @param sistemaParametro * @param dataPagamento * @param anoMesPagamento * @param valorPagamento * @param idFormaPagamento * @return PagamentoHelperCodigoBarras * @throws ControladorException */ protected PagamentoHelperCodigoBarras processarPagamentosCodigoBarrasConta_CAEMA_LEGADO( RegistroHelperCodigoBarras registroHelperCodigoBarras, SistemaParametro sistemaParametro, Date dataPagamento, Integer anoMesPagamento, BigDecimal valorPagamento, Integer idFormaPagamento) throws ControladorException { PagamentoHelperCodigoBarras pagamentoHelperCodigoBarras = new PagamentoHelperCodigoBarras(); String descricaoOcorrencia = "OK"; String indicadorAceitacaoRegistro = "1"; Collection colecaoPagamentos = new ArrayList(); boolean matriculaImovelInvalida = false; Integer idImovelNaBase = null; String matriculaImovel = null; Integer matriculaImovelValidada = null; //[FS0002] - Validar matr�cula do im�vel matriculaImovelInvalida = Util.validarValorNaoNumerico(registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento().getIdPagamento3()); if (matriculaImovelInvalida) { descricaoOcorrencia = "M�TRICULA DO IM�VEL INV�LIDA"; } else { //Calcular Digito Verificador da Matricula (M�DULO 11) matriculaImovel = registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento().getIdPagamento3(); if (matriculaImovel != null) { int digitoModulo11 = Util.obterDigitoVerificadorModulo11(matriculaImovel); try { matriculaImovelValidada = new Integer(matriculaImovel + digitoModulo11); } catch (Exception e) { matriculaImovelValidada = 0; } } // Verifica se existe a matricula do im�vel na base try { idImovelNaBase = repositorioImovel .recuperarMatriculaImovel(matriculaImovelValidada); } catch (ErroRepositorioException e) { e.printStackTrace(); throw new ControladorException("erro.sistema", e); } if (idImovelNaBase == null) { descricaoOcorrencia = "MATR�CULA DO IM�VEL N�O CADASTRADA"; } } //M�s/Ano de refer�ncia da conta = (campo G05.7.2.3 + G05.7.2.6) Integer anoMesReferencia = new Integer(registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento().getIdPagamento2() + registroHelperCodigoBarras.getRegistroHelperCodigoBarrasTipoPagamento().getIdPagamento6()); if (descricaoOcorrencia.equals("OK")) { Integer idLocalidade = null; Integer idConta = null; Imovel imovel = new Imovel(); imovel.setId(idImovelNaBase); try { idConta = repositorioFaturamento .pesquisarExistenciaContaComSituacaoAtual(imovel, anoMesReferencia); } catch (ErroRepositorioException e) { e.printStackTrace(); throw new ControladorException("erro.sistema", e); } /* * Alterado por Raphael Rossiter em 09/01/2008 - Analistas: Eduardo e Aryed * OBJ: Gerar os pagamentos associados com a localidade da conta e N�O com * a localidade do im�vel. */ if (idConta == null) { descricaoOcorrencia = "CONTA INEXISTENTE"; try { idLocalidade = repositorioLocalidade .pesquisarIdLocalidade(idImovelNaBase); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } } else { try { idLocalidade = repositorioLocalidade .pesquisarIdLocalidadePorConta(idConta); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } } // Cria o objeto pagamento para setar os dados Pagamento pagamento = new Pagamento(); pagamento.setAnoMesReferenciaPagamento(anoMesReferencia); /* * Caso o ano mes da data de dedito seja maior que o ano mes de * arrecada��o da tabela sistema parametro ent�o seta o ano mes da * data de debito. */ if (anoMesPagamento > sistemaParametro.getAnoMesArrecadacao()) { pagamento.setAnoMesReferenciaArrecadacao(anoMesPagamento); } else { /* * caso contrario seta o o ano mes arrecada��o da tabela sistema * parametro */ pagamento.setAnoMesReferenciaArrecadacao(sistemaParametro .getAnoMesArrecadacao()); } pagamento.setValorPagamento(valorPagamento); pagamento.setDataPagamento(dataPagamento); pagamento.setPagamentoSituacaoAtual(null); pagamento.setPagamentoSituacaoAnterior(null); pagamento.setDebitoTipo(null); // Verifica se o id da conta � diferente de nulo if (idConta != null) { ContaGeral conta = new ContaGeral(); conta.setId(idConta); pagamento.setContaGeral(conta); } else { pagamento.setContaGeral(null); } pagamento.setGuiaPagamento(null); // verifica se o id da conta � diferente de nulo if (idLocalidade != null) { Localidade localidade = new Localidade(); localidade.setId(idLocalidade); pagamento.setLocalidade(localidade); } else { pagamento.setLocalidade(null); } DocumentoTipo documentoTipo = new DocumentoTipo(); documentoTipo.setId(DocumentoTipo.CONTA); pagamento.setDocumentoTipo(documentoTipo); pagamento.setAvisoBancario(null); if (idImovelNaBase != null) { pagamento.setImovel(imovel); } else { pagamento.setImovel(null); } pagamento.setArrecadadorMovimentoItem(null); ArrecadacaoForma arrecadacaoForma = new ArrecadacaoForma(); arrecadacaoForma.setId(idFormaPagamento); pagamento.setArrecadacaoForma(arrecadacaoForma); pagamento.setCliente(null); pagamento.setUltimaAlteracao(new Date()); colecaoPagamentos.add(pagamento); } else { // atribui o valor 2(N�O) ao indicador aceitacao registro indicadorAceitacaoRegistro = "2"; } // Seta os parametros que ser�o retornados pagamentoHelperCodigoBarras.setColecaoPagamentos(colecaoPagamentos); pagamentoHelperCodigoBarras.setDescricaoOcorrencia(descricaoOcorrencia); pagamentoHelperCodigoBarras .setIndicadorAceitacaoRegistro(indicadorAceitacaoRegistro); return pagamentoHelperCodigoBarras; } /** * [UC0259] - Processar Pagamento com C�digo de Barras * * [SB0014] - Processar Pagamento Legado CAEMA - GUIA DE PAGAMENTO * * @author Raphael Rossiter * @date 16/06/2008 * * @param registroHelperCodigoBarras * @param sistemaParametro * @param dataPagamento * @param anoMesPagamento * @param valorPagamento * @param idFormaPagamento * @return PagamentoHelperCodigoBarras * @throws ControladorException */ protected PagamentoHelperCodigoBarras processarPagamentosCodigoBarrasGuiaPagamento_CAEMA_LEGADO( RegistroHelperCodigoBarras registroHelperCodigoBarras, SistemaParametro sistemaParametro, Date dataPagamento, Integer anoMesPagamento, BigDecimal valorPagamento, Integer idFormaPagamento) throws ControladorException { PagamentoHelperCodigoBarras pagamentoHelperCodigoBarras = new PagamentoHelperCodigoBarras(); String descricaoOcorrencia = "OK"; String indicadorAceitacaoRegistro = "1"; Collection colecaoPagamnetos = new ArrayList(); boolean matriculaImovelInvalida = false; Integer idImovelNaBase = null; String matriculaImovel = null; Integer matriculaImovelValidada = null; matriculaImovelInvalida = Util .validarValorNaoNumerico(registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento3()); if (matriculaImovelInvalida) { descricaoOcorrencia = "M�TRICULA DO IM�VEL INV�LIDA"; } else { //Calcular Digito Verificador da Matricula (M�DULO 10) matriculaImovel = registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento().getIdPagamento3(); if (matriculaImovel != null) { int digitoModulo11 = Util.obterDigitoVerificadorModulo11(matriculaImovel); try { matriculaImovelValidada = new Integer(matriculaImovel + digitoModulo11); } catch (Exception e) { matriculaImovelValidada = 0; } } // Verifica se existe a matricula do im�vel na base try { idImovelNaBase = repositorioImovel .recuperarMatriculaImovel(matriculaImovelValidada); } catch (ErroRepositorioException e) { e.printStackTrace(); throw new ControladorException("erro.sistema", e); } if (idImovelNaBase == null) { descricaoOcorrencia = "MATR�CULA DO IM�VEL N�O CADASTRADA"; } } if (descricaoOcorrencia.equals("OK")) { Integer idLocalidade = null; Integer dadosGuiaPagamento[] = null; Imovel imovel = new Imovel(); imovel.setId(idImovelNaBase); //ANO DA GUIA Integer anoGuia = new Integer(registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento().getIdPagamento1()); //N�MERO GUIA Integer numeroGuia = new Integer(registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento().getIdPagamento2()); try { dadosGuiaPagamento = repositorioArrecadacao .pesquisarExistenciaGuiaPagamento(imovel, numeroGuia, anoGuia); } catch (ErroRepositorioException e) { e.printStackTrace(); throw new ControladorException("erro.sistema", e); } if (dadosGuiaPagamento == null) { descricaoOcorrencia = "GUIA PAGAMENTO INEXISTENTE"; } /* * Alterado por Raphael Rossiter em 11/01/2008 - Analistas: Eduardo e Aryed * OBJ: Gerar os pagamentos associados com a localidade da guia de pagamento e N�O com * a localidade do im�vel. */ if (dadosGuiaPagamento != null) { try { idLocalidade = repositorioLocalidade .pesquisarIdLocalidadePorGuiaPagamento(dadosGuiaPagamento[0]); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } } else{ try { idLocalidade = repositorioLocalidade .pesquisarIdLocalidade(idImovelNaBase); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } } // Cria o objeto pagamento para setar os dados Pagamento pagamento = new Pagamento(); pagamento.setAnoMesReferenciaPagamento(null); /* * Caso o ano mes da data de dedito seja maior que o ano mes de * arrecada��o da tabela sistema parametro ent�o seta o ano mes da * data de debito */ if (anoMesPagamento > sistemaParametro.getAnoMesArrecadacao()) { pagamento.setAnoMesReferenciaArrecadacao(anoMesPagamento); } else { /* * caso contrario seta o o ano mes arrecada��o da tabela sistema * parametro */ pagamento.setAnoMesReferenciaArrecadacao(sistemaParametro .getAnoMesArrecadacao()); } pagamento.setValorPagamento(valorPagamento); pagamento.setDataPagamento(dataPagamento); pagamento.setPagamentoSituacaoAtual(null); pagamento.setPagamentoSituacaoAnterior(null); pagamento.setContaGeral(null); // Verifica se o id da guia � diferente de nulo if (dadosGuiaPagamento != null) { GuiaPagamento guiaPagamento = new GuiaPagamento(); guiaPagamento.setId(dadosGuiaPagamento[0]); pagamento.setGuiaPagamento(guiaPagamento); DebitoTipo debitoTipo = new DebitoTipo(); debitoTipo.setId(dadosGuiaPagamento[1]); pagamento.setDebitoTipo(debitoTipo); } else { pagamento.setGuiaPagamento(null); /* * Colocado por Raphael Rossiter em 13/01/2009 * Analista: Eduardo Borges */ DebitoTipo debitoTipo = new DebitoTipo(); debitoTipo.setId(DebitoTipo.SERVICOS_ESPECIAIS); pagamento.setDebitoTipo(debitoTipo); } if (idLocalidade != null) { Localidade localidade = new Localidade(); localidade.setId(idLocalidade); pagamento.setLocalidade(localidade); } else { pagamento.setLocalidade(null); } DocumentoTipo documentoTipo = new DocumentoTipo(); documentoTipo.setId(DocumentoTipo.GUIA_PAGAMENTO); pagamento.setDocumentoTipo(documentoTipo); pagamento.setAvisoBancario(null); if (idImovelNaBase != null) { pagamento.setImovel(imovel); } else { pagamento.setImovel(null); } pagamento.setArrecadadorMovimentoItem(null); ArrecadacaoForma arrecadacaoForma = new ArrecadacaoForma(); arrecadacaoForma.setId(idFormaPagamento); pagamento.setArrecadacaoForma(arrecadacaoForma); pagamento.setCliente(null); pagamento.setUltimaAlteracao(new Date()); colecaoPagamnetos.add(pagamento); } else { // Atribui o valor 2(N�O) ao indicador aceitacao registro indicadorAceitacaoRegistro = "2"; } // Seta os parametros que ser�o retornados pagamentoHelperCodigoBarras.setColecaoPagamentos(colecaoPagamnetos); pagamentoHelperCodigoBarras.setDescricaoOcorrencia(descricaoOcorrencia); pagamentoHelperCodigoBarras.setIndicadorAceitacaoRegistro(indicadorAceitacaoRegistro); return pagamentoHelperCodigoBarras; } /** * [UC0259] - Processar Pagamento com C�digo de Barras * * [SB0014] - Processar Pagamento Legado CAEMA - CAMPANHA * * @author Raphael Rossiter * @date 16/06/2008 * * @param registroHelperCodigoBarras * @param sistemaParametro * @param dataPagamento * @param anoMesPagamento * @param valorPagamento * @param idFormaPagamento * @return PagamentoHelperCodigoBarras * @throws ControladorException */ protected PagamentoHelperCodigoBarras processarPagamentosCodigoBarrasCampanha_CAEMA_LEGADO( RegistroHelperCodigoBarras registroHelperCodigoBarras, SistemaParametro sistemaParametro, Date dataPagamento, Integer anoMesPagamento, BigDecimal valorPagamento, Integer idFormaPagamento) throws ControladorException { PagamentoHelperCodigoBarras pagamentoHelperCodigoBarras = new PagamentoHelperCodigoBarras(); String descricaoOcorrencia = "OK"; String indicadorAceitacaoRegistro = "1"; Collection colecaoPagamnetos = new ArrayList(); boolean matriculaImovelInvalida = false; Integer idImovelNaBase = null; String matriculaImovel = null; Integer matriculaImovelValidada = null; matriculaImovelInvalida = Util .validarValorNaoNumerico(registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento3()); if (matriculaImovelInvalida) { descricaoOcorrencia = "M�TRICULA DO IM�VEL INV�LIDA"; } else { //Calcular Digito Verificador da Matricula (M�DULO 10) matriculaImovel = registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento().getIdPagamento3(); if (matriculaImovel != null) { int digitoModulo11 = Util.obterDigitoVerificadorModulo11(matriculaImovel); try { matriculaImovelValidada = new Integer(matriculaImovel + digitoModulo11); } catch (Exception e) { matriculaImovelValidada = 0; } } // Verifica se existe a matricula do im�vel na base try { idImovelNaBase = repositorioImovel .recuperarMatriculaImovel(matriculaImovelValidada); } catch (ErroRepositorioException e) { e.printStackTrace(); throw new ControladorException("erro.sistema", e); } if (idImovelNaBase == null) { descricaoOcorrencia = "MATR�CULA DO IM�VEL N�O CADASTRADA"; } } if (descricaoOcorrencia.equals("OK")) { Integer idLocalidade = null; Integer dadosGuiaPagamento[] = null; Imovel imovel = new Imovel(); imovel.setId(idImovelNaBase); //N�MERO LOTE Integer lotePagamento = new Integer(registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento().getIdPagamento1()); //ANO DO LOTE Integer anoGuia = new Integer(registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento().getIdPagamento2()); try { dadosGuiaPagamento = repositorioArrecadacao .pesquisarExistenciaGuiaPagamentoPorLotePagamento(imovel, lotePagamento, anoGuia); } catch (ErroRepositorioException e) { e.printStackTrace(); throw new ControladorException("erro.sistema", e); } if (dadosGuiaPagamento == null) { descricaoOcorrencia = "GUIA PAGAMENTO INEXISTENTE"; } /* * Alterado por Raphael Rossiter em 11/01/2008 - Analistas: Eduardo e Aryed * OBJ: Gerar os pagamentos associados com a localidade da guia de pagamento e N�O com * a localidade do im�vel. */ if (dadosGuiaPagamento != null) { try { idLocalidade = repositorioLocalidade .pesquisarIdLocalidadePorGuiaPagamento(dadosGuiaPagamento[0]); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } } else{ try { idLocalidade = repositorioLocalidade .pesquisarIdLocalidade(idImovelNaBase); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } } // Cria o objeto pagamento para setar os dados Pagamento pagamento = new Pagamento(); pagamento.setAnoMesReferenciaPagamento(null); /* * Caso o ano mes da data de dedito seja maior que o ano mes de * arrecada��o da tabela sistema parametro ent�o seta o ano mes da * data de debito */ if (anoMesPagamento > sistemaParametro.getAnoMesArrecadacao()) { pagamento.setAnoMesReferenciaArrecadacao(anoMesPagamento); } else { /* * caso contrario seta o o ano mes arrecada��o da tabela sistema * parametro */ pagamento.setAnoMesReferenciaArrecadacao(sistemaParametro .getAnoMesArrecadacao()); } pagamento.setValorPagamento(valorPagamento); pagamento.setDataPagamento(dataPagamento); pagamento.setPagamentoSituacaoAtual(null); pagamento.setPagamentoSituacaoAnterior(null); pagamento.setContaGeral(null); // Verifica se o id da guia � diferente de nulo if (dadosGuiaPagamento != null) { GuiaPagamento guiaPagamento = new GuiaPagamento(); guiaPagamento.setId(dadosGuiaPagamento[0]); pagamento.setGuiaPagamento(guiaPagamento); DebitoTipo debitoTipo = new DebitoTipo(); debitoTipo.setId(dadosGuiaPagamento[1]); pagamento.setDebitoTipo(debitoTipo); } else { pagamento.setGuiaPagamento(null); /* * Colocado por Raphael Rossiter em 23/01/2009 * Analista: Eduardo Borges */ DebitoTipo debitoTipo = new DebitoTipo(); debitoTipo.setId(DebitoTipo.SERVICOS_ESPECIAIS); pagamento.setDebitoTipo(debitoTipo); } if (idLocalidade != null) { Localidade localidade = new Localidade(); localidade.setId(idLocalidade); pagamento.setLocalidade(localidade); } else { pagamento.setLocalidade(null); } DocumentoTipo documentoTipo = new DocumentoTipo(); documentoTipo.setId(DocumentoTipo.GUIA_PAGAMENTO); pagamento.setDocumentoTipo(documentoTipo); pagamento.setAvisoBancario(null); if (idImovelNaBase != null) { pagamento.setImovel(imovel); } else { pagamento.setImovel(null); } pagamento.setArrecadadorMovimentoItem(null); ArrecadacaoForma arrecadacaoForma = new ArrecadacaoForma(); arrecadacaoForma.setId(idFormaPagamento); pagamento.setArrecadacaoForma(arrecadacaoForma); pagamento.setCliente(null); pagamento.setUltimaAlteracao(new Date()); colecaoPagamnetos.add(pagamento); } else { // Atribui o valor 2(N�O) ao indicador aceitacao registro indicadorAceitacaoRegistro = "2"; } // Seta os parametros que ser�o retornados pagamentoHelperCodigoBarras.setColecaoPagamentos(colecaoPagamnetos); pagamentoHelperCodigoBarras.setDescricaoOcorrencia(descricaoOcorrencia); pagamentoHelperCodigoBarras.setIndicadorAceitacaoRegistro(indicadorAceitacaoRegistro); return pagamentoHelperCodigoBarras; } /** * [UC0259] - Processar Pagamento com C�digo de Barras * * [SB0014] - Processar Pagamento Legado CAEMA - AVISO DE D�BITO * * @author Raphael Rossiter * @date 16/06/2008 * * @param registroHelperCodigoBarras * @param sistemaParametro * @param dataPagamento * @param anoMesPagamento * @param valorPagamento * @param idFormaPagamento * @return PagamentoHelperCodigoBarras * @throws ControladorException */ protected PagamentoHelperCodigoBarras processarPagamentosCodigoBarrasDocumentoCobrancaTipo5_CAEMA_LEGADO( RegistroHelperCodigoBarras registroHelperCodigoBarras, SistemaParametro sistemaParametro, Date dataPagamento, Integer anoMesPagamento, BigDecimal valorPagamento, Integer idFormaPagamento) throws ControladorException { PagamentoHelperCodigoBarras pagamentoHelperCodigoBarras = new PagamentoHelperCodigoBarras(); String descricaoOcorrencia = "OK"; String indicadorAceitacaoRegistro = "1"; Collection colecaoPagamentos = new ArrayList(); Collection colecaoDevolucoes = new ArrayList(); boolean matriculaImovelInvalida = false; Integer idImovelNaBase = null; String matriculaImovel = null; Integer matriculaImovelValidada = null; // valida a matricula do im�vel matriculaImovelInvalida = Util .validarValorNaoNumerico(registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento3()); if (matriculaImovelInvalida) { descricaoOcorrencia = "M�TRICULA DO IM�VEL INV�LIDA"; } else { //Calcular Digito Verificador da Matricula (M�DULO 10) matriculaImovel = registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento().getIdPagamento3(); if (matriculaImovel != null) { int digitoModulo11 = Util.obterDigitoVerificadorModulo11(matriculaImovel); try { matriculaImovelValidada = new Integer(matriculaImovel + digitoModulo11); } catch (Exception e) { matriculaImovelValidada = 0; } } // Verifica se existe a matricula do im�vel na base try { idImovelNaBase = repositorioImovel .recuperarMatriculaImovel(matriculaImovelValidada); } catch (ErroRepositorioException e) { e.printStackTrace(); throw new ControladorException("erro.sistema", e); } if (idImovelNaBase == null) { descricaoOcorrencia = "MATR�CULA DO IM�VEL N�O CADASTRADA"; } } //Campo G05.7.2.3 - Data de Emiss�o Date dataEmissao = Util.converteStringSemBarraParaDate(registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento().getIdPagamento1()); if (descricaoOcorrencia.equals("OK")) { // inicializa o id da localidade Integer idLocalidade = null; // inicializa a cole��o de cobranca documento item Collection cobrancaDocumentoItens = null; // inicializa a cole��o de cobranca documento item Object[] parmsDocumentoCobranca = null; try { cobrancaDocumentoItens = repositorioCobranca .pesquisarCobrancaDocumentoItem(idImovelNaBase, dataEmissao); if (cobrancaDocumentoItens == null || cobrancaDocumentoItens.isEmpty()){ cobrancaDocumentoItens = repositorioCobranca .pesquisarCobrancaDocumentoItem(idImovelNaBase, valorPagamento); } parmsDocumentoCobranca = repositorioCobranca .pesquisarParmsCobrancaDocumento(idImovelNaBase, dataEmissao); if (parmsDocumentoCobranca == null){ parmsDocumentoCobranca = repositorioCobranca .pesquisarParmsCobrancaDocumento(idImovelNaBase, valorPagamento); } } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } // caso exista documento de cobran�a if (parmsDocumentoCobranca != null) { Integer idCobrancaDocumento = null; BigDecimal valorAcrescimo = new BigDecimal("0.00"); BigDecimal valorDesconto = new BigDecimal("0.00"); BigDecimal valorTaxa = new BigDecimal("0.00"); Integer idDocumentoTipo = null; if (parmsDocumentoCobranca[0] != null) { valorAcrescimo = ((BigDecimal) parmsDocumentoCobranca[0]); } if (parmsDocumentoCobranca[1] != null) { valorDesconto = ((BigDecimal) parmsDocumentoCobranca[1]); } if (parmsDocumentoCobranca[2] != null) { dataEmissao = ((Date) parmsDocumentoCobranca[2]); } if (parmsDocumentoCobranca[3] != null) { idCobrancaDocumento = ((Integer) parmsDocumentoCobranca[3]); } if (parmsDocumentoCobranca[4] != null) { valorTaxa = ((BigDecimal) parmsDocumentoCobranca[4]); } /* * Alterado por Raphael Rossiter em 10/01/2008 - Analistas: Eduardo e Aryed * OBJ: Gerar os pagamentos associados com a localidade do documento de cobran�a e N�O com * a localidade do im�vel. */ if (parmsDocumentoCobranca[5] != null) { idLocalidade = ((Integer) parmsDocumentoCobranca[5]); } else{ try { idLocalidade = repositorioLocalidade .pesquisarIdLocalidade(idImovelNaBase); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } } if (parmsDocumentoCobranca[6] != null) { idDocumentoTipo = ((Integer) parmsDocumentoCobranca[6]); } // Caso o valor de acrescimo for maior que zero if (valorAcrescimo.compareTo(new BigDecimal("0.00")) == 1) { // [SB0008 - Alterar vencimento dos itens do // documento de cobran�a] alterarVencimentoItensDocumentoCobranca( idCobrancaDocumento, dataEmissao); } // Caso o valor de acrescimos seja maior que o valor de descontos if (valorAcrescimo.compareTo(valorDesconto) == 1) { valorAcrescimo = valorAcrescimo.subtract(valorDesconto); valorDesconto = new BigDecimal("0.00"); } else { valorDesconto = valorDesconto.subtract(valorAcrescimo); valorAcrescimo = new BigDecimal("0.00"); } // Caso o valor de acrescimo for maior que zero if (valorAcrescimo.compareTo(new BigDecimal("0.00")) == 1) { // [SB0005 - Processar Recebimento de Acrescimos por Impontualidade] Pagamento pagamento = processarRecebimentoAcrescimosImpontualidade( idCobrancaDocumento, dataEmissao, valorAcrescimo, idImovelNaBase, idLocalidade, sistemaParametro, idFormaPagamento, idDocumentoTipo); colecaoPagamentos.add(pagamento); } // Caso o valor de desconto for maior que zero if (valorDesconto.compareTo(new BigDecimal("0.00")) == 1) { // [SB0006 - Processar Desconto concedido no documento de cobran�a] Devolucao devolucao = processarDescontoConcedidoDocumentoCobranca( idCobrancaDocumento, dataEmissao, valorDesconto, idImovelNaBase, idLocalidade, sistemaParametro, idFormaPagamento, idDocumentoTipo); colecaoDevolucoes.add(devolucao); } // Caso o valor da taxa referente ao documento de cobran�a for maior que zero if (valorTaxa.compareTo(new BigDecimal("0.00")) == 1) { // [SB0006 - Processar Desconto concedido no documento de cobran�a] Pagamento pagamento = processarTaxaDocumentoCobranca( idCobrancaDocumento, dataEmissao, valorTaxa, idImovelNaBase, idLocalidade, sistemaParametro, idFormaPagamento, idDocumentoTipo); colecaoPagamentos.add(pagamento); } // verifica se a cole��o � diferente de nula if (cobrancaDocumentoItens != null && !cobrancaDocumentoItens.isEmpty()) { Iterator cobrancaDocumentoItensIterator = cobrancaDocumentoItens .iterator(); while (cobrancaDocumentoItensIterator.hasNext()) { Object[] cobrancaDocumentoItem = (Object[]) cobrancaDocumentoItensIterator .next(); /* * Colocado por Raphael Rossiter em 31/10/2007 OBJ: * Apenas gerar os pagamentos referentes aos itens que * NAO tenham CreditoARealizar */ BigDecimal valorItemCobrado = null; if (cobrancaDocumentoItem[13] == null) { // inicializa as variaveis que veio da // pesquisa Integer idContaPesquisa = null; Integer idContaGeralPesquisa = null; Integer idGuiaPagamento = null; Integer idDebitoACobrar = null; int contaReferencia = 0; Integer idDebitoTipo = null; Integer idGuiaPagamentoGeralPesquisa = null; Integer idDebitoACobrarGeralPesquisa = null; // verifica o id da conta if (cobrancaDocumentoItem[0] != null) { idContaPesquisa = (Integer) cobrancaDocumentoItem[0]; idContaGeralPesquisa = (Integer) cobrancaDocumentoItem[0]; // referencia conta if (cobrancaDocumentoItem[4] != null) { contaReferencia = (Integer) cobrancaDocumentoItem[4]; } } else { // caso n�o exista na conta ent�o // pesquisa // na conta hist�rico if (cobrancaDocumentoItem[10] != null) { idContaGeralPesquisa = (Integer) cobrancaDocumentoItem[10]; } // referencia conta hist�rico if (cobrancaDocumentoItem[5] != null) { contaReferencia = (Integer) cobrancaDocumentoItem[5]; } } // verifica o id da guia pagamento if (cobrancaDocumentoItem[1] != null) { idGuiaPagamento = (Integer) cobrancaDocumentoItem[1]; idGuiaPagamentoGeralPesquisa = (Integer) cobrancaDocumentoItem[1]; } else { // caso n�o exista no guia pagamento // ent�o // pesquisa no guia pagamento hist�rico if (cobrancaDocumentoItem[11] != null) { idGuiaPagamentoGeralPesquisa = (Integer) cobrancaDocumentoItem[11]; } } // verifica o id do debito a cobrar if (cobrancaDocumentoItem[2] != null) { idDebitoACobrar = (Integer) cobrancaDocumentoItem[2]; idDebitoACobrarGeralPesquisa = (Integer) cobrancaDocumentoItem[2]; // [SB0012]- Verifica Pagamento de D�bito a // Cobrar // de Parcelamento verificaPagamentoDebitoACobrarParcelamento(idDebitoACobrar, null); } else { // caso n�o exista no debito a cobrar // ent�o // pesquisa no debito a cobrar hist�rico if (cobrancaDocumentoItem[12] != null) { idDebitoACobrarGeralPesquisa = (Integer) cobrancaDocumentoItem[12]; } } // verifica o valor do item cobrado da // cobranca // documento item if (cobrancaDocumentoItem[3] != null) { valorItemCobrado = (BigDecimal) cobrancaDocumentoItem[3]; } if (idContaGeralPesquisa == null) { // caso exista guia de pagamento if (idGuiaPagamentoGeralPesquisa != null) { // verifica o id do debito tipo se � // da // guia if (cobrancaDocumentoItem[6] != null) { idDebitoTipo = (Integer) cobrancaDocumentoItem[6]; } else { // caso n�o exista no guia // pagamento // ent�o // pesquisa no guia pagamento // hist�rico if (cobrancaDocumentoItem[7] != null) { idDebitoTipo = (Integer) cobrancaDocumentoItem[7]; } } } // caso exista debito a cobrar if (idDebitoACobrarGeralPesquisa != null) { // verifica o id do debito tipo no // debito a cobrar if (cobrancaDocumentoItem[8] != null) { idDebitoTipo = (Integer) cobrancaDocumentoItem[8]; } else { // caso n�o exista no debito a // cobrar // ent�o // pesquisa no debito a cobrar // hist�rico if (cobrancaDocumentoItem[9] != null) { idDebitoTipo = (Integer) cobrancaDocumentoItem[9]; } } } } // cria o objeto pagamento para setar os // dados Pagamento pagamento = new Pagamento(); if (contaReferencia != 0) { pagamento .setAnoMesReferenciaPagamento(contaReferencia); } else { pagamento.setAnoMesReferenciaPagamento(null); } // caso o ano mes da data de dedito seja // maior que o ano mes de arrecada��o da // tabela sistema parametro ent�o seta o ano // mes da data de debito if (anoMesPagamento > sistemaParametro .getAnoMesArrecadacao()) { pagamento .setAnoMesReferenciaArrecadacao(anoMesPagamento); } else { // caso contrario seta o o ano mes // arrecada��o da tabela sistema // parametro pagamento .setAnoMesReferenciaArrecadacao(sistemaParametro .getAnoMesArrecadacao()); } pagamento.setValorPagamento(valorItemCobrado); pagamento.setDataPagamento(dataPagamento); pagamento.setPagamentoSituacaoAtual(null); pagamento.setPagamentoSituacaoAnterior(null); if (idDebitoTipo != null) { DebitoTipo debitoTipo = new DebitoTipo(); debitoTipo.setId(idDebitoTipo); pagamento.setDebitoTipo(debitoTipo); } else { pagamento.setDebitoTipo(null); } // Verifica se o id da conta � diferente de nulo if (idContaGeralPesquisa != null) { if (idContaPesquisa != null) { ContaGeral conta = new ContaGeral(); conta.setId(idContaPesquisa); pagamento.setContaGeral(conta); /* * Colocado por Raphael Rossiter em 26/11/2008 - CRC264 * OBJ: Inserir o pagamento com a localidade da pr�pria conta e n�o * com a localidade do documento de cobran�a */ try { idLocalidade = repositorioLocalidade .pesquisarIdLocalidadePorConta(idContaPesquisa); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } } else { pagamento.setContaGeral(null); } DocumentoTipo documentoTipo = new DocumentoTipo(); documentoTipo.setId(DocumentoTipo.CONTA); pagamento.setDocumentoTipo(documentoTipo); } else { pagamento.setContaGeral(null); } // Verifica se o id da guia de pagamento � diferente de nulo if (idGuiaPagamentoGeralPesquisa != null) { if (idGuiaPagamento != null) { GuiaPagamento guiaPagamento = new GuiaPagamento(); guiaPagamento.setId(idGuiaPagamento); pagamento.setGuiaPagamento(guiaPagamento); /* * Colocado por Raphael Rossiter em 26/11/2008 - CRC264 * OBJ: Inserir o pagamento com a localidade da pr�pria guia e n�o * com a localidade do documento de cobran�a */ try { idLocalidade = repositorioLocalidade .pesquisarIdLocalidadePorGuiaPagamento(idGuiaPagamento); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } } else { pagamento.setGuiaPagamento(null); } DocumentoTipo documentoTipo = new DocumentoTipo(); documentoTipo.setId(DocumentoTipo.GUIA_PAGAMENTO); pagamento.setDocumentoTipo(documentoTipo); } else { pagamento.setGuiaPagamento(null); } // Verifica se o id do debito a cobrar � diferente de nulo if (idDebitoACobrarGeralPesquisa != null) { if (idDebitoACobrar != null) { DebitoACobrarGeral debitoACobrarGeral = new DebitoACobrarGeral(); debitoACobrarGeral.setId(idDebitoACobrar); pagamento.setDebitoACobrarGeral(debitoACobrarGeral); /* * Colocado por Raphael Rossiter em 26/11/2008 - CRC264 * OBJ: Inserir o pagamento com a localidade do pr�prio debito a cobrar e n�o * com a localidade do documento de cobran�a */ try { idLocalidade = repositorioLocalidade .pesquisarIdLocalidadePorDebitoACobrar(idDebitoACobrar); // atualiza a situa��o atual para cancelada repositorioFaturamento .atualizarSituacaoAtualDebitoACobrar(idDebitoACobrar); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } } else { pagamento.setDebitoACobrarGeral(null); } DocumentoTipo documentoTipo = new DocumentoTipo(); documentoTipo.setId(DocumentoTipo.DEBITO_A_COBRAR); pagamento.setDocumentoTipo(documentoTipo); } else { pagamento.setDebitoACobrarGeral(null); } // verifica se o id da conta � diferente de // nulo if (idLocalidade != null) { Localidade localidade = new Localidade(); localidade.setId(idLocalidade); pagamento.setLocalidade(localidade); } else { pagamento.setLocalidade(null); } // seta o id do aviso bancario pagamento.setAvisoBancario(null); // seta o imovel if (idImovelNaBase != null) { Imovel imovel = new Imovel(); imovel.setId(idImovelNaBase); pagamento.setImovel(imovel); } else { pagamento.setImovel(null); } // ArrecadadorMovimentoItem // arrecadadorMovimentoItem // = new ArrecadadorMovimentoItem(); pagamento.setArrecadadorMovimentoItem(null); ArrecadacaoForma arrecadacaoForma = new ArrecadacaoForma(); arrecadacaoForma.setId(idFormaPagamento); pagamento.setArrecadacaoForma(arrecadacaoForma); pagamento.setCliente(null); pagamento.setUltimaAlteracao(new Date()); pagamento.setFatura(null); CobrancaDocumento cobrancaDocumento = new CobrancaDocumento(); cobrancaDocumento.setId(idCobrancaDocumento); pagamento.setCobrancaDocumento(cobrancaDocumento); DocumentoTipo documentoTipoAgregador = new DocumentoTipo(); documentoTipoAgregador.setId(idDocumentoTipo); pagamento.setDocumentoTipoAgregador(documentoTipoAgregador); pagamento.setDataProcessamento(new Date()); if (pagamento.getDocumentoTipo() != null) { colecaoPagamentos.add(pagamento); } } else { // Para os itens que tenham CreditoARealizar gerar // suas respectivas devolu��es Devolucao devolucao = new Devolucao(); // DataDevolucao = DataPagamento devolucao.setDataDevolucao(dataPagamento); /* * AnoMesReferenciaDevolucao Caso o anoMes da data * de devolu��o seja MAIOR que a * PARM_AMREFERENCIAARRECADACAO da tabela * SISTEMA_PARAMETROS atribuir o anoMes da data da * devolu��o, caso contr�rio atribuir o * PARM_AMREFERENCIAARRECADACAO. */ Integer anoMesDataDevolucao = Util .getAnoMesComoInteger(devolucao .getDataDevolucao()); if (anoMesDataDevolucao > sistemaParametro .getAnoMesArrecadacao()) { devolucao .setAnoMesReferenciaArrecadacao(anoMesDataDevolucao); } else { devolucao .setAnoMesReferenciaArrecadacao(sistemaParametro .getAnoMesArrecadacao()); } // ValorDevolucao = ValorItemCobrado if (cobrancaDocumentoItem[3] != null) { valorItemCobrado = (BigDecimal) cobrancaDocumentoItem[3]; devolucao.setValorDevolucao(valorItemCobrado); } // Localidade = Localidade da tabela // COBRANCA_DOCUMENTO if (cobrancaDocumentoItem[14] != null) { Localidade localidade = new Localidade(); localidade .setId((Integer) cobrancaDocumentoItem[14]); devolucao.setLocalidade(localidade); } // Imovel = Imovel da tabela COBRANCA_DOCUMENTO if (cobrancaDocumentoItem[15] != null) { Imovel imovel = new Imovel(); imovel .setId((Integer) cobrancaDocumentoItem[15]); devolucao.setImovel(imovel); } // DebitoTipo = DebitoTipo com o valor // correspondente a outros DebitoTipo debitoTipo = new DebitoTipo(); debitoTipo.setId(DebitoTipo.OUTROS); devolucao.setDebitoTipo(debitoTipo); // CreditoARealizarGeral = CreditoARealizarGeral da // tabela COBRANCA_DOCUMENTO_ITEM CreditoARealizarGeral creditoARealizarGeral = new CreditoARealizarGeral(); creditoARealizarGeral .setId((Integer) cobrancaDocumentoItem[13]); devolucao .setCreditoARealizarGeral(creditoARealizarGeral); // Ultima Altera��o devolucao.setUltimaAlteracao(new Date()); // ADICIONANDO A DEVOLUCAO GERADA NA COLECAO DE // RETORNO colecaoDevolucoes.add(devolucao); } } } } else { descricaoOcorrencia = "DOCUMENTO DE COBRAN�A INEXISTENTE"; indicadorAceitacaoRegistro = "2"; } } else { // atribui o valor 2(N�O) ao indicador aceitacao // registro indicadorAceitacaoRegistro = "2"; } // Seta os parametros que ser�o retornados pagamentoHelperCodigoBarras.setColecaoPagamentos(colecaoPagamentos); pagamentoHelperCodigoBarras.setColecaoDevolucao(colecaoDevolucoes); pagamentoHelperCodigoBarras.setDescricaoOcorrencia(descricaoOcorrencia); pagamentoHelperCodigoBarras.setIndicadorAceitacaoRegistro(indicadorAceitacaoRegistro); return pagamentoHelperCodigoBarras; } /** * Obt�m a representa��o n�merica do c�digo de barras de um pagamento de * acordo com os par�metros informados * * [UC0229] Obter Representa��o Num�rica do C�digo de Barras * * Formata a identifica��o do pagamento de acordo com o tipo de pagamento * informado * * [SB0001] Obter Identifica��o do Pagamento * * @author Pedro Alexandre, Raphael Rossiter * @date 20/04/2006, 04/11/2008 * * @param tipoPagamento * @param idLocalidade * @param matriculaImovel * @param anoMesReferenciaConta * @param digitoVerificadorRefContaModulo10 * @param idTipoDebito * @param anoEmissaoGuiaPagamento * @param sequencialDocumentoCobranca * @param idTipoDocumento * @param idCliente * @param seqFaturaClienteResponsavel * @return */ public String obterIdentificacaoPagamento(Integer tipoPagamento, Integer idLocalidade, Integer matriculaImovel, String mesAnoReferenciaConta, Integer digitoVerificadorRefContaModulo10, Integer idTipoDebito, String anoEmissaoGuiaPagamento, String sequencialDocumentoCobranca, Integer idTipoDocumento, Integer idCliente, Integer seqFaturaClienteResponsavel,String idGuiaPagamento) throws ControladorException { // Cria a vari�vel que vai armazenar o identificador do pagamento formatado String identificacaoPagamento = ""; // Caso o tipo de pagamento seja referente a conta if (tipoPagamento.intValue() == 3) { identificacaoPagamento = identificacaoPagamento + Util.adicionarZerosEsquedaNumero(3, "" + idLocalidade); identificacaoPagamento = identificacaoPagamento + Util.adicionarZerosEsquedaNumero(9, "" + matriculaImovel); //FIXO identificacaoPagamento = identificacaoPagamento + "0"; //Identifica o tamanho da matr�cula do im�vel identificacaoPagamento = identificacaoPagamento + "1"; identificacaoPagamento = identificacaoPagamento + mesAnoReferenciaConta; identificacaoPagamento = identificacaoPagamento + digitoVerificadorRefContaModulo10; identificacaoPagamento = identificacaoPagamento + "000"; } //Caso o tipo de pagamento seja referente a guia de pagamento (Im�vel) else if (tipoPagamento.intValue() == 4) { identificacaoPagamento = identificacaoPagamento + Util.adicionarZerosEsquedaNumero(3, "" + idLocalidade); identificacaoPagamento = identificacaoPagamento + Util.adicionarZerosEsquedaNumero(9, "" + matriculaImovel); //Identifica o tamanho da matr�cula do im�vel identificacaoPagamento = identificacaoPagamento + "1"; identificacaoPagamento = identificacaoPagamento + (Util.adicionarZerosEsquedaNumero(4, idTipoDebito.toString())); identificacaoPagamento = identificacaoPagamento + anoEmissaoGuiaPagamento; identificacaoPagamento = identificacaoPagamento + "000"; } //Caso a tipo de pagamento seja referente a documento de cobran�a else if (tipoPagamento.intValue() == 5) { identificacaoPagamento = identificacaoPagamento + Util.adicionarZerosEsquedaNumero(3, "" + idLocalidade); identificacaoPagamento = identificacaoPagamento + Util.adicionarZerosEsquedaNumero(9, "" + matriculaImovel); identificacaoPagamento = identificacaoPagamento + (Util.adicionarZerosEsquedaNumero(9, sequencialDocumentoCobranca)); identificacaoPagamento = identificacaoPagamento + (Util.adicionarZerosEsquedaNumero(2, idTipoDocumento.toString())); //Identifica o tamanho da matr�cula do im�vel identificacaoPagamento = identificacaoPagamento + "1"; } //Caso o tipo de pagamento seja referente a guia de pagamento (Cliente) else if (tipoPagamento.intValue() == 6) { identificacaoPagamento = identificacaoPagamento + Util.adicionarZerosEsquedaNumero(3, "" + idLocalidade); identificacaoPagamento = identificacaoPagamento + Util.adicionarZerosEsquedaNumero(8, "" + idCliente); identificacaoPagamento = identificacaoPagamento + "00"; identificacaoPagamento = identificacaoPagamento + (Util.adicionarZerosEsquedaNumero(4, idTipoDebito.toString())); identificacaoPagamento = identificacaoPagamento + anoEmissaoGuiaPagamento; identificacaoPagamento = identificacaoPagamento + "000"; } //Caso o tipo de pagamento seja referente a fatura do cliente respons�vel else if (tipoPagamento.intValue() == 7) { identificacaoPagamento = identificacaoPagamento + (Util.adicionarZerosEsquedaNumero(9, idCliente.toString())); identificacaoPagamento = identificacaoPagamento + "00"; identificacaoPagamento = identificacaoPagamento + mesAnoReferenciaConta; identificacaoPagamento = identificacaoPagamento + digitoVerificadorRefContaModulo10; identificacaoPagamento = identificacaoPagamento + (Util.adicionarZerosEsquedaNumero(6, seqFaturaClienteResponsavel.toString())); } //Caso a tipo de pagamento seja referente a documento de cobran�a cliente else if (tipoPagamento.intValue() == 8) { identificacaoPagamento = identificacaoPagamento + "000"; identificacaoPagamento = identificacaoPagamento + (Util.adicionarZerosEsquedaNumero(8, idCliente.toString())); identificacaoPagamento = identificacaoPagamento + (Util.adicionarZerosEsquedaNumero(9, sequencialDocumentoCobranca)); identificacaoPagamento = identificacaoPagamento + (Util.adicionarZerosEsquedaNumero(2, idTipoDocumento.toString())); identificacaoPagamento = identificacaoPagamento + "00"; } else if(tipoPagamento.intValue() == 1 || tipoPagamento.intValue() == 9){ identificacaoPagamento = Util.adicionarZerosEsquedaNumeroTruncando(3,idLocalidade.toString()); if(tipoPagamento.intValue() == 1){ identificacaoPagamento = identificacaoPagamento + Util.adicionarZerosEsquedaNumeroTruncando(9,matriculaImovel.toString()); identificacaoPagamento = identificacaoPagamento + Util.adicionarZerosEsquedaNumeroTruncando(9,idGuiaPagamento); //FIXO identificacaoPagamento = identificacaoPagamento + "00"; //Identifica o tamanho da matr�cula do im�vel identificacaoPagamento = identificacaoPagamento + "1"; } else if(tipoPagamento.intValue() == 9){ identificacaoPagamento = identificacaoPagamento + Util.adicionarZerosEsquedaNumeroTruncando(9,idCliente.toString()); identificacaoPagamento = identificacaoPagamento + Util.adicionarZerosEsquedaNumeroTruncando(9,idGuiaPagamento); //FIXO identificacaoPagamento = identificacaoPagamento + "00"; //Identifica o tamanho da matr�cula do im�vel identificacaoPagamento = identificacaoPagamento + "1"; } } // Retorna o identificador do pagamento formatado return identificacaoPagamento; } /** * [UC0270] Apresentar An�lise do Movimento dos Arrecadadores * * @author Raphael Rossiter * @date 08/11/2008 * * @param registroHelperCodigoG * @param arrecadadorMovimentoItemHelper * @throws ControladorException */ public void distribuirDadosRegistroMovimentoArrecadadorPorTipoPagamento(RegistroHelperCodigoG registroHelperCodigoG, ArrecadadorMovimentoItemHelper arrecadadorMovimentoItemHelper) throws ControladorException { super.distribuirDadosRegistroMovimentoArrecadadorPorTipoPagamento(registroHelperCodigoG, arrecadadorMovimentoItemHelper); //LEGADO - CAEMA //=============================================================================================================================== if (registroHelperCodigoG.getRegistroHelperCodigoBarras() .getTipoPagamento().equals(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_NEGOCIACAO_A_VISTA_LEGADO_CAEMA.toString())){ //Calcular Digito Verificador da Matricula (M�DULO 11) Integer matriculaImovelComDigito = null; String matriculaImovel = registroHelperCodigoG.getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento().getIdPagamento3(); if (matriculaImovel != null) { int digitoModulo11 = Util.obterDigitoVerificadorModulo11(matriculaImovel); try { matriculaImovelComDigito = new Integer(matriculaImovel + digitoModulo11); } catch (Exception e) { matriculaImovelComDigito = 0; } } if (matriculaImovelComDigito == 0){ arrecadadorMovimentoItemHelper .setIdentificacao(matriculaImovel); } else{ arrecadadorMovimentoItemHelper .setIdentificacao(matriculaImovelComDigito.toString()); } arrecadadorMovimentoItemHelper .setTipoPagamento(ConstantesSistema.TIPO_PAGAMENTO_NEGOCIACAO_A_VISTA_LEGADO_CAEMA); } else if (registroHelperCodigoG.getRegistroHelperCodigoBarras() .getTipoPagamento().equals(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_GUIA_PAGAMENTO_LEGADO_CAEMA.toString())){ //Calcular Digito Verificador da Matricula (M�DULO 11) Integer matriculaImovelComDigito = null; String matriculaImovel = registroHelperCodigoG.getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento().getIdPagamento3(); if (matriculaImovel != null) { int digitoModulo11 = Util.obterDigitoVerificadorModulo11(matriculaImovel); try { matriculaImovelComDigito = new Integer(matriculaImovel + digitoModulo11); } catch (Exception e) { matriculaImovelComDigito = 0; } } if (matriculaImovelComDigito == 0){ arrecadadorMovimentoItemHelper .setIdentificacao(matriculaImovel); } else{ arrecadadorMovimentoItemHelper .setIdentificacao(matriculaImovelComDigito.toString()); } arrecadadorMovimentoItemHelper .setTipoPagamento(ConstantesSistema.TIPO_PAGAMENTO_GUIA_PAGAMENTO); } else if (registroHelperCodigoG.getRegistroHelperCodigoBarras() .getTipoPagamento().equals(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_FATURA_LEGADO_CAEMA.toString())){ arrecadadorMovimentoItemHelper .setIdentificacao(registroHelperCodigoG.getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento().getIdPagamento3()); arrecadadorMovimentoItemHelper .setTipoPagamento(ConstantesSistema.TIPO_PAGAMENTO_FATURA_CLIENTE_RESPONSAVEL); } else if (registroHelperCodigoG.getRegistroHelperCodigoBarras() .getTipoPagamento().equals(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_CONTA_LEGADO_CAEMA.toString())){ //Calcular Digito Verificador da Matricula (M�DULO 11) Integer matriculaImovelComDigito = null; String matriculaImovel = registroHelperCodigoG.getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento().getIdPagamento3(); if (matriculaImovel != null) { int digitoModulo11 = Util.obterDigitoVerificadorModulo11(matriculaImovel); try { matriculaImovelComDigito = new Integer(matriculaImovel + digitoModulo11); } catch (Exception e) { matriculaImovelComDigito = 0; } } if (matriculaImovelComDigito == 0){ arrecadadorMovimentoItemHelper .setIdentificacao(matriculaImovel); } else{ arrecadadorMovimentoItemHelper .setIdentificacao(matriculaImovelComDigito.toString()); } arrecadadorMovimentoItemHelper .setTipoPagamento(ConstantesSistema.TIPO_PAGAMENTO_CONTA); } else if (registroHelperCodigoG.getRegistroHelperCodigoBarras() .getTipoPagamento().equals(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_CAMPANHA_AVISO_DEBITO_LEGADO_CAEMA.toString())){ //Calcular Digito Verificador da Matricula (M�DULO 11) Integer matriculaImovelComDigito = null; String matriculaImovel = registroHelperCodigoG.getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento().getIdPagamento3(); if (matriculaImovel != null) { int digitoModulo11 = Util.obterDigitoVerificadorModulo11(matriculaImovel); try { matriculaImovelComDigito = new Integer(matriculaImovel + digitoModulo11); } catch (Exception e) { matriculaImovelComDigito = 0; } } if (matriculaImovelComDigito == 0){ arrecadadorMovimentoItemHelper .setIdentificacao(matriculaImovel); } else{ arrecadadorMovimentoItemHelper .setIdentificacao(matriculaImovelComDigito.toString()); } if (registroHelperCodigoG.getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento().getIdPagamento5().equals("00")){ arrecadadorMovimentoItemHelper .setTipoPagamento(ConstantesSistema.TIPO_PAGAMENTO_AVISO_DEBITO_LEGADO_CAEMA); } else{ arrecadadorMovimentoItemHelper .setTipoPagamento(ConstantesSistema.TIPO_PAGAMENTO_CAMPANHA_LEGADO_CAEMA); } } //=============================================================================================================================== } /** * [UC0264] - Distribuir Dados do C�digo de Barras * * @author Raphael Rossiter * @date 06/11/2008 * * @param registroHelperCodigoBarrasTipoPagamento * @param idPagamento * @return RegistroHelperCodigoBarrasTipoPagamento */ public RegistroHelperCodigoBarrasTipoPagamento distribuirDadosCodigoBarrasPorTipoPagamento_GUIA_PAGAMENTO_IMOVEL( RegistroHelperCodigoBarrasTipoPagamento registroHelperCodigoBarrasTipoPagamento, String idPagamento) { //seta o c�digo da localidade registroHelperCodigoBarrasTipoPagamento.setIdPagamento1(idPagamento .substring(0, 3).trim()); // seta a matr�cula do im�vel registroHelperCodigoBarrasTipoPagamento.setIdPagamento2(idPagamento .substring(3, 11).trim()); // n�o est� sendo utilizado registroHelperCodigoBarrasTipoPagamento.setIdPagamento3(idPagamento .substring(11, 13).trim()); // seta o c�digo do tipo do debito registroHelperCodigoBarrasTipoPagamento.setIdPagamento4(idPagamento .substring(13, 17).trim()); // seta o ano da emiss�o da guia de pagamento(AAAA) registroHelperCodigoBarrasTipoPagamento.setIdPagamento5(idPagamento .substring(17, 21).trim()); // n�o est� sendo utilizado registroHelperCodigoBarrasTipoPagamento.setIdPagamento6(idPagamento .substring(21, 24).trim()); return registroHelperCodigoBarrasTipoPagamento; } /** * [UC0264] - Distribuir Dados do C�digo de Barras * * @author Raphael Rossiter * @date 06/11/2008 * * @param registroHelperCodigoBarrasTipoPagamento * @param idPagamento * @return RegistroHelperCodigoBarrasTipoPagamento */ public RegistroHelperCodigoBarrasTipoPagamento distribuirDadosCodigoBarrasPorTipoPagamento_GUIA_PAGAMENTO_CLIENTE( RegistroHelperCodigoBarrasTipoPagamento registroHelperCodigoBarrasTipoPagamento, String idPagamento) { //seta o c�digo da localidade registroHelperCodigoBarrasTipoPagamento.setIdPagamento1(idPagamento .substring(0, 3).trim()); // seta o id do cliente registroHelperCodigoBarrasTipoPagamento.setIdPagamento2(idPagamento .substring(3, 11).trim()); // n�o est� sendo utilizado registroHelperCodigoBarrasTipoPagamento.setIdPagamento3(idPagamento .substring(11, 13).trim()); // seta o c�digo do tipo do debito registroHelperCodigoBarrasTipoPagamento.setIdPagamento4(idPagamento .substring(13, 17).trim()); // seta o ano da emiss�o da guia de pagamento(AAAA) registroHelperCodigoBarrasTipoPagamento.setIdPagamento5(idPagamento .substring(17, 21).trim()); // n�o est� sendo utilizado registroHelperCodigoBarrasTipoPagamento.setIdPagamento6(idPagamento .substring(21, 24).trim()); return registroHelperCodigoBarrasTipoPagamento; } }