package gcom.arrecadacao; import gcom.arrecadacao.bean.ArrecadadorMovimentoItemHelper; import gcom.arrecadacao.bean.DadosConteudoCodigoBarrasHelper; import gcom.arrecadacao.bean.PagamentoHelperCodigoBarras; import gcom.arrecadacao.bean.RegistroHelperCodigoBarras; import gcom.arrecadacao.bean.RegistroHelperCodigoBarrasTipoPagamento; import gcom.arrecadacao.bean.RegistroHelperCodigoG; import gcom.arrecadacao.pagamento.Pagamento; import gcom.cadastro.imovel.Imovel; import gcom.cadastro.localidade.Localidade; import gcom.cadastro.sistemaparametro.SistemaParametro; import gcom.cobranca.DocumentoTipo; import gcom.faturamento.conta.ContaGeral; 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 javax.ejb.SessionBean; /** * Controlador Arrecadacao Juazeiro * * @author Rafael Corr�a * @date 30/06/2009 */ public class ControladorArrecadacaoCOSAMASEJB extends ControladorArrecadacao implements SessionBean { private static final long serialVersionUID = 1L; //============================================================================================================== // M�TODOS EXCLUSIVOS DA COSAMA //============================================================================================================== /** * [UC0264] - Distribuir Dados do C�digo de Barras - LEGADO * * @author Raphael Rossiter * @date 20/05/2010 * * @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(); //=============================================================================================================================== //LEGADO - COSAMA //=============================================================================================================================== String filler = ""; if (tipoPagamento.equals(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_CONTA_LEGADO_COSAMA.toString())){ filler = idPagamento.substring(15, 24).trim(); } else{ filler = idPagamento.substring(13, 24).trim(); } if (tipoPagamento.equals(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_CONTA_LEGADO_COSAMA.toString()) && filler.equals("000000000")){ //Im�vel registroHelperCodigoBarrasTipoPagamento.setIdPagamento1(idPagamento.substring(0, 8).trim()); //Ano e M�s registroHelperCodigoBarrasTipoPagamento.setIdPagamento2(idPagamento.substring(8, 14).trim()); //D�gito verificador registroHelperCodigoBarrasTipoPagamento.setIdPagamento3(idPagamento.substring(14, 15).trim()); //Tipo de Documento (MOVER PARA 0 - ZERO) registroHelperCodigoBarrasTipoPagamento.setIdPagamento4(ConstantesSistema.CODIGO_TIPO_DOCUMENTO_CONTA_LEGADO_COSAMA.toString()); } else if (tipoPagamento.equals(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_EXTRATO_LEGADO_COSAMA.toString())){ //Im�vel registroHelperCodigoBarrasTipoPagamento.setIdPagamento1(idPagamento.substring(0, 8).trim()); //Ano e M�s 1 String meAno1 = idPagamento.substring(8, 10).trim() + "20" + idPagamento.substring(10, 12).trim(); registroHelperCodigoBarrasTipoPagamento.setIdPagamento2(meAno1); //Ano e M�s 2 String meAno2 = idPagamento.substring(12, 14).trim() + "20" + idPagamento.substring(14, 16).trim(); registroHelperCodigoBarrasTipoPagamento.setIdPagamento3(meAno2); //Ano e M�s 3 String meAno3 = idPagamento.substring(16, 18).trim() + "20" + idPagamento.substring(18, 20).trim(); registroHelperCodigoBarrasTipoPagamento.setIdPagamento4(meAno3); //Ano e M�s 4 String meAno4 = idPagamento.substring(20, 22).trim() + "20" + idPagamento.substring(22, 24).trim(); registroHelperCodigoBarrasTipoPagamento.setIdPagamento5(meAno4); //Tipo de Documento registroHelperCodigoBarrasTipoPagamento.setIdPagamento6(ConstantesSistema.CODIGO_TIPO_DOCUMENTO_EXTRATO_LEGADO_COSAMA.toString()); } else if (tipoPagamento.equals(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_GUIA_PAGAMENTO_LEGADO_COSAMA.toString()) && filler.equals("00000000000")){ //Im�vel registroHelperCodigoBarrasTipoPagamento.setIdPagamento1(idPagamento.substring(0, 8).trim()); //Localidade registroHelperCodigoBarrasTipoPagamento.setIdPagamento2(idPagamento.substring(8, 11).trim()); //tipo do d�bito registroHelperCodigoBarrasTipoPagamento.setIdPagamento3(idPagamento.substring(11, 13).trim()); //Tipo de Documento (MOVER PARA 30 - trinta) registroHelperCodigoBarrasTipoPagamento.setIdPagamento4( ConstantesSistema.CODIGO_TIPO_DOCUMENTO_GUIA_PAGAMENTO_LEGADO_COSAMA.toString()); } else{ registroHelperCodigoBarrasTipoPagamento = super.distribuirDadosCodigoBarrasPorTipoPagamento(idPagamento, tipoPagamento, idEmpresa); } //=============================================================================================================================== return registroHelperCodigoBarrasTipoPagamento; } /** * [UC0259] - Processar Pagamento com C�digo de Barras - LEGADO * * @author Raphael Rossiter * @date 20/05/2010 * * @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 - COSANPA //=============================================================================================================================== if (tipoPagamento.equals(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_CONTA_LEGADO_COSAMA.toString()) && (registroHelperCodigoBarras.getRegistroHelperCodigoBarrasTipoPagamento().getIdPagamento4() != null && registroHelperCodigoBarras.getRegistroHelperCodigoBarrasTipoPagamento().getIdPagamento4().equals( ConstantesSistema.CODIGO_TIPO_DOCUMENTO_CONTA_LEGADO_COSAMA.toString()))){ //CONTA pagamentoHelperCodigoBarras = this.processarPagamentosCodigoBarrasConta_COSAMA_LEGADO( registroHelperCodigoBarras, sistemaParametro,dataPagamento, anoMesPagamento, valorPagamento, idFormaArrecadacao); System.out.println("CONTA LEGADO"); } else if (tipoPagamento.equals(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_EXTRATO_LEGADO_COSAMA.toString()) && (registroHelperCodigoBarras.getRegistroHelperCodigoBarrasTipoPagamento().getIdPagamento6() != null && registroHelperCodigoBarras.getRegistroHelperCodigoBarrasTipoPagamento().getIdPagamento6().equals( ConstantesSistema.CODIGO_TIPO_DOCUMENTO_EXTRATO_LEGADO_COSAMA.toString()))){ //EXTRATO pagamentoHelperCodigoBarras = this.processarPagamentosCodigoBarrasExtrato_COSAMA_LEGADO( registroHelperCodigoBarras, sistemaParametro,dataPagamento, anoMesPagamento, valorPagamento, idFormaArrecadacao); System.out.println("EXTRATO LEGADO"); } else if (tipoPagamento.equals(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_GUIA_PAGAMENTO_LEGADO_COSAMA.toString()) && (registroHelperCodigoBarras.getRegistroHelperCodigoBarrasTipoPagamento().getIdPagamento4() != null && registroHelperCodigoBarras.getRegistroHelperCodigoBarrasTipoPagamento().getIdPagamento4().equals( ConstantesSistema.CODIGO_TIPO_DOCUMENTO_GUIA_PAGAMENTO_LEGADO_COSAMA.toString()))){ //GUIA DE PAGAMENTO pagamentoHelperCodigoBarras = this.processarPagamentosCodigoBarrasGuiaPagamento_COSAMA_LEGADO( registroHelperCodigoBarras, sistemaParametro,dataPagamento, anoMesPagamento, valorPagamento, idFormaArrecadacao); System.out.println("GUIA DE PAGAMENTO LEGADO"); } else{ pagamentoHelperCodigoBarras = super.processarPagamentosCodigoBarrasPorTipoPagamento( registroHelperCodigoBarras, dataPagamento, anoMesPagamento, valorPagamento, idFormaArrecadacao, sistemaParametro, usuarioLogado); } return pagamentoHelperCodigoBarras; } /** * [UC0259] - Processar Pagamento com C�digo de Barras * * LEGADO CONTA * * @autor: Raphael Rossiter * @data: 20/05/2010 */ protected PagamentoHelperCodigoBarras processarPagamentosCodigoBarrasConta_COSAMA_LEGADO( RegistroHelperCodigoBarras registroHelperCodigoBarras, SistemaParametro sistemaParametro, Date dataPagamento, Integer anoMesPagamento, BigDecimal valorPagamento, Integer idFormaArrecadacao) throws ControladorException { PagamentoHelperCodigoBarras pagamentoHelperCodigoBarras = new PagamentoHelperCodigoBarras(); String descricaoOcorrencia = "OK"; String indicadorAceitacaoRegistro = "1"; Collection colecaoPagamentos = new ArrayList(); boolean matriculaImovelInvalida = false; int anoMes = 0; Integer idImovelNaBase = null; Integer matriculaImovel = null; boolean anoMesReferencia = false; String idImovel = registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento1(); matriculaImovelInvalida = Util .validarValorNaoNumerico(idImovel); if (matriculaImovelInvalida) { descricaoOcorrencia = "M�TRICULA DO IM�VEL INV�LIDA"; } else { /* * Verifica se existe a matricula do im�vel na base */ matriculaImovel = new Integer(idImovel); idImovelNaBase = null; try { idImovelNaBase = repositorioImovel .recuperarMatriculaImovel(matriculaImovel); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } /* * Se o id do imovel pesquisado na base for diferente de nulo */ if (idImovelNaBase == null) { descricaoOcorrencia = "MATR�CULA DO IM�VEL N�O CADASTRADA"; } } anoMesReferencia = Util .validarValorNaoNumerico(registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento2()); if (!anoMesReferencia) { // valida o ano mes de referencia da conta anoMes = Util.formatarMesAnoParaAnoMes(Integer .parseInt(registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento2())); anoMesReferencia = Util.validarAnoMesSemBarra("" + anoMes); if (anoMesReferencia) { descricaoOcorrencia = "ANO/M�S DE REFER�NCIA DA CONTA INV�LIDA"; } } else { descricaoOcorrencia = "ANO/M�S DE REFER�NCIA DA CONTA INV�LIDA"; } if (descricaoOcorrencia.equals("OK")) { Integer idLocalidade = null; Integer idConta = null; // Valida o amo mes de referencia da conta int anoMesReferenciaInt = Util.formatarMesAnoParaAnoMes(Integer .parseInt(registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento2())); Imovel imovel = new Imovel(); imovel.setId(idImovelNaBase); try { idConta = repositorioFaturamento .pesquisarExistenciaContaComSituacaoAtual(imovel, anoMesReferenciaInt); } 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 || idConta.equals("")) { 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(anoMes); /* * 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); documentoTipo.setDescricaoDocumentoTipo(ConstantesSistema.TIPO_PAGAMENTO_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(idFormaArrecadacao); pagamento.setArrecadacaoForma(arrecadacaoForma); pagamento.setCliente(null); pagamento.setUltimaAlteracao(new Date()); /* * Alteracao referente ao relatorio de Float - Francisco : 14/07/08 */ pagamento.setFatura(null); pagamento.setCobrancaDocumento(null); DocumentoTipo documentoAgregador = new DocumentoTipo(); documentoAgregador.setId(DocumentoTipo.CONTA); pagamento.setDocumentoTipoAgregador(documentoAgregador); pagamento.setDataProcessamento(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; } /** * [UC0270] Apresentar An�lise do Movimento dos Arrecadadores * * @author Raphael Rossiter * @date 20/05/2011 * * @param registroHelperCodigoG * @param arrecadadorMovimentoItemHelper * @throws ControladorException */ public void distribuirDadosRegistroMovimentoArrecadadorPorTipoPagamento(RegistroHelperCodigoG registroHelperCodigoG, ArrecadadorMovimentoItemHelper arrecadadorMovimentoItemHelper) throws ControladorException { //LEGADO - COSAMA //=============================================================================================================================== if (registroHelperCodigoG.getRegistroHelperCodigoBarras() .getTipoPagamento().equals(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_CONTA_LEGADO_COSAMA.toString()) && (registroHelperCodigoG.getRegistroHelperCodigoBarras().getRegistroHelperCodigoBarrasTipoPagamento().getIdPagamento4() != null && registroHelperCodigoG.getRegistroHelperCodigoBarras().getRegistroHelperCodigoBarrasTipoPagamento().getIdPagamento4().equals( ConstantesSistema.CODIGO_TIPO_DOCUMENTO_CONTA_LEGADO_COSAMA.toString()))){ //CONTA String identificacao = registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento1(); arrecadadorMovimentoItemHelper.setIdentificacao(identificacao); arrecadadorMovimentoItemHelper.setTipoPagamento(ConstantesSistema.TIPO_PAGAMENTO_CONTA_LEGADO); } else if (registroHelperCodigoG.getRegistroHelperCodigoBarras() .getTipoPagamento().equals(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_EXTRATO_LEGADO_COSAMA.toString()) && (registroHelperCodigoG.getRegistroHelperCodigoBarras().getRegistroHelperCodigoBarrasTipoPagamento().getIdPagamento6() != null && registroHelperCodigoG.getRegistroHelperCodigoBarras().getRegistroHelperCodigoBarrasTipoPagamento().getIdPagamento6().equals( ConstantesSistema.CODIGO_TIPO_DOCUMENTO_EXTRATO_LEGADO_COSAMA.toString()))){ //EXTRATO String identificacao = registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento1(); arrecadadorMovimentoItemHelper.setIdentificacao(identificacao); arrecadadorMovimentoItemHelper.setTipoPagamento(ConstantesSistema.TIPO_PAGAMENTO_EXTRATO_LEGADO); } else if (registroHelperCodigoG.getRegistroHelperCodigoBarras() .getTipoPagamento().equals(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_GUIA_PAGAMENTO_LEGADO_COSAMA.toString()) && (registroHelperCodigoG.getRegistroHelperCodigoBarras().getRegistroHelperCodigoBarrasTipoPagamento().getIdPagamento4() != null && registroHelperCodigoG.getRegistroHelperCodigoBarras().getRegistroHelperCodigoBarrasTipoPagamento().getIdPagamento4().equals( ConstantesSistema.CODIGO_TIPO_DOCUMENTO_GUIA_PAGAMENTO_LEGADO_COSAMA.toString()))){ //GUIA DE PAGAMENTO String identificacao = registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento1(); arrecadadorMovimentoItemHelper.setIdentificacao(identificacao); arrecadadorMovimentoItemHelper.setTipoPagamento(ConstantesSistema.TIPO_PAGAMENTO_GUIA_PAGAMENTO_LEGADO); } else{ super.distribuirDadosRegistroMovimentoArrecadadorPorTipoPagamento(registroHelperCodigoG, arrecadadorMovimentoItemHelper); } } /** * [UC0270] Apresentar An�lise do Movimento dos Arrecadadores * * O sistema captura os dados referentes ao conte�do do do c�digo de barras * * [SF0003] Apresentar Dados do Conte�do do C�digo de Barras * * @author Raphael Rossiter * @data 20/05/2011 * * @param registroHelperCodigoG * @return DadosConteudoCodigoBarrasHelper */ public DadosConteudoCodigoBarrasHelper apresentarDadosConteudoCodigoBarras( RegistroHelperCodigoG registroHelperCodigoG) throws ControladorException { DadosConteudoCodigoBarrasHelper retorno = new DadosConteudoCodigoBarrasHelper(); //LEGADO - COSAMA //=============================================================================================================================== if (registroHelperCodigoG.getRegistroHelperCodigoBarras() .getTipoPagamento().equals(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_CONTA_LEGADO_COSAMA.toString()) && (registroHelperCodigoG.getRegistroHelperCodigoBarras().getRegistroHelperCodigoBarrasTipoPagamento().getIdPagamento4() != null && registroHelperCodigoG.getRegistroHelperCodigoBarras().getRegistroHelperCodigoBarrasTipoPagamento().getIdPagamento4().equals( ConstantesSistema.CODIGO_TIPO_DOCUMENTO_CONTA_LEGADO_COSAMA.toString()))){ //CONTA - LEGADO retorno.setTipoPagamento(ConstantesSistema.TIPO_PAGAMENTO_CONTA_LEGADO); } else if (registroHelperCodigoG.getRegistroHelperCodigoBarras() .getTipoPagamento().equals(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_EXTRATO_LEGADO_COSAMA.toString()) && (registroHelperCodigoG.getRegistroHelperCodigoBarras().getRegistroHelperCodigoBarrasTipoPagamento().getIdPagamento6() != null && registroHelperCodigoG.getRegistroHelperCodigoBarras().getRegistroHelperCodigoBarrasTipoPagamento().getIdPagamento6().equals( ConstantesSistema.CODIGO_TIPO_DOCUMENTO_EXTRATO_LEGADO_COSAMA.toString()))){ //EXTRATO - LEGADO retorno.setTipoPagamento(ConstantesSistema.TIPO_PAGAMENTO_EXTRATO_LEGADO); } else if (registroHelperCodigoG.getRegistroHelperCodigoBarras() .getTipoPagamento().equals(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_GUIA_PAGAMENTO_LEGADO_COSAMA.toString()) && (registroHelperCodigoG.getRegistroHelperCodigoBarras().getRegistroHelperCodigoBarrasTipoPagamento().getIdPagamento4() != null && registroHelperCodigoG.getRegistroHelperCodigoBarras().getRegistroHelperCodigoBarrasTipoPagamento().getIdPagamento4().equals( ConstantesSistema.CODIGO_TIPO_DOCUMENTO_GUIA_PAGAMENTO_LEGADO_COSAMA.toString()))){ //GUIA DE PAGAMENTO - LEGADO retorno.setTipoPagamento(ConstantesSistema.TIPO_PAGAMENTO_GUIA_PAGAMENTO_LEGADO); } else{ //GERADO PELO GSAN retorno = super.apresentarDadosConteudoCodigoBarras(registroHelperCodigoG); } return retorno; } /** * [UC0259] - Processar Pagamento com C�digo de Barras - LEGADO * * @author Raphael Rossiter * @date 03/06/2011 * * @param registroHelperCodigoBarras * @param sistemaParametro * @param dataPagamento * @param anoMesPagamento * @param valorPagamento * @param idFormaArrecadacao * @return PagamentoHelperCodigoBarras * @throws ControladorException */ protected PagamentoHelperCodigoBarras processarPagamentosCodigoBarrasGuiaPagamento_COSAMA_LEGADO( RegistroHelperCodigoBarras registroHelperCodigoBarras, SistemaParametro sistemaParametro, Date dataPagamento, Integer anoMesPagamento, BigDecimal valorPagamento, Integer idFormaArrecadacao) throws ControladorException { PagamentoHelperCodigoBarras pagamentoHelperCodigoBarras = new PagamentoHelperCodigoBarras(); String descricaoOcorrencia = "OK"; String indicadorAceitacaoRegistro = "1"; Collection colecaoPagamentos = new ArrayList(); boolean idLocalidadeInvalida = false; boolean matriculaImovelInvalida = false; Integer idImovelNaBase = null; Integer matriculaImovel = null; Integer idLocalidade = null; Integer idDebitoTipoNaBase = null; idLocalidadeInvalida = Util .validarValorNaoNumerico(registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento2()); if (idLocalidadeInvalida) { descricaoOcorrencia = "C�DIGO DA LOCALIDADE N�O NUM�RICA"; } idLocalidade = new Integer(registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento2()); matriculaImovelInvalida = Util .validarValorNaoNumerico(registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento1()); if (matriculaImovelInvalida) { descricaoOcorrencia = "M�TRICULA DO IM�VEL INV�LIDA"; } else { // Verifica se existe a matricula do im�vel na base matriculaImovel = new Integer(registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento1()); try { idImovelNaBase = repositorioImovel .recuperarMatriculaImovel(new Integer(matriculaImovel)); } catch (ErroRepositorioException e) { e.printStackTrace(); throw new ControladorException("erro.sistema", e); } if (idImovelNaBase == null) { descricaoOcorrencia = "MATR�CULA DO IM�VEL N�O CADASTRADA"; } } boolean codigoTipoDebito = Util .validarValorNaoNumerico(registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento3()); if (codigoTipoDebito) { descricaoOcorrencia = "TIPO DO D�BITO N�O NUM�RICO"; } else { idDebitoTipoNaBase = getControladorFaturamento() .verificarExistenciaDebitoTipo( Util .converterStringParaInteger(registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento3())); if (idDebitoTipoNaBase == null) { descricaoOcorrencia = "TIPO DO D�BITO INEXISTENTE"; } } if (descricaoOcorrencia.equals("OK")) { // GERA��O DO PAGAMENTO 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); DebitoTipo debitoTipo = new DebitoTipo(); debitoTipo.setId(idDebitoTipoNaBase); pagamento.setDebitoTipo(debitoTipo); pagamento.setContaGeral(null); pagamento.setGuiaPagamento(null); Localidade localidade = new Localidade(); localidade.setId(idLocalidade); pagamento.setLocalidade(localidade); DocumentoTipo documentoTipo = new DocumentoTipo(); if (debitoTipo.getId().equals(DebitoTipo.ENTRADA_PARCELAMENTO)){ documentoTipo.setId(DocumentoTipo.ENTRADA_DE_PARCELAMENTO); } else { documentoTipo.setId(DocumentoTipo.GUIA_PAGAMENTO); } documentoTipo.setDescricaoDocumentoTipo(ConstantesSistema.TIPO_PAGAMENTO_GUIA_PAGAMENTO); pagamento.setDocumentoTipo(documentoTipo); pagamento.setAvisoBancario(null); Imovel imovel = new Imovel(); imovel.setId(idImovelNaBase); pagamento.setImovel(imovel); pagamento.setArrecadadorMovimentoItem(null); ArrecadacaoForma arrecadacaoForma = new ArrecadacaoForma(); arrecadacaoForma.setId(idFormaArrecadacao); pagamento.setArrecadacaoForma(arrecadacaoForma); pagamento.setCliente(null); pagamento.setUltimaAlteracao(new Date()); pagamento.setFatura(null); pagamento.setCobrancaDocumento(null); /* * Alteracao referente ao Relatorio do Float - Francisco: 14/07/08 */ DocumentoTipo documentoAgregador = new DocumentoTipo(); documentoAgregador.setId(DocumentoTipo.GUIA_PAGAMENTO); pagamento.setDocumentoTipoAgregador(documentoAgregador); pagamento.setDataProcessamento(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 * * EXTRATO LEGADO * * @autor: Raphael Rossiter * @data: 03/06/2010 */ protected PagamentoHelperCodigoBarras processarPagamentosCodigoBarrasExtrato_COSAMA_LEGADO( RegistroHelperCodigoBarras registroHelperCodigoBarras, SistemaParametro sistemaParametro, Date dataPagamento, Integer anoMesPagamento, BigDecimal valorPagamento, Integer idFormaArrecadacao) throws ControladorException { PagamentoHelperCodigoBarras pagamentoHelperCodigoBarras = new PagamentoHelperCodigoBarras(); String descricaoOcorrencia = "OK"; String indicadorAceitacaoRegistro = "1"; Collection colecaoPagamentosRetorno = new ArrayList(); RegistroHelperCodigoBarras codigoBarras = new RegistroHelperCodigoBarras(); codigoBarras.setIdProduto(registroHelperCodigoBarras.getIdProduto()); codigoBarras.setIdSegmento(registroHelperCodigoBarras.getIdSegmento()); codigoBarras.setIdValorReal(registroHelperCodigoBarras.getIdValorReal()); codigoBarras.setDigitoVerificadorGeral(registroHelperCodigoBarras.getDigitoVerificadorGeral()); codigoBarras.setIdEmpresa(registroHelperCodigoBarras.getIdEmpresa()); for (int i = 1; i <= 4; i++) { switch (i) { case 1: if (!registroHelperCodigoBarras.getRegistroHelperCodigoBarrasTipoPagamento().getIdPagamento2().equals("002000")){ //CONTA 01 Pagamento pagamentoGerado = this.processarPagamentosCodigoBarrasExtratoPorConta(codigoBarras, sistemaParametro, dataPagamento, registroHelperCodigoBarras.getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento1(), registroHelperCodigoBarras.getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento2(), anoMesPagamento, idFormaArrecadacao); if (pagamentoGerado != null){ colecaoPagamentosRetorno.add(pagamentoGerado); } } break; case 2: if (!registroHelperCodigoBarras.getRegistroHelperCodigoBarrasTipoPagamento().getIdPagamento3().equals("002000")){ //CONTA 02 Pagamento pagamentoGerado = this.processarPagamentosCodigoBarrasExtratoPorConta(codigoBarras, sistemaParametro, dataPagamento, registroHelperCodigoBarras.getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento1(), registroHelperCodigoBarras.getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento3(), anoMesPagamento, idFormaArrecadacao); if (pagamentoGerado != null){ colecaoPagamentosRetorno.add(pagamentoGerado); } } break; case 3: if (!registroHelperCodigoBarras.getRegistroHelperCodigoBarrasTipoPagamento().getIdPagamento4().equals("002000")){ //CONTA 03 Pagamento pagamentoGerado = this.processarPagamentosCodigoBarrasExtratoPorConta(codigoBarras, sistemaParametro, dataPagamento, registroHelperCodigoBarras.getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento1(), registroHelperCodigoBarras.getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento4(), anoMesPagamento, idFormaArrecadacao); if (pagamentoGerado != null){ colecaoPagamentosRetorno.add(pagamentoGerado); } } break; case 4: if (!registroHelperCodigoBarras.getRegistroHelperCodigoBarrasTipoPagamento().getIdPagamento5().equals("002000")){ //CONTA 04 Pagamento pagamentoGerado = this.processarPagamentosCodigoBarrasExtratoPorConta(codigoBarras, sistemaParametro, dataPagamento, registroHelperCodigoBarras.getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento1(), registroHelperCodigoBarras.getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento5(), anoMesPagamento, idFormaArrecadacao); if (pagamentoGerado != null){ colecaoPagamentosRetorno.add(pagamentoGerado); } } break; default: break; } } if (colecaoPagamentosRetorno == null || colecaoPagamentosRetorno.isEmpty()){ descricaoOcorrencia = "EXTRATO INEXISTENTE"; indicadorAceitacaoRegistro = "2"; } pagamentoHelperCodigoBarras.setColecaoPagamentos(colecaoPagamentosRetorno); pagamentoHelperCodigoBarras.setDescricaoOcorrencia(descricaoOcorrencia); pagamentoHelperCodigoBarras.setIndicadorAceitacaoRegistro(indicadorAceitacaoRegistro); return pagamentoHelperCodigoBarras; } /** * [UC0259] - Processar Pagamento com C�digo de Barras * * EXTRATO LEGADO * * @autor: Raphael Rossiter * @data: 03/06/2010 */ protected Pagamento processarPagamentosCodigoBarrasExtratoPorConta( RegistroHelperCodigoBarras registroHelperCodigoBarras, SistemaParametro sistemaParametro, Date dataPagamento, String idImovel, String anoMesReferenciaConta, Integer anoMesPagamento, Integer idFormaArrecadacao) throws ControladorException { Pagamento pagamentoGerado = null; /* * FORMATANDO A IDENTIFICA��O DO PAGAMENTO PARA PROCESSAR CONTA POR CONTA * (imovel + referencia + digito verificador + filler */ String idPagamento = idImovel + anoMesReferenciaConta + "1000000000"; //DISTRIBUINDO O C�DIGO DE BARRAS NO FORMATO DE CONTA LEGADO RegistroHelperCodigoBarrasTipoPagamento codigoBarrasTipoPagamento = this.distribuirDadosCodigoBarrasPorTipoPagamento(idPagamento, "1", null); //ATRIBUINDO O NOVO FORMATO registroHelperCodigoBarras.setRegistroHelperCodigoBarrasTipoPagamento(codigoBarrasTipoPagamento); //PESQUISANDO O VALOR DA CONTA QUE SER� ATRIBUIDO AO VALOR DO PAGAMENTO BigDecimal valorPagamentoConta = null; try { valorPagamentoConta = repositorioFaturamento.pesquisarValorContaComSituacaoAtual(Integer.parseInt(registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento1()), Util.formatarMesAnoParaAnoMes(Integer.parseInt(anoMesReferenciaConta))); } catch (ErroRepositorioException e) { e.printStackTrace(); throw new ControladorException("erro.sistema", e); } //CASO O VALOR DA CONTA N�O SEJA IDENTIFICADO O PAGAMENTO N�O SER� GERADO if (valorPagamentoConta != null){ //PROCESSANDO O PAGAMENTO POR CONTA PagamentoHelperCodigoBarras pagamentoHelperCodigoBarras = this.processarPagamentosCodigoBarrasConta_COSAMA_LEGADO( registroHelperCodigoBarras, sistemaParametro, dataPagamento, anoMesPagamento, valorPagamentoConta, idFormaArrecadacao); if (pagamentoHelperCodigoBarras.getColecaoPagamentos() != null && !pagamentoHelperCodigoBarras.getColecaoPagamentos().isEmpty()){ pagamentoGerado = (Pagamento) Util.retonarObjetoDeColecao(pagamentoHelperCodigoBarras.getColecaoPagamentos()); } } return pagamentoGerado; } }