From cc077fe86dc5e95a4ee6edf24cfde62567b80770 Mon Sep 17 00:00:00 2001 From: fabiorj Date: Fri, 26 Nov 2021 20:04:24 -0300 Subject: [PATCH 01/17] Commit Inicial --- .gitignore | 7 + pom.xml | 62 +++ .../ventaboletos/ArquivoRemessa.java | 49 ++ .../ventaboletos/ArquivoRemessaItem.java | 44 ++ .../ArquivoRemessaItemInteface.java | 23 + .../ventaboletos/ArquivoRetorno.java | 26 ++ .../ventaboletos/ArquivoRetornoItem.java | 48 ++ .../ArquivoRetornoItemInteface.java | 23 + src/com/rjconsultores/ventaboletos/Main.java | 83 ++++ .../ventaboletos/blocos/CabecalhoRemessa.java | 10 + .../ventaboletos/blocos/CabecalhoRetorno.java | 21 + .../ventaboletos/blocos/DadosBoleto.java | 78 ++++ .../blocos/DetalheObrigatorio.java | 9 + .../ventaboletos/blocos/DetalheRetorno.java | 39 ++ .../ventaboletos/blocos/RateioDeCredito.java | 20 + .../ventaboletos/blocos/RodapeRemessa.java | 9 + .../blocos/RodapeRemessaPadrao.java | 23 + .../ventaboletos/blocos/RodapeRetorno.java | 5 + .../ArquivoRemessaBancoBrasil.java | 107 +++++ .../CabecalhoLoteRemessaBancoBrasil.java | 162 +++++++ .../CabecalhoRemessaBancoBrasil.java | 177 ++++++++ ...lheObrigatorioDadosPagadorBancoBrasil.java | 173 ++++++++ ...lheObrigatorioDadosTitulosBancoBrasil.java | 350 +++++++++++++++ .../bancobrasil/RodapeRemessaBancoBrasil.java | 44 ++ .../RodapeRemessaLoteBancoBrasil.java | 23 + .../bradesco/ArquivoRemessaBradesco.java | 45 ++ .../bradesco/CabecalhoRemessaBradesco.java | 95 ++++ .../bradesco/DetalheObrigatorioBradesco.java | 345 +++++++++++++++ .../blocos/caixa/ArquivoRemessaCaixa.java | 45 ++ .../blocos/caixa/CabecalhoRemessaCaixa.java | 73 +++ .../blocos/caixa/DetalheObrigatorioCaixa.java | 194 ++++++++ .../blocos/itau/ArquivoRemessaItau.java | 41 ++ .../blocos/itau/CabecalhoRemessaItau.java | 125 ++++++ .../blocos/itau/DetalheObrigatorioItau.java | 368 +++++++++++++++ .../mercantil/ArquivoRemessaMercantil.java | 43 ++ .../mercantil/CabecalhoRemessaMercantil.java | 73 +++ .../DetalheObrigatorioMercantil.java | 391 ++++++++++++++++ .../santander/ArquivoRemessaSantander.java | 45 ++ .../santander/CabecalhoRemessaSantander.java | 75 ++++ .../DetalheObrigatorioSantander.java | 357 +++++++++++++++ .../blocos/sicoob/ArquivoRemessaSicoob.java | 45 ++ .../sicoob/CabecalhoLoteRemessaSicoob.java | 162 +++++++ .../blocos/sicoob/CabecalhoRemessaSicoob.java | 146 ++++++ .../DetalheObrigatorioDadosPagadorSicoob.java | 173 ++++++++ .../sicoob/DetalheObrigatorioSicoob.java | 352 +++++++++++++++ .../sicoob/RodapeRemessaLoteSicoob.java | 33 ++ .../blocos/sicoob/RodapeRemessaSicoob.java | 53 +++ .../ventaboletos/enuns/AceiteBB.java | 17 + .../ventaboletos/enuns/BancoLayout.java | 53 +++ .../ventaboletos/enuns/CarteiraSantander.java | 41 ++ .../ventaboletos/enuns/CarteiraSicoob.java | 41 ++ .../enuns/MotivoOcorrenciaBradesco.java | 333 ++++++++++++++ .../enuns/MotivoOcorrenciaItau.java | 152 +++++++ .../enuns/OcorrenciaBradesco.java | 48 ++ .../ventaboletos/enuns/OcorrenciaItau.java | 126 ++++++ .../enuns/OcorrenciaMercantil.java | 42 ++ .../enuns/OcorrenciaSantander.java | 44 ++ .../enuns/TipoInscricaoPagador.java | 49 ++ .../layouts/AbstractFlatFile.java | 418 ++++++++++++++++++ .../layouts/BancoBrasilFlatFile.java | 280 ++++++++++++ .../layouts/BradescoFlatFile.java | 153 +++++++ .../layouts/BradescoProcessaRetorno.java | 138 ++++++ .../ventaboletos/layouts/CNABFactory.java | 44 ++ .../ventaboletos/layouts/CaixaFlatFile.java | 126 ++++++ .../ventaboletos/layouts/ItauFlatFile.java | 160 +++++++ .../layouts/MercantilFlatFile.java | 131 ++++++ .../layouts/RemessaInterface.java | 14 + .../ventaboletos/layouts/RetornoInteface.java | 12 + .../layouts/SantanderFlatFile.java | 165 +++++++ .../layouts/SantanderProcessaRetorno.java | 136 ++++++ .../ventaboletos/layouts/SicoobFlatFile.java | 197 +++++++++ .../ventaboletos/utils/FormataUtil.java | 90 ++++ .../ventaboletos/utils/NossoNumeroUtils.java | 354 +++++++++++++++ src/layouts/LayoutBBCNAB240Envio.txg.xml | 188 ++++++++ src/layouts/LayoutBBCNAB400Envio.txg.xml | 108 +++++ .../LayoutBradescoCNAB400Envio.txg.xml | 144 ++++++ .../LayoutBradescoCNAB400Retorno.txg.xml | 123 ++++++ ...ayoutBradescoCNAB400RetornoParaLer.txg.xml | 123 ++++++ ...adescoCNAB400RetornoParaReEscrever.txg.xml | 67 +++ src/layouts/LayoutCaixaCNAB400Envio.txg.xml | 104 +++++ src/layouts/LayoutItauCNAB400Envio.txg.xml | 131 ++++++ src/layouts/LayoutItauCNAB400Retorno.txg.xml | 130 ++++++ .../LayoutMercantilCNAB400Envio.txg.xml | 113 +++++ .../LayoutSantanderCNAB400Envio.txg.xml | 119 +++++ .../LayoutSantanderCNAB400Retorno.txg.xml | 130 ++++++ src/layouts/LayoutSicoobCNAB240Envio.txg.xml | 184 ++++++++ target/GeneradorBoletosCNAB.jar | Bin 0 -> 167396 bytes target/classes/META-INF/MANIFEST.MF | 5 + .../GeneradorBoletosCNAB/pom.properties | 7 + .../GeneradorBoletosCNAB/pom.xml | 62 +++ .../ventaboletos/ArquivoRemessa.class | Bin 0 -> 2236 bytes .../ventaboletos/ArquivoRemessaItem.class | Bin 0 -> 2380 bytes .../ArquivoRemessaItemInteface.class | Bin 0 -> 745 bytes .../ventaboletos/ArquivoRetorno.class | Bin 0 -> 1267 bytes .../ventaboletos/ArquivoRetornoItem.class | Bin 0 -> 1898 bytes .../ArquivoRetornoItemInteface.class | Bin 0 -> 737 bytes .../com/rjconsultores/ventaboletos/Main.class | Bin 0 -> 4020 bytes .../blocos/CabecalhoRemessa.class | Bin 0 -> 350 bytes .../blocos/CabecalhoRetorno.class | Bin 0 -> 850 bytes .../ventaboletos/blocos/DadosBoleto.class | Bin 0 -> 2446 bytes .../blocos/DetalheObrigatorio.class | Bin 0 -> 306 bytes .../ventaboletos/blocos/DetalheRetorno.class | Bin 0 -> 1790 bytes .../ventaboletos/blocos/RateioDeCredito.class | Bin 0 -> 847 bytes .../ventaboletos/blocos/RodapeRemessa.class | Bin 0 -> 270 bytes .../blocos/RodapeRemessaPadrao.class | Bin 0 -> 730 bytes .../ventaboletos/blocos/RodapeRetorno.class | Bin 0 -> 340 bytes .../ArquivoRemessaBancoBrasil.class | Bin 0 -> 4152 bytes .../CabecalhoLoteRemessaBancoBrasil.class | Bin 0 -> 4990 bytes .../CabecalhoRemessaBancoBrasil.class | Bin 0 -> 4779 bytes ...heObrigatorioDadosPagadorBancoBrasil.class | Bin 0 -> 4561 bytes ...heObrigatorioDadosTitulosBancoBrasil.class | Bin 0 -> 9147 bytes .../RodapeRemessaBancoBrasil.class | Bin 0 -> 1873 bytes .../RodapeRemessaLoteBancoBrasil.class | Bin 0 -> 902 bytes .../bradesco/ArquivoRemessaBradesco.class | Bin 0 -> 2302 bytes .../bradesco/CabecalhoRemessaBradesco.class | Bin 0 -> 1753 bytes .../bradesco/DetalheObrigatorioBradesco.class | Bin 0 -> 9498 bytes .../blocos/caixa/ArquivoRemessaCaixa.class | Bin 0 -> 2275 bytes .../blocos/caixa/CabecalhoRemessaCaixa.class | Bin 0 -> 2171 bytes .../caixa/DetalheObrigatorioCaixa.class | Bin 0 -> 6393 bytes .../blocos/itau/ArquivoRemessaItau.class | Bin 0 -> 2175 bytes .../blocos/itau/CabecalhoRemessaItau.class | Bin 0 -> 2091 bytes .../blocos/itau/DetalheObrigatorioItau.class | Bin 0 -> 10791 bytes .../mercantil/ArquivoRemessaMercantil.class | Bin 0 -> 2311 bytes .../mercantil/CabecalhoRemessaMercantil.class | Bin 0 -> 2211 bytes .../DetalheObrigatorioMercantil.class | Bin 0 -> 9529 bytes .../santander/ArquivoRemessaSantander.class | Bin 0 -> 2311 bytes .../santander/CabecalhoRemessaSantander.class | Bin 0 -> 2185 bytes .../DetalheObrigatorioSantander.class | Bin 0 -> 11298 bytes .../blocos/sicoob/ArquivoRemessaSicoob.class | Bin 0 -> 2284 bytes .../sicoob/CabecalhoLoteRemessaSicoob.class | Bin 0 -> 4965 bytes .../sicoob/CabecalhoRemessaSicoob.class | Bin 0 -> 4057 bytes ...DetalheObrigatorioDadosPagadorSicoob.class | Bin 0 -> 4536 bytes .../sicoob/DetalheObrigatorioSicoob.class | Bin 0 -> 9091 bytes .../sicoob/RodapeRemessaLoteSicoob.class | Bin 0 -> 1169 bytes .../blocos/sicoob/RodapeRemessaSicoob.class | Bin 0 -> 1803 bytes .../ventaboletos/enuns/AceiteBB.class | Bin 0 -> 1351 bytes .../ventaboletos/enuns/BancoLayout.class | Bin 0 -> 3267 bytes .../enuns/CarteiraSantander.class | Bin 0 -> 2389 bytes .../ventaboletos/enuns/CarteiraSicoob.class | Bin 0 -> 2368 bytes .../enuns/MotivoOcorrenciaBradesco.class | Bin 0 -> 28929 bytes .../enuns/MotivoOcorrenciaItau.class | Bin 0 -> 19912 bytes .../enuns/OcorrenciaBradesco.class | Bin 0 -> 3015 bytes .../ventaboletos/enuns/OcorrenciaItau.class | Bin 0 -> 12128 bytes .../enuns/OcorrenciaMercantil.class | Bin 0 -> 2435 bytes .../enuns/OcorrenciaSantander.class | Bin 0 -> 2609 bytes .../enuns/TipoInscricaoPagador.class | Bin 0 -> 1965 bytes .../layouts/AbstractFlatFile.class | Bin 0 -> 10539 bytes .../layouts/BancoBrasilFlatFile.class | Bin 0 -> 11597 bytes .../layouts/BradescoFlatFile.class | Bin 0 -> 7867 bytes .../layouts/BradescoProcessaRetorno.class | Bin 0 -> 6061 bytes .../ventaboletos/layouts/CNABFactory.class | Bin 0 -> 2563 bytes .../ventaboletos/layouts/CaixaFlatFile.class | Bin 0 -> 6881 bytes .../ventaboletos/layouts/ItauFlatFile.class | Bin 0 -> 7970 bytes .../layouts/MercantilFlatFile.class | Bin 0 -> 7395 bytes .../layouts/RemessaInterface.class | Bin 0 -> 464 bytes .../layouts/RetornoInteface.class | Bin 0 -> 322 bytes .../layouts/SantanderFlatFile.class | Bin 0 -> 8908 bytes .../layouts/SantanderProcessaRetorno.class | Bin 0 -> 4930 bytes .../ventaboletos/layouts/SicoobFlatFile.class | Bin 0 -> 10176 bytes .../ventaboletos/utils/FormataUtil.class | Bin 0 -> 2452 bytes .../ventaboletos/utils/NossoNumeroUtils.class | Bin 0 -> 8798 bytes .../layouts/LayoutBBCNAB240Envio.txg.xml | 188 ++++++++ .../layouts/LayoutBBCNAB400Envio.txg.xml | 108 +++++ .../LayoutBradescoCNAB400Envio.txg.xml | 144 ++++++ .../LayoutBradescoCNAB400Retorno.txg.xml | 123 ++++++ ...ayoutBradescoCNAB400RetornoParaLer.txg.xml | 123 ++++++ ...adescoCNAB400RetornoParaReEscrever.txg.xml | 67 +++ .../layouts/LayoutCaixaCNAB400Envio.txg.xml | 104 +++++ .../layouts/LayoutItauCNAB400Envio.txg.xml | 131 ++++++ .../layouts/LayoutItauCNAB400Retorno.txg.xml | 130 ++++++ .../LayoutMercantilCNAB400Envio.txg.xml | 113 +++++ .../LayoutSantanderCNAB400Envio.txg.xml | 119 +++++ .../LayoutSantanderCNAB400Retorno.txg.xml | 130 ++++++ .../layouts/LayoutSicoobCNAB240Envio.txg.xml | 184 ++++++++ target/maven-archiver/pom.properties | 5 + .../compile/default-compile/createdFiles.lst | 1 + .../compile/default-compile/inputFiles.lst | 71 +++ 177 files changed, 11737 insertions(+) create mode 100644 .gitignore create mode 100644 pom.xml create mode 100644 src/com/rjconsultores/ventaboletos/ArquivoRemessa.java create mode 100644 src/com/rjconsultores/ventaboletos/ArquivoRemessaItem.java create mode 100644 src/com/rjconsultores/ventaboletos/ArquivoRemessaItemInteface.java create mode 100644 src/com/rjconsultores/ventaboletos/ArquivoRetorno.java create mode 100644 src/com/rjconsultores/ventaboletos/ArquivoRetornoItem.java create mode 100644 src/com/rjconsultores/ventaboletos/ArquivoRetornoItemInteface.java create mode 100644 src/com/rjconsultores/ventaboletos/Main.java create mode 100644 src/com/rjconsultores/ventaboletos/blocos/CabecalhoRemessa.java create mode 100644 src/com/rjconsultores/ventaboletos/blocos/CabecalhoRetorno.java create mode 100644 src/com/rjconsultores/ventaboletos/blocos/DadosBoleto.java create mode 100644 src/com/rjconsultores/ventaboletos/blocos/DetalheObrigatorio.java create mode 100644 src/com/rjconsultores/ventaboletos/blocos/DetalheRetorno.java create mode 100644 src/com/rjconsultores/ventaboletos/blocos/RateioDeCredito.java create mode 100644 src/com/rjconsultores/ventaboletos/blocos/RodapeRemessa.java create mode 100644 src/com/rjconsultores/ventaboletos/blocos/RodapeRemessaPadrao.java create mode 100644 src/com/rjconsultores/ventaboletos/blocos/RodapeRetorno.java create mode 100644 src/com/rjconsultores/ventaboletos/blocos/bancobrasil/ArquivoRemessaBancoBrasil.java create mode 100644 src/com/rjconsultores/ventaboletos/blocos/bancobrasil/CabecalhoLoteRemessaBancoBrasil.java create mode 100644 src/com/rjconsultores/ventaboletos/blocos/bancobrasil/CabecalhoRemessaBancoBrasil.java create mode 100644 src/com/rjconsultores/ventaboletos/blocos/bancobrasil/DetalheObrigatorioDadosPagadorBancoBrasil.java create mode 100644 src/com/rjconsultores/ventaboletos/blocos/bancobrasil/DetalheObrigatorioDadosTitulosBancoBrasil.java create mode 100644 src/com/rjconsultores/ventaboletos/blocos/bancobrasil/RodapeRemessaBancoBrasil.java create mode 100644 src/com/rjconsultores/ventaboletos/blocos/bancobrasil/RodapeRemessaLoteBancoBrasil.java create mode 100644 src/com/rjconsultores/ventaboletos/blocos/bradesco/ArquivoRemessaBradesco.java create mode 100644 src/com/rjconsultores/ventaboletos/blocos/bradesco/CabecalhoRemessaBradesco.java create mode 100644 src/com/rjconsultores/ventaboletos/blocos/bradesco/DetalheObrigatorioBradesco.java create mode 100644 src/com/rjconsultores/ventaboletos/blocos/caixa/ArquivoRemessaCaixa.java create mode 100644 src/com/rjconsultores/ventaboletos/blocos/caixa/CabecalhoRemessaCaixa.java create mode 100644 src/com/rjconsultores/ventaboletos/blocos/caixa/DetalheObrigatorioCaixa.java create mode 100644 src/com/rjconsultores/ventaboletos/blocos/itau/ArquivoRemessaItau.java create mode 100644 src/com/rjconsultores/ventaboletos/blocos/itau/CabecalhoRemessaItau.java create mode 100644 src/com/rjconsultores/ventaboletos/blocos/itau/DetalheObrigatorioItau.java create mode 100644 src/com/rjconsultores/ventaboletos/blocos/mercantil/ArquivoRemessaMercantil.java create mode 100644 src/com/rjconsultores/ventaboletos/blocos/mercantil/CabecalhoRemessaMercantil.java create mode 100644 src/com/rjconsultores/ventaboletos/blocos/mercantil/DetalheObrigatorioMercantil.java create mode 100644 src/com/rjconsultores/ventaboletos/blocos/santander/ArquivoRemessaSantander.java create mode 100644 src/com/rjconsultores/ventaboletos/blocos/santander/CabecalhoRemessaSantander.java create mode 100644 src/com/rjconsultores/ventaboletos/blocos/santander/DetalheObrigatorioSantander.java create mode 100644 src/com/rjconsultores/ventaboletos/blocos/sicoob/ArquivoRemessaSicoob.java create mode 100644 src/com/rjconsultores/ventaboletos/blocos/sicoob/CabecalhoLoteRemessaSicoob.java create mode 100644 src/com/rjconsultores/ventaboletos/blocos/sicoob/CabecalhoRemessaSicoob.java create mode 100644 src/com/rjconsultores/ventaboletos/blocos/sicoob/DetalheObrigatorioDadosPagadorSicoob.java create mode 100644 src/com/rjconsultores/ventaboletos/blocos/sicoob/DetalheObrigatorioSicoob.java create mode 100644 src/com/rjconsultores/ventaboletos/blocos/sicoob/RodapeRemessaLoteSicoob.java create mode 100644 src/com/rjconsultores/ventaboletos/blocos/sicoob/RodapeRemessaSicoob.java create mode 100644 src/com/rjconsultores/ventaboletos/enuns/AceiteBB.java create mode 100644 src/com/rjconsultores/ventaboletos/enuns/BancoLayout.java create mode 100644 src/com/rjconsultores/ventaboletos/enuns/CarteiraSantander.java create mode 100644 src/com/rjconsultores/ventaboletos/enuns/CarteiraSicoob.java create mode 100644 src/com/rjconsultores/ventaboletos/enuns/MotivoOcorrenciaBradesco.java create mode 100644 src/com/rjconsultores/ventaboletos/enuns/MotivoOcorrenciaItau.java create mode 100644 src/com/rjconsultores/ventaboletos/enuns/OcorrenciaBradesco.java create mode 100644 src/com/rjconsultores/ventaboletos/enuns/OcorrenciaItau.java create mode 100644 src/com/rjconsultores/ventaboletos/enuns/OcorrenciaMercantil.java create mode 100644 src/com/rjconsultores/ventaboletos/enuns/OcorrenciaSantander.java create mode 100644 src/com/rjconsultores/ventaboletos/enuns/TipoInscricaoPagador.java create mode 100644 src/com/rjconsultores/ventaboletos/layouts/AbstractFlatFile.java create mode 100644 src/com/rjconsultores/ventaboletos/layouts/BancoBrasilFlatFile.java create mode 100644 src/com/rjconsultores/ventaboletos/layouts/BradescoFlatFile.java create mode 100644 src/com/rjconsultores/ventaboletos/layouts/BradescoProcessaRetorno.java create mode 100644 src/com/rjconsultores/ventaboletos/layouts/CNABFactory.java create mode 100644 src/com/rjconsultores/ventaboletos/layouts/CaixaFlatFile.java create mode 100644 src/com/rjconsultores/ventaboletos/layouts/ItauFlatFile.java create mode 100644 src/com/rjconsultores/ventaboletos/layouts/MercantilFlatFile.java create mode 100644 src/com/rjconsultores/ventaboletos/layouts/RemessaInterface.java create mode 100644 src/com/rjconsultores/ventaboletos/layouts/RetornoInteface.java create mode 100644 src/com/rjconsultores/ventaboletos/layouts/SantanderFlatFile.java create mode 100644 src/com/rjconsultores/ventaboletos/layouts/SantanderProcessaRetorno.java create mode 100644 src/com/rjconsultores/ventaboletos/layouts/SicoobFlatFile.java create mode 100644 src/com/rjconsultores/ventaboletos/utils/FormataUtil.java create mode 100644 src/com/rjconsultores/ventaboletos/utils/NossoNumeroUtils.java create mode 100644 src/layouts/LayoutBBCNAB240Envio.txg.xml create mode 100644 src/layouts/LayoutBBCNAB400Envio.txg.xml create mode 100644 src/layouts/LayoutBradescoCNAB400Envio.txg.xml create mode 100644 src/layouts/LayoutBradescoCNAB400Retorno.txg.xml create mode 100644 src/layouts/LayoutBradescoCNAB400RetornoParaLer.txg.xml create mode 100644 src/layouts/LayoutBradescoCNAB400RetornoParaReEscrever.txg.xml create mode 100644 src/layouts/LayoutCaixaCNAB400Envio.txg.xml create mode 100644 src/layouts/LayoutItauCNAB400Envio.txg.xml create mode 100644 src/layouts/LayoutItauCNAB400Retorno.txg.xml create mode 100644 src/layouts/LayoutMercantilCNAB400Envio.txg.xml create mode 100644 src/layouts/LayoutSantanderCNAB400Envio.txg.xml create mode 100644 src/layouts/LayoutSantanderCNAB400Retorno.txg.xml create mode 100644 src/layouts/LayoutSicoobCNAB240Envio.txg.xml create mode 100644 target/GeneradorBoletosCNAB.jar create mode 100644 target/classes/META-INF/MANIFEST.MF create mode 100644 target/classes/META-INF/maven/br.com.rjconsultores/GeneradorBoletosCNAB/pom.properties create mode 100644 target/classes/META-INF/maven/br.com.rjconsultores/GeneradorBoletosCNAB/pom.xml create mode 100644 target/classes/com/rjconsultores/ventaboletos/ArquivoRemessa.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/ArquivoRemessaItem.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/ArquivoRemessaItemInteface.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/ArquivoRetorno.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/ArquivoRetornoItem.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/ArquivoRetornoItemInteface.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/Main.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/CabecalhoRemessa.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/CabecalhoRetorno.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/DadosBoleto.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/DetalheObrigatorio.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/DetalheRetorno.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/RateioDeCredito.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/RodapeRemessa.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/RodapeRemessaPadrao.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/RodapeRetorno.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/bancobrasil/ArquivoRemessaBancoBrasil.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/bancobrasil/CabecalhoLoteRemessaBancoBrasil.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/bancobrasil/CabecalhoRemessaBancoBrasil.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/bancobrasil/DetalheObrigatorioDadosPagadorBancoBrasil.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/bancobrasil/DetalheObrigatorioDadosTitulosBancoBrasil.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/bancobrasil/RodapeRemessaBancoBrasil.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/bancobrasil/RodapeRemessaLoteBancoBrasil.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/bradesco/ArquivoRemessaBradesco.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/bradesco/CabecalhoRemessaBradesco.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/bradesco/DetalheObrigatorioBradesco.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/caixa/ArquivoRemessaCaixa.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/caixa/CabecalhoRemessaCaixa.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/caixa/DetalheObrigatorioCaixa.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/itau/ArquivoRemessaItau.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/itau/CabecalhoRemessaItau.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/itau/DetalheObrigatorioItau.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/mercantil/ArquivoRemessaMercantil.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/mercantil/CabecalhoRemessaMercantil.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/mercantil/DetalheObrigatorioMercantil.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/santander/ArquivoRemessaSantander.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/santander/CabecalhoRemessaSantander.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/santander/DetalheObrigatorioSantander.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/sicoob/ArquivoRemessaSicoob.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/sicoob/CabecalhoLoteRemessaSicoob.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/sicoob/CabecalhoRemessaSicoob.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/sicoob/DetalheObrigatorioDadosPagadorSicoob.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/sicoob/DetalheObrigatorioSicoob.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/sicoob/RodapeRemessaLoteSicoob.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/sicoob/RodapeRemessaSicoob.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/enuns/AceiteBB.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/enuns/BancoLayout.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/enuns/CarteiraSantander.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/enuns/CarteiraSicoob.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/enuns/MotivoOcorrenciaBradesco.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/enuns/MotivoOcorrenciaItau.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/enuns/OcorrenciaBradesco.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/enuns/OcorrenciaItau.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/enuns/OcorrenciaMercantil.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/enuns/OcorrenciaSantander.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/enuns/TipoInscricaoPagador.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/layouts/AbstractFlatFile.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/layouts/BancoBrasilFlatFile.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/layouts/BradescoFlatFile.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/layouts/BradescoProcessaRetorno.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/layouts/CNABFactory.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/layouts/CaixaFlatFile.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/layouts/ItauFlatFile.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/layouts/MercantilFlatFile.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/layouts/RemessaInterface.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/layouts/RetornoInteface.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/layouts/SantanderFlatFile.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/layouts/SantanderProcessaRetorno.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/layouts/SicoobFlatFile.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/utils/FormataUtil.class create mode 100644 target/classes/com/rjconsultores/ventaboletos/utils/NossoNumeroUtils.class create mode 100644 target/classes/layouts/LayoutBBCNAB240Envio.txg.xml create mode 100644 target/classes/layouts/LayoutBBCNAB400Envio.txg.xml create mode 100644 target/classes/layouts/LayoutBradescoCNAB400Envio.txg.xml create mode 100644 target/classes/layouts/LayoutBradescoCNAB400Retorno.txg.xml create mode 100644 target/classes/layouts/LayoutBradescoCNAB400RetornoParaLer.txg.xml create mode 100644 target/classes/layouts/LayoutBradescoCNAB400RetornoParaReEscrever.txg.xml create mode 100644 target/classes/layouts/LayoutCaixaCNAB400Envio.txg.xml create mode 100644 target/classes/layouts/LayoutItauCNAB400Envio.txg.xml create mode 100644 target/classes/layouts/LayoutItauCNAB400Retorno.txg.xml create mode 100644 target/classes/layouts/LayoutMercantilCNAB400Envio.txg.xml create mode 100644 target/classes/layouts/LayoutSantanderCNAB400Envio.txg.xml create mode 100644 target/classes/layouts/LayoutSantanderCNAB400Retorno.txg.xml create mode 100644 target/classes/layouts/LayoutSicoobCNAB240Envio.txg.xml create mode 100644 target/maven-archiver/pom.properties create mode 100644 target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst create mode 100644 target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..8d0718774 --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +/.classpath +/.project +/.settings/org.eclipse.jdt.core.prefs +/.settings/org.eclipse.m2e.core.prefs +/.settings/org.eclipse.wst.common.component +/.settings/org.eclipse.wst.common.project.facet.core.xml +/.settings/org.eclipse.wst.validation.prefs diff --git a/pom.xml b/pom.xml new file mode 100644 index 000000000..697a9c837 --- /dev/null +++ b/pom.xml @@ -0,0 +1,62 @@ + + 4.0.0 + br.com.rjconsultores + GeneradorBoletosCNAB + 0.0.1-SNAPSHOT + + + src + + + src + + **/*.java + + + + + + maven-compiler-plugin + 3.3 + + 1.6 + 1.6 + Cp1252 + + + + ${project.artifactId} + + + + + commons-lang + commons-lang + 2.0 + + + + commons-io + commons-io + 1.4 + + + + br.com.rjconsultores + jrimum-texgit + 1.0.0 + + + sun-jaxb-rj + jaxb-api + + + sun-jaxb-rj + jaxb-impl + + + + + diff --git a/src/com/rjconsultores/ventaboletos/ArquivoRemessa.java b/src/com/rjconsultores/ventaboletos/ArquivoRemessa.java new file mode 100644 index 000000000..b2d2e34f2 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/ArquivoRemessa.java @@ -0,0 +1,49 @@ +package com.rjconsultores.ventaboletos; + +import java.util.ArrayList; +import java.util.List; + +import com.rjconsultores.ventaboletos.enuns.BancoLayout; + +public class ArquivoRemessa { + + private BancoLayout bancoLayout; + private String nomeArquivo; + private List itens; + + public ArquivoRemessa(BancoLayout bancoLayout) { + this.bancoLayout = bancoLayout; + } + + public BancoLayout getBancoLayout() { + return bancoLayout; + } + + public String getNomeArquivo() { + return nomeArquivo; + } + + public void setNomeArquivo(String nomeArquivo) { + this.nomeArquivo = nomeArquivo; + } + + public List getItens() { + return itens; + } + + public void setItens(List itens) { + this.itens = itens; + } + + public void addItem(ArquivoRemessaItemInteface item) { + + if(this.itens == null){ + this.itens = new ArrayList(); + } + + item.getCabecalhoRemessa().setNumeroSequencialRegistro(itens.size() + 1); + + this.itens.add(item); + } + +} diff --git a/src/com/rjconsultores/ventaboletos/ArquivoRemessaItem.java b/src/com/rjconsultores/ventaboletos/ArquivoRemessaItem.java new file mode 100644 index 000000000..f04aad598 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/ArquivoRemessaItem.java @@ -0,0 +1,44 @@ +package com.rjconsultores.ventaboletos; + +import java.util.List; + +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessa; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessaPadrao; + +public abstract class ArquivoRemessaItem implements ArquivoRemessaItemInteface, Cloneable{ + + protected CabecalhoRemessa cabecalhoRemessa; + protected List titulos; + protected RodapeRemessa rodapeRemessa; + + public CabecalhoRemessa getCabecalhoRemessa() { + return cabecalhoRemessa; + } + + public void setCabecalhoRemessa(CabecalhoRemessa cabecalhoRemessa) { + this.cabecalhoRemessa = cabecalhoRemessa; + } + + public List getTitulos() { + return titulos; + } + + public RodapeRemessa getRodapeRemessa() { + this.rodapeRemessa = this.rodapeRemessa == null ? new RodapeRemessaPadrao() : this.rodapeRemessa; + rodapeRemessa.setNumeroSequencialRegistro(titulos.size() + 1); + return rodapeRemessa; + } + + public void setRodapeRemessa(RodapeRemessa rodapeRemessa) { + this.rodapeRemessa = rodapeRemessa == null ? new RodapeRemessaPadrao() : rodapeRemessa; + } + + public abstract void addTitulo(DetalheObrigatorio titulo); + + + public ArquivoRemessaItemInteface clone() throws CloneNotSupportedException { + return (ArquivoRemessaItemInteface) super.clone(); + } +} diff --git a/src/com/rjconsultores/ventaboletos/ArquivoRemessaItemInteface.java b/src/com/rjconsultores/ventaboletos/ArquivoRemessaItemInteface.java new file mode 100644 index 000000000..3da7f37cf --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/ArquivoRemessaItemInteface.java @@ -0,0 +1,23 @@ +package com.rjconsultores.ventaboletos; + +import java.util.List; + +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessa; + +public interface ArquivoRemessaItemInteface { + + public void setCabecalhoRemessa(CabecalhoRemessa cabecalhoRemessa); + + public void addTitulo(DetalheObrigatorio titulo); + + public void setRodapeRemessa(RodapeRemessa rodapeRemessa); + + public CabecalhoRemessa getCabecalhoRemessa(); + + public List getTitulos(); + + public RodapeRemessa getRodapeRemessa(); + +} \ No newline at end of file diff --git a/src/com/rjconsultores/ventaboletos/ArquivoRetorno.java b/src/com/rjconsultores/ventaboletos/ArquivoRetorno.java new file mode 100644 index 000000000..74f1315cc --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/ArquivoRetorno.java @@ -0,0 +1,26 @@ +package com.rjconsultores.ventaboletos; + +import java.util.ArrayList; +import java.util.List; + +public class ArquivoRetorno { + + private List itens; + + public List getItens() { + return itens; + } + + public void setItens(List itens) { + this.itens = itens; + } + + public void addItem(ArquivoRetornoItemInteface item) { + + if(this.itens == null){ + this.itens = new ArrayList(); + } + + this.itens.add(item); + } +} diff --git a/src/com/rjconsultores/ventaboletos/ArquivoRetornoItem.java b/src/com/rjconsultores/ventaboletos/ArquivoRetornoItem.java new file mode 100644 index 000000000..3853887f6 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/ArquivoRetornoItem.java @@ -0,0 +1,48 @@ +package com.rjconsultores.ventaboletos; + +import java.util.ArrayList; +import java.util.List; + +import com.rjconsultores.ventaboletos.blocos.CabecalhoRetorno; +import com.rjconsultores.ventaboletos.blocos.DetalheRetorno; +import com.rjconsultores.ventaboletos.blocos.RodapeRetorno; + +public class ArquivoRetornoItem implements ArquivoRetornoItemInteface, Cloneable { + + + private CabecalhoRetorno cabecalhoRetorno; + protected List titulos; + protected RodapeRetorno rodapeRetorno; + + + @Override + public void setCabecalhoRetorno(CabecalhoRetorno cabecalhoRetorno) { + this.cabecalhoRetorno = cabecalhoRetorno; + + } + @Override + public void addTitulo(DetalheRetorno titulo) { + if(this.titulos == null){ + this.titulos = new ArrayList(); + } + this.titulos.add(titulo); + + } + @Override + public void setRodapeRetorno(RodapeRetorno rodapeRetorno) { + this.rodapeRetorno = rodapeRetorno; + } + + @Override + public CabecalhoRetorno getCabecalhoRetorno() { + return cabecalhoRetorno; + } + @Override + public List getTitulos() { + return titulos; + } + @Override + public RodapeRetorno getRodapeRetorno() { + return rodapeRetorno; + } +} diff --git a/src/com/rjconsultores/ventaboletos/ArquivoRetornoItemInteface.java b/src/com/rjconsultores/ventaboletos/ArquivoRetornoItemInteface.java new file mode 100644 index 000000000..5f8c1e25b --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/ArquivoRetornoItemInteface.java @@ -0,0 +1,23 @@ +package com.rjconsultores.ventaboletos; + +import java.util.List; + +import com.rjconsultores.ventaboletos.blocos.CabecalhoRetorno; +import com.rjconsultores.ventaboletos.blocos.DetalheRetorno; +import com.rjconsultores.ventaboletos.blocos.RodapeRetorno; + +public interface ArquivoRetornoItemInteface { + + public void setCabecalhoRetorno(CabecalhoRetorno cabecalhoRetorno); + + public void addTitulo(DetalheRetorno titulo); + + public void setRodapeRetorno(RodapeRetorno rodapeRetorno); + + public CabecalhoRetorno getCabecalhoRetorno(); + + public List getTitulos(); + + public RodapeRetorno getRodapeRetorno(); + +} diff --git a/src/com/rjconsultores/ventaboletos/Main.java b/src/com/rjconsultores/ventaboletos/Main.java new file mode 100644 index 000000000..cf79f428d --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/Main.java @@ -0,0 +1,83 @@ +package com.rjconsultores.ventaboletos; + +import java.io.File; +import java.math.BigDecimal; +import java.util.Date; + +import com.rjconsultores.ventaboletos.blocos.RodapeRemessaPadrao; +import com.rjconsultores.ventaboletos.blocos.mercantil.ArquivoRemessaMercantil; +import com.rjconsultores.ventaboletos.blocos.mercantil.CabecalhoRemessaMercantil; +import com.rjconsultores.ventaboletos.blocos.mercantil.DetalheObrigatorioMercantil; +import com.rjconsultores.ventaboletos.enuns.BancoLayout; +import com.rjconsultores.ventaboletos.layouts.MercantilFlatFile; +import com.rjconsultores.ventaboletos.layouts.RemessaInterface; + +public class Main { + + public static void main(String[] args) { + + ArquivoRemessaItem arquivoRemessaItem = new ArquivoRemessaMercantil(); + + CabecalhoRemessaMercantil cabecalhoRemessa = new CabecalhoRemessaMercantil(); + + cabecalhoRemessa.setCodigoEmpresa("123456"); + cabecalhoRemessa.setAgenciaOrigem("0555"); + cabecalhoRemessa.setDataGravacao(new Date()); + cabecalhoRemessa.setCnpj(new Long("1452265658222")); + cabecalhoRemessa.setNumeroSequencialRemessa(1); + cabecalhoRemessa.setNumeroSequencialRegistro(9); + cabecalhoRemessa.setNomeEmpresa("RJ Consultores"); + + arquivoRemessaItem.setCabecalhoRemessa(cabecalhoRemessa); + + DetalheObrigatorioMercantil titulo = new DetalheObrigatorioMercantil(); + + titulo.setValorTitulo(new BigDecimal("4567.88")); + titulo.setVencimento(new Date()); + titulo.setCnpj(new Long("1452265658222")); + titulo.setCepPrefixo("32015"); + titulo.setCepSufixo("490"); + titulo.setNumeroDoDocumento("555666777"); + titulo.setAgenciaOrigem("0555"); + titulo.setEmissao( new Date() ); + + try { + arquivoRemessaItem.addTitulo(titulo.clone()); + arquivoRemessaItem.addTitulo(titulo.clone()); + arquivoRemessaItem.addTitulo(titulo.clone()); + arquivoRemessaItem.addTitulo(titulo.clone()); + arquivoRemessaItem.addTitulo(titulo.clone()); + arquivoRemessaItem.addTitulo(titulo.clone()); + arquivoRemessaItem.addTitulo(titulo.clone()); + } catch (CloneNotSupportedException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + + + RemessaInterface remessaInterface = new MercantilFlatFile(); + + RodapeRemessaPadrao rodapeRemessa = new RodapeRemessaPadrao(); + rodapeRemessa.setNumeroSequencialRegistro(9999); + + arquivoRemessaItem.setRodapeRemessa(rodapeRemessa); + + File arquivoRemessaFisico = new File("C:\\Fabio\\fabio.txt"); + + ArquivoRemessa arquivoRemessa = new ArquivoRemessa(BancoLayout.MERCANTIL_400_Envio); + + try { + arquivoRemessa.addItem(arquivoRemessaItem.clone()); + arquivoRemessa.addItem(arquivoRemessaItem.clone()); + } catch (CloneNotSupportedException e1) { + e1.printStackTrace(); + } + + try { + remessaInterface.gerarRemessa(arquivoRemessaFisico, arquivoRemessa); + } catch (Exception e) { + e.printStackTrace(); + } + } + +} diff --git a/src/com/rjconsultores/ventaboletos/blocos/CabecalhoRemessa.java b/src/com/rjconsultores/ventaboletos/blocos/CabecalhoRemessa.java new file mode 100644 index 000000000..7e57386e9 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/blocos/CabecalhoRemessa.java @@ -0,0 +1,10 @@ +package com.rjconsultores.ventaboletos.blocos; + +public interface CabecalhoRemessa { + + public Integer getNumeroSequencialRemessa(); + public void setNumeroSequencialRemessa(Integer numeroSequencialRemessa); + public Integer getNumeroSequencialRegistro(); + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro); + +} diff --git a/src/com/rjconsultores/ventaboletos/blocos/CabecalhoRetorno.java b/src/com/rjconsultores/ventaboletos/blocos/CabecalhoRetorno.java new file mode 100644 index 000000000..d53b8b8d2 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/blocos/CabecalhoRetorno.java @@ -0,0 +1,21 @@ +package com.rjconsultores.ventaboletos.blocos; + +public class CabecalhoRetorno { + + private String codEmpresa; + private String numeroDoAvisoBancario; + + public String getCodEmpresa() { + return codEmpresa; + } + public void setCodEmpresa(String codEmpresa) { + this.codEmpresa = codEmpresa; + } + public String getNumeroDoAvisoBancario() { + return numeroDoAvisoBancario; + } + public void setNumeroDoAvisoBancario(String numeroDoAvisoBancario) { + this.numeroDoAvisoBancario = numeroDoAvisoBancario; + } + +} diff --git a/src/com/rjconsultores/ventaboletos/blocos/DadosBoleto.java b/src/com/rjconsultores/ventaboletos/blocos/DadosBoleto.java new file mode 100644 index 000000000..1f70353fc --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/blocos/DadosBoleto.java @@ -0,0 +1,78 @@ +package com.rjconsultores.ventaboletos.blocos; + +public class DadosBoleto { + + private String mensagem1; + private String mensagem2; + private String mensagem3; + private String mensagem4; + private Integer carteira; + private Integer agencia; + private Integer contaCorrente; + private String digitoCC; + private String nossoNumero; + private String digitoNN; + + public String getMensagem1() { + return mensagem1; + } + public void setMensagem1(String mensagem1) { + this.mensagem1 = mensagem1; + } + public String getMensagem2() { + return mensagem2; + } + public void setMensagem2(String mensagem2) { + this.mensagem2 = mensagem2; + } + public String getMensagem3() { + return mensagem3; + } + public void setMensagem3(String mensagem3) { + this.mensagem3 = mensagem3; + } + public String getMensagem4() { + return mensagem4; + } + public void setMensagem4(String mensagem4) { + this.mensagem4 = mensagem4; + } + public Integer getCarteira() { + return carteira; + } + public void setCarteira(Integer carteira) { + this.carteira = carteira; + } + public Integer getAgencia() { + return agencia; + } + public void setAgencia(Integer agencia) { + this.agencia = agencia; + } + public Integer getContaCorrente() { + return contaCorrente; + } + public void setContaCorrente(Integer contaCorrente) { + this.contaCorrente = contaCorrente; + } + public String getDigitoCC() { + return digitoCC; + } + public void setDigitoCC(String digitoCC) { + this.digitoCC = digitoCC; + } + public String getNossoNumero() { + return nossoNumero; + } + public void setNossoNumero(String nossoNumero) { + this.nossoNumero = nossoNumero; + } + public String getDigitoNN() { + return digitoNN; + } + public void setDigitoNN(String digitoNN) { + this.digitoNN = digitoNN; + } + + +} diff --git a/src/com/rjconsultores/ventaboletos/blocos/DetalheObrigatorio.java b/src/com/rjconsultores/ventaboletos/blocos/DetalheObrigatorio.java new file mode 100644 index 000000000..1d0b9c711 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/blocos/DetalheObrigatorio.java @@ -0,0 +1,9 @@ +package com.rjconsultores.ventaboletos.blocos; + +public interface DetalheObrigatorio { + + public void setIdBoletoFechamento(Integer id); + public Integer getIdBoletoFechamento(); + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro); + +} diff --git a/src/com/rjconsultores/ventaboletos/blocos/DetalheRetorno.java b/src/com/rjconsultores/ventaboletos/blocos/DetalheRetorno.java new file mode 100644 index 000000000..3ee109846 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/blocos/DetalheRetorno.java @@ -0,0 +1,39 @@ +package com.rjconsultores.ventaboletos.blocos; + +import java.util.ArrayList; +import java.util.List; + +import com.rjconsultores.ventaboletos.enuns.MotivoOcorrenciaBradesco; +import com.rjconsultores.ventaboletos.enuns.OcorrenciaBradesco; + +public class DetalheRetorno { + + private String numeroControleDoParticipante; + private OcorrenciaBradesco ocorrencia; + private List motivoOcorrencias; + + public String getNumeroControleDoParticipante() { + return numeroControleDoParticipante; + } + public void setNumeroControleDoParticipante(String numeroControleDoParticipante) { + this.numeroControleDoParticipante = numeroControleDoParticipante; + } + public OcorrenciaBradesco getOcorrencia() { + return ocorrencia; + } + public void setOcorrencia(OcorrenciaBradesco ocorrencia) { + this.ocorrencia = ocorrencia; + } + public List getMotivoOcorrencias() { + return motivoOcorrencias; + } + public void addMotivoOcorrencia(MotivoOcorrenciaBradesco motivoOcorrencias) { + + if(this.motivoOcorrencias == null){ + this.motivoOcorrencias = new ArrayList(); + } + + this.motivoOcorrencias.add(motivoOcorrencias); + } + +} diff --git a/src/com/rjconsultores/ventaboletos/blocos/RateioDeCredito.java b/src/com/rjconsultores/ventaboletos/blocos/RateioDeCredito.java new file mode 100644 index 000000000..cb8695bf9 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/blocos/RateioDeCredito.java @@ -0,0 +1,20 @@ +package com.rjconsultores.ventaboletos.blocos; + +public class RateioDeCredito { + + private String identificacaoEmpresa; + private String nossoNumero; + + public String getIdentificacaoEmpresa() { + return identificacaoEmpresa; + } + public void setIdentificacaoEmpresa(String identificacaoEmpresa) { + this.identificacaoEmpresa = identificacaoEmpresa; + } + public String getNossoNumero() { + return nossoNumero; + } + public void setNossoNumero(String nossoNumero) { + this.nossoNumero = nossoNumero; + } +} diff --git a/src/com/rjconsultores/ventaboletos/blocos/RodapeRemessa.java b/src/com/rjconsultores/ventaboletos/blocos/RodapeRemessa.java new file mode 100644 index 000000000..97dff3bc0 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/blocos/RodapeRemessa.java @@ -0,0 +1,9 @@ +package com.rjconsultores.ventaboletos.blocos; + +public interface RodapeRemessa { + + Integer getNumeroSequencialRegistro(); + + void setNumeroSequencialRegistro(Integer numeroSequencialRegistro); + +} \ No newline at end of file diff --git a/src/com/rjconsultores/ventaboletos/blocos/RodapeRemessaPadrao.java b/src/com/rjconsultores/ventaboletos/blocos/RodapeRemessaPadrao.java new file mode 100644 index 000000000..7d001edf9 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/blocos/RodapeRemessaPadrao.java @@ -0,0 +1,23 @@ +package com.rjconsultores.ventaboletos.blocos; + +public class RodapeRemessaPadrao implements RodapeRemessa { + + private Integer numeroSequencialRegistro; + + /* (non-Javadoc) + * @see com.rjconsultores.ventaboletos.blocos.RodapeRemessaIn#getNumeroSequencialRegistro() + */ + @Override + public Integer getNumeroSequencialRegistro() { + return numeroSequencialRegistro; + } + + /* (non-Javadoc) + * @see com.rjconsultores.ventaboletos.blocos.RodapeRemessaIn#setNumeroSequencialRegistro(java.lang.Integer) + */ + @Override + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro) { + this.numeroSequencialRegistro = numeroSequencialRegistro; + } + +} diff --git a/src/com/rjconsultores/ventaboletos/blocos/RodapeRetorno.java b/src/com/rjconsultores/ventaboletos/blocos/RodapeRetorno.java new file mode 100644 index 000000000..10aec6b95 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/blocos/RodapeRetorno.java @@ -0,0 +1,5 @@ +package com.rjconsultores.ventaboletos.blocos; + +public class RodapeRetorno { + +} diff --git a/src/com/rjconsultores/ventaboletos/blocos/bancobrasil/ArquivoRemessaBancoBrasil.java b/src/com/rjconsultores/ventaboletos/blocos/bancobrasil/ArquivoRemessaBancoBrasil.java new file mode 100644 index 000000000..76bb72e6f --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/blocos/bancobrasil/ArquivoRemessaBancoBrasil.java @@ -0,0 +1,107 @@ +package com.rjconsultores.ventaboletos.blocos.bancobrasil; + +import java.util.ArrayList; + +import com.rjconsultores.ventaboletos.ArquivoRemessaItem; +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessa; + +public class ArquivoRemessaBancoBrasil extends ArquivoRemessaItem { + + private int itemCount = 0; + private int loteCount = 0; + private int qteRegistroArq = 0; + private int qteRegistroLote = 0; + + @Override + public void setCabecalhoRemessa(CabecalhoRemessa cabecalhoRemessa) { + + if(cabecalhoRemessa instanceof CabecalhoRemessaBancoBrasil){ + super.setCabecalhoRemessa(cabecalhoRemessa); + + qteRegistroArq++; + if(((CabecalhoRemessaBancoBrasil) cabecalhoRemessa).getCabecalhoLoteRemessaBancoBrasil() != null){ + qteRegistroArq++; + qteRegistroLote++; + loteCount++; + }else{ + throw new RuntimeException("Falta cabecalho tipo: " + CabecalhoRemessaBancoBrasil.class.getName()); + } + }else{ + throw new ClassCastException("Somente cabecalho tipo: " + CabecalhoRemessaBancoBrasil.class.getName()); + } + } + + @Override + public void addTitulo(DetalheObrigatorio titulo) { + if(this.titulos == null){ + this.titulos = new ArrayList(); + this.itemCount = 0; + } + + if(titulo instanceof DetalheObrigatorioDadosTitulosBancoBrasil){ + + titulo.setNumeroSequencialRegistro(++itemCount); + ((DetalheObrigatorioDadosTitulosBancoBrasil) titulo).setLoteServico(loteCount); + qteRegistroArq++; + qteRegistroLote++; + if(((DetalheObrigatorioDadosTitulosBancoBrasil) titulo).getDetalheObrigatorioDadosPagadorBancoBrasil() != null){ + ((DetalheObrigatorioDadosTitulosBancoBrasil) titulo).getDetalheObrigatorioDadosPagadorBancoBrasil().setNumeroSequencialRegistro(++itemCount); + ((DetalheObrigatorioDadosTitulosBancoBrasil) titulo).getDetalheObrigatorioDadosPagadorBancoBrasil().setLoteServico(loteCount); + qteRegistroArq++; + qteRegistroLote++; + } + + this.titulos.add(titulo); + }else{ + throw new ClassCastException("Somente cabecalho tipo: " + DetalheObrigatorioDadosTitulosBancoBrasil.class.getName()); + } + } + + @Override + public RodapeRemessa getRodapeRemessa() { + + ((RodapeRemessaBancoBrasil) rodapeRemessa).setQtdLotes(loteCount); + ((RodapeRemessaBancoBrasil)rodapeRemessa).setQtdArquivos(qteRegistroArq); + + + if(((RodapeRemessaBancoBrasil)rodapeRemessa).getRodapeRemessaLoteBancoBrasil() != null){ + ((RodapeRemessaBancoBrasil)rodapeRemessa).getRodapeRemessaLoteBancoBrasil().setNumeroSequencialRegistro(qteRegistroLote);; + + } + + return this.rodapeRemessa; + } + + @Override + public void setRodapeRemessa(RodapeRemessa rodapeRemessa) { + + if(rodapeRemessa == null){ + throw new NullPointerException(RodapeRemessa.class.getName() + " não pode ser null..."); + } + + if(!(rodapeRemessa instanceof RodapeRemessaBancoBrasil)){ + throw new ClassCastException("Somente rodapé tipo: " + CabecalhoRemessaBancoBrasil.class.getName()); + }else{ + if(((RodapeRemessaBancoBrasil) rodapeRemessa).getRodapeRemessaLoteBancoBrasil() == null){ + throw new RuntimeException("Falta rodapé tipo: " + RodapeRemessaLoteBancoBrasil.class.getName()); + } + + if(this.rodapeRemessa == null){ + qteRegistroArq++; //TrailerLote + qteRegistroArq++;//TrailerArquivo + qteRegistroLote++; + } + + ((RodapeRemessaBancoBrasil) rodapeRemessa).getRodapeRemessaLoteBancoBrasil().setNumeroSequencialRegistro(qteRegistroLote); + ((RodapeRemessaBancoBrasil) rodapeRemessa).getRodapeRemessaLoteBancoBrasil().setLoteServico(loteCount); + ((RodapeRemessaBancoBrasil) rodapeRemessa).setQtdArquivos(qteRegistroArq); + ((RodapeRemessaBancoBrasil) rodapeRemessa).setQtdLotes(loteCount); + //((RodapeRemessaBancoBrasil) rodapeRemessa).setLoteServico(loteCount); + } + + this.rodapeRemessa = rodapeRemessa; + } + +} diff --git a/src/com/rjconsultores/ventaboletos/blocos/bancobrasil/CabecalhoLoteRemessaBancoBrasil.java b/src/com/rjconsultores/ventaboletos/blocos/bancobrasil/CabecalhoLoteRemessaBancoBrasil.java new file mode 100644 index 000000000..cbfeb0557 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/blocos/bancobrasil/CabecalhoLoteRemessaBancoBrasil.java @@ -0,0 +1,162 @@ +package com.rjconsultores.ventaboletos.blocos.bancobrasil; + +import java.util.Date; + +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; + +public class CabecalhoLoteRemessaBancoBrasil implements CabecalhoRemessa{ + + private Integer codComp; + private Integer loteServico; + private Integer cpfCnpj; + private String numCpfCnpj; + private String numConvenio; + private String numCarteira; + private String numVarCarteira; + private String remessaTeste; + private String numAgencia; + private String digAgencia; + private String numContaCorrente; + private String digContaCorrente; + private String digAgenciaConta; + private String nomeEmpresa; + private String mensagem1; + private String mensagem2; + private Integer numeroRemessa; + private Date dataGeracao; + private Date dataCredito; + + public Integer getCpfCnpj() { + return cpfCnpj; + } + public void setCpfCnpj(Integer cpfCnpj) { + this.cpfCnpj = cpfCnpj; + } + public String getNumCpfCnpj() { + return numCpfCnpj; + } + public void setNumCpfCnpj(String numCpfCnpj) { + this.numCpfCnpj = numCpfCnpj; + } + public String getNumConvenio() { + return numConvenio; + } + public void setNumConvenio(String numConvenio) { + this.numConvenio = numConvenio; + } + public String getNumCarteira() { + return numCarteira; + } + public void setNumCarteira(String numCarteira) { + this.numCarteira = numCarteira; + } + public String getNumVarCarteira() { + return numVarCarteira; + } + public void setNumVarCarteira(String numVarCarteira) { + this.numVarCarteira = numVarCarteira; + } + public String getRemessaTesteID() { + return remessaTeste; + } + public void setRemessaTesteID(String remessaTeste) { + this.remessaTeste = remessaTeste; + } + public String getNumAgencia() { + return numAgencia; + } + public void setNumAgencia(String numAgencia) { + this.numAgencia = numAgencia; + } + public String getDigAgencia() { + return digAgencia; + } + public void setDigAgencia(String digAgencia) { + this.digAgencia = digAgencia; + } + public String getNumContaCorrente() { + return numContaCorrente; + } + public void setNumContaCorrente(String numContaCorrente) { + this.numContaCorrente = numContaCorrente; + } + public String getDigContaCorrente() { + return digContaCorrente; + } + public void setDigContaCorrente(String digContaCorrente) { + this.digContaCorrente = digContaCorrente; + } + public String getDigAgenciaConta() { + return digAgenciaConta; + } + public void setDigAgenciaConta(String digAgenciaConta) { + this.digAgenciaConta = digAgenciaConta; + } + public String getNomeEmpresa() { + return nomeEmpresa; + } + public void setNomeEmpresa(String nomeEmpresa) { + this.nomeEmpresa = nomeEmpresa; + } + public String getMensagem1() { + return mensagem1; + } + public void setMensagem1(String mensagem1) { + this.mensagem1 = mensagem1; + } + public String getMensagem2() { + return mensagem2; + } + public void setMensagem2(String mensagem2) { + this.mensagem2 = mensagem2; + } + public Integer getNumeroRemessa() { + return numeroRemessa; + } + public void setNumeroRemessa(Integer numeroRemessa) { + this.numeroRemessa = numeroRemessa; + } + public Date getDataGeracao() { + return dataGeracao; + } + public void setDataGeracao(Date dataGeracao) { + this.dataGeracao = dataGeracao; + } + public Date getDataCredito() { + return dataCredito; + } + public void setDataCredito(Date dataCredito) { + this.dataCredito = dataCredito; + } + public Integer getCodComp() { + return codComp; + } + public void setCodComp(Integer codComp) { + this.codComp = codComp; + } + public Integer getLoteServico() { + return loteServico; + } + public void setLoteServico(Integer loteServico) { + this.loteServico = loteServico; + } + @Override + public Integer getNumeroSequencialRemessa() { + return numeroRemessa; + } + @Override + public void setNumeroSequencialRemessa(Integer numeroSequencialRemessa) { + numeroRemessa = numeroSequencialRemessa; + + } + @Override + public Integer getNumeroSequencialRegistro() { + // TODO Auto-generated method stub + return null; + } + @Override + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro) { + // TODO Auto-generated method stub + + } +} diff --git a/src/com/rjconsultores/ventaboletos/blocos/bancobrasil/CabecalhoRemessaBancoBrasil.java b/src/com/rjconsultores/ventaboletos/blocos/bancobrasil/CabecalhoRemessaBancoBrasil.java new file mode 100644 index 000000000..7f0d69fbc --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/blocos/bancobrasil/CabecalhoRemessaBancoBrasil.java @@ -0,0 +1,177 @@ +package com.rjconsultores.ventaboletos.blocos.bancobrasil; + +import java.util.Date; + +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; + +public class CabecalhoRemessaBancoBrasil implements CabecalhoRemessa { + + private Integer loteServico; + private Integer cpfCnpj; + private String numCpfCnpj; + private String numConvenio; + private String numCarteira; + private String numVarCarteira; + private String numAgencia; + private String digAgencia; + private String numContaCorrente; + private String digContaCorrente; + private String digAgenciaConta; + private String nomeEmpresa; + private Date dataGeracao; + private Integer horaGeracao; + private Integer numRemessa; + private String densidadeArquivo; + private Integer numeroSequencialRegistro; + + private CabecalhoLoteRemessaBancoBrasil cabecalhoLoteRemessaBancoBrasil; + + @Override + public Integer getNumeroSequencialRemessa() { + return numRemessa; + } + + @Override + public void setNumeroSequencialRemessa(Integer numeroSequencialRemessa) { + numRemessa = numeroSequencialRemessa; + } + + @Override + public Integer getNumeroSequencialRegistro() { + return numeroSequencialRegistro; + } + + @Override + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro) { + this.numeroSequencialRegistro = numeroSequencialRegistro; + + } + + public Integer getCpfCnpj() { + return cpfCnpj; + } + + public void setCpfCnpj(Integer cpfCnpj) { + this.cpfCnpj = cpfCnpj; + } + + public String getNumCpfCnpj() { + return numCpfCnpj; + } + + public void setNumCpfCnpj(String numCpfCnpj) { + this.numCpfCnpj = numCpfCnpj; + } + + public String getNumConvenio() { + return numConvenio; + } + + public void setNumConvenio(String numConvenio) { + this.numConvenio = numConvenio; + } + + public String getNumCarteira() { + return numCarteira; + } + + public void setNumCarteira(String numCarteira) { + this.numCarteira = numCarteira; + } + + public String getNumVarCarteira() { + return numVarCarteira; + } + + public void setNumVarCarteira(String numVarCarteira) { + this.numVarCarteira = numVarCarteira; + } + + public String getNumAgencia() { + return numAgencia; + } + + public void setNumAgencia(String numAgencia) { + this.numAgencia = numAgencia; + } + + public String getDigAgencia() { + return digAgencia; + } + + public void setDigAgencia(String digAgencia) { + this.digAgencia = digAgencia; + } + + public String getNumContaCorrente() { + return numContaCorrente; + } + + public void setNumContaCorrente(String numContaCorrente) { + this.numContaCorrente = numContaCorrente; + } + + public String getDigContaCorrente() { + return digContaCorrente; + } + + public void setDigContaCorrente(String digContaCorrente) { + this.digContaCorrente = digContaCorrente; + } + + public String getDigAgenciaConta() { + return digAgenciaConta; + } + + public void setDigAgenciaConta(String digAgenciaConta) { + this.digAgenciaConta = digAgenciaConta; + } + + public String getNomeEmpresa() { + return nomeEmpresa; + } + + public void setNomeEmpresa(String nomeEmpresa) { + this.nomeEmpresa = nomeEmpresa; + } + + public Date getDataGeracao() { + return dataGeracao; + } + + public void setDataGeracao(Date dataGeracao) { + this.dataGeracao = dataGeracao; + } + + public Integer getHoraGeracao() { + return horaGeracao; + } + + public void setHoraGeracao(Integer horaGeracao) { + this.horaGeracao = horaGeracao; + } + + public String getDensidadeArquivo() { + return densidadeArquivo; + } + + public void setDensidadeArquivo(String densidadeArquivo) { + this.densidadeArquivo = densidadeArquivo; + } + + public CabecalhoLoteRemessaBancoBrasil getCabecalhoLoteRemessaBancoBrasil() { + return cabecalhoLoteRemessaBancoBrasil; + } + + public void setCabecalhoLoteRemessaBancoBrasil(CabecalhoLoteRemessaBancoBrasil cabecalhoLoteRemessaBancoBrasil) { + this.cabecalhoLoteRemessaBancoBrasil = cabecalhoLoteRemessaBancoBrasil; + } + + public Integer getLoteServico() { + return loteServico; + } + + public void setLoteServico(Integer loteServico) { + this.loteServico = loteServico; + } +} diff --git a/src/com/rjconsultores/ventaboletos/blocos/bancobrasil/DetalheObrigatorioDadosPagadorBancoBrasil.java b/src/com/rjconsultores/ventaboletos/blocos/bancobrasil/DetalheObrigatorioDadosPagadorBancoBrasil.java new file mode 100644 index 000000000..4aaacf60d --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/blocos/bancobrasil/DetalheObrigatorioDadosPagadorBancoBrasil.java @@ -0,0 +1,173 @@ +package com.rjconsultores.ventaboletos.blocos.bancobrasil; + +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; + +public class DetalheObrigatorioDadosPagadorBancoBrasil implements DetalheObrigatorio, Cloneable{ + + + private Integer loteServico; + private Integer codigoRemessa; + private Integer numSeqRegistro; + private Integer tipoInscricaoSacado; + private String numeroInscricaoSacado; + private String nomeSacado; + private String logradouroSacado; + private String bairroSacado; + private Integer cepSacado; + private Integer sufixoCep; + private String cidade; + private String estado; + private Integer tipoSacadorAvalista; + private Integer sacadorAvalista; + private String nomeSacadorAvalista; + private Integer codBancoCorresp; + private String nossoNumeroNoBancoCorresp; + private Integer idBoletoFechamento; + + @Override + public void setIdBoletoFechamento(Integer id) { + idBoletoFechamento = id; + } + + @Override + public Integer getIdBoletoFechamento() { + return idBoletoFechamento; + } + + @Override + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro) { + numSeqRegistro = numeroSequencialRegistro; + } + + public Integer getNumeroSequencialRegistro() { + return numSeqRegistro; + } + + public Integer getTipoInscricaoSacado() { + return tipoInscricaoSacado; + } + + public void setTipoInscricaoSacado(Integer tipoInscricaoSacado) { + this.tipoInscricaoSacado = tipoInscricaoSacado; + } + + public String getNumeroInscricaoSacado() { + return numeroInscricaoSacado; + } + + public void setNumeroInscricaoSacado(String numeroInscricaoSacado) { + this.numeroInscricaoSacado = numeroInscricaoSacado; + } + + public String getNomeSacado() { + return nomeSacado; + } + + public void setNomeSacado(String nomeSacado) { + this.nomeSacado = nomeSacado; + } + + public String getLogradouroSacado() { + return logradouroSacado; + } + + public void setLogradouroSacado(String logradouroSacado) { + this.logradouroSacado = logradouroSacado; + } + + public String getBairroSacado() { + return bairroSacado; + } + + public void setBairroSacado(String bairroSacado) { + this.bairroSacado = bairroSacado; + } + + public Integer getCepSacado() { + return cepSacado; + } + + public void setCepSacado(Integer cepSacado) { + this.cepSacado = cepSacado; + } + + public Integer getSufixoCep() { + return sufixoCep; + } + + public void setSufixoCep(Integer sufixoCep) { + this.sufixoCep = sufixoCep; + } + + public String getCidade() { + return cidade; + } + + public void setCidade(String cidade) { + this.cidade = cidade; + } + + public String getEstado() { + return estado; + } + + public void setEstado(String estado) { + this.estado = estado; + } + + public Integer getTipoSacadorAvalista() { + return tipoSacadorAvalista; + } + + public void setTipoSacadorAvalista(Integer tipoSacadorAvalista) { + this.tipoSacadorAvalista = tipoSacadorAvalista; + } + + public Integer getSacadorAvalista() { + return sacadorAvalista; + } + + public void setSacadorAvalista(Integer sacadorAvalista) { + this.sacadorAvalista = sacadorAvalista; + } + + public String getNomeSacadorAvalista() { + return nomeSacadorAvalista; + } + + public void setNomeSacadorAvalista(String nomeSacadorAvalista) { + this.nomeSacadorAvalista = nomeSacadorAvalista; + } + + public Integer getCodBancoCorresp() { + return codBancoCorresp; + } + + public void setCodBancoCorresp(Integer codBancoCorresp) { + this.codBancoCorresp = codBancoCorresp; + } + + public String getNossoNumeroNoBancoCorresp() { + return nossoNumeroNoBancoCorresp; + } + + public void setNossoNumeroNoBancoCorresp(String nossoNumeroNoBancoCorresp) { + this.nossoNumeroNoBancoCorresp = nossoNumeroNoBancoCorresp; + } + + public Integer getLoteServico() { + return loteServico; + } + + public void setLoteServico(Integer loteServico) { + this.loteServico = loteServico; + } + + public Integer getCodigoRemessa() { + return codigoRemessa; + } + + public void setCodigoRemessa(Integer codigoRemessa) { + this.codigoRemessa = codigoRemessa; + } +} diff --git a/src/com/rjconsultores/ventaboletos/blocos/bancobrasil/DetalheObrigatorioDadosTitulosBancoBrasil.java b/src/com/rjconsultores/ventaboletos/blocos/bancobrasil/DetalheObrigatorioDadosTitulosBancoBrasil.java new file mode 100644 index 000000000..445aa144c --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/blocos/bancobrasil/DetalheObrigatorioDadosTitulosBancoBrasil.java @@ -0,0 +1,350 @@ +package com.rjconsultores.ventaboletos.blocos.bancobrasil; + +import java.math.BigDecimal; +import java.util.Date; + +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.enuns.AceiteBB; + +public class DetalheObrigatorioDadosTitulosBancoBrasil implements DetalheObrigatorio, Cloneable { + + private Integer loteServico; + private Integer numSeqRegistro; + private String numAgencia; + private String digAgencia; + private String numContaCorrente; + private String digContaCorrente; + private String digAgenciaConta; + private String nossoNumeroBB; + private Integer codCarteira; + private String formaCadTituloBanco; + private String tipoDocumento; + private String identEmissaoBloqueto; + private String identDistribuicao; + private String numeroDoDocumento; + private Date vencimento; + private BigDecimal valor; + private String agenciaCobradora; + private String digAgenciaCobradora; + private AceiteBB aceite; + private Date emissao; + private Integer codMora; + private Date dataMora; + private BigDecimal jurosDeMora; + private Integer codigoDesconto; + private Date dataDesconto; + private BigDecimal descontoConcedido; + private BigDecimal IOF_Devido; + private BigDecimal abatimentoConcedido; + private String nossoNumeroEmp; + private Integer codigoProtesto; + private Integer diasProtesto; + private Integer codigoBaixa; + private Integer diasBaixa; + private Integer numeroContrato; + private String usoExclusivo; + private Integer idBoletoFechamento; + + private DetalheObrigatorioDadosPagadorBancoBrasil detalheObrigatorioDadosPagadorBancoBrasil; + + + @Override + public void setIdBoletoFechamento(Integer id) { + idBoletoFechamento = id; + } + + @Override + public Integer getIdBoletoFechamento() { + return idBoletoFechamento; + } + + @Override + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro) { + numSeqRegistro = numeroSequencialRegistro; + } + + public Integer getNumeroSequencialRegistro(){ + return numSeqRegistro; + } + + public String getNumAgencia() { + return numAgencia; + } + + public void setNumAgencia(String numAgencia) { + this.numAgencia = numAgencia; + } + + public String getDigAgencia() { + return digAgencia; + } + + public void setDigAgencia(String digAgencia) { + this.digAgencia = digAgencia; + } + + public String getNumContaCorrente() { + return numContaCorrente; + } + + public void setNumContaCorrente(String numContaCorrente) { + this.numContaCorrente = numContaCorrente; + } + + public String getDigContaCorrente() { + return digContaCorrente; + } + + public void setDigContaCorrente(String digContaCorrente) { + this.digContaCorrente = digContaCorrente; + } + + public String getDigAgenciaConta() { + return digAgenciaConta; + } + + public void setDigAgenciaConta(String digAgenciaConta) { + this.digAgenciaConta = digAgenciaConta; + } + + public String getNossoNumeroBB() { + return nossoNumeroBB; + } + + public void setNossoNumeroBB(String nossoNumeroBB) { + this.nossoNumeroBB = nossoNumeroBB; + } + + public Integer getCodCarteira() { + return codCarteira; + } + + public void setCodCarteira(Integer codCarteira) { + this.codCarteira = codCarteira; + } + + public String getFormaCadTituloBanco() { + return formaCadTituloBanco; + } + + public void setFormaCadTituloBanco(String formaCadTituloBanco) { + this.formaCadTituloBanco = formaCadTituloBanco; + } + + public String getTipoDocumento() { + return tipoDocumento; + } + + public void setTipoDocumento(String tipoDocumento) { + this.tipoDocumento = tipoDocumento; + } + + public String getIdentEmissaoBloqueto() { + return identEmissaoBloqueto; + } + + public void setIdentEmissaoBloqueto(String identEmissaoBloqueto) { + this.identEmissaoBloqueto = identEmissaoBloqueto; + } + + public String getIdentDistribuicao() { + return identDistribuicao; + } + + public void setIdentDistribuicao(String identDistribuicao) { + this.identDistribuicao = identDistribuicao; + } + + public String getNumeroDoDocumento() { + return numeroDoDocumento; + } + + public void setNumeroDoDocumento(String numeroDoDocumento) { + this.numeroDoDocumento = numeroDoDocumento; + } + + public Date getVencimento() { + return vencimento; + } + + public void setVencimento(Date vencimento) { + this.vencimento = vencimento; + } + + public BigDecimal getValor() { + return valor; + } + + public void setValor(BigDecimal valor) { + this.valor = valor; + } + + public String getAgenciaCobradora() { + return agenciaCobradora; + } + + public void setAgenciaCobradora(String agenciaCobradora) { + this.agenciaCobradora = agenciaCobradora; + } + + public String getDigAgenciaCobradora() { + return digAgenciaCobradora; + } + + public void setDigAgenciaCobradora(String digAgenciaCobradora) { + this.digAgenciaCobradora = digAgenciaCobradora; + } + + public AceiteBB getAceite() { + return aceite; + } + + public void setAceite(AceiteBB aceite) { + this.aceite = aceite; + } + + public Date getEmissao() { + return emissao; + } + + public void setEmissao(Date emissao) { + this.emissao = emissao; + } + + public Integer getCodMora() { + return codMora; + } + + public void setCodMora(Integer codMora) { + this.codMora = codMora; + } + + public Date getDataMora() { + return dataMora; + } + + public void setDataMora(Date dataMora) { + this.dataMora = dataMora; + } + + public BigDecimal getJurosDeMora() { + return jurosDeMora; + } + + public void setJurosDeMora(BigDecimal jurosDeMora) { + this.jurosDeMora = jurosDeMora; + } + + public Integer getCodigoDesconto() { + return codigoDesconto; + } + + public void setCodigoDesconto(Integer codigoDesconto) { + this.codigoDesconto = codigoDesconto; + } + + public Date getDataDesconto() { + return dataDesconto; + } + + public void setDataDesconto(Date dataDesconto) { + this.dataDesconto = dataDesconto; + } + + public BigDecimal getDescontoConcedido() { + return descontoConcedido; + } + + public void setDescontoConcedido(BigDecimal descontoConcedido) { + this.descontoConcedido = descontoConcedido; + } + + public BigDecimal getIOF_Devido() { + return IOF_Devido; + } + + public void setIOF_Devido(BigDecimal iOF_Devido) { + IOF_Devido = iOF_Devido; + } + + public BigDecimal getAbatimentoConcedido() { + return abatimentoConcedido; + } + + public void setAbatimentoConcedido(BigDecimal abatimentoConcedido) { + this.abatimentoConcedido = abatimentoConcedido; + } + + public String getNossoNumeroEmp() { + return nossoNumeroEmp; + } + + public void setNossoNumeroEmp(String nossoNumeroEmp) { + this.nossoNumeroEmp = nossoNumeroEmp; + } + + public Integer getCodigoProtesto() { + return codigoProtesto; + } + + public void setCodigoProtesto(Integer codigoProtesto) { + this.codigoProtesto = codigoProtesto; + } + + public Integer getDiasProtesto() { + return diasProtesto; + } + + public void setDiasProtesto(Integer diasProtesto) { + this.diasProtesto = diasProtesto; + } + + public Integer getCodigoBaixa() { + return codigoBaixa; + } + + public void setCodigoBaixa(Integer codigoBaixa) { + this.codigoBaixa = codigoBaixa; + } + + public Integer getDiasBaixa() { + return diasBaixa; + } + + public void setDiasBaixa(Integer diasBaixa) { + this.diasBaixa = diasBaixa; + } + + public Integer getNumeroContrato() { + return numeroContrato; + } + + public void setNumeroContrato(Integer numeroContrato) { + this.numeroContrato = numeroContrato; + } + + public String getUsoExclusivo() { + return usoExclusivo; + } + + public void setUsoExclusivo(String usoExclusivo) { + this.usoExclusivo = usoExclusivo; + } + + public DetalheObrigatorioDadosPagadorBancoBrasil getDetalheObrigatorioDadosPagadorBancoBrasil() { + return detalheObrigatorioDadosPagadorBancoBrasil; + } + + public void setDetalheObrigatorioDadosPagadorBancoBrasil( + DetalheObrigatorioDadosPagadorBancoBrasil detalheObrigatorioDadosPagadorBancoBrasil) { + this.detalheObrigatorioDadosPagadorBancoBrasil = detalheObrigatorioDadosPagadorBancoBrasil; + } + + public Integer getLoteServico() { + return loteServico; + } + + public void setLoteServico(Integer loteServico) { + this.loteServico = loteServico; + } +} diff --git a/src/com/rjconsultores/ventaboletos/blocos/bancobrasil/RodapeRemessaBancoBrasil.java b/src/com/rjconsultores/ventaboletos/blocos/bancobrasil/RodapeRemessaBancoBrasil.java new file mode 100644 index 000000000..a54ff23ed --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/blocos/bancobrasil/RodapeRemessaBancoBrasil.java @@ -0,0 +1,44 @@ +package com.rjconsultores.ventaboletos.blocos.bancobrasil; + +import com.rjconsultores.ventaboletos.blocos.RodapeRemessa; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessaPadrao; + +public class RodapeRemessaBancoBrasil extends RodapeRemessaPadrao implements RodapeRemessa { + + private Integer loteServico; + private Integer qtdLotes; + private Integer qtdArquivos; + private Integer qtdContas; + private RodapeRemessaLoteBancoBrasil rodapeRemessaLoteBancoBrasil; + + public Integer getQtdLotes() { + return qtdLotes; + } + public void setQtdLotes(Integer qtdLotes) { + this.qtdLotes = qtdLotes; + } + public Integer getQtdArquivos() { + return qtdArquivos; + } + public void setQtdArquivos(Integer qtdArquivos) { + this.qtdArquivos = qtdArquivos; + } + public Integer getQtdContas() { + return qtdContas; + } + public void setQtdContas(Integer qtdContas) { + this.qtdContas = qtdContas; + } + public RodapeRemessaLoteBancoBrasil getRodapeRemessaLoteBancoBrasil() { + return rodapeRemessaLoteBancoBrasil; + } + public void setRodapeRemessaLoteBancoBrasil(RodapeRemessaLoteBancoBrasil rodapeRemessaLoteBancoBrasil) { + this.rodapeRemessaLoteBancoBrasil = rodapeRemessaLoteBancoBrasil; + } + public Integer getLoteServico() { + return loteServico; + } + public void setLoteServico(Integer loteServico) { + this.loteServico = loteServico; + } +} diff --git a/src/com/rjconsultores/ventaboletos/blocos/bancobrasil/RodapeRemessaLoteBancoBrasil.java b/src/com/rjconsultores/ventaboletos/blocos/bancobrasil/RodapeRemessaLoteBancoBrasil.java new file mode 100644 index 000000000..42ea226bd --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/blocos/bancobrasil/RodapeRemessaLoteBancoBrasil.java @@ -0,0 +1,23 @@ +package com.rjconsultores.ventaboletos.blocos.bancobrasil; + +import com.rjconsultores.ventaboletos.blocos.RodapeRemessa; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessaPadrao; + +public class RodapeRemessaLoteBancoBrasil extends RodapeRemessaPadrao implements RodapeRemessa { + + + private Integer loteServico; + + public Integer getQtdRegistros(){ + return getNumeroSequencialRegistro(); + } + + public Integer getLoteServico() { + return loteServico; + } + + public void setLoteServico(Integer loteServico) { + this.loteServico = loteServico; + } + +} diff --git a/src/com/rjconsultores/ventaboletos/blocos/bradesco/ArquivoRemessaBradesco.java b/src/com/rjconsultores/ventaboletos/blocos/bradesco/ArquivoRemessaBradesco.java new file mode 100644 index 000000000..00b63d820 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/blocos/bradesco/ArquivoRemessaBradesco.java @@ -0,0 +1,45 @@ +package com.rjconsultores.ventaboletos.blocos.bradesco; + +import java.util.ArrayList; + +import com.rjconsultores.ventaboletos.ArquivoRemessaItem; +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessa; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessaPadrao; + +public class ArquivoRemessaBradesco extends ArquivoRemessaItem { + + @Override + public void setCabecalhoRemessa(CabecalhoRemessa cabecalhoRemessa) { + + if(cabecalhoRemessa instanceof CabecalhoRemessaBradesco){ + super.setCabecalhoRemessa(cabecalhoRemessa); + }else{ + throw new ClassCastException("Somente cabecalho tipo: " + CabecalhoRemessaBradesco.class.getName()); + } + } + + @Override + public void addTitulo(DetalheObrigatorio titulo){ + if(this.titulos == null){ + this.titulos = new ArrayList(); + } + + if(titulo instanceof DetalheObrigatorioBradesco){ + + titulo.setNumeroSequencialRegistro(titulos.size() + 2); + + this.titulos.add(titulo); + }else{ + throw new ClassCastException("Somente cabecalho tipo: " + DetalheObrigatorioBradesco.class.getName()); + } + } + + @Override + public RodapeRemessa getRodapeRemessa() { + this.rodapeRemessa = this.rodapeRemessa == null ? new RodapeRemessaPadrao() : this.rodapeRemessa; + rodapeRemessa.setNumeroSequencialRegistro(titulos.size() + 2); + return rodapeRemessa; + } +} diff --git a/src/com/rjconsultores/ventaboletos/blocos/bradesco/CabecalhoRemessaBradesco.java b/src/com/rjconsultores/ventaboletos/blocos/bradesco/CabecalhoRemessaBradesco.java new file mode 100644 index 000000000..ba4ae8053 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/blocos/bradesco/CabecalhoRemessaBradesco.java @@ -0,0 +1,95 @@ +package com.rjconsultores.ventaboletos.blocos.bradesco; + +import java.util.Date; + +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; + +public class CabecalhoRemessaBradesco implements CabecalhoRemessa { + + //private String identificacaoRemessa; + //private String literalRemessa; + //private String codigoServico; + //private String literalServico; + private String codigoEmpresa; + private String nomeEmpresa; + //private String codigoBanco; + //private String nomeBanco; + private Date dataGravacao; + //private String identificacaoSistema; + private Integer numeroSequencialRemessa; + private Integer numeroSequencialRegistro; + +// public String getIdentificacaoRemessa() { +// return identificacaoRemessa; +// } +// public void setIdentificacaoRemessa(String identificacaoRemessa) { +// this.identificacaoRemessa = identificacaoRemessa; +// } +// public String getLiteralRemessa() { +// return literalRemessa; +// } +// public void setLiteralRemessa(String literalRemessa) { +// this.literalRemessa = literalRemessa; +// } +// public String getCodigoServico() { +// return codigoServico; +// } +// public void setCodigoServico(String codigoServico) { +// this.codigoServico = codigoServico; +// } +// public String getLiteralServico() { +// return literalServico; +// } +// public void setLiteralServico(String literalServico) { +// this.literalServico = literalServico; +// } + public String getCodigoEmpresa() { + return codigoEmpresa; + } + public void setCodigoEmpresa(String codigoEmpresa) { + this.codigoEmpresa = codigoEmpresa; + } + public String getNomeEmpresa() { + return nomeEmpresa; + } + public void setNomeEmpresa(String nomeEmpresa) { + this.nomeEmpresa = nomeEmpresa; + } +// public String getCodigoBanco() { +// return codigoBanco; +// } +// public void setCodigoBanco(String codigoBanco) { +// this.codigoBanco = codigoBanco; +// } +// public String getNomeBanco() { +// return nomeBanco; +// } +// public void setNomeBanco(String nomeBanco) { +// this.nomeBanco = nomeBanco; +// } + public Date getDataGravacao() { + return dataGravacao; + } + public void setDataGravacao(Date dataGravacao) { + this.dataGravacao = dataGravacao; + } +// public String getIdentificacaoSistema() { +// return identificacaoSistema; +// } +// public void setIdentificacaoSistema(String identificacaoSistema) { +// this.identificacaoSistema = identificacaoSistema; +// } + public Integer getNumeroSequencialRemessa() { + return numeroSequencialRemessa; + } + public void setNumeroSequencialRemessa(Integer numeroSequencialRemessa) { + this.numeroSequencialRemessa = numeroSequencialRemessa; + } + public Integer getNumeroSequencialRegistro() { + return numeroSequencialRegistro; + } + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro) { + this.numeroSequencialRegistro = numeroSequencialRegistro; + } + +} diff --git a/src/com/rjconsultores/ventaboletos/blocos/bradesco/DetalheObrigatorioBradesco.java b/src/com/rjconsultores/ventaboletos/blocos/bradesco/DetalheObrigatorioBradesco.java new file mode 100644 index 000000000..2b586c17d --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/blocos/bradesco/DetalheObrigatorioBradesco.java @@ -0,0 +1,345 @@ +package com.rjconsultores.ventaboletos.blocos.bradesco; + +import java.math.BigDecimal; +import java.util.Date; + +import com.rjconsultores.ventaboletos.blocos.DadosBoleto; +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.blocos.RateioDeCredito; +import com.rjconsultores.ventaboletos.enuns.TipoInscricaoPagador; + +public class DetalheObrigatorioBradesco implements DetalheObrigatorio, Cloneable { + + private Integer idBoletoFechamento; + private String carteira; + private String agencia; + private String contacorrente; + private String dvConta; + private String numeroControleDoParticipante; + private String nossoNumeroComDigito; + private Integer QtdPagamento = 0; + private Integer codigoDeOcorrencia = 0; + private Date dataOcorrencia; + private String numeroDoDocumento; + private Date vencimento; + private BigDecimal valor; + private String especieDeTitulo; + private Date emissao; + private String instrucao1; + private String instrucao2; + private BigDecimal valorAtraso = BigDecimal.ZERO; + private Date dataLimiteDesconto; + private BigDecimal valorDesconto = BigDecimal.ZERO; + private BigDecimal valorIOF = BigDecimal.ZERO; + private BigDecimal valorAbatimentoConcedido = BigDecimal.ZERO; + private TipoInscricaoPagador tipoInscricaoPagador; + private String numeroInscricaoPagador; + private String nomePagador; + private String enderecoCompletoPagador; + private String mensagem1; + private String CEP_Prefixo; + private String CEP_Sufixo; + private String sacador_Avalista_Mensagem2; + private Integer numeroSequencialRegistro; + private BigDecimal percentualJuros; + private BigDecimal percentualMulta; + + private DadosBoleto dadosBoleto; + + private RateioDeCredito rateioDeCredito; + + @Override + public void setIdBoletoFechamento(Integer id) { + this.idBoletoFechamento = id; + + } + + @Override + public Integer getIdBoletoFechamento() { + return this.idBoletoFechamento; + } + + public String getCarteira() { + return carteira; + } + + public void setCarteira(String carteira) { + this.carteira = carteira; + } + + public String getAgencia() { + return agencia; + } + + public void setAgencia(String agencia) { + this.agencia = agencia; + } + + public String getContacorrente() { + return contacorrente; + } + + public void setContacorrente(String contacorrente) { + this.contacorrente = contacorrente; + } + + public String getDvConta() { + return dvConta; + } + + public void setDvConta(String dvConta) { + this.dvConta = dvConta; + } + + public String getNumeroControleDoParticipante() { + return numeroControleDoParticipante; + } + + public void setNumeroControleDoParticipante(String numeroControleDoParticipante) { + this.numeroControleDoParticipante = numeroControleDoParticipante; + } + + public String getNossoNumeroComDigito() { + return nossoNumeroComDigito; + } + + public void setNossoNumeroComDigito(String nossoNumeroComDigito) { + this.nossoNumeroComDigito = nossoNumeroComDigito; + } + + public Integer getQtdPagamento() { + return QtdPagamento; + } + + public void setQtdPagamento(Integer qtdPagamento) { + QtdPagamento = qtdPagamento; + } + + public Integer getCodigoDeOcorrencia() { + return codigoDeOcorrencia; + } + + public void setCodigoDeOcorrencia(Integer codigoDeOcorrencia) { + this.codigoDeOcorrencia = codigoDeOcorrencia; + } + + public Date getDataOcorrencia() { + return dataOcorrencia; + } + + public void setDataOcorrencia(Date dataOcorrencia) { + this.dataOcorrencia = dataOcorrencia; + } + + public String getNumeroDoDocumento() { + return numeroDoDocumento; + } + + public void setNumeroDoDocumento(String numeroDoDocumento) { + this.numeroDoDocumento = numeroDoDocumento; + } + + public Date getVencimento() { + return vencimento; + } + + public void setVencimento(Date vencimento) { + this.vencimento = vencimento; + } + + public BigDecimal getValor() { + return valor; + } + + public void setValor(BigDecimal valor) { + this.valor = valor; + } + + public String getEspecieDeTitulo() { + return especieDeTitulo; + } + + public void setEspecieDeTitulo(String especieDeTitulo) { + this.especieDeTitulo = especieDeTitulo; + } + + public Date getEmissao() { + return emissao; + } + + public void setEmissao(Date emissao) { + this.emissao = emissao; + } + + public String getInstrucao1() { + return instrucao1; + } + + public void setInstrucao1(String instrucao1) { + this.instrucao1 = instrucao1; + } + + public String getInstrucao2() { + return instrucao2; + } + + public void setInstrucao2(String instrucao2) { + this.instrucao2 = instrucao2; + } + + public BigDecimal getValorAtraso() { + return valorAtraso; + } + + public void setValorAtraso(BigDecimal valorAtraso) { + this.valorAtraso = valorAtraso; + } + + public Date getDataLimiteDesconto() { + return dataLimiteDesconto; + } + + public void setDataLimiteDesconto(Date dataLimiteDesconto) { + this.dataLimiteDesconto = dataLimiteDesconto; + } + + public BigDecimal getValorDesconto() { + return valorDesconto; + } + + public void setValorDesconto(BigDecimal valorDesconto) { + this.valorDesconto = valorDesconto; + } + + public BigDecimal getValorIOF() { + return valorIOF; + } + + public void setValorIOF(BigDecimal valorIOF) { + this.valorIOF = valorIOF; + } + + public BigDecimal getValorAbatimentoConcedido() { + return valorAbatimentoConcedido; + } + + public void setValorAbatimentoConcedido(BigDecimal valorAbatimentoConcedido) { + this.valorAbatimentoConcedido = valorAbatimentoConcedido; + } + + public TipoInscricaoPagador getTipoInscricaoPagador() { + return tipoInscricaoPagador; + } + + public void setTipoInscricaoPagador(TipoInscricaoPagador tipoInscricaoPagador) { + this.tipoInscricaoPagador = tipoInscricaoPagador; + } + + public String getNumeroInscricaoPagador() { + return numeroInscricaoPagador; + } + + public void setNumeroInscricaoPagador(String numeroInscricaoPagador) { + this.numeroInscricaoPagador = numeroInscricaoPagador; + } + + public String getNomePagador() { + return nomePagador; + } + + public void setNomePagador(String nomePagador) { + this.nomePagador = nomePagador; + } + + public String getEnderecoCompletoPagador() { + return enderecoCompletoPagador; + } + + public void setEnderecoCompletoPagador(String enderecoCompletoPagador) { + this.enderecoCompletoPagador = enderecoCompletoPagador; + } + + public String getMensagem1() { + return mensagem1; + } + + public void setMensagem1(String mensagem1) { + this.mensagem1 = mensagem1; + } + + public String getCEP_Prefixo() { + return CEP_Prefixo; + } + + public void setCEP_Prefixo(String cEP_Prefixo) { + CEP_Prefixo = cEP_Prefixo; + } + + public String getCEP_Sufixo() { + return CEP_Sufixo; + } + + public void setCEP_Sufixo(String cEP_Sufixo) { + CEP_Sufixo = cEP_Sufixo; + } + + public String getSacador_Avalista_Mensagem2() { + return sacador_Avalista_Mensagem2; + } + + public void setSacador_Avalista_Mensagem2(String sacador_Avalista_Mensagem2) { + this.sacador_Avalista_Mensagem2 = sacador_Avalista_Mensagem2; + } + + public Integer getNumeroSequencialRegistro() { + return numeroSequencialRegistro; + } + + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro) { + this.numeroSequencialRegistro = numeroSequencialRegistro; + } + + public DadosBoleto getDadosBoleto() { + return dadosBoleto; + } + + public void setDadosBoleto(DadosBoleto dadosBoleto) { + this.dadosBoleto = dadosBoleto; + } + + public RateioDeCredito getRateioDeCredito() { + return rateioDeCredito; + } + + public void setRateioDeCredito(RateioDeCredito rateioDeCredito) { + this.rateioDeCredito = rateioDeCredito; + } + + public BigDecimal getPercentualJuros() { + return percentualJuros; + } + + public void setPercentualJuros(BigDecimal percentualJuros) { + this.percentualJuros = percentualJuros; + } + + public BigDecimal getPercentualMulta() { + return percentualMulta; + } + + public void setPercentualMulta(BigDecimal percentualMulta) { + this.percentualMulta = percentualMulta; + } + + public String existeMulta() { + if( this.percentualMulta != null && this.percentualMulta.compareTo(BigDecimal.ZERO) > 0 ) { + return "2"; + }else { + return "0"; + } + } + + public DetalheObrigatorio clone() throws CloneNotSupportedException { + return (DetalheObrigatorio) super.clone(); + } +} diff --git a/src/com/rjconsultores/ventaboletos/blocos/caixa/ArquivoRemessaCaixa.java b/src/com/rjconsultores/ventaboletos/blocos/caixa/ArquivoRemessaCaixa.java new file mode 100644 index 000000000..316999d47 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/blocos/caixa/ArquivoRemessaCaixa.java @@ -0,0 +1,45 @@ +package com.rjconsultores.ventaboletos.blocos.caixa; + +import java.util.ArrayList; + +import com.rjconsultores.ventaboletos.ArquivoRemessaItem; +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessa; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessaPadrao; + +public class ArquivoRemessaCaixa extends ArquivoRemessaItem { + + @Override + public void setCabecalhoRemessa(CabecalhoRemessa cabecalhoRemessa) { + + if(cabecalhoRemessa instanceof CabecalhoRemessaCaixa){ + super.setCabecalhoRemessa(cabecalhoRemessa); + }else{ + throw new ClassCastException("Somente cabecalho tipo: " + CabecalhoRemessaCaixa.class.getName()); + } + } + + @Override + public void addTitulo(DetalheObrigatorio titulo){ + if(this.titulos == null){ + this.titulos = new ArrayList(); + } + + if(titulo instanceof DetalheObrigatorioCaixa){ + + titulo.setNumeroSequencialRegistro(titulos.size() + 2); + + this.titulos.add(titulo); + }else{ + throw new ClassCastException("Somente cabecalho tipo: " + DetalheObrigatorioCaixa.class.getName()); + } + } + + @Override + public RodapeRemessa getRodapeRemessa() { + this.rodapeRemessa = this.rodapeRemessa == null ? new RodapeRemessaPadrao() : this.rodapeRemessa; + rodapeRemessa.setNumeroSequencialRegistro(titulos.size() + 2); + return rodapeRemessa; + } +} diff --git a/src/com/rjconsultores/ventaboletos/blocos/caixa/CabecalhoRemessaCaixa.java b/src/com/rjconsultores/ventaboletos/blocos/caixa/CabecalhoRemessaCaixa.java new file mode 100644 index 000000000..55ab97709 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/blocos/caixa/CabecalhoRemessaCaixa.java @@ -0,0 +1,73 @@ +package com.rjconsultores.ventaboletos.blocos.caixa; + +import java.util.Date; + +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; + +public class CabecalhoRemessaCaixa implements CabecalhoRemessa { + + private String codigoEmpresa; + private String agenciaBeneficiario; + private String nomeEmpresa; + private Date dataGravacao; + private Integer numeroSequencialRemessa; + private Integer numeroSequencialRegistro; + private String versaoLayout; + + public String getCodigoEmpresa() { + return codigoEmpresa; + } + + public void setCodigoEmpresa(String codigoEmpresa) { + this.codigoEmpresa = codigoEmpresa; + } + + public String getNomeEmpresa() { + return nomeEmpresa; + } + + public void setNomeEmpresa(String nomeEmpresa) { + this.nomeEmpresa = nomeEmpresa; + } + + public Date getDataGravacao() { + return dataGravacao; + } + + public void setDataGravacao(Date dataGravacao) { + this.dataGravacao = dataGravacao; + } + + public Integer getNumeroSequencialRemessa() { + return numeroSequencialRemessa; + } + + public void setNumeroSequencialRemessa(Integer numeroSequencialRemessa) { + this.numeroSequencialRemessa = numeroSequencialRemessa; + } + + public Integer getNumeroSequencialRegistro() { + return numeroSequencialRegistro; + } + + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro) { + this.numeroSequencialRegistro = numeroSequencialRegistro; + } + + public String getAgenciaBeneficiario() { + return agenciaBeneficiario; + } + + public void setAgenciaBeneficiario(String agenciaBeneficiario) { + this.agenciaBeneficiario = agenciaBeneficiario; + } + + public String getVersaoLayout() { + return versaoLayout; + } + + public void setVersaoLayout(String versaoLayout) { + this.versaoLayout = versaoLayout; + } + +} diff --git a/src/com/rjconsultores/ventaboletos/blocos/caixa/DetalheObrigatorioCaixa.java b/src/com/rjconsultores/ventaboletos/blocos/caixa/DetalheObrigatorioCaixa.java new file mode 100644 index 000000000..a7d780c9f --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/blocos/caixa/DetalheObrigatorioCaixa.java @@ -0,0 +1,194 @@ +package com.rjconsultores.ventaboletos.blocos.caixa; + +import java.math.BigDecimal; +import java.util.Date; + +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.enuns.TipoInscricaoPagador; + +public class DetalheObrigatorioCaixa implements DetalheObrigatorio, Cloneable { + + private Integer idBoletoFechamento; + private TipoInscricaoPagador tipoInscricaoPagador; + private String numeroInscricao; + private String nossoNumero; + private String numeroDoDocumento; + private Date vencimento; + private BigDecimal valor; + private String especieDeTitulo; + private Date emissao; + private BigDecimal valorAtraso = BigDecimal.ZERO; + private BigDecimal valorMulta = BigDecimal.ZERO; + private Date dataLimiteDesconto; + private BigDecimal valorDesconto = BigDecimal.ZERO; + private BigDecimal valorIOF = BigDecimal.ZERO; + private BigDecimal valorAbatimentoConcedido = BigDecimal.ZERO; + private String nomeSacado; + private String enderecoSacado; + private String bairroSacado; + private String cepSacado; + private String cidade; + private String estado; + private String sacadorAvalista; + private Integer numeroSequencialRegistro; + private String numeroInscricaoSacado; + + + @Override + public void setIdBoletoFechamento(Integer id) { + this.idBoletoFechamento = id; + + } + @Override + public Integer getIdBoletoFechamento(){ + return this.idBoletoFechamento; + } + + @Override + public DetalheObrigatorio clone() throws CloneNotSupportedException { + return (DetalheObrigatorio) super.clone(); + } + + public String getNumeroInscricao() { + return numeroInscricao; + } + + public void setNumeroInscricao(String numeroInscricao) { + this.numeroInscricao = numeroInscricao; + } + public String getNossoNumero() { + return nossoNumero; + } + public void setNossoNumero(String nossoNumero) { + this.nossoNumero = nossoNumero; + } + public Date getVencimento() { + return vencimento; + } + public void setVencimento(Date vencimento) { + this.vencimento = vencimento; + } + public String getNumeroDoDocumento() { + return numeroDoDocumento; + } + public void setNumeroDoDocumento(String numeroDoDocumento) { + this.numeroDoDocumento = numeroDoDocumento; + } + public String getEspecieDeTitulo() { + return especieDeTitulo; + } + public void setEspecieDeTitulo(String especieDeTitulo) { + this.especieDeTitulo = especieDeTitulo; + } + public BigDecimal getValor() { + return valor; + } + public void setValor(BigDecimal valor) { + this.valor = valor; + } + public Date getEmissao() { + return emissao; + } + public void setEmissao(Date emissao) { + this.emissao = emissao; + } + public BigDecimal getValorAtraso() { + return valorAtraso; + } + public void setValorAtraso(BigDecimal valorAtraso) { + this.valorAtraso = valorAtraso; + } + public BigDecimal getValorMulta() { + return valorMulta; + } + public void setValorMulta(BigDecimal valorMulta) { + this.valorMulta = valorMulta; + } + public Date getDataLimiteDesconto() { + return dataLimiteDesconto; + } + public void setDataLimiteDesconto(Date dataLimiteDesconto) { + this.dataLimiteDesconto = dataLimiteDesconto; + } + public BigDecimal getValorDesconto() { + return valorDesconto; + } + public void setValorDesconto(BigDecimal valorDesconto) { + this.valorDesconto = valorDesconto; + } + public BigDecimal getValorIOF() { + return valorIOF; + } + public void setValorIOF(BigDecimal valorIOF) { + this.valorIOF = valorIOF; + } + public BigDecimal getValorAbatimentoConcedido() { + return valorAbatimentoConcedido; + } + public void setValorAbatimentoConcedido(BigDecimal valorAbatimentoConcedido) { + this.valorAbatimentoConcedido = valorAbatimentoConcedido; + } + public TipoInscricaoPagador getTipoInscricaoPagador() { + return tipoInscricaoPagador; + } + public void setTipoInscricaoPagador(TipoInscricaoPagador tipoInscricaoPagador) { + this.tipoInscricaoPagador = tipoInscricaoPagador; + } + public String getNomeSacado() { + return nomeSacado; + } + public void setNomeSacado(String nomeSacado) { + this.nomeSacado = nomeSacado; + } + public String getEnderecoSacado() { + return enderecoSacado; + } + public void setEnderecoSacado(String enderecoSacado) { + this.enderecoSacado = enderecoSacado; + } + public String getBairroSacado() { + return bairroSacado; + } + public void setBairroSacado(String bairroSacado) { + this.bairroSacado = bairroSacado; + } + public String getCepSacado() { + return cepSacado; + } + public void setCepSacado(String cepSacado) { + this.cepSacado = cepSacado; + } + public String getCidade() { + return cidade; + } + public void setCidade(String cidade) { + this.cidade = cidade; + } + public String getEstado() { + return estado; + } + public void setEstado(String estado) { + this.estado = estado; + } + public String getSacadorAvalista() { + return sacadorAvalista; + } + public void setSacadorAvalista(String sacadorAvalista) { + this.sacadorAvalista = sacadorAvalista; + } + public String getNumeroInscricaoSacado() { + return numeroInscricaoSacado; + } + public void setNumeroInscricaoSacado(String numeroInscricaoSacado) { + this.numeroInscricaoSacado = numeroInscricaoSacado; + } + public Integer getNumeroSequencialRegistro() { + return numeroSequencialRegistro; + } + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro) { + this.numeroSequencialRegistro = numeroSequencialRegistro; + } + + + +} diff --git a/src/com/rjconsultores/ventaboletos/blocos/itau/ArquivoRemessaItau.java b/src/com/rjconsultores/ventaboletos/blocos/itau/ArquivoRemessaItau.java new file mode 100644 index 000000000..64283e785 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/blocos/itau/ArquivoRemessaItau.java @@ -0,0 +1,41 @@ +package com.rjconsultores.ventaboletos.blocos.itau; + +import java.util.ArrayList; + +import com.rjconsultores.ventaboletos.ArquivoRemessaItem; +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessa; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessaPadrao; + +public class ArquivoRemessaItau extends ArquivoRemessaItem { + + @Override + public void setCabecalhoRemessa(CabecalhoRemessa cabecalhoRemessa) { + + if(cabecalhoRemessa instanceof CabecalhoRemessaItau){ + super.setCabecalhoRemessa(cabecalhoRemessa); + }else{ + throw new ClassCastException("Somente cabecalho tipo: " + CabecalhoRemessaItau.class.getName()); + } + } + + public void addTitulo(DetalheObrigatorio titulo){ + if(this.titulos == null){ + this.titulos = new ArrayList(); + } + + if(titulo instanceof DetalheObrigatorioItau){ + this.titulos.add(titulo); + }else{ + throw new ClassCastException("Somente cabecalho tipo: " + DetalheObrigatorioItau.class.getName()); + } + } + + @Override + public RodapeRemessa getRodapeRemessa() { + this.rodapeRemessa = this.rodapeRemessa == null ? new RodapeRemessaPadrao() : this.rodapeRemessa; + rodapeRemessa.setNumeroSequencialRegistro(titulos.size()+2); + return rodapeRemessa; + } +} diff --git a/src/com/rjconsultores/ventaboletos/blocos/itau/CabecalhoRemessaItau.java b/src/com/rjconsultores/ventaboletos/blocos/itau/CabecalhoRemessaItau.java new file mode 100644 index 000000000..f8d281e0d --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/blocos/itau/CabecalhoRemessaItau.java @@ -0,0 +1,125 @@ +package com.rjconsultores.ventaboletos.blocos.itau; + +import java.util.Date; + +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; + +public class CabecalhoRemessaItau implements CabecalhoRemessa{ + + //private String identificacaoRemessa; + //private String literalRemessa; + //private String codigoDeServico; + //private String literalServico; + private Integer agencia; + //private String zeros; + private Integer conta; + private Integer dacConta; + //private String brancos1; + private String nomeEmpresa; + //private String codigoCompensacao; + //private String nomeBanco; + private Date dataGeracao; + //private String brancos2; + private Integer numeroSequencialRegistro; + private Integer numeroSequencialRemessa; + +// public String getIdentificacaoRemessa() { +// return identificacaoRemessa; +// } +// public void setIdentificacaoRemessa(String identificacaoRemessa) { +// this.identificacaoRemessa = identificacaoRemessa; +// } +// public String getLiteralRemessa() { +// return literalRemessa; +// } +// public void setLiteralRemessa(String literalRemessa) { +// this.literalRemessa = literalRemessa; +// } +// public String getCodigoDeServico() { +// return codigoDeServico; +// } +// public void setCodigoDeServico(String codigoDeServico) { +// this.codigoDeServico = codigoDeServico; +// } +// public String getLiteralServico() { +// return literalServico; +// } +// public void setLiteralServico(String literalServico) { +// this.literalServico = literalServico; +// } + public Integer getAgencia() { + return agencia; + } + public void setAgencia(Integer agencia) { + this.agencia = agencia; + } +// public String getZeros() { +// return zeros; +// } +// public void setZeros(String zeros) { +// this.zeros = zeros; +// } + public Integer getConta() { + return conta; + } + public void setConta(Integer conta) { + this.conta = conta; + } + public Integer getDacConta() { + return dacConta; + } + public void setDacConta(Integer dacConta) { + this.dacConta = dacConta; + } +// public String getBrancos1() { +// return brancos1; +// } +// public void setBrancos1(String brancos1) { +// this.brancos1 = brancos1; +// } + public String getNomeEmpresa() { + return nomeEmpresa; + } + public void setNomeEmpresa(String nomeEmpresa) { + this.nomeEmpresa = nomeEmpresa; + } +// public String getCodigoCompensacao() { +// return codigoCompensacao; +// } +// public void setCodigoCompensacao(String codigoCompensacao) { +// this.codigoCompensacao = codigoCompensacao; +// } +// public String getNomeBanco() { +// return nomeBanco; +// } +// public void setNomeBanco(String nomeBanco) { +// this.nomeBanco = nomeBanco; +// } + public Date getDataGeracao() { + return dataGeracao; + } + public void setDataGeracao(Date dataGeracao) { + this.dataGeracao = dataGeracao; + } +// public String getBrancos2() { +// return brancos2; +// } +// public void setBrancos2(String brancos2) { +// this.brancos2 = brancos2; +// } + public Integer getNumeroSequencialRegistro() { + return numeroSequencialRegistro; + } + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro) { + this.numeroSequencialRegistro = numeroSequencialRegistro; + } + @Override + public Integer getNumeroSequencialRemessa() { + // TODO Auto-generated method stub + return numeroSequencialRemessa; + } + @Override + public void setNumeroSequencialRemessa(Integer numeroSequencialRemessa) { + this.numeroSequencialRemessa = numeroSequencialRemessa; + } +} diff --git a/src/com/rjconsultores/ventaboletos/blocos/itau/DetalheObrigatorioItau.java b/src/com/rjconsultores/ventaboletos/blocos/itau/DetalheObrigatorioItau.java new file mode 100644 index 000000000..32fc7b68f --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/blocos/itau/DetalheObrigatorioItau.java @@ -0,0 +1,368 @@ +package com.rjconsultores.ventaboletos.blocos.itau; + +import java.math.BigDecimal; +import java.util.Date; + +import com.rjconsultores.ventaboletos.blocos.DadosBoleto; +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.blocos.RateioDeCredito; +import com.rjconsultores.ventaboletos.enuns.TipoInscricaoPagador; + +public class DetalheObrigatorioItau implements DetalheObrigatorio{ + + private Integer codigoInscricao; + private Integer numeroInscricao; + private Integer agencia; + //private String zeros; + private Integer conta; + private Integer dacConta; + //private String Brancos1; // + private Integer instrucaoAlegacao; + private String usoDaEmpresa; + private String numCpfCnpj; + private Integer nossoNumero; + private BigDecimal qtdMoeda; + private Integer nrCarteira; + private String usoDoBanco; + private String codigoCarteira; + private Integer codigoDeOcorrencia; + private String numeroDoDocumento; + private Date vencimento; + private BigDecimal valor; + private String codigoCompensacaoBancoRecebedor; + private Integer agenciaCobradora; + private String especieDeTitulo; + private String aceite; // + private Date emissao; + private String instrucao1; + private String instrucao2; + private BigDecimal jurosDeMora; + private Date dataDesconto; + private BigDecimal descontoConcedido; + private BigDecimal IOF_Devido; + private BigDecimal abatimentoConcedido; + private TipoInscricaoPagador tipoInscricaoSacado; + private Long numeroInscricaoSacado; + private String nomeSacado; + //private String brancos2; // + private String logradouroSacado; + private String bairroSacado; + private Integer cepSacado; + private String cidade; + private String estado; + private String sacadorAvalista; + //private String brancos3; // + private Date dataDeMora; + private Integer prazo; + //private String brancos4; // + private Integer numeroSequencialRegistro; + + private DadosBoleto dadosBoleto; + + private RateioDeCredito rateioDeCredito; + + public DadosBoleto getDadosBoleto() { + return dadosBoleto; + } + public void setDadosBoleto(DadosBoleto dadosBoleto) { + this.dadosBoleto = dadosBoleto; + } + public RateioDeCredito getRateioDeCredito() { + return rateioDeCredito; + } + public void setRateioDeCredito(RateioDeCredito rateioDeCredito) { + this.rateioDeCredito = rateioDeCredito; + } + public Integer getCodigoInscricao() { + return codigoInscricao; + } + public void setCodigoInscricao(Integer codigoInscricao) { + this.codigoInscricao = codigoInscricao; + } + public Integer getNumeroInscricao() { + return numeroInscricao; + } + public void setNumeroInscricao(Integer numeroInscricao) { + this.numeroInscricao = numeroInscricao; + } + public Integer getAgencia() { + return agencia; + } + public void setAgencia(Integer agencia) { + this.agencia = agencia; + } +// public String getZeros() { +// return zeros; +// } +// public void setZeros(String zeros) { +// this.zeros = zeros; +// } + public Integer getConta() { + return conta; + } + public void setConta(Integer conta) { + this.conta = conta; + } + public Integer getDacConta() { + return dacConta; + } + public void setDacConta(Integer dacConta) { + this.dacConta = dacConta; + } +// public String getBrancos1() { +// return Brancos1; +// } +// public void setBrancos1(String brancos1) { +// Brancos1 = brancos1; +// } + public Integer getInstrucaoAlegacao() { + return instrucaoAlegacao; + } + public void setInstrucaoAlegacao(Integer instrucaoAlegacao) { + this.instrucaoAlegacao = instrucaoAlegacao; + } + public String getUsoDaEmpresa() { + return usoDaEmpresa; + } + public void setUsoDaEmpresa(String usoDaEmpresa) { + this.usoDaEmpresa = usoDaEmpresa; + } + public Integer getNossoNumero() { + return nossoNumero; + } + public void setNossoNumero(Integer nossoNumero) { + this.nossoNumero = nossoNumero; + } + public BigDecimal getQtdMoeda() { + return qtdMoeda; + } + public void setQtdMoeda(BigDecimal qtdMoeda) { + this.qtdMoeda = qtdMoeda; + } + public Integer getNrCarteira() { + return nrCarteira; + } + public void setNrCarteira(Integer nrCarteira) { + this.nrCarteira = nrCarteira; + } + public String getUsoDoBanco() { + return usoDoBanco; + } + public void setUsoDoBanco(String usoDoBanco) { + this.usoDoBanco = usoDoBanco; + } + public String getCodigoCarteira() { + return codigoCarteira; + } + public void setCodigoCarteira(String codigoCarteira) { + this.codigoCarteira = codigoCarteira; + } + public Integer getCodigoDeOcorrencia() { + return codigoDeOcorrencia; + } + public void setCodigoDeOcorrencia(Integer codigoDeOcorrencia) { + this.codigoDeOcorrencia = codigoDeOcorrencia; + } + public String getNumeroDoDocumento() { + return numeroDoDocumento; + } + public void setNumeroDoDocumento(String numeroDoDocumento) { + this.numeroDoDocumento = numeroDoDocumento; + } + public Date getVencimento() { + return vencimento; + } + public void setVencimento(Date vencimento) { + this.vencimento = vencimento; + } + public BigDecimal getValor() { + return valor; + } + public void setValor(BigDecimal valor) { + this.valor = valor; + } + public String getCodigoCompensacaoBancoRecebedor() { + return codigoCompensacaoBancoRecebedor; + } + public void setCodigoCompensacaoBancoRecebedor(String codigoCompensacaoBancoRecebedor) { + this.codigoCompensacaoBancoRecebedor = codigoCompensacaoBancoRecebedor; + } + public Integer getAgenciaCobradora() { + return agenciaCobradora; + } + public void setAgenciaCobradora(Integer agenciaCobradora) { + this.agenciaCobradora = agenciaCobradora; + } + public String getEspecieDeTitulo() { + return especieDeTitulo; + } + public void setEspecieDeTitulo(String especieDeTitulo) { + this.especieDeTitulo = especieDeTitulo; + } + public String getAceite() { + return aceite; + } + public void setAceite(String aceite) { + this.aceite = aceite; + } + public Date getEmissao() { + return emissao; + } + public void setEmissao(Date emissao) { + this.emissao = emissao; + } + public String getInstrucao1() { + return instrucao1; + } + public void setInstrucao1(String instrucao1) { + this.instrucao1 = instrucao1; + } + public String getInstrucao2() { + return instrucao2; + } + public void setInstrucao2(String instrucao2) { + this.instrucao2 = instrucao2; + } + public BigDecimal getJurosDeMora() { + return jurosDeMora; + } + public void setJurosDeMora(BigDecimal jurosDeMora) { + this.jurosDeMora = jurosDeMora; + } + public Date getDataDesconto() { + return dataDesconto; + } + public void setDataDesconto(Date dataDesconto) { + this.dataDesconto = dataDesconto; + } + public BigDecimal getDescontoConcedido() { + return descontoConcedido; + } + public void setDescontoConcedido(BigDecimal descontoConcedido) { + this.descontoConcedido = descontoConcedido; + } + public BigDecimal getIOF_Devido() { + return IOF_Devido; + } + public void setIOF_Devido(BigDecimal iOF_Devido) { + IOF_Devido = iOF_Devido; + } + public BigDecimal getAbatimentoConcedido() { + return abatimentoConcedido; + } + public void setAbatimentoConcedido(BigDecimal abatimentoConcedido) { + this.abatimentoConcedido = abatimentoConcedido; + } + public TipoInscricaoPagador getTipoInscricaoSacado() { + return tipoInscricaoSacado; + } + public void setTipoInscricaoSacado(TipoInscricaoPagador tipoInscricaoSacado) { + this.tipoInscricaoSacado = tipoInscricaoSacado; + } + public Long getNumeroInscricaoSacado() { + return numeroInscricaoSacado; + } + public void setNumeroInscricaoSacado(Long numeroInscricaoSacado) { + this.numeroInscricaoSacado = numeroInscricaoSacado; + } + public String getNomeSacado() { + return nomeSacado; + } + public void setNomeSacado(String nomeSacado) { + this.nomeSacado = nomeSacado; + } +// public String getBrancos2() { +// return brancos2; +// } +// public void setBrancos2(String brancos2) { +// this.brancos2 = brancos2; +// } + public String getLogradouroSacado() { + return logradouroSacado; + } + public void setLogradouroSacado(String logradouroSacado) { + this.logradouroSacado = logradouroSacado; + } + public String getBairroSacado() { + return bairroSacado; + } + public void setBairroSacado(String bairroSacado) { + this.bairroSacado = bairroSacado; + } + public Integer getCepSacado() { + return cepSacado; + } + public void setCepSacado(Integer cepSacado) { + this.cepSacado = cepSacado; + } + public String getCidade() { + return cidade; + } + public void setCidade(String cidade) { + this.cidade = cidade; + } + public String getEstado() { + return estado; + } + public void setEstado(String estado) { + this.estado = estado; + } + public String getSacadorAvalista() { + return sacadorAvalista; + } + public void setSacadorAvalista(String sacadorAvalista) { + this.sacadorAvalista = sacadorAvalista; + } +// public String getBrancos3() { +// return brancos3; +// } +// public void setBrancos3(String brancos3) { +// this.brancos3 = brancos3; +// } + public Date getDataDeMora() { + return dataDeMora; + } + public void setDataDeMora(Date dataDeMora) { + this.dataDeMora = dataDeMora; + } + public Integer getPrazo() { + return prazo; + } + public void setPrazo(Integer prazo) { + this.prazo = prazo; + } +// public String getBrancos4() { +// return brancos4; +// } +// public void setBrancos4(String brancos4) { +// this.brancos4 = brancos4; +// } + public Integer getNumeroSequencialRegistro() { + return numeroSequencialRegistro; + } + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro) { + this.numeroSequencialRegistro = numeroSequencialRegistro; + } + + private Integer idBoletoFechamento; + + @Override + public void setIdBoletoFechamento(Integer id) { + this.idBoletoFechamento = id; + + } + @Override + public Integer getIdBoletoFechamento(){ + return this.idBoletoFechamento; + } + + public String getNumCpfCnpj() { + return numCpfCnpj; + } + public void setNumCpfCnpj(String numCpfCnpj) { + this.numCpfCnpj = numCpfCnpj; + } + public DetalheObrigatorioItau clone() throws CloneNotSupportedException { + return (DetalheObrigatorioItau) super.clone(); + } +} diff --git a/src/com/rjconsultores/ventaboletos/blocos/mercantil/ArquivoRemessaMercantil.java b/src/com/rjconsultores/ventaboletos/blocos/mercantil/ArquivoRemessaMercantil.java new file mode 100644 index 000000000..b99120360 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/blocos/mercantil/ArquivoRemessaMercantil.java @@ -0,0 +1,43 @@ +package com.rjconsultores.ventaboletos.blocos.mercantil; + +import java.util.ArrayList; + +import com.rjconsultores.ventaboletos.ArquivoRemessaItem; +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessa; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessaPadrao; + +public class ArquivoRemessaMercantil extends ArquivoRemessaItem { + + @Override + public void setCabecalhoRemessa(CabecalhoRemessa cabecalhoRemessa) { + + if(cabecalhoRemessa instanceof CabecalhoRemessaMercantil){ + super.setCabecalhoRemessa(cabecalhoRemessa); + }else{ + throw new ClassCastException("Somente cabecalho tipo: " + CabecalhoRemessaMercantil.class.getName()); + } + } + + @Override + public void addTitulo(DetalheObrigatorio titulo){ + if(this.titulos == null){ + this.titulos = new ArrayList(); + } + + if(titulo instanceof DetalheObrigatorioMercantil){ + titulo.setNumeroSequencialRegistro(titulos.size() + 2); + this.titulos.add(titulo); + }else{ + throw new ClassCastException("Somente cabecalho tipo: " + DetalheObrigatorioMercantil.class.getName()); + } + } + + @Override + public RodapeRemessa getRodapeRemessa() { + this.rodapeRemessa = this.rodapeRemessa == null ? new RodapeRemessaPadrao() : this.rodapeRemessa; + rodapeRemessa.setNumeroSequencialRegistro(titulos.size() + 2); + return rodapeRemessa; + } +} diff --git a/src/com/rjconsultores/ventaboletos/blocos/mercantil/CabecalhoRemessaMercantil.java b/src/com/rjconsultores/ventaboletos/blocos/mercantil/CabecalhoRemessaMercantil.java new file mode 100644 index 000000000..b20701236 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/blocos/mercantil/CabecalhoRemessaMercantil.java @@ -0,0 +1,73 @@ +package com.rjconsultores.ventaboletos.blocos.mercantil; + +import java.util.Date; + +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; + +public class CabecalhoRemessaMercantil implements CabecalhoRemessa { + + private String agenciaOrigem; + private Long cnpj; + private String codigoEmpresa; + private String nomeEmpresa; + private Date dataGravacao; + private Integer numeroSequencialRemessa; + private Integer numeroSequencialRegistro; + + public String getCodigoEmpresa() { + return codigoEmpresa; + } + + public void setCodigoEmpresa(String codigoEmpresa) { + this.codigoEmpresa = codigoEmpresa; + } + + public String getNomeEmpresa() { + return nomeEmpresa; + } + + public void setNomeEmpresa(String nomeEmpresa) { + this.nomeEmpresa = nomeEmpresa; + } + + public Date getDataGravacao() { + return dataGravacao; + } + + public void setDataGravacao(Date dataGravacao) { + this.dataGravacao = dataGravacao; + } + + public Integer getNumeroSequencialRemessa() { + return numeroSequencialRemessa; + } + + public void setNumeroSequencialRemessa(Integer numeroSequencialRemessa) { + this.numeroSequencialRemessa = numeroSequencialRemessa; + } + + public Integer getNumeroSequencialRegistro() { + return numeroSequencialRegistro; + } + + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro) { + this.numeroSequencialRegistro = numeroSequencialRegistro; + } + + public Long getCnpj() { + return cnpj; + } + + public void setCnpj(Long cnpj) { + this.cnpj = cnpj; + } + + public String getAgenciaOrigem() { + return agenciaOrigem; + } + + public void setAgenciaOrigem(String agenciaOrigem) { + this.agenciaOrigem = agenciaOrigem; + } + +} diff --git a/src/com/rjconsultores/ventaboletos/blocos/mercantil/DetalheObrigatorioMercantil.java b/src/com/rjconsultores/ventaboletos/blocos/mercantil/DetalheObrigatorioMercantil.java new file mode 100644 index 000000000..8e517d5f9 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/blocos/mercantil/DetalheObrigatorioMercantil.java @@ -0,0 +1,391 @@ +package com.rjconsultores.ventaboletos.blocos.mercantil; + +import java.math.BigDecimal; +import java.util.Date; + +import com.rjconsultores.ventaboletos.blocos.DadosBoleto; +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.enuns.TipoInscricaoPagador; + +public class DetalheObrigatorioMercantil implements DetalheObrigatorio, Cloneable { + + private Integer idBoletoFechamento; + private String agenciaOrigem; + private String numeroControleDoParticipante; + private String nossoNumero; + private String digitoVerificador; + private Long cnpj; + private Integer QtdPagamento = 0; + private Integer codigoDeOcorrencia = 0; + private Date dataOcorrencia; + private String numeroDoDocumento; + private Date vencimento; + private BigDecimal ValorTitulo; + private String especieDeTitulo; + private Date emissao; + private String instrucao1; + private String instrucao2; + private BigDecimal valorAtraso = BigDecimal.ZERO; + private Date dataLimiteDesconto; + private BigDecimal valorDesconto = BigDecimal.ZERO; + private BigDecimal valorIOF = BigDecimal.ZERO; + private BigDecimal valorAbatimentoConcedido = BigDecimal.ZERO; + private TipoInscricaoPagador tipoInscricaoPagador; + private Long numeroInscricaoPagador; + private String nomePagador; + private String enderecoCompletoPagador; + private String bairro; + private String cidade; + private String estado; + private String mensagem1; + private String cepPrefixo; + private String cepSufixo; + private String sacadorAvalistaMensagem2; + private Integer numeroSequencialRegistro; + private Integer multaPercentual; + private Integer numeroContrato; + private Integer seuNumero; + + + /* + + MultaPercentual" + MultaData" + " + IdentificacaoTitulo" + AgenciaOrigem" + DigitoVerificador" + + CNPJ" + QuantidadeMoeda" + CodigoOperacao" + CodigoMovimentacao" + SeuNumero" + DataVencimento" + + CodigoBanco" + Agencia" + Aceite" + JurosDeMora" + DataLimiteDesconto" + DescontoConcedido" + IOF_Devido" + AbatimentoConcedido" + TipoInscricaoSacado" + NumeroInscricaoSacado" + NomeSacado" + EnderecoSacado" + BairroSacado" + CepSacado" + ComplementoCepSacado" + Cidade" + Estado" + SacadorAvalista" + + CodigoMoeda" +*/ + + private DadosBoleto dadosBoleto; + + @Override + public void setIdBoletoFechamento(Integer id) { + this.idBoletoFechamento = id; + } + + @Override + public Integer getIdBoletoFechamento(){ + return this.idBoletoFechamento; + } + + public DetalheObrigatorio clone() throws CloneNotSupportedException { + return (DetalheObrigatorio) super.clone(); + } + + public String getAgenciaOrigem() { + return agenciaOrigem; + } + + public void setAgenciaOrigem(String agenciaOrigem) { + this.agenciaOrigem = agenciaOrigem; + } + + public String getNumeroControleDoParticipante() { + return numeroControleDoParticipante; + } + + public void setNumeroControleDoParticipante(String numeroControleDoParticipante) { + this.numeroControleDoParticipante = numeroControleDoParticipante; + } + + public String getNossoNumero() { + return nossoNumero; + } + + public void setNossoNumero(String nossoNumero) { + this.nossoNumero = nossoNumero; + } + + public String getDigitoVerificador() { + return digitoVerificador; + } + + public void setDigitoVerificador(String digitoVerificador) { + this.digitoVerificador = digitoVerificador; + } + + public Integer getQtdPagamento() { + return QtdPagamento; + } + + public void setQtdPagamento(Integer qtdPagamento) { + QtdPagamento = qtdPagamento; + } + + public Integer getCodigoDeOcorrencia() { + return codigoDeOcorrencia; + } + + public void setCodigoDeOcorrencia(Integer codigoDeOcorrencia) { + this.codigoDeOcorrencia = codigoDeOcorrencia; + } + + public Date getDataOcorrencia() { + return dataOcorrencia; + } + + public void setDataOcorrencia(Date dataOcorrencia) { + this.dataOcorrencia = dataOcorrencia; + } + + public String getNumeroDoDocumento() { + return numeroDoDocumento; + } + + public void setNumeroDoDocumento(String numeroDoDocumento) { + this.numeroDoDocumento = numeroDoDocumento; + } + + public Date getVencimento() { + return vencimento; + } + + public void setVencimento(Date vencimento) { + this.vencimento = vencimento; + } + + public BigDecimal getValorTitulo() { + return ValorTitulo; + } + + public void setValorTitulo(BigDecimal valorTitulo) { + ValorTitulo = valorTitulo; + } + + public String getEspecieDeTitulo() { + return especieDeTitulo; + } + + public void setEspecieDeTitulo(String especieDeTitulo) { + this.especieDeTitulo = especieDeTitulo; + } + + public Date getEmissao() { + return emissao; + } + + public void setEmissao(Date emissao) { + this.emissao = emissao; + } + + public String getInstrucao1() { + return instrucao1; + } + + public void setInstrucao1(String instrucao1) { + this.instrucao1 = instrucao1; + } + + public String getInstrucao2() { + return instrucao2; + } + + public void setInstrucao2(String instrucao2) { + this.instrucao2 = instrucao2; + } + + public BigDecimal getValorAtraso() { + return valorAtraso; + } + + public void setValorAtraso(BigDecimal valorAtraso) { + this.valorAtraso = valorAtraso; + } + + public Date getDataLimiteDesconto() { + return dataLimiteDesconto; + } + + public void setDataLimiteDesconto(Date dataLimiteDesconto) { + this.dataLimiteDesconto = dataLimiteDesconto; + } + + public BigDecimal getValorDesconto() { + return valorDesconto; + } + + public void setValorDesconto(BigDecimal valorDesconto) { + this.valorDesconto = valorDesconto; + } + + public BigDecimal getValorIOF() { + return valorIOF; + } + + public void setValorIOF(BigDecimal valorIOF) { + this.valorIOF = valorIOF; + } + + public BigDecimal getValorAbatimentoConcedido() { + return valorAbatimentoConcedido; + } + + public void setValorAbatimentoConcedido(BigDecimal valorAbatimentoConcedido) { + this.valorAbatimentoConcedido = valorAbatimentoConcedido; + } + + public TipoInscricaoPagador getTipoInscricaoPagador() { + return tipoInscricaoPagador; + } + + public void setTipoInscricaoPagador(TipoInscricaoPagador tipoInscricaoPagador) { + this.tipoInscricaoPagador = tipoInscricaoPagador; + } + + public Long getNumeroInscricaoPagador() { + return numeroInscricaoPagador; + } + + public void setNumeroInscricaoPagador(Long numeroInscricaoPagador) { + this.numeroInscricaoPagador = numeroInscricaoPagador; + } + + public String getNomePagador() { + return nomePagador; + } + + public void setNomePagador(String nomePagador) { + this.nomePagador = nomePagador; + } + + public String getEnderecoCompletoPagador() { + return enderecoCompletoPagador; + } + + public void setEnderecoCompletoPagador(String enderecoCompletoPagador) { + this.enderecoCompletoPagador = enderecoCompletoPagador; + } + + public String getMensagem1() { + return mensagem1; + } + + public void setMensagem1(String mensagem1) { + this.mensagem1 = mensagem1; + } + + public String getSacadorAvalistaMensagem2() { + return sacadorAvalistaMensagem2; + } + + public void setSacadorAvalistaMensagem2(String sacadorAvalistaMensagem2) { + this.sacadorAvalistaMensagem2 = sacadorAvalistaMensagem2; + } + + public Integer getNumeroSequencialRegistro() { + return numeroSequencialRegistro; + } + + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro) { + this.numeroSequencialRegistro = numeroSequencialRegistro; + } + + public DadosBoleto getDadosBoleto() { + return dadosBoleto; + } + + public void setDadosBoleto(DadosBoleto dadosBoleto) { + this.dadosBoleto = dadosBoleto; + } + + public Integer getMultaPercentual() { + return multaPercentual; + } + + public void setMultaPercentual(Integer multaPercentual) { + this.multaPercentual = multaPercentual; + } + + public String getCepPrefixo() { + return cepPrefixo; + } + + public void setCepPrefixo(String cepPrefixo) { + this.cepPrefixo = cepPrefixo; + } + + public String getCepSufixo() { + return cepSufixo; + } + + public void setCepSufixo(String cepSufixo) { + this.cepSufixo = cepSufixo; + } + + public Long getCnpj() { + return cnpj; + } + + public void setCnpj(Long cnpj) { + this.cnpj = cnpj; + } + + public Integer getNumeroContrato() { + return numeroContrato; + } + + public void setNumeroContrato(Integer numeroContrato) { + this.numeroContrato = numeroContrato; + } + + public Integer getSeuNumero() { + return seuNumero; + } + + public void setSeuNumero(Integer seuNumero) { + this.seuNumero = seuNumero; + } + + public String getBairro() { + return bairro; + } + + public void setBairro(String bairro) { + this.bairro = bairro; + } + + public String getCidade() { + return cidade; + } + + public void setCidade(String cidade) { + this.cidade = cidade; + } + + public String getEstado() { + return estado; + } + + public void setEstado(String estado) { + this.estado = estado; + } +} diff --git a/src/com/rjconsultores/ventaboletos/blocos/santander/ArquivoRemessaSantander.java b/src/com/rjconsultores/ventaboletos/blocos/santander/ArquivoRemessaSantander.java new file mode 100644 index 000000000..4c5bd20e0 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/blocos/santander/ArquivoRemessaSantander.java @@ -0,0 +1,45 @@ +package com.rjconsultores.ventaboletos.blocos.santander; + +import java.util.ArrayList; + +import com.rjconsultores.ventaboletos.ArquivoRemessaItem; +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessa; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessaPadrao; + +public class ArquivoRemessaSantander extends ArquivoRemessaItem { + + @Override + public void setCabecalhoRemessa(CabecalhoRemessa cabecalhoRemessa) { + + if(cabecalhoRemessa instanceof CabecalhoRemessaSantander){ + super.setCabecalhoRemessa(cabecalhoRemessa); + }else{ + throw new ClassCastException("Somente cabecalho tipo: " + CabecalhoRemessaSantander.class.getName()); + } + } + + @Override + public void addTitulo(DetalheObrigatorio titulo){ + if(this.titulos == null){ + this.titulos = new ArrayList(); + } + + if(titulo instanceof DetalheObrigatorioSantander){ + + titulo.setNumeroSequencialRegistro(titulos.size() + 2); + + this.titulos.add(titulo); + }else{ + throw new ClassCastException("Somente cabecalho tipo: " + DetalheObrigatorioSantander.class.getName()); + } + } + + @Override + public RodapeRemessa getRodapeRemessa() { + this.rodapeRemessa = this.rodapeRemessa == null ? new RodapeRemessaPadrao() : this.rodapeRemessa; + rodapeRemessa.setNumeroSequencialRegistro(titulos.size() + 2); + return rodapeRemessa; + } +} diff --git a/src/com/rjconsultores/ventaboletos/blocos/santander/CabecalhoRemessaSantander.java b/src/com/rjconsultores/ventaboletos/blocos/santander/CabecalhoRemessaSantander.java new file mode 100644 index 000000000..013817b47 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/blocos/santander/CabecalhoRemessaSantander.java @@ -0,0 +1,75 @@ +package com.rjconsultores.ventaboletos.blocos.santander; + +import java.util.Date; + +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; + +public class CabecalhoRemessaSantander implements CabecalhoRemessa { + + private String codigoEmpresa; + private String nomeEmpresa; + private Date dataGravacao; + private String codigoTransmissao; + private Integer numeroSequencialRemessa; + private Integer numeroSequencialRegistro; + private Integer numeroVersao; + + public String getCodigoEmpresa() { + return codigoEmpresa; + } + + public void setCodigoEmpresa(String codigoEmpresa) { + this.codigoEmpresa = codigoEmpresa; + } + + public String getNomeEmpresa() { + return nomeEmpresa; + } + + public void setNomeEmpresa(String nomeEmpresa) { + this.nomeEmpresa = nomeEmpresa; + } + + public Date getDataGravacao() { + return dataGravacao; + } + + public void setDataGravacao(Date dataGravacao) { + this.dataGravacao = dataGravacao; + } + + public String getCodigoTransmissao() { + return codigoTransmissao; + } + + public void setCodigoTransmissao(String codigoTransmissao) { + this.codigoTransmissao = codigoTransmissao; + } + + public Integer getNumeroSequencialRemessa() { + return numeroSequencialRemessa; + } + + public void setNumeroSequencialRemessa(Integer numeroSequencialRemessa) { + this.numeroSequencialRemessa = numeroSequencialRemessa; + } + + public Integer getNumeroSequencialRegistro() { + return numeroSequencialRegistro; + } + + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro) { + this.numeroSequencialRegistro = numeroSequencialRegistro; + } + + public Integer getNumeroVersao() { + return numeroVersao; + } + + public void setNumeroVersao(Integer numeroVersao) { + this.numeroVersao = numeroVersao; + } + + + +} diff --git a/src/com/rjconsultores/ventaboletos/blocos/santander/DetalheObrigatorioSantander.java b/src/com/rjconsultores/ventaboletos/blocos/santander/DetalheObrigatorioSantander.java new file mode 100644 index 000000000..3163e5b1b --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/blocos/santander/DetalheObrigatorioSantander.java @@ -0,0 +1,357 @@ +package com.rjconsultores.ventaboletos.blocos.santander; + +import java.math.BigDecimal; +import java.util.Date; + +import com.rjconsultores.ventaboletos.blocos.DadosBoleto; +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.blocos.RateioDeCredito; +import com.rjconsultores.ventaboletos.enuns.TipoInscricaoPagador; + +public class DetalheObrigatorioSantander implements DetalheObrigatorio, Cloneable { + + private Integer idBoletoFechamento; + private TipoInscricaoPagador tipoInscricao; + private String numeroInscricao; + private String codigoTransmissao; + private String numControleDoParticipante; + private String nossoNumeroComDigito; + private String carteira; + private String agencia; + private String agenciaCobradora; + private String contacorrente; + private String dvConta; + private String dvAgencia; + private Integer QtdPagamento = 0; + private Integer codigoDeOcorrencia = 0; + private Date dataOcorrencia; + private String numeroDoDocumento; + private Date vencimento; + private BigDecimal valor; + private String especieDeTitulo; + private Date emissao; + private String instrucao1; + private String instrucao2; + private BigDecimal valorAtraso = BigDecimal.ZERO; + private Date dataLimiteDesconto; + private BigDecimal valorDesconto = BigDecimal.ZERO; + private BigDecimal valorIOF = BigDecimal.ZERO; + private BigDecimal valorAbatimentoConcedido = BigDecimal.ZERO; + private String nomeSacado; + private String mensagem1; + private String enderecoSacado; + private String bairroSacado; + private String cepSacado; + private String complementoCepSacado; + private String cidade; + private String estado; + private String identificadorComplemento; + private String complemento; + private String sacadorAvalista; + private Integer numeroSequencialRegistro; + private DadosBoleto dadosBoleto; + private RateioDeCredito rateioDeCredito; + private String numeroInscricaoSacado; + private String codigoEmpresa; + private BigDecimal percentualJuros; + private BigDecimal percentualMulta; + + + @Override + public void setIdBoletoFechamento(Integer id) { + this.idBoletoFechamento = id; + + } + @Override + public Integer getIdBoletoFechamento(){ + return this.idBoletoFechamento; + } + + @Override + public DetalheObrigatorio clone() throws CloneNotSupportedException { + return (DetalheObrigatorio) super.clone(); + } + + public TipoInscricaoPagador getTipoInscricao() { + return tipoInscricao; + } + public void setTipoInscricao(TipoInscricaoPagador tipoInscricao) { + this.tipoInscricao = tipoInscricao; + } + public String getNumeroInscricao() { + return numeroInscricao; + } + public void setNumeroInscricao(String numeroInscricao) { + this.numeroInscricao = numeroInscricao; + } + public String getCodigoTransmissao() { + return codigoTransmissao; + } + public void setCodigoTransmissao(String codigoTransmissao) { + this.codigoTransmissao = codigoTransmissao; + } + public String getNumControleDoParticipante() { + return numControleDoParticipante; + } + public void setNumControleDoParticipante(String numControleDoParticipante) { + this.numControleDoParticipante = numControleDoParticipante; + } + public String getNossoNumeroComDigito() { + return nossoNumeroComDigito; + } + public void setNossoNumeroComDigito(String nossoNumeroComDigito) { + this.nossoNumeroComDigito = nossoNumeroComDigito; + } + public String getCarteira() { + return carteira; + } + public void setCarteira(String carteira) { + this.carteira = carteira; + } + public String getAgencia() { + return agencia; + } + public void setAgencia(String agencia) { + this.agencia = agencia; + } + public String getContacorrente() { + return contacorrente; + } + public void setContacorrente(String contacorrente) { + this.contacorrente = contacorrente; + } + public String getDvConta() { + return dvConta; + } + public void setDvConta(String dvConta) { + this.dvConta = dvConta; + } + public Integer getQtdPagamento() { + return QtdPagamento; + } + public void setQtdPagamento(Integer qtdPagamento) { + QtdPagamento = qtdPagamento; + } + public Integer getCodigoDeOcorrencia() { + return codigoDeOcorrencia; + } + public void setCodigoDeOcorrencia(Integer codigoDeOcorrencia) { + this.codigoDeOcorrencia = codigoDeOcorrencia; + } + public Date getDataOcorrencia() { + return dataOcorrencia; + } + public void setDataOcorrencia(Date dataOcorrencia) { + this.dataOcorrencia = dataOcorrencia; + } + public String getNumeroDoDocumento() { + return numeroDoDocumento; + } + public void setNumeroDoDocumento(String numeroDoDocumento) { + this.numeroDoDocumento = numeroDoDocumento; + } + public Date getVencimento() { + return vencimento; + } + public void setVencimento(Date vencimento) { + this.vencimento = vencimento; + } + public BigDecimal getValor() { + return valor; + } + public void setValor(BigDecimal valor) { + this.valor = valor; + } + public String getEspecieDeTitulo() { + return especieDeTitulo; + } + public void setEspecieDeTitulo(String especieDeTitulo) { + this.especieDeTitulo = especieDeTitulo; + } + public Date getEmissao() { + return emissao; + } + public void setEmissao(Date emissao) { + this.emissao = emissao; + } + public String getInstrucao1() { + return instrucao1; + } + public void setInstrucao1(String instrucao1) { + this.instrucao1 = instrucao1; + } + public String getInstrucao2() { + return instrucao2; + } + public void setInstrucao2(String instrucao2) { + this.instrucao2 = instrucao2; + } + public BigDecimal getValorAtraso() { + return valorAtraso; + } + public void setValorAtraso(BigDecimal valorAtraso) { + this.valorAtraso = valorAtraso; + } + public Date getDataLimiteDesconto() { + return dataLimiteDesconto; + } + public void setDataLimiteDesconto(Date dataLimiteDesconto) { + this.dataLimiteDesconto = dataLimiteDesconto; + } + public BigDecimal getValorDesconto() { + return valorDesconto; + } + public void setValorDesconto(BigDecimal valorDesconto) { + this.valorDesconto = valorDesconto; + } + public BigDecimal getValorIOF() { + return valorIOF; + } + public void setValorIOF(BigDecimal valorIOF) { + this.valorIOF = valorIOF; + } + public BigDecimal getValorAbatimentoConcedido() { + return valorAbatimentoConcedido; + } + public void setValorAbatimentoConcedido(BigDecimal valorAbatimentoConcedido) { + this.valorAbatimentoConcedido = valorAbatimentoConcedido; + } + + public String getMensagem1() { + return mensagem1; + } + public void setMensagem1(String mensagem1) { + this.mensagem1 = mensagem1; + } + public String getCepSacado() { + return cepSacado; + } + public void setCepSacado(String cepSacado) { + this.cepSacado = cepSacado; + } + public String getComplementoCepSacado() { + return complementoCepSacado; + } + public void setComplementoCepSacado(String complementoCepSacado) { + this.complementoCepSacado = complementoCepSacado; + } + + public Integer getNumeroSequencialRegistro() { + return numeroSequencialRegistro; + } + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro) { + this.numeroSequencialRegistro = numeroSequencialRegistro; + } + public DadosBoleto getDadosBoleto() { + return dadosBoleto; + } + public void setDadosBoleto(DadosBoleto dadosBoleto) { + this.dadosBoleto = dadosBoleto; + } + public RateioDeCredito getRateioDeCredito() { + return rateioDeCredito; + } + public void setRateioDeCredito(RateioDeCredito rateioDeCredito) { + this.rateioDeCredito = rateioDeCredito; + } + + public String getBairroSacado() { + return bairroSacado; + } + + public void setBairroSacado(String bairroSacado) { + this.bairroSacado = bairroSacado; + } + + public String getCidade() { + return cidade; + } + + public void setCidade(String cidade) { + this.cidade = cidade; + } + + public String getEstado() { + return estado; + } + + public void setEstado(String estado) { + this.estado = estado; + } + + public String getIdentificadorComplemento() { + return identificadorComplemento; + } + + public void setIdentificadorComplemento(String identificadorComplemento) { + this.identificadorComplemento = identificadorComplemento; + } + + public String getComplemento() { + return complemento; + } + + public void setComplemento(String complemento) { + this.complemento = complemento; + } + + public String getNomeSacado() { + return nomeSacado; + } + + public void setNomeSacado(String nomeSacado) { + this.nomeSacado = nomeSacado; + } + + public String getEnderecoSacado() { + return enderecoSacado; + } + + public void setEnderecoSacado(String enderecoSacado) { + this.enderecoSacado = enderecoSacado; + } + public String getSacadorAvalista() { + return sacadorAvalista; + } + public void setSacadorAvalista(String sacadorAvalista) { + this.sacadorAvalista = sacadorAvalista; + } + public String getNumeroInscricaoSacado() { + return numeroInscricaoSacado; + } + public void setNumeroInscricaoSacado(String numeroInscricaoSacado) { + this.numeroInscricaoSacado = numeroInscricaoSacado; + } + public String getAgenciaCobradora() { + return agenciaCobradora; + } + public void setAgenciaCobradora(String agenciaCobradora) { + this.agenciaCobradora = agenciaCobradora; + } + public String getDvAgencia() { + return dvAgencia; + } + public void setDvAgencia(String dvAgencia) { + this.dvAgencia = dvAgencia; + } + public String getCodigoEmpresa() { + return codigoEmpresa; + } + public void setCodigoEmpresa(String codigoEmpresa) { + this.codigoEmpresa = codigoEmpresa; + } + public BigDecimal getPercentualJuros() { + return percentualJuros; + } + public void setPercentualJuros(BigDecimal percentualJuros) { + this.percentualJuros = percentualJuros; + } + public BigDecimal getPercentualMulta() { + return percentualMulta; + } + public void setPercentualMulta(BigDecimal percentualMulta) { + this.percentualMulta = percentualMulta; + } + + +} diff --git a/src/com/rjconsultores/ventaboletos/blocos/sicoob/ArquivoRemessaSicoob.java b/src/com/rjconsultores/ventaboletos/blocos/sicoob/ArquivoRemessaSicoob.java new file mode 100644 index 000000000..ebb16ed45 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/blocos/sicoob/ArquivoRemessaSicoob.java @@ -0,0 +1,45 @@ +package com.rjconsultores.ventaboletos.blocos.sicoob; + +import java.util.ArrayList; + +import com.rjconsultores.ventaboletos.ArquivoRemessaItem; +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessa; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessaPadrao; + +public class ArquivoRemessaSicoob extends ArquivoRemessaItem { + + @Override + public void setCabecalhoRemessa(CabecalhoRemessa cabecalhoRemessa) { + + if(cabecalhoRemessa instanceof CabecalhoRemessaSicoob){ + super.setCabecalhoRemessa(cabecalhoRemessa); + }else{ + throw new ClassCastException("Somente cabecalho tipo: " + CabecalhoRemessaSicoob.class.getName()); + } + } + + @Override + public void addTitulo(DetalheObrigatorio titulo){ + if(this.titulos == null){ + this.titulos = new ArrayList(); + } + + if(titulo instanceof DetalheObrigatorioSicoob){ + + titulo.setNumeroSequencialRegistro(titulos.size() + 2); + + this.titulos.add(titulo); + }else{ + throw new ClassCastException("Somente cabecalho tipo: " + DetalheObrigatorioSicoob.class.getName()); + } + } + + @Override + public RodapeRemessa getRodapeRemessa() { + this.rodapeRemessa = this.rodapeRemessa == null ? new RodapeRemessaPadrao() : this.rodapeRemessa; + rodapeRemessa.setNumeroSequencialRegistro(titulos.size() + 2); + return rodapeRemessa; + } +} diff --git a/src/com/rjconsultores/ventaboletos/blocos/sicoob/CabecalhoLoteRemessaSicoob.java b/src/com/rjconsultores/ventaboletos/blocos/sicoob/CabecalhoLoteRemessaSicoob.java new file mode 100644 index 000000000..88f9ea8f6 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/blocos/sicoob/CabecalhoLoteRemessaSicoob.java @@ -0,0 +1,162 @@ +package com.rjconsultores.ventaboletos.blocos.sicoob; + +import java.util.Date; + +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; + +public class CabecalhoLoteRemessaSicoob implements CabecalhoRemessa{ + + private Integer codComp; + private Integer loteServico; + private Integer cpfCnpj; + private String numCpfCnpj; + private String numConvenio; + private String numCarteira; + private String numVarCarteira; + private String remessaTeste; + private String numAgencia; + private String digAgencia; + private String numContaCorrente; + private String digContaCorrente; + private String digAgenciaConta; + private String nomeEmpresa; + private String mensagem1; + private String mensagem2; + private Integer numeroRemessa; + private Date dataGeracao; + private Date dataCredito; + + public Integer getCpfCnpj() { + return cpfCnpj; + } + public void setCpfCnpj(Integer cpfCnpj) { + this.cpfCnpj = cpfCnpj; + } + public String getNumCpfCnpj() { + return numCpfCnpj; + } + public void setNumCpfCnpj(String numCpfCnpj) { + this.numCpfCnpj = numCpfCnpj; + } + public String getNumConvenio() { + return numConvenio; + } + public void setNumConvenio(String numConvenio) { + this.numConvenio = numConvenio; + } + public String getNumCarteira() { + return numCarteira; + } + public void setNumCarteira(String numCarteira) { + this.numCarteira = numCarteira; + } + public String getNumVarCarteira() { + return numVarCarteira; + } + public void setNumVarCarteira(String numVarCarteira) { + this.numVarCarteira = numVarCarteira; + } + public String getRemessaTesteID() { + return remessaTeste; + } + public void setRemessaTesteID(String remessaTeste) { + this.remessaTeste = remessaTeste; + } + public String getNumAgencia() { + return numAgencia; + } + public void setNumAgencia(String numAgencia) { + this.numAgencia = numAgencia; + } + public String getDigAgencia() { + return digAgencia; + } + public void setDigAgencia(String digAgencia) { + this.digAgencia = digAgencia; + } + public String getNumContaCorrente() { + return numContaCorrente; + } + public void setNumContaCorrente(String numContaCorrente) { + this.numContaCorrente = numContaCorrente; + } + public String getDigContaCorrente() { + return digContaCorrente; + } + public void setDigContaCorrente(String digContaCorrente) { + this.digContaCorrente = digContaCorrente; + } + public String getDigAgenciaConta() { + return digAgenciaConta; + } + public void setDigAgenciaConta(String digAgenciaConta) { + this.digAgenciaConta = digAgenciaConta; + } + public String getNomeEmpresa() { + return nomeEmpresa; + } + public void setNomeEmpresa(String nomeEmpresa) { + this.nomeEmpresa = nomeEmpresa; + } + public String getMensagem1() { + return mensagem1; + } + public void setMensagem1(String mensagem1) { + this.mensagem1 = mensagem1; + } + public String getMensagem2() { + return mensagem2; + } + public void setMensagem2(String mensagem2) { + this.mensagem2 = mensagem2; + } + public Integer getNumeroRemessa() { + return numeroRemessa; + } + public void setNumeroRemessa(Integer numeroRemessa) { + this.numeroRemessa = numeroRemessa; + } + public Date getDataGeracao() { + return dataGeracao; + } + public void setDataGeracao(Date dataGeracao) { + this.dataGeracao = dataGeracao; + } + public Date getDataCredito() { + return dataCredito; + } + public void setDataCredito(Date dataCredito) { + this.dataCredito = dataCredito; + } + public Integer getCodComp() { + return codComp; + } + public void setCodComp(Integer codComp) { + this.codComp = codComp; + } + public Integer getLoteServico() { + return loteServico; + } + public void setLoteServico(Integer loteServico) { + this.loteServico = loteServico; + } + @Override + public Integer getNumeroSequencialRemessa() { + return numeroRemessa; + } + @Override + public void setNumeroSequencialRemessa(Integer numeroSequencialRemessa) { + numeroRemessa = numeroSequencialRemessa; + + } + @Override + public Integer getNumeroSequencialRegistro() { + // TODO Auto-generated method stub + return null; + } + @Override + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro) { + // TODO Auto-generated method stub + + } +} diff --git a/src/com/rjconsultores/ventaboletos/blocos/sicoob/CabecalhoRemessaSicoob.java b/src/com/rjconsultores/ventaboletos/blocos/sicoob/CabecalhoRemessaSicoob.java new file mode 100644 index 000000000..d79de03ef --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/blocos/sicoob/CabecalhoRemessaSicoob.java @@ -0,0 +1,146 @@ +package com.rjconsultores.ventaboletos.blocos.sicoob; + +import java.util.Date; + +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; + +public class CabecalhoRemessaSicoob implements CabecalhoRemessa { + + private String codigoEmpresa; + private String nomeEmpresa; + private Date dataGravacao; + private Integer numeroSequencialRemessa; + private Integer numeroSequencialRegistro; + private Integer loteServico; + private Integer cpfCnpj; + private String numCpfCnpj; + private String numConvenio; + private String numAgencia; + private String digAgencia; + private String numContaCorrente; + private String digContaCorrente; + private Integer numRemessa; + + private CabecalhoLoteRemessaSicoob cabecalhoLoteRemessaSicoob; + + public String getCodigoEmpresa() { + return codigoEmpresa; + } + + public void setCodigoEmpresa(String codigoEmpresa) { + this.codigoEmpresa = codigoEmpresa; + } + + public String getNomeEmpresa() { + return nomeEmpresa; + } + + public void setNomeEmpresa(String nomeEmpresa) { + this.nomeEmpresa = nomeEmpresa; + } + + public Date getDataGravacao() { + return dataGravacao; + } + + public void setDataGravacao(Date dataGravacao) { + this.dataGravacao = dataGravacao; + } + + public Integer getNumeroSequencialRemessa() { + return numeroSequencialRemessa; + } + + public void setNumeroSequencialRemessa(Integer numeroSequencialRemessa) { + this.numeroSequencialRemessa = numeroSequencialRemessa; + } + + public Integer getNumeroSequencialRegistro() { + return numeroSequencialRegistro; + } + + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro) { + this.numeroSequencialRegistro = numeroSequencialRegistro; + } + + public Integer getLoteServico() { + return loteServico; + } + + public void setLoteServico(Integer loteServico) { + this.loteServico = loteServico; + } + + public Integer getCpfCnpj() { + return cpfCnpj; + } + + public void setCpfCnpj(Integer cpfCnpj) { + this.cpfCnpj = cpfCnpj; + } + + public String getNumCpfCnpj() { + return numCpfCnpj; + } + + public void setNumCpfCnpj(String numCpfCnpj) { + this.numCpfCnpj = numCpfCnpj; + } + + public String getNumConvenio() { + return numConvenio; + } + + public void setNumConvenio(String numConvenio) { + this.numConvenio = numConvenio; + } + + public String getNumAgencia() { + return numAgencia; + } + + public void setNumAgencia(String numAgencia) { + this.numAgencia = numAgencia; + } + + public String getDigAgencia() { + return digAgencia; + } + + public void setDigAgencia(String digAgencia) { + this.digAgencia = digAgencia; + } + + public String getNumContaCorrente() { + return numContaCorrente; + } + + public void setNumContaCorrente(String numContaCorrente) { + this.numContaCorrente = numContaCorrente; + } + + public String getDigContaCorrente() { + return digContaCorrente; + } + + public void setDigContaCorrente(String digContaCorrente) { + this.digContaCorrente = digContaCorrente; + } + + public Integer getNumRemessa() { + return numRemessa; + } + + public void setNumRemessa(Integer numRemessa) { + this.numRemessa = numRemessa; + } + + public CabecalhoLoteRemessaSicoob getCabecalhoLoteRemessaSicoob() { + return cabecalhoLoteRemessaSicoob; + } + + public void setCabecalhoLoteRemessaSicoob(CabecalhoLoteRemessaSicoob cabecalhoLoteRemessaSicoob) { + this.cabecalhoLoteRemessaSicoob = cabecalhoLoteRemessaSicoob; + } + +} diff --git a/src/com/rjconsultores/ventaboletos/blocos/sicoob/DetalheObrigatorioDadosPagadorSicoob.java b/src/com/rjconsultores/ventaboletos/blocos/sicoob/DetalheObrigatorioDadosPagadorSicoob.java new file mode 100644 index 000000000..896de8a85 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/blocos/sicoob/DetalheObrigatorioDadosPagadorSicoob.java @@ -0,0 +1,173 @@ +package com.rjconsultores.ventaboletos.blocos.sicoob; + +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; + +public class DetalheObrigatorioDadosPagadorSicoob implements DetalheObrigatorio, Cloneable{ + + + private Integer loteServico; + private Integer codigoRemessa; + private Integer numSeqRegistro; + private Integer tipoInscricaoSacado; + private String numeroInscricaoSacado; + private String nomeSacado; + private String logradouroSacado; + private String bairroSacado; + private Integer cepSacado; + private Integer sufixoCep; + private String cidade; + private String estado; + private Integer tipoSacadorAvalista; + private Integer sacadorAvalista; + private String nomeSacadorAvalista; + private Integer codBancoCorresp; + private String nossoNumeroNoBancoCorresp; + private Integer idBoletoFechamento; + + @Override + public void setIdBoletoFechamento(Integer id) { + idBoletoFechamento = id; + } + + @Override + public Integer getIdBoletoFechamento() { + return idBoletoFechamento; + } + + @Override + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro) { + numSeqRegistro = numeroSequencialRegistro; + } + + public Integer getNumeroSequencialRegistro() { + return numSeqRegistro; + } + + public Integer getTipoInscricaoSacado() { + return tipoInscricaoSacado; + } + + public void setTipoInscricaoSacado(Integer tipoInscricaoSacado) { + this.tipoInscricaoSacado = tipoInscricaoSacado; + } + + public String getNumeroInscricaoSacado() { + return numeroInscricaoSacado; + } + + public void setNumeroInscricaoSacado(String numeroInscricaoSacado) { + this.numeroInscricaoSacado = numeroInscricaoSacado; + } + + public String getNomeSacado() { + return nomeSacado; + } + + public void setNomeSacado(String nomeSacado) { + this.nomeSacado = nomeSacado; + } + + public String getLogradouroSacado() { + return logradouroSacado; + } + + public void setLogradouroSacado(String logradouroSacado) { + this.logradouroSacado = logradouroSacado; + } + + public String getBairroSacado() { + return bairroSacado; + } + + public void setBairroSacado(String bairroSacado) { + this.bairroSacado = bairroSacado; + } + + public Integer getCepSacado() { + return cepSacado; + } + + public void setCepSacado(Integer cepSacado) { + this.cepSacado = cepSacado; + } + + public Integer getSufixoCep() { + return sufixoCep; + } + + public void setSufixoCep(Integer sufixoCep) { + this.sufixoCep = sufixoCep; + } + + public String getCidade() { + return cidade; + } + + public void setCidade(String cidade) { + this.cidade = cidade; + } + + public String getEstado() { + return estado; + } + + public void setEstado(String estado) { + this.estado = estado; + } + + public Integer getTipoSacadorAvalista() { + return tipoSacadorAvalista; + } + + public void setTipoSacadorAvalista(Integer tipoSacadorAvalista) { + this.tipoSacadorAvalista = tipoSacadorAvalista; + } + + public Integer getSacadorAvalista() { + return sacadorAvalista; + } + + public void setSacadorAvalista(Integer sacadorAvalista) { + this.sacadorAvalista = sacadorAvalista; + } + + public String getNomeSacadorAvalista() { + return nomeSacadorAvalista; + } + + public void setNomeSacadorAvalista(String nomeSacadorAvalista) { + this.nomeSacadorAvalista = nomeSacadorAvalista; + } + + public Integer getCodBancoCorresp() { + return codBancoCorresp; + } + + public void setCodBancoCorresp(Integer codBancoCorresp) { + this.codBancoCorresp = codBancoCorresp; + } + + public String getNossoNumeroNoBancoCorresp() { + return nossoNumeroNoBancoCorresp; + } + + public void setNossoNumeroNoBancoCorresp(String nossoNumeroNoBancoCorresp) { + this.nossoNumeroNoBancoCorresp = nossoNumeroNoBancoCorresp; + } + + public Integer getLoteServico() { + return loteServico; + } + + public void setLoteServico(Integer loteServico) { + this.loteServico = loteServico; + } + + public Integer getCodigoRemessa() { + return codigoRemessa; + } + + public void setCodigoRemessa(Integer codigoRemessa) { + this.codigoRemessa = codigoRemessa; + } +} diff --git a/src/com/rjconsultores/ventaboletos/blocos/sicoob/DetalheObrigatorioSicoob.java b/src/com/rjconsultores/ventaboletos/blocos/sicoob/DetalheObrigatorioSicoob.java new file mode 100644 index 000000000..5e1d386be --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/blocos/sicoob/DetalheObrigatorioSicoob.java @@ -0,0 +1,352 @@ +package com.rjconsultores.ventaboletos.blocos.sicoob; + +import java.math.BigDecimal; +import java.util.Date; + +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.enuns.AceiteBB; + +public class DetalheObrigatorioSicoob implements DetalheObrigatorio, Cloneable { + + private Integer loteServico; + private Integer numSeqRegistro; + private String numAgencia; + private String digAgencia; + private String numContaCorrente; + private String digContaCorrente; + private String digAgenciaConta; + private String nossoNumero; + private Integer codCarteira; + private String formaCadTituloBanco; + private String tipoDocumento; + private String identEmissaoBloqueto; + private String identDistribuicao; + private String numeroDoDocumento; + private Date vencimento; + private BigDecimal valor; + private String agenciaCobradora; + private String digAgenciaCobradora; + private AceiteBB aceite; + private Date emissao; + private Integer codMora; + private Date dataMora; + private BigDecimal jurosDeMora; + private Integer codigoDesconto; + private Date dataDesconto; + private BigDecimal descontoConcedido; + private BigDecimal iofDevido; + private BigDecimal abatimentoConcedido; + private String nossoNumeroEmp; + private Integer codigoProtesto; + private Integer diasProtesto; + private Integer codigoBaixa; + private Integer diasBaixa; + private Integer numeroContrato; + private String usoExclusivo; + private Integer idBoletoFechamento; + + private DetalheObrigatorioDadosPagadorSicoob detalheObrigatorioDadosPagadorSicoob; + + public Integer getLoteServico() { + return loteServico; + } + + public void setLoteServico(Integer loteServico) { + this.loteServico = loteServico; + } + + public Integer getNumSeqRegistro() { + return numSeqRegistro; + } + + public void setNumSeqRegistro(Integer numSeqRegistro) { + this.numSeqRegistro = numSeqRegistro; + } + + public String getNumAgencia() { + return numAgencia; + } + + public void setNumAgencia(String numAgencia) { + this.numAgencia = numAgencia; + } + + public String getDigAgencia() { + return digAgencia; + } + + public void setDigAgencia(String digAgencia) { + this.digAgencia = digAgencia; + } + + public String getNumContaCorrente() { + return numContaCorrente; + } + + public void setNumContaCorrente(String numContaCorrente) { + this.numContaCorrente = numContaCorrente; + } + + public String getDigContaCorrente() { + return digContaCorrente; + } + + public void setDigContaCorrente(String digContaCorrente) { + this.digContaCorrente = digContaCorrente; + } + + public String getDigAgenciaConta() { + return digAgenciaConta; + } + + public void setDigAgenciaConta(String digAgenciaConta) { + this.digAgenciaConta = digAgenciaConta; + } + + public String getNossoNumero() { + return nossoNumero; + } + + public void setNossoNumero(String nossoNumero) { + this.nossoNumero = nossoNumero; + } + + public Integer getCodCarteira() { + return codCarteira; + } + + public void setCodCarteira(Integer codCarteira) { + this.codCarteira = codCarteira; + } + + public String getFormaCadTituloBanco() { + return formaCadTituloBanco; + } + + public void setFormaCadTituloBanco(String formaCadTituloBanco) { + this.formaCadTituloBanco = formaCadTituloBanco; + } + + public String getTipoDocumento() { + return tipoDocumento; + } + + public void setTipoDocumento(String tipoDocumento) { + this.tipoDocumento = tipoDocumento; + } + + public String getIdentEmissaoBloqueto() { + return identEmissaoBloqueto; + } + + public void setIdentEmissaoBloqueto(String identEmissaoBloqueto) { + this.identEmissaoBloqueto = identEmissaoBloqueto; + } + + public String getIdentDistribuicao() { + return identDistribuicao; + } + + public void setIdentDistribuicao(String identDistribuicao) { + this.identDistribuicao = identDistribuicao; + } + + public String getNumeroDoDocumento() { + return numeroDoDocumento; + } + + public void setNumeroDoDocumento(String numeroDoDocumento) { + this.numeroDoDocumento = numeroDoDocumento; + } + + public Date getVencimento() { + return vencimento; + } + + public void setVencimento(Date vencimento) { + this.vencimento = vencimento; + } + + public BigDecimal getValor() { + return valor; + } + + public void setValor(BigDecimal valor) { + this.valor = valor; + } + + public String getAgenciaCobradora() { + return agenciaCobradora; + } + + public void setAgenciaCobradora(String agenciaCobradora) { + this.agenciaCobradora = agenciaCobradora; + } + + public String getDigAgenciaCobradora() { + return digAgenciaCobradora; + } + + public void setDigAgenciaCobradora(String digAgenciaCobradora) { + this.digAgenciaCobradora = digAgenciaCobradora; + } + + public AceiteBB getAceite() { + return aceite; + } + + public void setAceite(AceiteBB aceite) { + this.aceite = aceite; + } + + public Date getEmissao() { + return emissao; + } + + public void setEmissao(Date emissao) { + this.emissao = emissao; + } + + public Integer getCodMora() { + return codMora; + } + + public void setCodMora(Integer codMora) { + this.codMora = codMora; + } + + public Date getDataMora() { + return dataMora; + } + + public void setDataMora(Date dataMora) { + this.dataMora = dataMora; + } + + public BigDecimal getJurosDeMora() { + return jurosDeMora; + } + + public void setJurosDeMora(BigDecimal jurosDeMora) { + this.jurosDeMora = jurosDeMora; + } + + public Integer getCodigoDesconto() { + return codigoDesconto; + } + + public void setCodigoDesconto(Integer codigoDesconto) { + this.codigoDesconto = codigoDesconto; + } + + public Date getDataDesconto() { + return dataDesconto; + } + + public void setDataDesconto(Date dataDesconto) { + this.dataDesconto = dataDesconto; + } + + public BigDecimal getDescontoConcedido() { + return descontoConcedido; + } + + public void setDescontoConcedido(BigDecimal descontoConcedido) { + this.descontoConcedido = descontoConcedido; + } + + public BigDecimal getAbatimentoConcedido() { + return abatimentoConcedido; + } + + public void setAbatimentoConcedido(BigDecimal abatimentoConcedido) { + this.abatimentoConcedido = abatimentoConcedido; + } + + public String getNossoNumeroEmp() { + return nossoNumeroEmp; + } + + public void setNossoNumeroEmp(String nossoNumeroEmp) { + this.nossoNumeroEmp = nossoNumeroEmp; + } + + public Integer getCodigoProtesto() { + return codigoProtesto; + } + + public void setCodigoProtesto(Integer codigoProtesto) { + this.codigoProtesto = codigoProtesto; + } + + public Integer getDiasProtesto() { + return diasProtesto; + } + + public void setDiasProtesto(Integer diasProtesto) { + this.diasProtesto = diasProtesto; + } + + public Integer getCodigoBaixa() { + return codigoBaixa; + } + + public void setCodigoBaixa(Integer codigoBaixa) { + this.codigoBaixa = codigoBaixa; + } + + public Integer getDiasBaixa() { + return diasBaixa; + } + + public void setDiasBaixa(Integer diasBaixa) { + this.diasBaixa = diasBaixa; + } + + public Integer getNumeroContrato() { + return numeroContrato; + } + + public void setNumeroContrato(Integer numeroContrato) { + this.numeroContrato = numeroContrato; + } + + public String getUsoExclusivo() { + return usoExclusivo; + } + + public void setUsoExclusivo(String usoExclusivo) { + this.usoExclusivo = usoExclusivo; + } + + public Integer getIdBoletoFechamento() { + return idBoletoFechamento; + } + + public void setIdBoletoFechamento(Integer idBoletoFechamento) { + this.idBoletoFechamento = idBoletoFechamento; + } + + public DetalheObrigatorioDadosPagadorSicoob getDetalheObrigatorioDadosPagadorSicoob() { + return detalheObrigatorioDadosPagadorSicoob; + } + + public void setDetalheObrigatorioDadosPagadorSicoob( + DetalheObrigatorioDadosPagadorSicoob detalheObrigatorioDadosPagadorSicoob) { + this.detalheObrigatorioDadosPagadorSicoob = detalheObrigatorioDadosPagadorSicoob; + } + + @Override + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro) { + // TODO Auto-generated method stub + + } + + public BigDecimal getIofDevido() { + return iofDevido; + } + + public void setIofDevido(BigDecimal iofDevido) { + this.iofDevido = iofDevido; + } +} diff --git a/src/com/rjconsultores/ventaboletos/blocos/sicoob/RodapeRemessaLoteSicoob.java b/src/com/rjconsultores/ventaboletos/blocos/sicoob/RodapeRemessaLoteSicoob.java new file mode 100644 index 000000000..48fafd55b --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/blocos/sicoob/RodapeRemessaLoteSicoob.java @@ -0,0 +1,33 @@ +package com.rjconsultores.ventaboletos.blocos.sicoob; + +import java.math.BigDecimal; + +import com.rjconsultores.ventaboletos.blocos.RodapeRemessa; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessaPadrao; + +public class RodapeRemessaLoteSicoob extends RodapeRemessaPadrao implements RodapeRemessa { + + private Integer loteServico; + private BigDecimal valorRegistros; + + public Integer getQtdRegistros(){ + return getNumeroSequencialRegistro(); + } + + public Integer getLoteServico() { + return loteServico; + } + + public void setLoteServico(Integer loteServico) { + this.loteServico = loteServico; + } + + public BigDecimal getValorRegistros() { + return valorRegistros; + } + + public void setValorRegistros(BigDecimal valorRegistros) { + this.valorRegistros = valorRegistros; + } + +} diff --git a/src/com/rjconsultores/ventaboletos/blocos/sicoob/RodapeRemessaSicoob.java b/src/com/rjconsultores/ventaboletos/blocos/sicoob/RodapeRemessaSicoob.java new file mode 100644 index 000000000..36b149b20 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/blocos/sicoob/RodapeRemessaSicoob.java @@ -0,0 +1,53 @@ +package com.rjconsultores.ventaboletos.blocos.sicoob; + +import com.rjconsultores.ventaboletos.blocos.RodapeRemessa; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessaPadrao; + +public class RodapeRemessaSicoob extends RodapeRemessaPadrao implements RodapeRemessa { + + private Integer loteServico; + private Integer qtdLotes; + private Integer qtdArquivos; + private Integer qtdContas; + private RodapeRemessaLoteSicoob rodapeRemessaLoteSicoob; + + public Integer getQtdLotes() { + return qtdLotes; + } + + public void setQtdLotes(Integer qtdLotes) { + this.qtdLotes = qtdLotes; + } + + public Integer getQtdArquivos() { + return qtdArquivos; + } + + public void setQtdArquivos(Integer qtdArquivos) { + this.qtdArquivos = qtdArquivos; + } + + public Integer getQtdContas() { + return qtdContas; + } + + public void setQtdContas(Integer qtdContas) { + this.qtdContas = qtdContas; + } + + public RodapeRemessaLoteSicoob getRodapeRemessaLoteSicoob() { + return rodapeRemessaLoteSicoob; + } + + public void setRodapeRemessaLoteSicoob(RodapeRemessaLoteSicoob rodapeRemessaLoteSicoob) { + this.rodapeRemessaLoteSicoob = rodapeRemessaLoteSicoob; + } + + public Integer getLoteServico() { + return loteServico; + } + + public void setLoteServico(Integer loteServico) { + this.loteServico = loteServico; + } +} diff --git a/src/com/rjconsultores/ventaboletos/enuns/AceiteBB.java b/src/com/rjconsultores/ventaboletos/enuns/AceiteBB.java new file mode 100644 index 000000000..8f8d6c6d6 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/enuns/AceiteBB.java @@ -0,0 +1,17 @@ +package com.rjconsultores.ventaboletos.enuns; + +public enum AceiteBB { + + ACEITE("A"), + NAO_ACEITE("N"); + + private AceiteBB(String value){ + this.value = value; + } + + private String value; + + public String getValue() { + return value; + } +} diff --git a/src/com/rjconsultores/ventaboletos/enuns/BancoLayout.java b/src/com/rjconsultores/ventaboletos/enuns/BancoLayout.java new file mode 100644 index 000000000..b940de1f1 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/enuns/BancoLayout.java @@ -0,0 +1,53 @@ +package com.rjconsultores.ventaboletos.enuns; + +public enum BancoLayout { + BRADESCO_400_Envio("237", false, "/layouts/LayoutBradescoCNAB400Envio.txg.xml"), + ITAU_400_Envio("341", false, "/layouts/LayoutItauCNAB400Envio.txg.xml"), + BB_240_Envio("001", false, "/layouts/LayoutBBCNAB240Envio.txg.xml"), + SICOOB_240_Envio("756", false, "/layouts/LayoutSicoobCNAB240Envio.txg.xml"), + SANTANDER_400_Envio("033", false, "/layouts/LayoutSantanderCNAB400Envio.txg.xml"), + MERCANTIL_400_Envio("389", false, "/layouts/LayoutMercantilCNAB400Envio.txg.xml"), + SANTANDER_400_Retorno("033", true, "/layouts/LayoutSantanderCNAB400Retorno.txg.xml"), + BRADESCO_400_Retorno("237", true, "/layouts/LayoutBradescoCNAB400Retorno.txg.xml"), + ITAU_400_Retorno("341", true, ""), + BB_240_Retorno("001", true, ""), + CAIXA_400_Envio("104", false, "/layouts/LayoutCaixaCNAB400Envio.txg.xml"); + + private BancoLayout(String codBanco, boolean retorno, String path) { + this.codBanco = codBanco; + this.retorno = retorno; + this.path = path; + } + + private String codBanco; + private boolean retorno; + private String path; + + public String getCodBanco() { + return codBanco; + } + + public boolean isRetorno() { + return retorno; + } + + public String getPath() { + return path; + } + + public String getTemp() { + return path.substring(path.lastIndexOf("/")); + } + + public static BancoLayout getInstanceByCodBanco(String codBanco){ + + for(BancoLayout o : BancoLayout.values()){ + + if(o.getCodBanco().equals(codBanco) && !o.isRetorno()){ + return o; + } + } + + return null; + } +} diff --git a/src/com/rjconsultores/ventaboletos/enuns/CarteiraSantander.java b/src/com/rjconsultores/ventaboletos/enuns/CarteiraSantander.java new file mode 100644 index 000000000..2dda5d7d5 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/enuns/CarteiraSantander.java @@ -0,0 +1,41 @@ +package com.rjconsultores.ventaboletos.enuns; + +public enum CarteiraSantander { + + ELETRONICA_REGISTRO(1,"ELETRONICA COM REGISTRO"), + CAUCIONADA_ELETRONICA(3,"CAUCIONADA ELETRONICA"), + COBRANCA_SEM_REGISTRO(4,"COBRANCA SEM REGISTRO"), + RAPIDA_COM_REGISTRO(5,"RAPIDA COM REGISTRO"), //(BLOQUETE EMITIDO PELO CLIENTE) + CAUCIONADA_RAPIDA(6,"CAUCIONADA RAPIDA"), + DESCONTADA_ELETRONICA(7,"DESCONTADA ELETRONICA"); + + private CarteiraSantander(Integer id, String label){ + this.id = id; + this.label = label; + } + + private Integer id; + private String label; + + public Integer getId() { + return id; + } + + public String getLabel() { + return label; + } + + public static CarteiraSantander getInstance(String id){ + + for(CarteiraSantander o : CarteiraSantander.values()){ + + if(o.getId().equals(id)){ + return o; + + } + } + + return null; + + } +} diff --git a/src/com/rjconsultores/ventaboletos/enuns/CarteiraSicoob.java b/src/com/rjconsultores/ventaboletos/enuns/CarteiraSicoob.java new file mode 100644 index 000000000..9882e7281 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/enuns/CarteiraSicoob.java @@ -0,0 +1,41 @@ +package com.rjconsultores.ventaboletos.enuns; + +public enum CarteiraSicoob { + + ELETRONICA_REGISTRO(1,"ELETRONICA COM REGISTRO"), + CAUCIONADA_ELETRONICA(3,"CAUCIONADA ELETRONICA"), + COBRANCA_SEM_REGISTRO(4,"COBRANCA SEM REGISTRO"), + RAPIDA_COM_REGISTRO(5,"RAPIDA COM REGISTRO"), //(BLOQUETE EMITIDO PELO CLIENTE) + CAUCIONADA_RAPIDA(6,"CAUCIONADA RAPIDA"), + DESCONTADA_ELETRONICA(7,"DESCONTADA ELETRONICA"); + + private CarteiraSicoob(Integer id, String label){ + this.id = id; + this.label = label; + } + + private Integer id; + private String label; + + public Integer getId() { + return id; + } + + public String getLabel() { + return label; + } + + public static CarteiraSicoob getInstance(String id){ + + for(CarteiraSicoob o : CarteiraSicoob.values()){ + + if(o.getId().equals(id)){ + return o; + + } + } + + return null; + + } +} diff --git a/src/com/rjconsultores/ventaboletos/enuns/MotivoOcorrenciaBradesco.java b/src/com/rjconsultores/ventaboletos/enuns/MotivoOcorrenciaBradesco.java new file mode 100644 index 000000000..7552cc876 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/enuns/MotivoOcorrenciaBradesco.java @@ -0,0 +1,333 @@ +package com.rjconsultores.ventaboletos.enuns; + +public enum MotivoOcorrenciaBradesco { + + //Ocorrência = 02 + EntConf_00("Ocorrência aceita"), + EntConf_01("Código do Banco inválido"), + EntConf_04("Código do movimento não permitido para a carteira"), + EntConf_15("Características da cobrança incompatíveis"), + EntConf_17("Data de vencimento anterior a data de emissão"), + EntConf_21("Espécie do Título inválido"), + EntConf_24("Data da emissão inválida"), + EntConf_27("Valor/taxa de juros mora inválido"), + EntConf_38("Prazo para protesto/ Negativação inválido"), + EntConf_39("Pedido para protesto/ Negativação não permitido para o título"), + EntConf_43("Prazo para baixa e devolução inválido"), + EntConf_45("Nome do Pagador inválido"), + EntConf_46("Tipo/num. de inscrição do Pagador inválidos"), + EntConf_47("Endereço do Pagador não informado"), + EntConf_48("CEP Inválido"), + EntConf_50("CEP referente a Banco correspondente"), + EntConf_53("Nº de inscrição do Pagador/avalista inválidos (CPF/CNPJ)"), + EntConf_54("Pagadorr/avalista não informado"), + EntConf_67("Débito automático agendado"), + EntConf_68("Débito não agendado - erro nos dados de remessa"), + EntConf_69("Débito não agendado - Pagador não consta no cadastro de autorizante"), + EntConf_70("Débito não agendado - Beneficiário não autorizado pelo Pagador"), + EntConf_71("Débito não agendado - Beneficiário não participa da modalidade de déb.automático"), + EntConf_72("Débito não agendado - Código de moeda diferente de R$"), + EntConf_73("Débito não agendado - Data de vencimento inválida/vencida"), + EntConf_75("Débito não agendado - Tipo do número de inscrição do pagador debitado inválido"), + EntConf_76("Pagador Eletrônico DDA - Esse motivo somente será disponibilizado no arquivo retorno para as empresas cadastradas nessa condição"), + EntConf_86("Seu número do documento inválido"), + EntConf_89("Email Pagador não enviado – título com débito automático"), + EntConf_90("Email pagador não enviado – título de cobrança sem registro"), + + //Ocorrência = 03 + EntReje_02("Código do registro detalhe inválido"), + EntReje_03("Código da ocorrência inválida"), + EntReje_04("Código de ocorrência não permitida para a carteira"), + EntReje_05("Código de ocorrência não numérico"), + EntReje_07("Agência/conta/Digito - |Inválido"), + EntReje_08("Nosso número inválido"), + EntReje_09("Nosso número duplicado"), + EntReje_10("Carteira inválida"), + EntReje_13("Identificação da emissão do bloqueto inválida"), + EntReje_16("Data de vencimento inválida"), + EntReje_18("Vencimento fora do prazo de operação"), + EntReje_20("Valor do Título inválido"), + EntReje_21("Espécie do Título inválida"), + EntReje_22("Espécie não permitida para a carteira"), + EntReje_24("Data de emissão inválida"), + EntReje_28("Código do desconto inválido"), + EntReje_38("Prazo para protesto/ Negativação inválido"), + EntReje_44("Agência Beneficiário não prevista"), + EntReje_45("Nome do pagador não informado"), + EntReje_46("Tipo/número de inscrição do pagador inválidos"), + EntReje_47("Endereço do pagador não informado"), + EntReje_48("CEP Inválido"), + EntReje_50("CEP irregular - Banco Correspondente"), + EntReje_63("Entrada para Título já cadastrado"), + EntReje_65("Limite excedido"), + EntReje_66("Número autorização inexistente"), + EntReje_68("Débito não agendado - erro nos dados de remessa"), + EntReje_69("Débito não agendado - Pagador não consta no cadastro de autorizante"), + EntReje_70("Débito não agendado - Beneficiário não autorizado pelo Pagador"), + EntReje_71("Débito não agendado - Beneficiário não participa do débito Automático"), + EntReje_72("Débito não agendado - Código de moeda diferente de R$"), + EntReje_73("Débito não agendado - Data de vencimento inválida"), + EntReje_74("Débito não agendado - Conforme seu pedido, Título não registrado"), + EntReje_75("Débito não agendado – Tipo de número de inscrição do debitado inválido"), + + //Ocorrência = 06 + Liquida_00("Título pago com dinheiro"), + Liquida_15("Título pago com cheque"), + Liquida_18("Pagamento Parcial"), + Liquida_42("Rateio não efetuado"), + + //Ocorrência = 09 + BaixAut_00("Ocorrência Aceita"), + BaixAut_10("Baixa Comandada pelo cliente"), + + //Ocorrência = 10 + BaixBan_00("Baixado Conforme Instruções da Agência"), + BaixBan_14("Título Protestado"), + BaixBan_15("Título excluído"), + BaixBan_16("Título Baixado pelo Banco por decurso Prazo"), + BaixBan_17("Titulo Baixado Transferido Carteira"), + BaixBan_20("Titulo Baixado e Transferido para Desconto"), + + //Ocorrência = 15 e 17 + LiquC_B_00("Título pago com dinheiro"), + LiquC_B_15("Título pago com cheque"), + + //Ocorrência = 24 + CEPIrre_48("CEP inválido"), + + //Ocorrência = 27 + BaixRej_04("Código de ocorrência não permitido para a carteira"), + BaixRej_07("Agência/Conta/dígito inválidos"), + BaixRej_08("Nosso número inválido"), + BaixRej_10("Carteira inválida"), + BaixRej_15("Carteira/Agência/Conta/nosso número inválidos"), + BaixRej_40("Título com ordem de protesto emitido"), + BaixRej_42("Código para baixa/devolução via Tele Bradesco inválido"), + BaixRej_60("Movimento para Título não cadastrado"), + BaixRej_77("Transferência para desconto não permitido para a carteira"), + BaixRej_85("Título com pagamento vinculado"), + + //Ocorrência = 28 + DebTari_02("Tarifa de permanência título cadastrado"), + DebTari_03("Tarifa de sustação/Excl Negativação"), + DebTari_04("Tarifa de protesto/Incl Negativação"), + DebTari_05("Tarifa de outras instruções"), + DebTari_06("Tarifa de outras ocorrências"), + DebTari_08("Custas de protesto"), + DebTari_12("Tarifa de registro"), + DebTari_13("Tarifa título pago no Bradesco"), + DebTari_14("Tarifa título pago compensação"), + DebTari_15("Tarifa título baixado não pago"), + DebTari_16("Tarifa alteração de vencimento"), + DebTari_17("Tarifa concessão abatimento"), + DebTari_18("Tarifa cancelamento de abatimento"), + DebTari_19("Tarifa concessão desconto"), + DebTari_20("Tarifa cancelamento desconto"), + DebTari_21("Tarifa título pago cics"), + DebTari_22("Tarifa título pago Internet"), + DebTari_23("Tarifa título pago term. gerencial serviços"), + DebTari_24("Tarifa título pago Pág-Contas"), + DebTari_25("Tarifa título pago Fone Fácil"), + DebTari_26("Tarifa título Déb. Postagem"), + DebTari_27("Tarifa impressão de títulos pendentes"), + DebTari_28("Tarifa título pago BDN"), + DebTari_29("Tarifa título pago Term. Multi Função"), + DebTari_30("Impressão de títulos baixados"), + DebTari_31("Impressão de títulos pagos"), + DebTari_32("Tarifa título pago Pagfor"), + DebTari_33("Tarifa reg/pgto – guichê caixa"), + DebTari_34("Tarifa título pago retaguarda"), + DebTari_35("Tarifa título pago Subcentro"), + DebTari_36("Tarifa título pago Cartão de Crédito"), + DebTari_37("Tarifa título pago Comp Eletrônica"), + DebTari_38("Tarifa título Baix. Pg. Cartório"), + DebTari_39("Tarifa título baixado acerto BCO"), + DebTari_40("Baixa registro em duplicidade"), + DebTari_41("Tarifa título baixado decurso prazo"), + DebTari_42("Tarifa título baixado Judicialmente"), + DebTari_43("Tarifa título baixado via remessa"), + DebTari_44("Tarifa título baixado rastreamento"), + DebTari_45("Tarifa título baixado conf. Pedido"), + DebTari_46("Tarifa título baixado protestado"), + DebTari_47("Tarifa título baixado p/ devolução"), + DebTari_48("Tarifa título baixado franco pagto"), + DebTari_49("Tarifa título baixado SUST/RET/CARTÓRIO"), + DebTari_50("Tarifa título baixado SUS/SEM/REM/CARTÓRIO"), + DebTari_51("Tarifa título transferido desconto"), + DebTari_52("Cobrado baixa manual"), + DebTari_53("Baixa por acerto cliente"), + DebTari_54("Tarifa baixa por contabilidade"), + DebTari_55("Tr. tentativa cons deb aut"), + DebTari_56("Tr. credito online"), + DebTari_57("Tarifa reg/pagto Bradesco Expresso"), + DebTari_58("Tarifa emissão Papeleta"), + DebTari_59("Tarifa fornec papeleta semi preenchida"), + DebTari_60("Acondicionador de papeletas (RPB)S"), + DebTari_61("Acond. De papelatas (RPB)s PERSONAL"), + DebTari_62("Papeleta formulário branco"), + DebTari_63("Formulário A4 serrilhado"), + DebTari_64("Fornecimento de softwares transmiss"), + DebTari_65("Fornecimento de softwares consulta"), + DebTari_66("Fornecimento Micro Completo"), + DebTari_67("Fornecimento MODEN"), + DebTari_68("Fornecimento de máquina FAX"), + DebTari_69("Fornecimento de máquinas óticas"), + DebTari_70("Fornecimento de Impressoras"), + DebTari_71("Reativação de título"), + DebTari_72("Alteração de produto negociado"), + DebTari_73("Tarifa emissão de contra recibo"), + DebTari_74("Tarifa emissão 2ª via papeleta"), + DebTari_75("Tarifa regravação arquivo retorno"), + DebTari_76("Arq. Títulos a vencer mensal"), + DebTari_77("Listagem auxiliar de crédito"), + DebTari_78("Tarifa cadastro cartela instrução permanente"), + DebTari_79("Canalização de Crédito"), + DebTari_80("Cadastro de Mensagem Fixa"), + DebTari_81("Tarifa reapresentação automática título"), + DebTari_82("Tarifa registro título déb. Automático"), + DebTari_83("Tarifa Rateio de Crédito"), + DebTari_84("Emissão papeleta sem valor"), + DebTari_85("Sem uso"), + DebTari_86("Cadastro de reembolso de diferença"), + DebTari_87("Relatório fluxo de pagto"), + DebTari_88("Emissão Extrato mov. Carteira"), + DebTari_89("Mensagem campo local de pagto"), + DebTari_90("Cadastro Concessionária serv. Publ."), + DebTari_91("Classif. Extrato Conta Corrente"), + DebTari_92("Contabilidade especial"), + DebTari_93("Realimentação pagto"), + DebTari_94("Repasse de Créditos"), + DebTari_96("Tarifa reg. Pagto outras mídias"), + DebTari_97("Tarifa Reg/Pagto – Net Empresa"), + DebTari_98("Tarifa título pago vencido"), + DebTari_99("TR Tít. Baixado por decurso prazo"), + DebTari_100("Arquivo Retorno Antecipado"), + DebTari_101("Arq retorno Hora/Hora"), + DebTari_102("TR. Agendamento Déb Aut"), + DebTari_105("TR. Agendamento rat. Crédito"), + DebTari_106("TR Emissão aviso rateio"), + DebTari_107("Extrato de protesto"), + + //Ocorrência = 29 + OcorPag_78("Pagador alega que faturamento e indevido"), + OcorPag_95("Pagador aceita/reconhece o faturamento"), + + //Ocorrência = 30 + AltDado_01("Código do Banco inválido"), + AltDado_04("Código de ocorrência não permitido para a carteira"), + AltDado_05("Código da ocorrência não numérico"), + AltDado_08("Nosso número inválido"), + AltDado_15("Característica da cobrança incompatível"), + AltDado_16("Data de vencimento inválido"), + AltDado_17("Data de vencimento anterior a data de emissão"), + AltDado_18("Vencimento fora do prazo de operação"), + AltDado_24("Data de emissão Inválida"), + AltDado_26("Código de juros de mora inválido"), + AltDado_27("Valor/taxa de juros de mora inválido"), + AltDado_28("Código de desconto inválido"), + AltDado_29("Valor do desconto maior/igual ao valor do Título"), + AltDado_30("Desconto a conceder não confere"), + AltDado_31("Concessão de desconto já existente"), + AltDado_32("Valor do IOF inválido"), + AltDado_33("Valor do abatimento inválido"), + AltDado_34("Valor do abatimento maior/igual ao valor do Título"), + AltDado_38("Prazo para protesto/ Negativação inválido"), + AltDado_39("Pedido para protesto/ Negativação não permitido para o título"), + AltDado_40("Título com ordem/pedido de protesto/Negativação emitido"), + AltDado_42("Código para baixa/devolução inválido"), + AltDado_46("Tipo/número de inscrição do pagador inválidos"), + AltDado_48("Cep Inválido"), + AltDado_53("Tipo/Número de inscrição do pagador/avalista inválidos"), + AltDado_54("Pagadorr/avalista não informado"), + AltDado_57("Código da multa inválido"), + AltDado_58("Data da multa inválida"), + AltDado_60("Movimento para Título não cadastrado"), + AltDado_79("Data de Juros de mora Inválida"), + AltDado_80("Data do desconto inválida"), + AltDado_85("Título com Pagamento Vinculado"), + AltDado_88("E-mail Pagador não lido no prazo 5 dias"), + AltDado_91("E-mail pagador não recebido"), + + //Ocorrência = 32 + InstRej_01("Código do Banco inválido"), + InstRej_02("Código do registro detalhe inválido"), + InstRej_04("Código de ocorrência não permitido para a carteira"), + InstRej_05("Código de ocorrência não numérico"), + InstRej_07("Agência/Conta/dígito inválidos"), + InstRej_08("Nosso número inválido"), + InstRej_10("Carteira inválida"), + InstRej_15("Características da cobrança incompatíveis"), + InstRej_16("Data de vencimento inválida"), + InstRej_17("Data de vencimento anterior a data de emissão"), + InstRej_18("Vencimento fora do prazo de operação"), + InstRej_20("Valor do título inválido"), + InstRej_21("Espécie do Título inválida"), + InstRej_22("Espécie não permitida para a carteira"), + InstRej_24("Data de emissão inválida"), + InstRej_28("Código de desconto via Telebradesco inválido"), + InstRej_29("Valor do desconto maior/igual ao valor do Título"), + InstRej_30("Desconto a conceder não confere"), + InstRej_31("Concessão de desconto - Já existe desconto anterior"), + InstRej_33("Valor do abatimento inválido"), + InstRej_34("Valor do abatimento maior/igual ao valor do Título"), + InstRej_36("Concessão abatimento - Já existe abatimento anterior"), + InstRej_38("Prazo para protesto/ Negativação inválido"), + InstRej_39("Pedido para protesto/ Negativação não permitido para o título"), + InstRej_40("Título com ordem/pedido de protesto/Negativação emitido"), + InstRej_41("Pedido de sustação/excl p/ Título sem instrução de protesto/Negativação"), + InstRej_42("Código para baixa/devolução inválido"), + InstRej_45("Nome do Pagador não informado"), + InstRej_46("Tipo/número de inscrição do Pagador inválidos"), + InstRej_47("Endereço do Pagador não informado"), + InstRej_48("CEP Inválido"), + InstRej_50("CEP referente a um Banco correspondente"), + InstRej_53("Tipo de inscrição do pagador avalista inválidos"), + InstRej_60("Movimento para Título não cadastrado"), + InstRej_85("Título com pagamento vinculado"), + InstRej_86("Seu número inválido"), + InstRej_94("Título Penhorado – Instrução Não Liberada pela Agência"), + InstRej_97("Instrução não permitida título negativado"), + InstRej_98("Inclusão Bloqueada face a determinação Judicial"), + InstRej_99("Telefone beneficiário não informado / inconsistente"), + + //Ocorrência = 35 + DesDedA_81("Tentativas esgotadas, baixado"), + DesDedA_82("Tentativas esgotadas, pendente"), + DesDedA_83(" Cancelado pelo Pagador e Mantido Pendente, conforme negociação"), + DesDedA_84("Cancelado pelo pagador e baixado, conforme negociação"); + + + private MotivoOcorrenciaBradesco (String motivo){ + this.motivo = motivo; + } + + private String motivo; + + public String getMotivo() { + return motivo; + } + + public String getLabelMotivo(){ + return this.name().substring(0, 7); + } + + public String getCodMotivo(){ + return this.name().substring(8); + } + + public static MotivoOcorrenciaBradesco getInstance(OcorrenciaBradesco o, String codMotivo){ + + String label = o.name() + "_" + codMotivo; + + for(MotivoOcorrenciaBradesco mo : MotivoOcorrenciaBradesco.values()){ + + if(mo.name().equals(label)){ + return mo; + } + + } + + return null; + } + +} diff --git a/src/com/rjconsultores/ventaboletos/enuns/MotivoOcorrenciaItau.java b/src/com/rjconsultores/ventaboletos/enuns/MotivoOcorrenciaItau.java new file mode 100644 index 000000000..eadf5f70b --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/enuns/MotivoOcorrenciaItau.java @@ -0,0 +1,152 @@ +package com.rjconsultores.ventaboletos.enuns; + +public enum MotivoOcorrenciaItau { + + Ocorrencia02_01("", "CEP SEM ATENDIMENTO DE PROTESTO NO MOMENTO"), + Ocorrencia02_02("", "ESTADO COM DETERMINAÇÃO LEGAL QUE IMPEDE A INSCRIÇÃO DE INADIMPLENTES NOS CADASTROS DE PROTEÇÃO AO CRÉDITO NO PRAZO SOLICITADO – PRAZO SUPERIOR AO SOLICITADO"), + Ocorrencia02_03("", "BOLETO NÃO LIQUIDADO NO DESCONTO DE DUPLICATAS E TRANSFERIDO PARA COBRANÇA SIMPLES"), + + Ocorrencia03_03("AG. COBRADORA", "CEP SEM ATENDIMENTO DE PROTESTO NO MOMENTO"), + Ocorrencia03_04("ESTADO", "SIGLA DO ESTADO INVÁLIDA 05 DATA VENCIMENTO PRAZO DA OPERAÇÃO MENOR QUE PRAZO MÍNIMO OU MAIOR QUE O MÁXIMO"), + Ocorrencia03_07("VALOR DO TÍTULO", "VALOR DO TÍTULO MAIOR QUE 10.000.000,00"), + Ocorrencia03_08("NOME DO PAGADOR", "NÃO INFORMADO OU DESLOCADO"), + Ocorrencia03_09("AGENCIA/CONTA", "AGÊNCIA ENCERRADA"), + Ocorrencia03_10("LOGRADOURO", "NÃO INFORMADO OU DESLOCADO"), + Ocorrencia03_11("CEP", "CEP NÃO NUMÉRICO OU CEP INVÁLIDO"), + Ocorrencia03_12("SACADOR / AVALISTA", "NOME NÃO INFORMADO OU DESLOCADO"), + Ocorrencia03_13("ESTADO/CEP", "CEP INCOMPATÍVEL COM A SIGLA DO ESTADO"), + Ocorrencia03_14("NOSSO NÚMERO", "NOSSO NÚMERO JÁ REGISTRADO NO CADASTRO DO BANCO OU FORA DA FAIXA"), + Ocorrencia03_15("NOSSO NÚMERO", "NOSSO NÚMERO EM DUPLICIDADE NO MESMO MOVIMENTO"), + Ocorrencia03_18("DATA DE ENTRADA", "DATA DE ENTRADA INVÁLIDA PARA OPERAR COM ESTA CARTEIRA"), + Ocorrencia03_19("OCORRÊNCIA", "OCORRÊNCIA INVÁLIDA"), + Ocorrencia03_21("AG. COBRADORA", "CARTEIRA NÃO ACEITA DEPOSITÁRIA CORRESPONDENTE ESTADO DA AGÊNCIA DIFERENTE DO ESTADO DO PAGADOR AG. COBRADORA NÃO CONSTA NO CADASTRO OU ENCERRANDO"), + Ocorrencia03_22("CARTEIRA", "CARTEIRA NÃO PERMITIDA"), + Ocorrencia03_26("AGÊNCIA/CONTA", "AGÊNCIA/CONTA NÃO LIBERADA PARA OPERAR COM COBRANÇA"), + Ocorrencia03_27("CNPJ INAPTO", "CNPJ DO BENEFICIÁRIO INAPTO - DEVOLUÇÃO DE TÍTULO EM GARANTIA"), + Ocorrencia03_29("CÓDIGO EMPRESA", "CATEGORIA DA CONTA INVÁLIDA"), + Ocorrencia03_30("ENTRADA BLOQUEADA", "ENTRADAS BLOQUEADAS, CONTA SUSPENSA EM COBRANÇA"), + Ocorrencia03_31("AGÊNCIA/CONTA", "CONTA NÃO TEM PERMISSÃO PARA PROTESTAR"), + Ocorrencia03_35("VALOR DO IOF", "IOF MAIOR QUE 5%"), + Ocorrencia03_36("QTDADE DE MOEDA", "QUANTIDADE DE MOEDA INCOMPATÍVEL COM VALOR DO TÍTULO"), + Ocorrencia03_37("CNPJ/CPF DO PAGADOR", "NÃO NUMÉRICO OU IGUAL A ZEROS"), + Ocorrencia03_42("NOSSO NÚMERO", "NOSSO NÚMERO FORA DE FAIXA"), + Ocorrencia03_52("AG. COBRADORA", "EMPRESA NÃO ACEITA BANCO CORRESPONDENTE"), + Ocorrencia03_53("AG. COBRADORA", "EMPRESA NÃO ACEITA BANCO CORRESPONDENTE - COBRANÇA MENSAGEM"), + Ocorrencia03_54("DATA DE VENCTO", "BANCO CORRESPONDENTE - TÍTULO COM VENCIMENTO INFERIOR A 15 DIAS"), + Ocorrencia03_55("DEP/BCO CORRESP", "CEP NÃO PERTENCE À DEPOSITÁRIA INFORMADA"), + Ocorrencia03_56("DT VENCTO/BCO CORRESP", "VENCTO SUPERIOR A 180 DIAS DA DATA DE ENTRADA"), + Ocorrencia03_57("DATA DE VENCTO", "CEP SÓ DEPOSITÁRIA BCO DO BRASIL COM VENCTO INFERIOR A 8 DIAS"), + Ocorrencia03_60("ABATIMENTO", "VALOR DO ABATIMENTO INVÁLIDO"), + Ocorrencia03_61("JUROS DE MORA", "JUROS DE MORA MAIOR QUE O PERMITIDO"), + Ocorrencia03_62("DESCONTO", "VALOR DO DESCONTO MAIOR QUE VALOR DO TÍTULO"), + Ocorrencia03_63("DESCONTO DE ANTECIPAÇÃO", "VALOR DA IMPORTÂNCIA POR DIA DE DESCONTO (IDD) NÃO PERMITIDO"), + Ocorrencia03_64("DATA DE EMISSÃO", "DATA DE EMISSÃO DO TÍTULO INVÁLIDA"), + Ocorrencia03_65("TAXA FINANCTO", "TAXA INVÁLIDA"), + Ocorrencia03_66("DATA DE VENCTO", "INVALIDA/FORA DE PRAZO DE OPERAÇÃO"), + Ocorrencia03_67("VALOR/QTIDADE", " VALOR DO TÍTULO/QUANTIDADE DE MOEDA INVÁLIDO"), + Ocorrencia03_68("CARTEIRA,CARTEIRA", "INVÁLIDA OU NÃO CADASTRADA NO INTERCÂMBIO DA COBRANÇA"), + Ocorrencia03_69("CARTEIRA CARTEIRA", "INVÁLIDA PARA TÍTULOS COM RATEIO DE CRÉDITO"), + Ocorrencia03_70("AGÊNCIA/CONTA", "BENEFICIÁRIO NÃO CADASTRADO PARA FAZER RATEIO DE CRÉDITO"), + Ocorrencia03_78("AGÊNCIA/CONTA", "DUPLICIDADE DE AGÊNCIA/CONTA BENEFICIÁRIA DO RATEIO DE CRÉDITO"), + Ocorrencia03_80("AGÊNCIA/CONTA", "QUANTIDADE DE CONTAS BENEFICIÁRIAS DO RATEIO MAIOR DO QUE O PERMITIDO"), + Ocorrencia03_81("AGÊNCIA/CONTA", "CONTA PARA RATEIO DE CRÉDITO INVÁLIDA / NÃO PERTENCE AO ITAÚ"), + Ocorrencia03_82("DESCONTO/ABATI-MENTO", "DESCONTO/ABATIMENTO NÃO PERMITIDO PARA TÍTULOS COM RATEIO DE CRÉDITO"), + Ocorrencia03_83("VALOR DO TÍTULO", "VALOR DO TÍTULO MENOR QUE A SOMA DOS VALORES ESTIPULADOS PARA RATEIO"), + Ocorrencia03_84("AGÊNCIA/CONTA", "AGÊNCIA/CONTA BENEFICIÁRIA DO RATEIO É A CENTRALIZADORA DE CRÉDITO DO BENEFICIÁRIO"), + Ocorrencia03_85("AGÊNCIA/CONTA", "AGÊNCIA/CONTA DO BENEFICIÁRIO É CONTRATUAL / RATEIO DE CRÉDITO NÃO PERMITIDO"), + Ocorrencia03_86("TIPO DE VALOR", "CÓDIGO DO TIPO DE VALOR INVÁLIDO / NÃO PREVISTO PARA TÍTULOS COM RATEIO DE CRÉDITO"), + Ocorrencia03_87("AGÊNCIA/CONTA", "REGISTRO TIPO 4 SEM INFORMAÇÃO DE AGÊNCIAS/CONTAS BENEFICIÁRIAS DO RATEIO"), + Ocorrencia03_90("NRO DA LINHA", "COBRANÇA MENSAGEM - NÚMERO DA LINHA DA MENSAGEM INVÁLIDO OU QUANTIDADE DE LINHAS EXCEDIDAS"), + Ocorrencia03_97("SEM MENSAGEM", "COBRANÇA MENSAGEM SEM MENSAGEM (SÓ DE CAMPOS FIXOS), PORÉM COM REGISTRO DO TIPO 7 OU 8"), + Ocorrencia03_98("FLASH INVÁLIDO", "REGISTRO MENSAGEM SEM FLASH CADASTRADO OU FLASH INFORMADO DIFERENTE DO CADASTRADO"), + Ocorrencia03_99("FLASH INVÁLIDO", "CONTA DE COBRANÇA COM FLASH CADASTRADO E SEM REGISTRO DE MENSAGEM CORRESPONDENTE"), + + Ocorrencia15_01("", "CARTEIRA/Nº NÚMERO NÃO NUMÉRICO"), + Ocorrencia15_04("", "NOSSO NÚMERO EM DUPLICIDADE NO MESMO MOVIMENTO"), + Ocorrencia15_05("", "SOLICITAÇÃO DE BAIXA PARA TÍTULO JÁ BAIXADO OU LIQUIDADO"), + Ocorrencia15_06("", "SOLICITAÇÃO DE BAIXA PARA TÍTULO NÃO REGISTRADO NO SISTEMA"), + Ocorrencia15_07("", "COBRANÇA PRAZO CURTO – SOLICITAÇÃO DE BAIXA P/ TÍTULO NÃO REGISTRADO NO SISTEMA"), + Ocorrencia15_08("", "SOLICITAÇÃO DE BAIXA PARA TÍTULO EM FLOATING"), + Ocorrencia15_10("", "VALOR DO TITULO FAZ PARTE DE GARANTIA DE EMPRESTIMO"), + Ocorrencia15_11("", "PAGO ATRAVÉS DO SISPAG POR CRÉDITO EM C/C E NÃO BAIXADO"), + + Ocorrencia16_01("", "INSTRUÇÃO/OCORRÊNCIA NÃO EXISTENTE"), + Ocorrencia16_03("", "CONTA NÃO TEM PERMISSÃO PARA PROTESTAR (CONTATE SEU GERENTE)"), + Ocorrencia16_06("", "NOSSO NÚMERO IGUAL A ZEROS"), + Ocorrencia16_09("", "CNPJ/CPF DO SACADOR/AVALISTA INVÁLIDO"), + Ocorrencia16_10("", "VALOR DO ABATIMENTO IGUAL OU MAIOR QUE O VALOR DO TÍTULO"), + Ocorrencia16_11("", "SEGUNDA INSTRUÇÃO/OCORRÊNCIA NÃO EXISTENTE"), + Ocorrencia16_14("", "REGISTRO EM DUPLICIDADE"), + Ocorrencia16_15("", "CNPJ/CPF INFORMADO SEM NOME DO SACADOR/AVALISTA"), + Ocorrencia16_19("", "VALOR DO ABATIMENTO MAIOR QUE 90% DO VALOR DO TÍTULO"), + Ocorrencia16_20("", "EXISTE SUSTACAO DE PROTESTO PENDENTE PARA O TITULO"), + Ocorrencia16_21("", "TÍTULO NÃO REGISTRADO NO SISTEMA"), + Ocorrencia16_22("", "TÍTULO BAIXADO OU LIQUIDADO"), + Ocorrencia16_23("", "INSTRUÇÃO NÃO ACEITA"), + Ocorrencia16_24("", "INSTRUÇÃO INCOMPATÍVEL – EXISTE INSTRUÇÃO DE PROTESTO PARA O TÍTULO"), + Ocorrencia16_25("", "INSTRUÇÃO INCOMPATÍVEL – NÃO EXISTE INSTRUÇÃO DE PROTESTO PARA O TÍTULO"), + Ocorrencia16_26("", "INSTRUÇÃO NÃO ACEITA POR JÁ TER SIDO EMITIDA A ORDEM DE PROTESTO AO CARTÓRIO"), + Ocorrencia16_27("", "INSTRUÇÃO NÃO ACEITA POR NÃO TER SIDO EMITIDA A ORDEM DE PROTESTO AO CARTÓRIO"), + Ocorrencia16_28("", "JÁ EXISTE UMA MESMA INSTRUÇÃO CADASTRADA ANTERIORMENTE PARA O TÍTULO"), + Ocorrencia16_29("", "VALOR LÍQUIDO + VALOR DO ABATIMENTO DIFERENTE DO VALOR DO TÍTULO REGISTRADO"), + Ocorrencia16_30("", "EXISTE UMA INSTRUÇÃO DE NÃO PROTESTAR ATIVA PARA O TÍTULO"), + Ocorrencia16_31("", "EXISTE UMA OCORRÊNCIA DO PAGADOR QUE BLOQUEIA A INSTRUÇÃO"), + Ocorrencia16_32("", "DEPOSITÁRIA DO TÍTULO = 9999 OU CARTEIRA NÃO ACEITA PROTESTO"), + Ocorrencia16_33("", "ALTERAÇÃO DE VENCIMENTO IGUAL À REGISTRADA NO SISTEMA OU QUE TORNA O TÍTULO VENCIDO"), + Ocorrencia16_34("", "INSTRUÇÃO DE EMISSÃO DE AVISO DE COBRANÇA PARA TÍTULO VENCIDO ANTES DO VENCIMENTO"), + Ocorrencia16_35("", "SOLICITAÇÃO DE CANCELAMENTO DE INSTRUÇÃO INEXISTENTE"), + Ocorrencia16_36("", "TÍTULO SOFRENDO ALTERAÇÃO DE CONTROLE (AGÊNCIA/CONTA/CARTEIRA/NOSSO NÚMERO)"), + Ocorrencia16_37("", "INSTRUÇÃO NÃO PERMITIDA PARA A CARTEIRA"), + Ocorrencia16_38("", "INSTRUÇÃO NÃO PERMITIDA PARA TÍTULO COM RATEIO DE CRÉDITO"), + Ocorrencia16_40("", "INSTRUÇÃO INCOMPATÍVEL – NÃO EXISTE INSTRUÇÃO DE NEGATIVAÇÃO EXPRESSA PARA O TÍTULO"), + Ocorrencia16_41("", "INSTRUÇÃO NÃO PERMITIDA – TÍTULO COM ENTRADA EM NEGATIVAÇÃO EXPRESSA"), + Ocorrencia16_42("", "INSTRUÇÃO NÃO PERMITIDA – TÍTULO COM NEGATIVAÇÃO EXPRESSA CONCLUÍDA"), + Ocorrencia16_43("", "PRAZO INVÁLIDO PARA NEGATIVAÇÃO EXPRESSA – MÍNIMO: 02 DIAS CORRIDOS APÓS O VENCIMENTO"), + Ocorrencia16_45("", "INSTRUÇÃO INCOMPATÍVEL PARA O MESMO TÍTULO NESTA DATA"), + Ocorrencia16_47("", "INSTRUÇÃO NÃO PERMITIDA – ESPÉCIE INVÁLIDA 48 DADOS DO PAGADOR INVÁLIDOS ( CPF / CNPJ / NOME )"), + Ocorrencia16_49("", "DADOS DO ENDEREÇO DO PAGADOR INVÁLIDOS 50 DATA DE EMISSÃO DO TÍTULO INVÁLIDA"), + Ocorrencia16_51("", "INSTRUÇÃO NÃO PERMITIDA – TÍTULO COM NEGATIVAÇÃO EXPRESSA AGENDADA"), + + Ocorrencia17_02("", "AGÊNCIA COBRADORA INVÁLIDA OU COM O MESMO CONTEÚDO"), + Ocorrencia17_04("", "SIGLA DO ESTADO INVÁLIDA"), + Ocorrencia17_05("", "DATA DE VENCIMENTO INVÁLIDA OU COM O MESMO CONTEÚDO"), + Ocorrencia17_06("", "VALOR DO TÍTULO COM OUTRA ALTERAÇÃO SIMULTÂNEA"), + Ocorrencia17_08("", "NOME DO PAGADOR COM O MESMO CONTEÚDO"), + Ocorrencia17_09("", "AGÊNCIA/CONTA INCORRETA"), + Ocorrencia17_11("", "CEP INVÁLIDO"), + Ocorrencia17_12("", "NÚMERO INSCRIÇÃO INVÁLIDO DO SACADOR AVALISTA"), + Ocorrencia17_13("", "SEU NÚMERO COM O MESMO CONTEÚDO"), + Ocorrencia17_16("", "ABATIMENTO/ALTERAÇÃO DO VALOR DO TÍTULO OU SOLICITAÇÃO DE BAIXA BLOQUEADA"), + Ocorrencia17_20("", "ESPÉCIE INVÁLIDA"), + Ocorrencia17_21("", "AGÊNCIA COBRADORA NÃO CONSTA NO CADASTRO DE DEPOSITÁRIA OU EM ENCERRAMENTO"), + Ocorrencia17_23("", "DATA DE EMISSÃO DO TÍTULO INVÁLIDA OU COM MESMO CONTEÚDO"), + Ocorrencia17_41("", "CAMPO ACEITE INVÁLIDO OU COM MESMO CONTEÚDO"), + Ocorrencia17_42("", "ALTERAÇÃO INVÁLIDA PARA TÍTULO VENCIDO"), + Ocorrencia17_43("", "ALTERAÇÃO BLOQUEADA – VENCIMENTO JÁ ALTERADO"), + Ocorrencia17_53("", "INSTRUÇÃO COM O MESMO CONTEÚDO"), + Ocorrencia17_54("", "DATA VENCIMENTO PARA BANCOS CORRESPONDENTES INFERIOR AO ACEITO PELO BANCO"), + Ocorrencia17_55("", "ALTERAÇÕES IGUAIS PARA O MESMO CONTROLE (AGÊNCIA/CONTA/CARTEIRA/NOSSO NÚMERO)"), + Ocorrencia17_56("", "CNPJ/CPF INVÁLIDO NÃO NUMÉRICO OU ZERADO"), + Ocorrencia17_57("", "PRAZO DE VENCIMENTO INFERIOR A 15 DIAS"), + Ocorrencia17_60("", "VALOR DE IOF – ALTERAÇÃO NÃO PERMITIDA PARA CARTEIRAS DE N.S. – MOEDA VARIÁVEL"), + Ocorrencia17_61("", "TÍTULO JÁ BAIXADO OU LIQUIDADO OU NÃO EXISTE TÍTULO CORRESPONDENTE NO SISTEMA"), + Ocorrencia17_66("", "ALTERAÇÃO NÃO PERMITIDA PARA CARTEIRAS DE NOTAS DE SEGUROS – MOEDA VARIÁVEL"), + Ocorrencia17_67("", "NOME INVÁLIDO DO SACADOR AVALISTA"), + Ocorrencia17_72("", "ENDEREÇO INVÁLIDO – SACADOR AVALISTA"), + Ocorrencia17_73("", "BAIRRO INVÁLIDO – SACADOR AVALISTA"), + Ocorrencia17_74("", "CIDADE INVÁLIDA – SACADOR AVALISTA"), + Ocorrencia17_75("", "SIGLA ESTADO INVÁLIDO – SACADOR AVALISTA"), + Ocorrencia17_76("", "CEP INVÁLIDO – SACADOR AVALISTA"), + Ocorrencia17_81("", "ALTERAÇÃO BLOQUEADA – TÍTULO COM NEGATIVAÇÃO EXPRESSA/PROTESTO"), + Ocorrencia17_87("", "ALTERAÇÃO BLOQUEADA – TÍTULO COM RATEIO DE CRÉDITO"), + + Ocorrencia18_16("", "ABATIMENTO/ALTERAÇÃO DO VALOR DO TÍTULO OU SOLICITAÇÃO DE BAIXA BLOQUEADOS"), + Ocorrencia18_40("", "NÃO APROVADA DEVIDO AO IMPACTO NA ELEGIBILIDADE DE GARANTIAS"), + Ocorrencia18_41("", "AUTOMATICAMENTE REJEITADA"), + Ocorrencia18_42("", "CONFIRMA RECEBIMENTO DE INSTRUÇÃO – PENDENTE DE ANÁLISE"); + + + private MotivoOcorrenciaItau(String campo, String msg) { + // TODO Auto-generated constructor stub + } +} diff --git a/src/com/rjconsultores/ventaboletos/enuns/OcorrenciaBradesco.java b/src/com/rjconsultores/ventaboletos/enuns/OcorrenciaBradesco.java new file mode 100644 index 000000000..b542a2ee5 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/enuns/OcorrenciaBradesco.java @@ -0,0 +1,48 @@ +package com.rjconsultores.ventaboletos.enuns; + +public enum OcorrenciaBradesco { + + EntConf("02","Entrada confirmada"), + EntReje("03","Entrada Rejeitada"), + Liquida("06","Liquidação"), + BaixAut("09","Baixado Automaticamente via Arquivo"), + BaixBan("10","Baixado pelo Banco"), + LiquC_B("15","Liquidação em cartório/Liquidação após baixa ou Título não registrado"), + CEPIrre("24","Entrada Rejeitada por CEP irregular"), + BaixRej("27","Baixa Rejeitada"), + DebTari("28","Débito de Tarifas/Custas"), + OcorPag("29","Ocorrência do Pagador"), + AltDado("30","Alteração de Outros Dados Rejeitados"), + InstRej("32","Instrução Rejeitada"), + DesDedA("35","Desagendamento do Débito Automático"); + + private OcorrenciaBradesco(String id, String label){ + this.id = id; + this.label = label; + } + + private String id; + private String label; + + public String getId() { + return id; + } + + public String getLabel() { + return label; + } + + public static OcorrenciaBradesco getInstance(String id){ + + for(OcorrenciaBradesco o : OcorrenciaBradesco.values()){ + + if(o.getId().equals(id)){ + return o; + + } + } + + return null; + + } +} diff --git a/src/com/rjconsultores/ventaboletos/enuns/OcorrenciaItau.java b/src/com/rjconsultores/ventaboletos/enuns/OcorrenciaItau.java new file mode 100644 index 000000000..c61117724 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/enuns/OcorrenciaItau.java @@ -0,0 +1,126 @@ +package com.rjconsultores.ventaboletos.enuns; + +public enum OcorrenciaItau { + + Ocorrencia02("02","ENTRADA CONFIRMADA COM POSSIBILIDADE DE MENSAGEM"), + Ocorrencia03("03","ENTRADA REJEITADA"), + Ocorrencia04("04","ALTERAÇÃO DE DADOS – NOVA ENTRADA OU ALTERAÇÃO/EXCLUSÃO DE DADOS ACATADA"), + Ocorrencia05("05","ALTERAÇÃO DE DADOS – BAIXA"), + Ocorrencia06("06","LIQUIDAÇÃO NORMAL"), + Ocorrencia07("07","LIQUIDAÇÃO PARCIAL – COBRANÇA INTELIGENTE"), + Ocorrencia08("08","LIQUIDAÇÃO EM CARTÓRIO 09 BAIXA SIMPLES"), + Ocorrencia10("10","BAIXA POR TER SIDO LIQUIDADO"), + Ocorrencia11("11","EM SER"), + Ocorrencia12("12","ABATIMENTO CONCEDIDO"), + Ocorrencia13("13","ABATIMENTO CANCELADO"), + Ocorrencia14("14","VENCIMENTO ALTERADO"), + Ocorrencia15("15","BAIXAS REJEITADAS"), + Ocorrencia16("16","INSTRUÇÕES REJEITADAS"), + Ocorrencia17("17","ALTERAÇÃO/EXCLUSÃO DE DADOS REJEITADOS"), + Ocorrencia18("18","COBRANÇA CONTRATUAL – INSTRUÇÕES/ALTERAÇÕES REJEITADAS/PENDENTES"), + Ocorrencia19("19","CONFIRMA RECEBIMENTO DE INSTRUÇÃO DE PROTESTO"), + Ocorrencia20("20","CONFIRMA RECEBIMENTO DE INSTRUÇÃO DE SUSTAÇÃO DE PROTESTO /TARIFA"), + Ocorrencia21("21","CONFIRMA RECEBIMENTO DE INSTRUÇÃO DE NÃO PROTESTAR"), + Ocorrencia23("23","TÍTULO ENVIADO A CARTÓRIO/TARIFA"), + Ocorrencia24("24","INSTRUÇÃO DE PROTESTO REJEITADA / SUSTADA / PENDENTE"), + Ocorrencia25("25","ALEGAÇÕES DO PAGADOR"), + Ocorrencia26("26","TARIFA DE AVISO DE COBRANÇA"), + Ocorrencia27("27","TARIFA DE EXTRATO POSIÇÃO"), + Ocorrencia28("28","TARIFA DE RELAÇÃO DAS LIQUIDAÇÕES"), + Ocorrencia29("29","TARIFA DE MANUTENÇÃO DE TÍTULOS VENCIDOS"), + Ocorrencia30("30","DÉBITO MENSAL DE TARIFAS (PARA ENTRADAS E BAIXAS),"), + Ocorrencia32("32","BAIXA POR TER SIDO PROTESTADO"), + Ocorrencia33("33","CUSTAS DE PROTESTO"), + Ocorrencia34("34","CUSTAS DE SUSTAÇÃO"), + Ocorrencia35("35","CUSTAS DE CARTÓRIO DISTRIBUIDOR"), + Ocorrencia36("36","CUSTAS DE EDITAL"), + Ocorrencia37("37","TARIFA DE EMISSÃO DE BOLETO/TARIFA DE ENVIO DE DUPLICATA"), + Ocorrencia38("38","TARIFA DE INSTRUÇÃO"), + Ocorrencia39("39","TARIFA DE OCORRÊNCIAS"), + Ocorrencia40("40","TARIFA MENSAL DE EMISSÃO DE BOLETO/TARIFA MENSAL DE ENVIO DE DUPLICATA"), + Ocorrencia41("41","DÉBITO MENSAL DE TARIFAS – EXTRATO DE POSIÇÃO (B4EP/B4OX),"), + Ocorrencia42("42","DÉBITO MENSAL DE TARIFAS – OUTRAS INSTRUÇÕES"), + Ocorrencia43("43","DÉBITO MENSAL DE TARIFAS – MANUTENÇÃO DE TÍTULOS VENCIDOS"), + Ocorrencia44("44","DÉBITO MENSAL DE TARIFAS – OUTRAS OCORRÊNCIAS"), + Ocorrencia45("45","DÉBITO MENSAL DE TARIFAS – PROTESTO"), + Ocorrencia46("46","DÉBITO MENSAL DE TARIFAS – SUSTAÇÃO DE PROTESTO"), + Ocorrencia47("47","BAIXA COM TRANSFERÊNCIA PARA DESCONTO"), + Ocorrencia48("48","CUSTAS DE SUSTAÇÃO JUDICIAL"), + Ocorrencia51("51","TARIFA MENSAL REF A ENTRADAS BANCOS CORRESPONDENTES NA CARTEIRA"), + Ocorrencia52("52","TARIFA MENSAL BAIXAS NA CARTEIRA"), + Ocorrencia53("53","TARIFA MENSAL BAIXAS EM BANCOS CORRESPONDENTES NA CARTEIRA"), + Ocorrencia54("54","TARIFA MENSAL DE LIQUIDAÇÕES NA CARTEIRA"), + Ocorrencia55("55","TARIFA MENSAL DE LIQUIDAÇÕES EM BANCOS CORRESPONDENTES NA CARTEIRA"), + Ocorrencia56("56","CUSTAS DE IRREGULARIDADE"), + Ocorrencia57("57","INSTRUÇÃO CANCELADA"), + Ocorrencia59("59","BAIXA POR CRÉDITO EM C/C ATRAVÉS DO SISPAG"), + Ocorrencia60("60","ENTRADA REJEITADA CARNÊ"), + Ocorrencia61("61","TARIFA EMISSÃO AVISO DE MOVIMENTAÇÃO DE TÍTULOS)"), + Ocorrencia62("62","DÉBITO MENSAL DE TARIFA – AVISO DE MOVIMENTAÇÃO DE TÍTULOS"), + Ocorrencia63("63","TÍTULO SUSTADO JUDICIALMENTE"), + Ocorrencia64("64","ENTRADA CONFIRMADA COM RATEIO DE CRÉDITO"), + Ocorrencia65("65","PAGAMENTO COM CHEQUE – AGUARDANDO COMPENSAÇÃO"), + Ocorrencia69("69","CHEQUE DEVOLVIDO"), + Ocorrencia71("71","ENTRADA REGISTRADA, AGUARDANDO AVALIAÇÃO"), + Ocorrencia72("72","BAIXA POR CRÉDITO EM C/C ATRAVÉS DO SISPAG SEM TÍTULO CORRESPONDENTE"), + Ocorrencia73("73","CONFIRMAÇÃO DE ENTRADA NA COBRANÇA SIMPLES – ENTRADA NÃO ACEITA NA COBRANÇA CONTRATUAL"), + Ocorrencia74("74","INSTRUÇÃO DE NEGATIVAÇÃO EXPRESSA REJEITADA"), + Ocorrencia75("75","CONFIRMAÇÃO DE RECEBIMENTO DE INSTRUÇÃO DE ENTRADA EM NEGATIVAÇÃO EXPRESSA"), + Ocorrencia76("76","CHEQUE COMPENSADO"), + Ocorrencia77("77","CONFIRMAÇÃO DE RECEBIMENTO DE INSTRUÇÃO DE EXCLUSÃO DE ENTRADA EM NEGATIVAÇÃO EXPRESSA"), + Ocorrencia78("78","CONFIRMAÇÃO DE RECEBIMENTO DE INSTRUÇÃO DE CANCELAMENTO DE NEGATIVAÇÃO EXPRESSA"), + Ocorrencia79("79","NEGATIVAÇÃO EXPRESSA INFORMACIONAL"), + Ocorrencia80("80","CONFIRMAÇÃO DE ENTRADA EM NEGATIVAÇÃO EXPRESSA – TARIFA"), + Ocorrencia82("82","CONFIRMAÇÃO DO CANCELAMENTO DE NEGATIVAÇÃO EXPRESSA – TARIFA"), + Ocorrencia83("83","CONFIRMAÇÃO DE EXCLUSÃO DE ENTRADA EM NEGATIVAÇÃO EXPRESSA POR LIQUIDAÇÃO – TARIFA"), + Ocorrencia85("85","TARIFA POR BOLETO (ATÉ 03 ENVIOS) COBRANÇA ATIVA ELETRÔNICA"), + Ocorrencia86("86","TARIFA EMAIL COBRANÇA ATIVA ELETRÔNICA"), + Ocorrencia87("87","TARIFA SMS COBRANÇA ATIVA ELETRÔNICA"), + Ocorrencia88("88","TARIFA MENSAL POR BOLETO (ATÉ 03 ENVIOS) COBRANÇA ATIVA ELETRÔNICA"), + Ocorrencia89("89","TARIFA MENSAL EMAIL COBRANÇA ATIVA ELETRÔNICA"), + Ocorrencia90("90","TARIFA MENSAL SMS COBRANÇA ATIVA ELETRÔNICA"), + Ocorrencia91("91","TARIFA MENSAL DE EXCLUSÃO DE ENTRADA DE NEGATIVAÇÃO EXPRESSA"), + Ocorrencia92("92","TARIFA MENSAL DE CANCELAMENTO DE NEGATIVAÇÃO EXPRESSA"), + Ocorrencia93("93","TARIFA MENSAL DE EXCLUSÃO DE NEGATIVAÇÃO EXPRESSA POR LIQUIDAÇÃO"); + + private OcorrenciaItau(String cod, String label) { + this.cod = cod; + this.label = label; + } + + private String cod; + private String label; + + public String getCod() { + return cod; + } + + public String getLabel() { + return label; + } + + public OcorrenciaItau getInstaceByCod(String cod){ + + + for (OcorrenciaItau oItau : values()) { + + if (oItau.getCod().equals(cod)) { + return oItau; + } + } + + return null; + } + + public OcorrenciaItau getInstaceByCod(int cod){ + + String codigo = ""; + if(cod < 10){ + codigo = "0" + cod; + }else{ + codigo = "" + cod; + } + + return getInstaceByCod(codigo); + } +} diff --git a/src/com/rjconsultores/ventaboletos/enuns/OcorrenciaMercantil.java b/src/com/rjconsultores/ventaboletos/enuns/OcorrenciaMercantil.java new file mode 100644 index 000000000..b4b8a635e --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/enuns/OcorrenciaMercantil.java @@ -0,0 +1,42 @@ +package com.rjconsultores.ventaboletos.enuns; + +public enum OcorrenciaMercantil { + + EntNor("01","REMESSA – ENTRADA NORMAL"), + PedCli("02","BAIXA – PEDIDO DO CLIENTE"), + ConAba("04","ALTERAÇÃO – CONCESSÃO DE ABATIMENTO"), + CanAba("05","ALTERAÇÃO – CANCELAMENTO DE ABATIMENTO"), + ProVen("06","ALTERAÇÃO – PRORROGAÇÃO DE VENCIMENTO"), + ConDes("07","CONCEDER DESCONTO DE R$"), + ProAvi("09","PROTESTAR SEM MAIS AVISO CONSULTA"); + + private OcorrenciaMercantil(String id, String label){ + this.id = id; + this.label = label; + } + + private String id; + private String label; + + public String getId() { + return id; + } + + public String getLabel() { + return label; + } + + public static OcorrenciaMercantil getInstance(String id){ + + for(OcorrenciaMercantil o : OcorrenciaMercantil.values()){ + + if(o.getId().equals(id)){ + return o; + + } + } + + return null; + + } +} diff --git a/src/com/rjconsultores/ventaboletos/enuns/OcorrenciaSantander.java b/src/com/rjconsultores/ventaboletos/enuns/OcorrenciaSantander.java new file mode 100644 index 000000000..ed042836a --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/enuns/OcorrenciaSantander.java @@ -0,0 +1,44 @@ +package com.rjconsultores.ventaboletos.enuns; + +public enum OcorrenciaSantander { + + ENTRADA_TITULO("01","ENTRADA DE TÍTULO"), + BAIXA_TITULO("02","BAIXA DE TÍTULO"), + CONCESSAO_ABATIMENTO("04","CONCESSÃO DE ABATIMENTO"), + CANCELAMENTO_ABATIMENTO("05","CANCELAMENTO ABATIMENTO"), + PRORROGACAO_VENCIMENTO("06","PRORROGAÇÃO DE VENCIMENTO"), + ALTERACAO_CEDENTE("07","ALT. NÚMERO CONT.CEDENTE"), + ALTERACAO_NUMERO("08","ALTERAÇÃO DO SEU NÚMERO"), + PROTESTAR("09","PROTESTAR"), + SUSTAR_PROTESTO("18","SUSTAR PROTESTO"); + + private OcorrenciaSantander(String id, String label){ + this.id = id; + this.label = label; + } + + private String id; + private String label; + + public String getId() { + return id; + } + + public String getLabel() { + return label; + } + + public static OcorrenciaSantander getInstance(String id){ + + for(OcorrenciaSantander o : OcorrenciaSantander.values()){ + + if(o.getId().equals(id)){ + return o; + + } + } + + return null; + + } +} diff --git a/src/com/rjconsultores/ventaboletos/enuns/TipoInscricaoPagador.java b/src/com/rjconsultores/ventaboletos/enuns/TipoInscricaoPagador.java new file mode 100644 index 000000000..1a5cb5c84 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/enuns/TipoInscricaoPagador.java @@ -0,0 +1,49 @@ +package com.rjconsultores.ventaboletos.enuns; + +public enum TipoInscricaoPagador { + + CPF("01"), + CNPJ("02"); + + private TipoInscricaoPagador(String id) { + + this.id = id; + } + + private String id; + + + public String getId() { + return id; + } + + @Override + public String toString() { + return getId(); + } + + public static TipoInscricaoPagador getInstanceById(String id){ + + for (TipoInscricaoPagador o : values()) { + if(o.getId().equalsIgnoreCase(id)){ + return o; + } + + } + + return null; + } + + public static TipoInscricaoPagador getInstanceByName(String name){ + + for (TipoInscricaoPagador o : values()) { + if(o.name().equalsIgnoreCase(name)){ + return o; + } + + } + + return null; + } + +} diff --git a/src/com/rjconsultores/ventaboletos/layouts/AbstractFlatFile.java b/src/com/rjconsultores/ventaboletos/layouts/AbstractFlatFile.java new file mode 100644 index 000000000..2814b6474 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/layouts/AbstractFlatFile.java @@ -0,0 +1,418 @@ +package com.rjconsultores.ventaboletos.layouts; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Date; +import java.util.List; + +import org.apache.commons.io.FileUtils; +import org.apache.commons.io.IOUtils; +import org.jrimum.texgit.FlatFile; +import org.jrimum.texgit.Record; +import org.jrimum.texgit.Texgit; +import org.jrimum.utilix.Collections; +import org.jrimum.utilix.Objects; +import org.jrimum.utilix.text.Strings; + +import com.rjconsultores.ventaboletos.ArquivoRemessa; +import com.rjconsultores.ventaboletos.ArquivoRemessaItemInteface; +import com.rjconsultores.ventaboletos.ArquivoRetorno; +import com.rjconsultores.ventaboletos.ArquivoRetornoItem; +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; +import com.rjconsultores.ventaboletos.blocos.CabecalhoRetorno; +import com.rjconsultores.ventaboletos.blocos.DadosBoleto; +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.blocos.DetalheRetorno; +import com.rjconsultores.ventaboletos.blocos.RateioDeCredito; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessa; +import com.rjconsultores.ventaboletos.blocos.RodapeRetorno; +import com.rjconsultores.ventaboletos.enuns.BancoLayout; + +/** + *

+ * Implementação base para classes utilizadoras do JRimum-Texgit . + *

+ * + * @author Gilmar P.S.L. + */ +public abstract class AbstractFlatFile{ + + //protected static Logger log = LoggerFactory.getLogger(AbstractFlatFile.class); + + /** + * Nome do arquivo xml de configuração. + */ + protected BancoLayout cfgFile; + + /** + * FlatFile Texgit. + */ + private FlatFile flatFile; + + /** + * Linhas do Arquivo + */ + private List lines = new ArrayList(); + + /** + * Construtor para inicializção com layout xml. + * + * @param cfgFile + * - nome do arquivo layout em xml. + */ + protected AbstractFlatFile(BancoLayout cfgFile) { + + init(cfgFile); + } + + /** + * Inicializador e validador do nome do e layout do arquivo. + * + * @param cfgFile + */ + protected final void init(BancoLayout cfgFile) { + + //Strings.checkNotBlank(cfgFile.getPath(), "Arquivo invalido!"); + + this.cfgFile = cfgFile; + + configure(); + } + + /** + * Retorna o Texgit flatfile da instância. + * + * @return the flatFile + */ + protected final FlatFile getFlatFile() { + + return flatFile; + } + + /** + * Configura o flat file a partir do nome do arquivo layout xml da instância + * procurando no classpath. + */ + private void configure() { + + InputStream in = null; + + try { + + //in = ClassLoaders.getResourceAsStream(cfgFile.getPath(), this.getClass()); + in = getClass().getResourceAsStream(cfgFile.getPath()); + + File config = File.createTempFile(cfgFile.getTemp(), null); + + copyInputStreamToFile(in, config); + + //FileUtils.copyInputStreamToFile(in, config); + + flatFile = Texgit.createFlatFile(config); + + } catch (Exception e) { + + throw new IllegalStateException(e); + + }finally { + + if (in != null) { + + try { + + in.close(); + + } catch (Exception e) { + e.printStackTrace(); + } + } + } + + Objects.checkNotNull(flatFile, "NAO FOI POSSIVEL INICIALIZAR A LIB TEXGIT!"); + } + + public void copyInputStreamToFile(InputStream initialStream, File targetFile) throws IOException { + + OutputStream outStream = new FileOutputStream(targetFile); + + byte[] buffer = new byte[8 * 1024]; + int bytesRead; + while ((bytesRead = initialStream.read(buffer)) != -1) { + outStream.write(buffer, 0, bytesRead); + } + + IOUtils.closeQuietly(initialStream); + IOUtils.closeQuietly(outStream); + +// Reader reader = new BufferedReader(new InputStreamReader(initialStream)); +// Writer writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(targetFile), "Cp1252")); +// +// char[] buffer = new char[8 * 1024]; +// int bytesRead; +// while ((bytesRead = reader.read(buffer)) != -1){ +// writer.write(buffer, 0, bytesRead); +// } +// +// IOUtils.closeQuietly(initialStream); +// IOUtils.closeQuietly(reader); +// IOUtils.closeQuietly(writer); + } + + /** + *

+ * Lê um arquivo do layout da instancia. + *

+ * + * @param lines + * linhas do arquivo + */ + @SuppressWarnings("unchecked") + public FF read(final List lines) { + + Collections.checkNotEmpty(lines, "Linhas ausentes!"); + + try { + + getFlatFile().read(lines); + + } catch (Exception e) { + e.printStackTrace(); + } + + return (FF) this; + } + + /** + *

+ * Lê um arquivo do layout da instancia com enconding UTF-8. + *

+ * + * @param file + * arquivo texto + */ + @SuppressWarnings("unchecked") + public FF read(final File file) { + + Objects.checkNotNull(file, "Arquivo TXT a ser importado nulo!"); + + try { + + getFlatFile().read(FileUtils.readLines(file)); + + } catch (Exception e) { + e.printStackTrace(); + } + + return (FF) this; + } + + /** + *

+ * Lê um arquivo do layout da instancia. + *

+ * + * @param file + * - Arquivo texto + * @param encoding + * - Econding em que o arquivo será lido + */ + @SuppressWarnings("unchecked") + public FF read(final File file, String encoding) { + + Objects.checkNotNull(file, "Arquivo TXT a ser importado nulo!"); + Strings.checkNotBlank(encoding, "Encoding inválido!"); + + try { + + getFlatFile().read(FileUtils.readLines(file, encoding)); + + } catch (IOException e) { + + e.printStackTrace(); + } + + return (FF) this; + } + + /** + *

+ * Escreve um arquivo do layout da instancia com enconding UTF-8. + *

+ * + * @return arquivo texto + * @throws IOException + */ + public File write() throws IOException { + + Objects.checkNotNull(getFlatFile(), "Arquivo TXT a ser importado nulo!"); + + File f = File.createTempFile(this.getClass().getName() + "" + + new Date().getTime(), "_jnfmtmp.txt"); + + FileUtils.writeLines(f, getFlatFile().write()); + + return f; + } + + /** + *

+ * Escreve um arquivo do layout da instancia. + *

+ * @param encoding - Econding em que o arquivo será escrito + * @return arquivo texto + * @throws IOException + */ + public File write(String encoding) throws IOException { + + if (getFlatFile() != null) { + + File f = File.createTempFile(this.getClass().getName() + "" + + new Date().getTime(), "_jnfmtmp.txt"); + + FileUtils.writeLines(f, getFlatFile().write(), encoding); + + return f; + + } else{ + + throw new IllegalArgumentException(new NullPointerException( + "Arquivo TXT a ser importado nulo!")); + } + } + + /** + *

+ * Escreve um arquivo do layout da instancia. + *

+ * @param arquivoRemessaFisico + * @throws IOException + */ + protected void write(File arquivoRemessaFisico) throws IOException{ + + if(arquivoRemessaFisico == null){ + throw new IllegalArgumentException(new NullPointerException( + "Arquivo TXT a ser importado nulo!")); + } + + FileUtils.writeLines(arquivoRemessaFisico, getFlatFile().write(), "\r\n"); + } + + protected void writeLines(File arquivoRemessaFisico) throws IOException{ + + if(arquivoRemessaFisico == null){ + throw new IllegalArgumentException(new NullPointerException( + "Arquivo TXT a ser importado nulo!")); + } + + FileUtils.writeLines(arquivoRemessaFisico, "Cp1252", this.lines, "\r\n"); + //FileUtils.writeLines(file, encoding, lines, lineEnding); + } + + protected void writeLines() throws IOException{ + this.lines.addAll(getFlatFile().write()); + + flatFile = null; + configure(); + } + + /** + * + * @param arquivoRemessaFisico + * @param arquivoRemessa + * @throws FileNotFoundException + * @throws IOException + */ + public List gerarRemessa(File arquivoRemessaFisico, ArquivoRemessa arquivoRemessa) throws FileNotFoundException, IOException{ + + //log.info("Gerando Remessa: " + cfgFile.name()); + //log.info("INICIO - Bloco de Header..."); + + if(arquivoRemessa != null && arquivoRemessa.getItens() != null) { + for(ArquivoRemessaItemInteface arquivoRemessaItem : arquivoRemessa.getItens()){ + createHeader(arquivoRemessaItem.getCabecalhoRemessa()); + //log.info("FIM - Bloco de Header..."); + + //log.info("INICIO - Bloco de Titulos..."); + for (DetalheObrigatorio titulo : arquivoRemessaItem.getTitulos()) { + createTransacaoTitulos(titulo); + } + //log.info("FIM - Bloco de Titulos..."); + + //log.info("INICIO - Bloco de Trailler..."); + createTrailler(arquivoRemessaItem.getRodapeRemessa()); + //log.info("FIM - Bloco de Trailler..."); + + //log.info("INICIO - Gerando arquivo..."); + writeLines(); + //log.info("FIM - Gerando arquivo..."); + } + + } + writeLines(arquivoRemessaFisico); + + return this.lines; + } + + + public ArquivoRetorno lerRetorno(File arquivoRetornoFisico) throws FileNotFoundException, IOException{ + + //log.info("Gerando Retorno: " + cfgFile.name()); + //log.info("INICIO - Bloco de Header..."); + + read(arquivoRetornoFisico); + + return loadInfo(); + } + + private ArquivoRetorno loadInfo() { + + ArquivoRetorno arquivoRetorno = new ArquivoRetorno(); + + Record header = getFlatFile().getRecord("Header"); + + ArquivoRetornoItem arquivoRetornoItem = new ArquivoRetornoItem(); + + arquivoRetornoItem.setCabecalhoRetorno(readHeader(header)); + + Collection registrosDeTransacoes = getFlatFile().getRecords( + "TransacaoTitulo"); + + List titulos = readTransacaoTitulos(registrosDeTransacoes); + + for(DetalheRetorno titulo : titulos){ + arquivoRetornoItem.addTitulo(titulo); + } + + + Record trailler = getFlatFile().getRecord("Trailler"); + + arquivoRetornoItem.setRodapeRetorno(readTrailler(trailler)); + + arquivoRetorno.addItem(arquivoRetornoItem); + + return arquivoRetorno; + } + + + protected abstract void createHeader(CabecalhoRemessa cabecalhoRemessaParam); + + protected abstract void createTransacaoTitulos(DetalheObrigatorio tituloParam); + + protected abstract Record createDadosBoletos(DadosBoleto boleto); + + protected abstract Record createRateioDeCredito(RateioDeCredito rateioDeCredito); + + protected abstract void createTrailler(RodapeRemessa trailler); + + protected abstract CabecalhoRetorno readHeader(Record header); + + protected abstract List readTransacaoTitulos(Collection registrosDeTransacoes); + + protected abstract RodapeRetorno readTrailler(Record trailler); +} diff --git a/src/com/rjconsultores/ventaboletos/layouts/BancoBrasilFlatFile.java b/src/com/rjconsultores/ventaboletos/layouts/BancoBrasilFlatFile.java new file mode 100644 index 000000000..99ce1a33e --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/layouts/BancoBrasilFlatFile.java @@ -0,0 +1,280 @@ +package com.rjconsultores.ventaboletos.layouts; + +import java.util.Collection; +import java.util.List; + +import org.jrimum.texgit.Record; + +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; +import com.rjconsultores.ventaboletos.blocos.CabecalhoRetorno; +import com.rjconsultores.ventaboletos.blocos.DadosBoleto; +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.blocos.DetalheRetorno; +import com.rjconsultores.ventaboletos.blocos.RateioDeCredito; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessa; +import com.rjconsultores.ventaboletos.blocos.RodapeRetorno; +import com.rjconsultores.ventaboletos.blocos.bancobrasil.CabecalhoLoteRemessaBancoBrasil; +import com.rjconsultores.ventaboletos.blocos.bancobrasil.CabecalhoRemessaBancoBrasil; +import com.rjconsultores.ventaboletos.blocos.bancobrasil.DetalheObrigatorioDadosPagadorBancoBrasil; +import com.rjconsultores.ventaboletos.blocos.bancobrasil.DetalheObrigatorioDadosTitulosBancoBrasil; +import com.rjconsultores.ventaboletos.blocos.bancobrasil.RodapeRemessaBancoBrasil; +import com.rjconsultores.ventaboletos.blocos.bancobrasil.RodapeRemessaLoteBancoBrasil; +import com.rjconsultores.ventaboletos.enuns.BancoLayout; +import com.rjconsultores.ventaboletos.utils.FormataUtil; + +public class BancoBrasilFlatFile extends AbstractFlatFile implements RemessaInterface { + + protected BancoBrasilFlatFile() { + super(BancoLayout.BB_240_Envio); + } + + @Override + protected void createHeader(CabecalhoRemessa cabecalhoRemessaParam) { + + Record header = getFlatFile().createRecord("HeaderArquivo"); + + CabecalhoRemessaBancoBrasil cabecalhoRemessa = (CabecalhoRemessaBancoBrasil) cabecalhoRemessaParam; + + //header.setValue("CodComp", FormataUtil.formatarValorPorTamanho("001", 3)); + if(cabecalhoRemessa.getLoteServico() != null){ + header.setValue("LoteServico", FormataUtil.formatarValorPorTamanhoZeroEsquerda(cabecalhoRemessa.getLoteServico().toString(), 4)); + } + //header.setValue("TipoRegistro", FormataUtil.formatarValorPorTamanho("0", 1)); + //header.setValue("UsoExclusivo", FormataUtil.formatarValorPorTamanho(" ", 9)); + header.setValue("CpfCnpj", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getCpfCnpj().toString(), 1)); + header.setValue("NumCpfCnpj", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNumCpfCnpj(), 14)); + header.setValue("NumConvenio", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNumConvenio(), 9)); + //header.setValue("CobrancaCedente", FormataUtil.formatarValorPorTamanho("0014", 4)); + header.setValue("NumCarteira", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNumCarteira(), 2)); + header.setValue("NumVarCarteira", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNumVarCarteira(), 3)); + //header.setValue("Brancos1", FormataUtil.formatarValorPorTamanho(" ", 2)); + header.setValue("NumAgencia", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNumAgencia(), 5)); + header.setValue("DigAgencia", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getDigAgencia(), 1)); + header.setValue("NumContaCorrente", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNumContaCorrente(), 12)); + header.setValue("DigContaCorrente", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getDigContaCorrente(), 1)); + header.setValue("DigAgenciaConta", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getDigAgenciaConta(), 1)); + header.setValue("NomeEmpresa", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNomeEmpresa(), 30)); + //header.setValue("NomeBanco", FormataUtil.formatarValorPorTamanho("BANCO DO BRASIL S.A.", 30)); + //header.setValue("Brancos3", FormataUtil.formatarValorPorTamanho(" ", 10)); + //header.setValue("RemessaRetorno", FormataUtil.formatarValorPorTamanho("1", 1)); + header.setValue("DataGeracao", FormataUtil.formataData(cabecalhoRemessa.getDataGeracao())); + header.setValue("HoraGeracao", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getHoraGeracao().toString(), 6)); + header.setValue("NumRemessa", FormataUtil.formatarValorPorTamanhoZeroEsquerda(cabecalhoRemessa.getNumeroSequencialRemessa().toString(), 6)); + //header.setValue("NumeroVersaoLayout", FormataUtil.formatarValorPorTamanho("083", 6)); + header.setValue("DensidadeArquivo", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getDensidadeArquivo(), 5)); + //header.setValue("Brancos4", FormataUtil.formatarValorPorTamanho(" ", 20)); + //header.setValue("Brancos5", FormataUtil.formatarValorPorTamanho(" ", 20)); + //header.setValue("Brancos6", FormataUtil.formatarValorPorTamanho(" ", 29)); + + getFlatFile().addRecord(header); + + createHeaderLote(cabecalhoRemessa.getCabecalhoLoteRemessaBancoBrasil()); + + } + + private void createHeaderLote(CabecalhoLoteRemessaBancoBrasil cabecalhoLote) { + + Record header = getFlatFile().createRecord("HeaderLote"); + + //header.setValue("CodComp", FormataUtil.formatarValorPorTamanho("001", 3)); + if(cabecalhoLote.getLoteServico() != null){ + header.setValue("LoteServico", FormataUtil.formatarValorPorTamanhoZeroEsquerda(cabecalhoLote.getLoteServico().toString(), 4)); + } + //header.setValue("TipoRegistro", FormataUtil.formatarValorPorTamanho("1", 1)); + //header.setValue("TipoOperacao", FormataUtil.formatarValorPorTamanho("R", 1)); + //header.setValue("TipoServico", FormataUtil.formatarValorPorTamanho("02", 2)); + //header.setValue("UsoExclusivo", FormataUtil.formatarValorPorTamanho(" ", 2)); + //header.setValue("NumeroVersaoLote", FormataUtil.formatarValorPorTamanho("042", 3)); + //header.setValue("UsoExclusivo1", FormataUtil.formatarValorPorTamanho(" ", 1)); + header.setValue("CpfCnpj", FormataUtil.formatarValorPorTamanho(cabecalhoLote.getCpfCnpj().toString(), 1)); + header.setValue("NumCpfCnpj", FormataUtil.formatarValorPorTamanho(cabecalhoLote.getNumCpfCnpj(), 15)); + header.setValue("NumConvenio", FormataUtil.formatarValorPorTamanho(cabecalhoLote.getNumConvenio(), 9)); + //header.setValue("CobrancaCedente", FormataUtil.formatarValorPorTamanho("0014", 4)); + header.setValue("NumCarteira", FormataUtil.formatarValorPorTamanho(cabecalhoLote.getNumCarteira(), 2)); + header.setValue("NumVarCarteira", FormataUtil.formatarValorPorTamanho(cabecalhoLote.getNumVarCarteira(), 3)); + header.setValue("RemessaTeste", FormataUtil.formatarValorPorTamanho(cabecalhoLote.getRemessaTesteID(), 2)); + header.setValue("NumAgencia", FormataUtil.formatarValorPorTamanho(cabecalhoLote.getNumAgencia(), 5)); + header.setValue("DigAgencia", FormataUtil.formatarValorPorTamanho(cabecalhoLote.getDigAgencia(), 1)); + header.setValue("NumContaCorrente", FormataUtil.formatarValorPorTamanho(cabecalhoLote.getNumContaCorrente(), 12)); + header.setValue("DigContaCorrente", FormataUtil.formatarValorPorTamanho(cabecalhoLote.getDigContaCorrente(), 1)); + header.setValue("DigAgenciaConta", FormataUtil.formatarValorPorTamanho(cabecalhoLote.getDigAgenciaConta(), 1)); + header.setValue("NomeEmpresa", FormataUtil.formatarValorPorTamanho(cabecalhoLote.getNomeEmpresa(), 30)); + //header.setValue("Mensagem1", FormataUtil.formatarValorPorTamanho("", 40)); + //header.setValue("Mensagem2", FormataUtil.formatarValorPorTamanho("", 40)); + header.setValue("NumeroRemessa", FormataUtil.formatarValorPorTamanhoZeroEsquerda(cabecalhoLote.getNumeroRemessa().toString(), 8)); + header.setValue("DataGeracao", FormataUtil.formataData(cabecalhoLote.getDataGeracao())); + header.setValue("DataCredito", FormataUtil.formataData(cabecalhoLote.getDataCredito())); + //header.setValue("UsoExclusivo2", FormataUtil.formatarValorPorTamanho(cabecalhoLote.getNomeEmpresa(), 33)); + + getFlatFile().addRecord(header); + } + + @Override + protected void createTransacaoTitulos(DetalheObrigatorio tituloParam) { + + Record transacaoTitulos = getFlatFile().createRecord("SegmentoP"); + + DetalheObrigatorioDadosTitulosBancoBrasil dadosTitulosBancoBrasil = (DetalheObrigatorioDadosTitulosBancoBrasil) tituloParam; + + //transacaoTitulos.setValue("IDReg", FormataUtil.formatarValorPorTamanho("001", 3)); + if(dadosTitulosBancoBrasil.getLoteServico() != null){ + transacaoTitulos.setValue("LoteServico", FormataUtil.formatarValorPorTamanhoZeroEsquerda(dadosTitulosBancoBrasil.getLoteServico().toString(), 4)); + } + //transacaoTitulos.setValue("TipoRegistro", FormataUtil.formatarValorPorTamanho("3", 1)); + transacaoTitulos.setValue("NumSeqRegistro", FormataUtil.formatarValorPorTamanhoZeroEsquerda(dadosTitulosBancoBrasil.getNumeroSequencialRegistro().toString(), 5)); + //transacaoTitulos.setValue("CodSegmento", FormataUtil.formatarValorPorTamanho("P", 1)); + //transacaoTitulos.setValue("Brancos1", FormataUtil.formatarValorPorTamanho(" ", 1)); + //transacaoTitulos.setValue("CodigoRemessa", FormataUtil.formatarValorPorTamanho("01", 2)); + transacaoTitulos.setValue("NumAgencia", FormataUtil.formatarValorPorTamanho(dadosTitulosBancoBrasil.getNumAgencia(), 5)); + transacaoTitulos.setValue("DigAgencia", FormataUtil.formatarValorPorTamanho(dadosTitulosBancoBrasil.getDigAgencia(), 1)); + transacaoTitulos.setValue("NumContaCorrente", FormataUtil.formatarValorPorTamanho(dadosTitulosBancoBrasil.getNumContaCorrente(), 12)); + transacaoTitulos.setValue("DigContaCorrente", FormataUtil.formatarValorPorTamanho(dadosTitulosBancoBrasil.getDigContaCorrente(), 1)); + transacaoTitulos.setValue("DigAgenciaConta", FormataUtil.formatarValorPorTamanho(dadosTitulosBancoBrasil.getDigAgenciaConta(), 1)); + transacaoTitulos.setValue("NossoNumero", FormataUtil.formatarValorPorTamanho(dadosTitulosBancoBrasil.getNossoNumeroBB(), 20)); + //transacaoTitulos.setValue("CodCarteira", FormataUtil.formatarValorPorTamanho("7", 1)); + //transacaoTitulos.setValue("FormaCadTituloBanco", FormataUtil.formatarValorPorTamanho("0", 1)); + //transacaoTitulos.setValue("TipoDocumento", FormataUtil.formatarValorPorTamanho("0", 1)); + //transacaoTitulos.setValue("IdentEmissaoBloqueto", FormataUtil.formatarValorPorTamanho("0", 1)); + //transacaoTitulos.setValue("IdentDistribuicao", FormataUtil.formatarValorPorTamanho("0", 1)); + transacaoTitulos.setValue("NumeroDoDocumento", FormataUtil.formatarValorPorTamanho(dadosTitulosBancoBrasil.getNumeroDoDocumento(), 15)); + transacaoTitulos.setValue("Vencimento", FormataUtil.formataData(dadosTitulosBancoBrasil.getVencimento())); + transacaoTitulos.setValue("Valor", dadosTitulosBancoBrasil.getValor()); + //transacaoTitulos.setValue("AgenciaCobradora", FormataUtil.formatarValorPorTamanho("00000", 5)); + //transacaoTitulos.setValue("DigAgenciaCobradora", FormataUtil.formatarValorPorTamanho(" ", 1)); + //transacaoTitulos.setValue("EspecieDeTitulo", FormataUtil.formatarValorPorTamanho("2", 1)); + transacaoTitulos.setValue("Aceite", dadosTitulosBancoBrasil.getAceite().getValue()); + transacaoTitulos.setValue("Emissao", FormataUtil.formataData(dadosTitulosBancoBrasil.getEmissao())); + transacaoTitulos.setValue("CodMora", FormataUtil.formatarValorPorTamanho(dadosTitulosBancoBrasil.getCodMora().toString(), 1)); + transacaoTitulos.setValue("DataMora", FormataUtil.formataDataToString(dadosTitulosBancoBrasil.getDataMora(), "00000000")); + transacaoTitulos.setValue("JurosDeMora", dadosTitulosBancoBrasil.getJurosDeMora()); + transacaoTitulos.setValue("CodigoDesconto", FormataUtil.formatarValorPorTamanho(dadosTitulosBancoBrasil.getCodigoDesconto().toString(), 1)); + transacaoTitulos.setValue("DataDesconto", FormataUtil.formataDataToString(dadosTitulosBancoBrasil.getDataDesconto(), "00000000")); + transacaoTitulos.setValue("DescontoConcedido", dadosTitulosBancoBrasil.getDescontoConcedido()); + transacaoTitulos.setValue("IOF_Devido", dadosTitulosBancoBrasil.getIOF_Devido()); + transacaoTitulos.setValue("AbatimentoConcedido", dadosTitulosBancoBrasil.getAbatimentoConcedido()); + transacaoTitulos.setValue("NossoNumeroEmp", FormataUtil.formatarValorPorTamanho(dadosTitulosBancoBrasil.getNossoNumeroEmp(), 25)); + transacaoTitulos.setValue("CodigoProtesto", FormataUtil.formatarValorPorTamanho(dadosTitulosBancoBrasil.getCodigoProtesto().toString(), 1)); + transacaoTitulos.setValue("DiasProtesto", FormataUtil.formatarValorPorTamanho(dadosTitulosBancoBrasil.getDiasProtesto().toString(), 2)); + //transacaoTitulos.setValue("CodigoBaixa", FormataUtil.formatarValorPorTamanho("0", 1)); + //transacaoTitulos.setValue("DiasBaixa", FormataUtil.formatarValorPorTamanho("000", 3)); + //transacaoTitulos.setValue("Moeda", FormataUtil.formatarValorPorTamanho("09", 2)); + transacaoTitulos.setValue("NumeroContrato", FormataUtil.formatarValorPorTamanhoZeroEsquerda(dadosTitulosBancoBrasil.getNumeroContrato().toString(), 10)); + //transacaoTitulos.setValue("UsoExclusivo", FormataUtil.formatarValorPorTamanho("0", 1)); + + getFlatFile().addRecord(transacaoTitulos); + createTransacaoTitulosSeguimentoQ(transacaoTitulos, dadosTitulosBancoBrasil.getDetalheObrigatorioDadosPagadorBancoBrasil()); + + } + + private void createTransacaoTitulosSeguimentoQ(Record recordFather, DetalheObrigatorioDadosPagadorBancoBrasil dadosPagadorBancoBrasil) { + + Record transacaoTitulos = getFlatFile().createRecord("SegmentoQ"); + + //transacaoTitulos.setValue("IDReg", FormataUtil.formatarValorPorTamanho("001", 3)); + if(dadosPagadorBancoBrasil.getLoteServico() != null){ + transacaoTitulos.setValue("LoteServico", FormataUtil.formatarValorPorTamanhoZeroEsquerda(dadosPagadorBancoBrasil.getLoteServico().toString(), 4)); + } + //transacaoTitulos.setValue("TipoRegistro", FormataUtil.formatarValorPorTamanho("3", 1)); + transacaoTitulos.setValue("NumSeqRegistro", FormataUtil.formatarValorPorTamanhoZeroEsquerda(dadosPagadorBancoBrasil.getNumeroSequencialRegistro().toString(), 5)); + //transacaoTitulos.setValue("CodSegmento", FormataUtil.formatarValorPorTamanho("Q", 1)); + transacaoTitulos.setValue("Brancos1", FormataUtil.formatarValorPorTamanho(" ", 1)); + transacaoTitulos.setValue("CodigoRemessa", FormataUtil.formatarValorPorTamanho("01", 2)); + transacaoTitulos.setValue("TipoInscricaoSacado", FormataUtil.formatarValorPorTamanho(dadosPagadorBancoBrasil.getTipoInscricaoSacado().toString(), 1)); + transacaoTitulos.setValue("NumeroInscricaoSacado", FormataUtil.formatarValorPorTamanho(dadosPagadorBancoBrasil.getNumeroInscricaoSacado(), 15)); + transacaoTitulos.setValue("NomeSacado", FormataUtil.formatarValorPorTamanho(dadosPagadorBancoBrasil.getNomeSacado(), 40)); + transacaoTitulos.setValue("LogradouroSacado", FormataUtil.formatarValorPorTamanho(dadosPagadorBancoBrasil.getLogradouroSacado(), 40)); + transacaoTitulos.setValue("BairroSacado", FormataUtil.formatarValorPorTamanho(dadosPagadorBancoBrasil.getBairroSacado(), 15)); + transacaoTitulos.setValue("CepSacado", FormataUtil.formatarValorPorTamanhoZeroEsquerda(dadosPagadorBancoBrasil.getCepSacado().toString(), 5)); + transacaoTitulos.setValue("SufixoCep", FormataUtil.formatarValorPorTamanhoZeroEsquerda(dadosPagadorBancoBrasil.getSufixoCep().toString(), 3)); + transacaoTitulos.setValue("Cidade", FormataUtil.formatarValorPorTamanho(dadosPagadorBancoBrasil.getCidade(), 15)); + transacaoTitulos.setValue("Estado", FormataUtil.formatarValorPorTamanho(dadosPagadorBancoBrasil.getEstado(), 2)); + try{ + transacaoTitulos.setValue("TipoSacadorAvalista", FormataUtil.formatarValorPorTamanho(dadosPagadorBancoBrasil.getTipoSacadorAvalista().toString(), 1)); + transacaoTitulos.setValue("SacadorAvalista", FormataUtil.formatarValorPorTamanho(dadosPagadorBancoBrasil.getSacadorAvalista().toString(), 15)); + transacaoTitulos.setValue("NomeSacadorAvalista", FormataUtil.formatarValorPorTamanho(dadosPagadorBancoBrasil.getNomeSacadorAvalista(), 40)); + }catch(Exception e){ + + } + try{ + transacaoTitulos.setValue("CodBancoCorresp", FormataUtil.formatarValorPorTamanho(dadosPagadorBancoBrasil.getCodBancoCorresp().toString(), 3)); + }catch(Exception e){ + + } + transacaoTitulos.setValue("NossoNumeroNoBancoCorresp", FormataUtil.formatarValorPorTamanho(dadosPagadorBancoBrasil.getNossoNumeroNoBancoCorresp(), 20)); + //transacaoTitulos.setValue("UsoExclusivo", FormataUtil.formatarValorPorTamanho(" ", 8)); + + recordFather.addInnerRecord(transacaoTitulos); + } + + @Override + protected Record createDadosBoletos(DadosBoleto boleto) { + throw new UnsupportedOperationException("Não necessário..."); + } + + @Override + protected Record createRateioDeCredito(RateioDeCredito rateioDeCredito) { + throw new UnsupportedOperationException("Não necessário..."); + } + + @Override + protected void createTrailler(RodapeRemessa trailler) { + + RodapeRemessaBancoBrasil rodapeRemessaBancoBrasil = (RodapeRemessaBancoBrasil) trailler; + + createTraillerLote(rodapeRemessaBancoBrasil.getRodapeRemessaLoteBancoBrasil()); + + Record traillerArquivo = getFlatFile().createRecord("TraillerArquivo"); + + String loteValue = getFlatFile().getRecord("HeaderArquivo").getValue("LoteServico").toString(); + + //traillerArquivo.setValue("IDReg", FormataUtil.formatarValorPorTamanho("001", 3)); + if(!loteValue.equals("0000")){ + traillerArquivo.setValue("LoteServico", FormataUtil.formatarValorPorTamanhoZeroEsquerda(loteValue, 4)); + }else{ + //traillerArquivo.setValue("LoteServico", FormataUtil.formatarValorPorTamanho("9999", 4)); + } + //traillerArquivo.setValue("TipoRegistro", FormataUtil.formatarValorPorTamanho("9", 1)); + //traillerArquivo.setValue("UsoExclusivo1", FormataUtil.formatarValorPorTamanho(" ", 9)); + traillerArquivo.setValue("QtdLotes", FormataUtil.formatarValorPorTamanhoZeroEsquerda(rodapeRemessaBancoBrasil.getQtdLotes().toString(), 6)); + traillerArquivo.setValue("QtdArquivos", FormataUtil.formatarValorPorTamanhoZeroEsquerda(rodapeRemessaBancoBrasil.getQtdArquivos().toString(), 6)); + traillerArquivo.setValue("QtdContas", FormataUtil.formatarValorPorTamanhoZeroEsquerda(rodapeRemessaBancoBrasil.getQtdContas().toString(), 6)); + //traillerArquivo.setValue("UsoExclusivo2", FormataUtil.formatarValorPorTamanho(" ", 205)); + + getFlatFile().addRecord(traillerArquivo); + + } + + private void createTraillerLote(RodapeRemessaLoteBancoBrasil rodapeRemessaLoteBancoBrasil) { + + + Record traillerArquivo = getFlatFile().createRecord("TraillerLote"); + + //traillerArquivo.setValue("IDReg", FormataUtil.formatarValorPorTamanho("001", 3)); + traillerArquivo.setValue("LoteServico", FormataUtil.formatarValorPorTamanhoZeroEsquerda(rodapeRemessaLoteBancoBrasil.getLoteServico().toString(), 4)); + //traillerArquivo.setValue("TipoRegistro", FormataUtil.formatarValorPorTamanho("5", 1)); + //traillerArquivo.setValue("UsoExclusivo1", FormataUtil.formatarValorPorTamanho(" ", 9)); + traillerArquivo.setValue("QtdRegistros", FormataUtil.formatarValorPorTamanhoZeroEsquerda(rodapeRemessaLoteBancoBrasil.getQtdRegistros().toString(), 6)); + //traillerArquivo.setValue("UsoExclusivo2", FormataUtil.formatarValorPorTamanho(" ", 217)); + + getFlatFile().addRecord(traillerArquivo); + } + + @Override + protected CabecalhoRetorno readHeader(Record header) { + // TODO Auto-generated method stub + return null; + } + + @Override + protected List readTransacaoTitulos(Collection registrosDeTransacoes) { + // TODO Auto-generated method stub + return null; + } + + @Override + protected RodapeRetorno readTrailler(Record trailler) { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/src/com/rjconsultores/ventaboletos/layouts/BradescoFlatFile.java b/src/com/rjconsultores/ventaboletos/layouts/BradescoFlatFile.java new file mode 100644 index 000000000..8f3f166ba --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/layouts/BradescoFlatFile.java @@ -0,0 +1,153 @@ +package com.rjconsultores.ventaboletos.layouts; + +import java.util.Collection; +import java.util.List; + +import org.jrimum.texgit.Record; + +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; +import com.rjconsultores.ventaboletos.blocos.CabecalhoRetorno; +import com.rjconsultores.ventaboletos.blocos.DadosBoleto; +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.blocos.DetalheRetorno; +import com.rjconsultores.ventaboletos.blocos.RateioDeCredito; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessa; +import com.rjconsultores.ventaboletos.blocos.RodapeRetorno; +import com.rjconsultores.ventaboletos.blocos.bradesco.CabecalhoRemessaBradesco; +import com.rjconsultores.ventaboletos.blocos.bradesco.DetalheObrigatorioBradesco; +import com.rjconsultores.ventaboletos.enuns.BancoLayout; +import com.rjconsultores.ventaboletos.utils.FormataUtil; + +public class BradescoFlatFile extends AbstractFlatFile implements RemessaInterface { + + public BradescoFlatFile() { + super(BancoLayout.BRADESCO_400_Envio); + } + + @Override + protected void createHeader(CabecalhoRemessa cabecalhoRemessaParam) { + + Record header = getFlatFile().createRecord("Header"); + + CabecalhoRemessaBradesco cabecalhoRemessa = (CabecalhoRemessaBradesco) cabecalhoRemessaParam; + + //header.setValue("IdentificacaoRemessa", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getIdentificacaoRemessa(), 1)); + //header.setValue("LiteralRemessa", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getLiteralRemessa(), 7)); + //header.setValue("CodigoServico", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getCodigoServico(), 2)); + //header.setValue("LiteralServico", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getLiteralServico(), 8)); + header.setValue("CodigoDaEmpresa", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getCodigoEmpresa().toString(), 20)); + header.setValue("NomeDaEmpresa", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNomeEmpresa(), 30)); + //header.setValue("CodigoCompensacao", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getCodigoBanco().toString(), 3)); + //header.setValue("NomeBanco", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNomeBanco(), 8)); + header.setValue("DataGravacaoArquivo", FormataUtil.formataDataToString(cabecalhoRemessa.getDataGravacao(), "000000", "ddMMyy")); + //header.setValue("IdentificacaoSistema", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getIdentificacaoSistema(), 2)); + header.setValue("NumeroSequencialRemessa", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNumeroSequencialRemessa().toString(), 7)); + header.setValue("NumeroSequencialRegistro", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNumeroSequencialRegistro().toString(), 6)); + + getFlatFile().addRecord(header); + } + + @Override + protected void createTransacaoTitulos(DetalheObrigatorio tituloParam) { + + Record transacaoTitulos = getFlatFile().createRecord("TransacaoTitulo"); + + DetalheObrigatorioBradesco titulo = (DetalheObrigatorioBradesco) tituloParam; + + transacaoTitulos.setValue("AgenciaDebito", FormataUtil.formatarValorPorTamanho(" ", 5)); + transacaoTitulos.setValue("DigitoAgenciaDebito", FormataUtil.formatarValorPorTamanho(" ", 1)); + transacaoTitulos.setValue("RazaoContaCorrente", FormataUtil.formatarValorPorTamanho(" ", 5)); + transacaoTitulos.setValue("ContaCorrente", FormataUtil.formatarValorPorTamanho(" ", 7)); + transacaoTitulos.setValue("DigitoContaCorrrente", FormataUtil.formatarValorPorTamanho(" ", 1)); + transacaoTitulos.setValue("Carteira", FormataUtil.formatarValorPorTamanho(titulo.getCarteira(), 3)); + transacaoTitulos.setValue("Agencia", FormataUtil.formatarValorPorTamanho(titulo.getAgencia(), 5)); + transacaoTitulos.setValue("Contacorrente", FormataUtil.formatarValorPorTamanho(titulo.getContacorrente(), 7)); + transacaoTitulos.setValue("DvConta", FormataUtil.formatarValorPorTamanho(titulo.getDvConta(), 1)); + transacaoTitulos.setValue("NumeroControleDoParticipante", FormataUtil.formatarValorPorTamanho(titulo.getNumeroControleDoParticipante(), 25)); + transacaoTitulos.setValue("BancoCamaraCompensacao", FormataUtil.formatarValorPorTamanho("0", 3)); + transacaoTitulos.setValue("Multa", titulo.existeMulta()); + transacaoTitulos.setValue("PercentualMulta", titulo.getPercentualMulta() ); + transacaoTitulos.setValue("NossoNumeroComDigito", FormataUtil.formatarValorPorTamanho(titulo.getNossoNumeroComDigito(), 12)); + transacaoTitulos.setValue("DescontoBonificacaoDia", FormataUtil.formatarValorPorTamanho("0", 10)); + transacaoTitulos.setValue("DadosIgnorados2", FormataUtil.formatarValorPorTamanho("", 15)); + transacaoTitulos.setValue("QtdPagamento", FormataUtil.formatarValorPorTamanho("", 2)); + //transacaoTitulos.setValue("CodigoDeOcorrencia", FormataUtil.formatarValorPorTamanho(titulo.getCodigoDeOcorrencia().toString(), 2)); + transacaoTitulos.setValue("NumeroDoDocumento", FormataUtil.formatarValorPorTamanho(titulo.getNumeroDoDocumento(), 10)); + transacaoTitulos.setValue("Vencimento", FormataUtil.formataDataToString(titulo.getVencimento(), "000000", "ddMMyy")); + transacaoTitulos.setValue("Valor", titulo.getValor()); + //transacaoTitulos.setValue("BancoCobranca", FormataUtil.formatarValorPorTamanho("0", 3)); + //transacaoTitulos.setValue("AgenciaAgencia", FormataUtil.formatarValorPorTamanho("0", 5)); + transacaoTitulos.setValue("EspecieDeTitulo", FormataUtil.formatarValorPorTamanho(titulo.getEspecieDeTitulo(), 2)); + //transacaoTitulos.setValue("Identificação", FormataUtil.formatarValorPorTamanho("N", 1)); + transacaoTitulos.setValue("Emissao", FormataUtil.formataDataToString(titulo.getEmissao(), "000000", "ddMMyy")); + transacaoTitulos.setValue("Instrucao1", FormataUtil.formatarValorPorTamanho(titulo.getInstrucao1(), 2)); + transacaoTitulos.setValue("Instrucao2", FormataUtil.formatarValorPorTamanho(titulo.getInstrucao2(), 2)); + transacaoTitulos.setValue("ValorAtraso", titulo.getValorAtraso()); + transacaoTitulos.setValue("DataLimiteDesconto", FormataUtil.formataDataToString(titulo.getDataLimiteDesconto(), "000000", "ddMMyy")); + transacaoTitulos.setValue("ValorDesconto", titulo.getValorDesconto()); + transacaoTitulos.setValue("ValorIOF", titulo.getValorIOF()); + transacaoTitulos.setValue("ValorAbatimentoConcedido", titulo.getValorAbatimentoConcedido()); + transacaoTitulos.setValue("TipoInscricaoPagador", FormataUtil.formatarValorPorTamanho(titulo.getTipoInscricaoPagador().toString(), 2)); + transacaoTitulos.setValue("NumeroInscricaoPagador", FormataUtil.formatarValorPorTamanho(titulo.getNumeroInscricaoPagador(), 14)); + transacaoTitulos.setValue("NomePagador", FormataUtil.formatarValorPorTamanho(titulo.getNomePagador(), 40)); + transacaoTitulos.setValue("EnderecoCompletoPagador", FormataUtil.formatarValorPorTamanho(titulo.getEnderecoCompletoPagador(), 40)); + transacaoTitulos.setValue("Mensagem1", FormataUtil.formatarValorPorTamanho(titulo.getMensagem1(), 12)); + transacaoTitulos.setValue("CEP_Prefixo", FormataUtil.formatarValorPorTamanho(titulo.getCEP_Prefixo().toString(), 5)); + transacaoTitulos.setValue("CEP_Sufixo", FormataUtil.formatarValorPorTamanho(titulo.getCEP_Sufixo().toString(), 3)); + transacaoTitulos.setValue("Sacador_Avalista_Mensagem2", FormataUtil.formatarValorPorTamanho(titulo.getSacador_Avalista_Mensagem2(), 60)); + transacaoTitulos.setValue("NumeroSequencialRegistro", FormataUtil.formatarValorPorTamanho(titulo.getNumeroSequencialRegistro().toString(), 6)); + + DadosBoleto dadosBoleto = titulo.getDadosBoleto(); + + try{ + if(dadosBoleto != null){ + transacaoTitulos.addInnerRecord(createDadosBoletos(dadosBoleto)); + } + }catch(UnsupportedOperationException e){ } + + RateioDeCredito rateioDeCredito = titulo.getRateioDeCredito(); + + try{ + if(dadosBoleto != null){ + transacaoTitulos.addInnerRecord(createRateioDeCredito(rateioDeCredito)); + } + }catch(UnsupportedOperationException e){ } + + getFlatFile().addRecord(transacaoTitulos); + } + + @Override + protected Record createDadosBoletos(DadosBoleto boleto) { + throw new UnsupportedOperationException("Não necessário..."); + } + + @Override + protected Record createRateioDeCredito(RateioDeCredito rateioDeCredito) { + throw new UnsupportedOperationException("Não necessário..."); + } + + @Override + protected void createTrailler(RodapeRemessa trailler){ + + Record trailer = getFlatFile().createRecord("Trailler"); + + trailer.setValue("NumeroSequencialRegistro", FormataUtil.formatarValorPorTamanho(trailler.getNumeroSequencialRegistro().toString(), 6)); + + getFlatFile().addRecord(trailer); + } + + @Override + protected CabecalhoRetorno readHeader(Record header) { + throw new UnsupportedOperationException("Somente classe de Retorno."); + } + + @Override + protected List readTransacaoTitulos(Collection registrosDeTransacoes) { + throw new UnsupportedOperationException("Somente classe de Retorno."); + } + + @Override + protected RodapeRetorno readTrailler(Record trailler) { + throw new UnsupportedOperationException("Somente classe de Retorno."); + } +} diff --git a/src/com/rjconsultores/ventaboletos/layouts/BradescoProcessaRetorno.java b/src/com/rjconsultores/ventaboletos/layouts/BradescoProcessaRetorno.java new file mode 100644 index 000000000..9a079cf65 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/layouts/BradescoProcessaRetorno.java @@ -0,0 +1,138 @@ +package com.rjconsultores.ventaboletos.layouts; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +import org.apache.commons.lang.StringUtils; +import org.jrimum.texgit.Record; + +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; +import com.rjconsultores.ventaboletos.blocos.CabecalhoRetorno; +import com.rjconsultores.ventaboletos.blocos.DadosBoleto; +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.blocos.DetalheRetorno; +import com.rjconsultores.ventaboletos.blocos.RateioDeCredito; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessa; +import com.rjconsultores.ventaboletos.blocos.RodapeRetorno; +import com.rjconsultores.ventaboletos.enuns.BancoLayout; +import com.rjconsultores.ventaboletos.enuns.MotivoOcorrenciaBradesco; +import com.rjconsultores.ventaboletos.enuns.OcorrenciaBradesco; + +public class BradescoProcessaRetorno extends AbstractFlatFile implements RetornoInteface { + + protected BradescoProcessaRetorno() { + super(BancoLayout.BRADESCO_400_Retorno); + } + + @Override + protected void createHeader(CabecalhoRemessa cabecalhoRemessaParam) { + throw new UnsupportedOperationException("Somente classe de Envio."); + } + + @Override + protected void createTransacaoTitulos(DetalheObrigatorio tituloParam) { + throw new UnsupportedOperationException("Somente classe de Envio."); + } + + @Override + protected Record createDadosBoletos(DadosBoleto boleto) { + throw new UnsupportedOperationException("Somente classe de Envio."); + } + + @Override + protected Record createRateioDeCredito(RateioDeCredito rateioDeCredito) { + throw new UnsupportedOperationException("Somente classe de Envio."); + } + + @Override + protected void createTrailler(RodapeRemessa trailler) { + throw new UnsupportedOperationException("Somente classe de Envio."); + } + + @Override + protected CabecalhoRetorno readHeader(Record header) { + + CabecalhoRetorno cabecalhoRetorno = new CabecalhoRetorno(); + String codEmpresa = header.getValue("CodigoDaEmpresa"); + String numeroDoAvisoBancario = header.getValue("NumeroDoAvisoBancario"); + + cabecalhoRetorno.setCodEmpresa(codEmpresa); + cabecalhoRetorno.setNumeroDoAvisoBancario(numeroDoAvisoBancario); + + return cabecalhoRetorno; + } + + @Override + protected List readTransacaoTitulos(Collection registrosDeTransacoes) { + + List retornos = new ArrayList(); + + for (Record record : registrosDeTransacoes) { + + DetalheRetorno detalheRetorno = new DetalheRetorno(); + + String numeroControleDoParticipante = record.getValue("NumeroControleDoParticipante"); + String codigoDeOcorrencia = record.getValue("CodigoDeOcorrencia"); + String codigoDeMotivo1 = record.getValue("CodigoDeMotivo1"); + String codigoDeMotivo2 = record.getValue("CodigoDeMotivo2"); + String codigoDeMotivo3 = record.getValue("CodigoDeMotivo3"); + String codigoDeMotivo4 = record.getValue("CodigoDeMotivo4"); + String codigoDeMotivo5 = record.getValue("CodigoDeMotivo5"); + + OcorrenciaBradesco ocorrencia = OcorrenciaBradesco.getInstance(codigoDeOcorrencia); + detalheRetorno.setNumeroControleDoParticipante(numeroControleDoParticipante); + detalheRetorno.setOcorrencia(ocorrencia); + + if(checkIsNullOrBlank(codigoDeMotivo1)){ + MotivoOcorrenciaBradesco motivoOcorrencia = MotivoOcorrenciaBradesco.getInstance(ocorrencia, codigoDeMotivo1); + detalheRetorno.addMotivoOcorrencia(motivoOcorrencia); + } + + if(checkIsNullOrBlank(codigoDeMotivo2)){ + MotivoOcorrenciaBradesco motivoOcorrencia = MotivoOcorrenciaBradesco.getInstance(ocorrencia, codigoDeMotivo2); + detalheRetorno.addMotivoOcorrencia(motivoOcorrencia); + } + + if(checkIsNullOrBlank(codigoDeMotivo3)){ + MotivoOcorrenciaBradesco motivoOcorrencia = MotivoOcorrenciaBradesco.getInstance(ocorrencia, codigoDeMotivo3); + detalheRetorno.addMotivoOcorrencia(motivoOcorrencia); + } + + if(checkIsNullOrBlank(codigoDeMotivo4)){ + MotivoOcorrenciaBradesco motivoOcorrencia = MotivoOcorrenciaBradesco.getInstance(ocorrencia, codigoDeMotivo4); + detalheRetorno.addMotivoOcorrencia(motivoOcorrencia); + } + + if(checkIsNullOrBlank(codigoDeMotivo5)){ + MotivoOcorrenciaBradesco motivoOcorrencia = MotivoOcorrenciaBradesco.getInstance(ocorrencia, codigoDeMotivo5); + detalheRetorno.addMotivoOcorrencia(motivoOcorrencia); + } + + + retornos.add(detalheRetorno); + } + + return retornos; + } + + private boolean checkIsNullOrBlank(String value){ + + if(value != null){ + return StringUtils.isEmpty(value); + } + + return Boolean.TRUE; + } + + @Override + protected RodapeRetorno readTrailler(Record trailler) { + + RodapeRetorno rodapeRetorno = new RodapeRetorno(); + + + return rodapeRetorno; + + + } +} diff --git a/src/com/rjconsultores/ventaboletos/layouts/CNABFactory.java b/src/com/rjconsultores/ventaboletos/layouts/CNABFactory.java new file mode 100644 index 000000000..2322cf418 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/layouts/CNABFactory.java @@ -0,0 +1,44 @@ +package com.rjconsultores.ventaboletos.layouts; + +import com.rjconsultores.ventaboletos.enuns.BancoLayout; + +public class CNABFactory { + + public static RemessaInterface createRemessa(BancoLayout bancoLayout){ + + switch (bancoLayout) { + case BRADESCO_400_Envio: + return new BradescoFlatFile(); + case SANTANDER_400_Envio: + return new SantanderFlatFile(); + case CAIXA_400_Envio: + return new CaixaFlatFile(); + case MERCANTIL_400_Envio: + return new MercantilFlatFile(); + case ITAU_400_Envio: + return new ItauFlatFile(); + case BB_240_Envio: + return new BancoBrasilFlatFile(); + case SICOOB_240_Envio: + return new SicoobFlatFile(); + default: + break; + } + + return null; + } + + public static RetornoInteface createRetorno(BancoLayout bancoLayout){ + + switch (bancoLayout) { + case BRADESCO_400_Retorno: + return new BradescoProcessaRetorno(); + case ITAU_400_Retorno: + return null; + default: + break; + } + + return null; + } +} diff --git a/src/com/rjconsultores/ventaboletos/layouts/CaixaFlatFile.java b/src/com/rjconsultores/ventaboletos/layouts/CaixaFlatFile.java new file mode 100644 index 000000000..3939111fe --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/layouts/CaixaFlatFile.java @@ -0,0 +1,126 @@ +package com.rjconsultores.ventaboletos.layouts; + +import java.math.BigDecimal; +import java.util.Collection; +import java.util.List; + +import org.jrimum.texgit.Record; + +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; +import com.rjconsultores.ventaboletos.blocos.CabecalhoRetorno; +import com.rjconsultores.ventaboletos.blocos.DadosBoleto; +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.blocos.DetalheRetorno; +import com.rjconsultores.ventaboletos.blocos.RateioDeCredito; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessa; +import com.rjconsultores.ventaboletos.blocos.RodapeRetorno; +import com.rjconsultores.ventaboletos.blocos.caixa.CabecalhoRemessaCaixa; +import com.rjconsultores.ventaboletos.blocos.caixa.DetalheObrigatorioCaixa; +import com.rjconsultores.ventaboletos.enuns.BancoLayout; +import com.rjconsultores.ventaboletos.utils.FormataUtil; + +public class CaixaFlatFile extends AbstractFlatFile implements RemessaInterface { + + private static BigDecimal valorTotal = BigDecimal.ZERO; + private static Integer quantidadeRegistro = 0; + + public CaixaFlatFile() { + super(BancoLayout.CAIXA_400_Envio); + valorTotal = BigDecimal.ZERO; + quantidadeRegistro = 0; + } + + @Override + protected void createHeader(CabecalhoRemessa cabecalhoRemessaParam) { + + Record header = getFlatFile().createRecord("Header"); + + CabecalhoRemessaCaixa cabecalhoRemessa = (CabecalhoRemessaCaixa) cabecalhoRemessaParam; + + header.setValue("AgenciaBeneficiario", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getAgenciaBeneficiario(), 4)); + header.setValue("NomeEmpresa", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNomeEmpresa(), 30)); + header.setValue("Beneficiario", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getCodigoEmpresa(), 7)); + header.setValue("versaoLayout", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getVersaoLayout(), 3)); + header.setValue("DataGravacao", FormataUtil.formataDataToString(cabecalhoRemessa.getDataGravacao(), "000000", "ddMMyy")); + header.setValue("NumeroSequencialRemessa", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNumeroSequencialRemessa().toString(), 7)); + + quantidadeRegistro = quantidadeRegistro + 1; + + getFlatFile().addRecord(header); + } + + @Override + protected void createTransacaoTitulos(DetalheObrigatorio tituloParam) { + + Record transacaoTitulos = getFlatFile().createRecord("TransacaoTitulo"); + + DetalheObrigatorioCaixa titulo = (DetalheObrigatorioCaixa) tituloParam; + + transacaoTitulos.setValue("NumeroInscricao", FormataUtil.formatarValorPorTamanho(titulo.getNumeroInscricao().toString(), 14)); + transacaoTitulos.setValue("NossoNumero", FormataUtil.formatarValorPorTamanho(titulo.getNossoNumero(), 8)); + transacaoTitulos.setValue("DataJuros", FormataUtil.formataDataToString(titulo.getVencimento(), "000000", "ddMMyy")); + transacaoTitulos.setValue("NumeroDoDocumento", FormataUtil.formatarValorPorTamanho(titulo.getNumeroDoDocumento(), 10)); + transacaoTitulos.setValue("Vencimento", FormataUtil.formataDataToString(titulo.getVencimento(), "000000", "ddMMyy")); + transacaoTitulos.setValue("ValorTitulo", titulo.getValor()); + transacaoTitulos.setValue("DataEmissao", FormataUtil.formataDataToString(titulo.getEmissao(), "000000", "ddMMyy")); + transacaoTitulos.setValue("ValorJuros", titulo.getValorAtraso()); + transacaoTitulos.setValue("DataDesconto", FormataUtil.formataDataToString(titulo.getDataLimiteDesconto(), "000000", "ddMMyy")); + transacaoTitulos.setValue("ValorDesconto", titulo.getValorDesconto()); + transacaoTitulos.setValue("ValorIOF", titulo.getValorIOF()); + transacaoTitulos.setValue("ValorAbatimento", titulo.getValorAbatimentoConcedido()); + transacaoTitulos.setValue("AgenciaCobradora", FormataUtil.formatarValorPorTamanho("", 6)); + transacaoTitulos.setValue("TipoSacado", FormataUtil.formatarValorPorTamanho(titulo.getTipoInscricaoPagador().toString(), 2)); + transacaoTitulos.setValue("DocumentoSacado", FormataUtil.formatarValorPorTamanho(titulo.getNumeroInscricaoSacado().toString(), 14)); + transacaoTitulos.setValue("NomeSacado", FormataUtil.formatarValorPorTamanho(titulo.getNomeSacado(), 40)); + transacaoTitulos.setValue("EnderecoSacado", FormataUtil.formatarValorPorTamanho(titulo.getEnderecoSacado(), 40)); + transacaoTitulos.setValue("BairroSacado", FormataUtil.formatarValorPorTamanho(titulo.getBairroSacado(), 12)); + transacaoTitulos.setValue("CepSacado", FormataUtil.formatarValorPorTamanho(titulo.getCepSacado().toString(), 8)); + transacaoTitulos.setValue("CidadeSacado", FormataUtil.formatarValorPorTamanho(titulo.getCidade(), 15)); + transacaoTitulos.setValue("EstadoSacado", FormataUtil.formatarValorPorTamanho(titulo.getEstado(), 2)); + transacaoTitulos.setValue("DataMulta", FormataUtil.formataDataToString(titulo.getVencimento(), "000000", "ddMMyy")); + transacaoTitulos.setValue("ValorMulta", titulo.getValorMulta()); + transacaoTitulos.setValue("SacadorAvalista", FormataUtil.formatarValorPorTamanho(titulo.getSacadorAvalista(), 30)); + transacaoTitulos.setValue("NumeroSequencialRegistro", FormataUtil.formatarValorPorTamanho(titulo.getNumeroSequencialRegistro().toString(), 6)); + + valorTotal = valorTotal.add(titulo.getValor()); + quantidadeRegistro = quantidadeRegistro + 1; + + getFlatFile().addRecord(transacaoTitulos); + } + + @Override + protected void createTrailler(RodapeRemessa trailler){ + + Record trailer = getFlatFile().createRecord("Trailler"); + + trailer.setValue("NumeroSequencialRegistro", FormataUtil.formatarValorPorTamanho(trailler.getNumeroSequencialRegistro().toString(), 6)); + + getFlatFile().addRecord(trailer); + + } + + @Override + protected CabecalhoRetorno readHeader(Record header) { + throw new UnsupportedOperationException("Somente classe de Retorno."); + } + + @Override + protected List readTransacaoTitulos(Collection registrosDeTransacoes) { + throw new UnsupportedOperationException("Somente classe de Retorno."); + } + + @Override + protected RodapeRetorno readTrailler(Record trailler) { + throw new UnsupportedOperationException("Somente classe de Retorno."); + } + + @Override + protected Record createDadosBoletos(DadosBoleto boleto) { + throw new UnsupportedOperationException("Não necessário..."); + } + + @Override + protected Record createRateioDeCredito(RateioDeCredito rateioDeCredito) { + throw new UnsupportedOperationException("Não necessário..."); + } +} diff --git a/src/com/rjconsultores/ventaboletos/layouts/ItauFlatFile.java b/src/com/rjconsultores/ventaboletos/layouts/ItauFlatFile.java new file mode 100644 index 000000000..dc297c245 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/layouts/ItauFlatFile.java @@ -0,0 +1,160 @@ +package com.rjconsultores.ventaboletos.layouts; + +import java.util.Collection; +import java.util.List; + +import org.jrimum.texgit.Record; + +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; +import com.rjconsultores.ventaboletos.blocos.CabecalhoRetorno; +import com.rjconsultores.ventaboletos.blocos.DadosBoleto; +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.blocos.DetalheRetorno; +import com.rjconsultores.ventaboletos.blocos.RateioDeCredito; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessa; +import com.rjconsultores.ventaboletos.blocos.RodapeRetorno; +import com.rjconsultores.ventaboletos.blocos.itau.CabecalhoRemessaItau; +import com.rjconsultores.ventaboletos.blocos.itau.DetalheObrigatorioItau; +import com.rjconsultores.ventaboletos.enuns.BancoLayout; +import com.rjconsultores.ventaboletos.utils.FormataUtil; + +public class ItauFlatFile extends AbstractFlatFile implements RemessaInterface { + + public ItauFlatFile() { + super(BancoLayout.ITAU_400_Envio); + } + + @Override + protected void createHeader(CabecalhoRemessa cabecalhoRemessaParam) { + + Record header = getFlatFile().createRecord("Header"); + + CabecalhoRemessaItau cabecalhoRemessa = (CabecalhoRemessaItau) cabecalhoRemessaParam; + + //header.setValue("IdentificacaoRemessa", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getIdentificacaoRemessa(), 1)); + //header.setValue("LiteralRemessa", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getLiteralRemessa(), 7)); + //header.setValue("CodigoDeServico", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getCodigoDeServico(), 2)); + //header.setValue("LiteralServico", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getLiteralServico(), 15)); + header.setValue("Agencia", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getAgencia().toString(), 4)); + //header.setValue("Zeros", "00"); + header.setValue("Conta", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getConta().toString(), 5)); + header.setValue("DacConta", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getDacConta().toString(), 1)); + header.setValue("Brancos1", FormataUtil.formatarValorPorTamanho(" ", 8)); + header.setValue("NomeEmpresa", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNomeEmpresa().toString(), 30)); + //header.setValue("CodigoCompensacao", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getIdentificacaoRemessa(), 3)); + //header.setValue("NomeBanco", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getIdentificacaoRemessa(), 15)); + header.setValue("DataGeracao", FormataUtil.formataData(cabecalhoRemessa.getDataGeracao())); + header.setValue("Brancos2", FormataUtil.formatarValorPorTamanho(" ", 294)); + header.setValue("NumeroSequencialRegistro", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNumeroSequencialRegistro().toString(), 6)); + + getFlatFile().addRecord(header); + + } + + @Override + protected void createTransacaoTitulos(DetalheObrigatorio tituloParam) { + + Record transacaoTitulos = getFlatFile().createRecord("TransacaoTitulo"); + + DetalheObrigatorioItau titulo = (DetalheObrigatorioItau) tituloParam; + + //transacaoTitulos.setValue("CodigoInscricao", FormataUtil.formatarValorPorTamanho(titulo.getCodigoInscricao().toString(), 2)); + transacaoTitulos.setValue("NumeroInscricao", FormataUtil.formatarValorPorTamanho(titulo.getNumCpfCnpj(), 14)); + transacaoTitulos.setValue("Agencia", FormataUtil.formatarValorPorTamanho(titulo.getAgencia().toString(), 4)); + transacaoTitulos.setValue("Zeros", "00"); + transacaoTitulos.setValue("Conta", FormataUtil.formatarValorPorTamanho(titulo.getConta().toString(), 5)); + transacaoTitulos.setValue("DacConta", FormataUtil.formatarValorPorTamanho(titulo.getDacConta().toString(), 1)); + transacaoTitulos.setValue("Brancos1", FormataUtil.formatarValorPorTamanho(" ", 4)); + transacaoTitulos.setValue("InstrucaoAlegacao", FormataUtil.formatarValorPorTamanho(titulo.getInstrucaoAlegacao().toString(), 4)); + transacaoTitulos.setValue("UsoDaEmpresa", FormataUtil.formatarValorPorTamanho(titulo.getUsoDaEmpresa(), 25)); + transacaoTitulos.setValue("NossoNumero", FormataUtil.formatarValorPorTamanho(titulo.getNossoNumero().toString(), 8)); + transacaoTitulos.setValue("QtdMoeda", titulo.getQtdMoeda()); + transacaoTitulos.setValue("NrCarteira", FormataUtil.formatarValorPorTamanho(titulo.getNrCarteira().toString(), 3)); + transacaoTitulos.setValue("UsoDoBanco", FormataUtil.formatarValorPorTamanho(titulo.getUsoDoBanco(), 21)); +// transacaoTitulos.setValue("CodigoCarteira", FormataUtil.formatarValorPorTamanho(titulo.getCodigoCarteira(), 1)); + transacaoTitulos.setValue("CodigoDeOcorrencia", FormataUtil.formatarValorPorTamanho(titulo.getCodigoDeOcorrencia().toString(), 2)); + transacaoTitulos.setValue("NumeroDoDocumento", FormataUtil.formatarValorPorTamanho(titulo.getNumeroDoDocumento().toString(), 10)); + transacaoTitulos.setValue("Vencimento", FormataUtil.formataData(titulo.getVencimento())); + transacaoTitulos.setValue("Valor", titulo.getValor()); + //transacaoTitulos.setValue("CodigoCompensacaoBancoRecebedor", FormataUtil.formatarValorPorTamanho(titulo.getCodigoCompensacaoBancoRecebedor().toString(), 3)); + transacaoTitulos.setValue("AgenciaCobradora", FormataUtil.formatarValorPorTamanho(titulo.getAgenciaCobradora().toString(), 5)); + transacaoTitulos.setValue("EspecieDeTitulo", FormataUtil.formatarValorPorTamanho(titulo.getEspecieDeTitulo().toString(), 2)); + transacaoTitulos.setValue("Aceite", FormataUtil.formatarValorPorTamanho(titulo.getAceite(), 1)); + transacaoTitulos.setValue("Emissao", FormataUtil.formataData(titulo.getEmissao())); + transacaoTitulos.setValue("Instrucao1", FormataUtil.formatarValorPorTamanho(titulo.getInstrucao1(), 2)); + transacaoTitulos.setValue("Instrucao2", FormataUtil.formatarValorPorTamanho(titulo.getInstrucao2(), 2)); + transacaoTitulos.setValue("JurosDeMora", titulo.getJurosDeMora()); + transacaoTitulos.setValue("DataDesconto", FormataUtil.formataData(titulo.getDataDesconto())); + transacaoTitulos.setValue("DescontoConcedido", titulo.getDescontoConcedido()); + transacaoTitulos.setValue("IOF_Devido", titulo.getIOF_Devido()); + transacaoTitulos.setValue("AbatimentoConcedido", titulo.getAbatimentoConcedido()); + transacaoTitulos.setValue("TipoInscricaoSacado", FormataUtil.formatarValorPorTamanho(titulo.getTipoInscricaoSacado().getId(), 2)); + transacaoTitulos.setValue("NumeroInscricaoSacado", FormataUtil.formatarValorPorTamanho(titulo.getNumeroInscricaoSacado().toString(), 14)); + transacaoTitulos.setValue("NomeSacado", FormataUtil.formatarValorPorTamanho(titulo.getNomeSacado().toString(), 30)); + transacaoTitulos.setValue("Brancos2", FormataUtil.formatarValorPorTamanho(" ", 2)); + transacaoTitulos.setValue("LogradouroSacado", FormataUtil.formatarValorPorTamanho(titulo.getLogradouroSacado().toString(), 40)); + transacaoTitulos.setValue("BairroSacado", FormataUtil.formatarValorPorTamanho(titulo.getBairroSacado().toString(), 12)); + transacaoTitulos.setValue("CepSacado", FormataUtil.formatarValorPorTamanho(titulo.getCepSacado().toString(), 8)); + transacaoTitulos.setValue("Cidade", FormataUtil.formatarValorPorTamanho(titulo.getCidade(), 15)); + transacaoTitulos.setValue("Estado", FormataUtil.formatarValorPorTamanho(titulo.getEstado(), 2)); + transacaoTitulos.setValue("SacadorAvalista", FormataUtil.formatarValorPorTamanho(titulo.getSacadorAvalista(), 30)); + transacaoTitulos.setValue("Brancos3", FormataUtil.formatarValorPorTamanho(" ", 2)); + transacaoTitulos.setValue("DataDeMora", FormataUtil.formataData(titulo.getDataDeMora())); + transacaoTitulos.setValue("Prazo", FormataUtil.formatarValorPorTamanho(titulo.getPrazo().toString(), 2)); + transacaoTitulos.setValue("Brancos4", FormataUtil.formatarValorPorTamanho(" ", 2)); + transacaoTitulos.setValue("NumeroSequencialRegistro", FormataUtil.formatarValorPorTamanho(titulo.getNumeroSequencialRegistro().toString(), 6)); + + DadosBoleto dadosBoleto = titulo.getDadosBoleto(); + + try{ + if(dadosBoleto != null){ + transacaoTitulos.addInnerRecord(createDadosBoletos(dadosBoleto)); + } + }catch(UnsupportedOperationException e){ } + + RateioDeCredito rateioDeCredito = titulo.getRateioDeCredito(); + + try{ + if(dadosBoleto != null){ + transacaoTitulos.addInnerRecord(createRateioDeCredito(rateioDeCredito)); + } + }catch(UnsupportedOperationException e){ } + + getFlatFile().addRecord(transacaoTitulos); + } + + @Override + protected Record createDadosBoletos(DadosBoleto boleto) { + throw new UnsupportedOperationException("Não necessário..."); + } + + @Override + protected Record createRateioDeCredito(RateioDeCredito rateioDeCredito) { + throw new UnsupportedOperationException("Não necessário..."); + } + + @Override + protected void createTrailler(RodapeRemessa trailler) { + + Record trailer = getFlatFile().createRecord("Trailler"); + + trailer.setValue("NumeroSequencialRegistro", FormataUtil.formatarValorPorTamanho(trailler.getNumeroSequencialRegistro().toString(), 6)); + + getFlatFile().addRecord(trailer); + } + + @Override + protected CabecalhoRetorno readHeader(Record header) { + throw new UnsupportedOperationException("Somente classe de Retorno."); + } + + @Override + protected List readTransacaoTitulos(Collection registrosDeTransacoes) { + throw new UnsupportedOperationException("Somente classe de Retorno."); + } + + @Override + protected RodapeRetorno readTrailler(Record trailler) { + throw new UnsupportedOperationException("Somente classe de Retorno."); + } +} diff --git a/src/com/rjconsultores/ventaboletos/layouts/MercantilFlatFile.java b/src/com/rjconsultores/ventaboletos/layouts/MercantilFlatFile.java new file mode 100644 index 000000000..255411890 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/layouts/MercantilFlatFile.java @@ -0,0 +1,131 @@ +package com.rjconsultores.ventaboletos.layouts; + +import java.util.Collection; +import java.util.List; + +import org.jrimum.texgit.Record; + +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; +import com.rjconsultores.ventaboletos.blocos.CabecalhoRetorno; +import com.rjconsultores.ventaboletos.blocos.DadosBoleto; +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.blocos.DetalheRetorno; +import com.rjconsultores.ventaboletos.blocos.RateioDeCredito; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessa; +import com.rjconsultores.ventaboletos.blocos.RodapeRetorno; +import com.rjconsultores.ventaboletos.blocos.mercantil.CabecalhoRemessaMercantil; +import com.rjconsultores.ventaboletos.blocos.mercantil.DetalheObrigatorioMercantil; +import com.rjconsultores.ventaboletos.enuns.BancoLayout; +import com.rjconsultores.ventaboletos.utils.FormataUtil; + +public class MercantilFlatFile extends AbstractFlatFile implements RemessaInterface { + + public MercantilFlatFile() { + super(BancoLayout.MERCANTIL_400_Envio); + } + + @Override + protected void createHeader(CabecalhoRemessa cabecalhoRemessaParam) { + + Record header = getFlatFile().createRecord("Header"); + + CabecalhoRemessaMercantil cabecalhoRemessa = (CabecalhoRemessaMercantil) cabecalhoRemessaParam; + + header.setValue("AgenciaOrigem", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getAgenciaOrigem(), 4)); + header.setValue("Cliente", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getCnpj().toString(), 15)); + header.setValue("NomeDaEmpresa", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNomeEmpresa(), 30)); + header.setValue("DataGravacaoArquivo", FormataUtil.formataDataToString(cabecalhoRemessa.getDataGravacao(), "000000", "ddMMyy")); + header.setValue("NumeroSequencialRegistro", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNumeroSequencialRegistro().toString(), 5)); + header.setValue("NumeroSequencialRemessa", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNumeroSequencialRemessa().toString(), 6)); + + getFlatFile().addRecord(header); + } + + @Override + protected void createTransacaoTitulos(DetalheObrigatorio tituloParam) { + + Record transacaoTitulos = getFlatFile().createRecord("TransacaoTitulo"); + + DetalheObrigatorioMercantil titulo = (DetalheObrigatorioMercantil) tituloParam; + + transacaoTitulos.setValue("AgenciaOrigem", FormataUtil.formatarValorPorTamanho(titulo.getAgenciaOrigem(), 5)); + transacaoTitulos.setValue("MultaPercentual", FormataUtil.formatarValorPorTamanho(titulo.getMultaPercentual(), 2)); + transacaoTitulos.setValue("CNPJ", FormataUtil.formatarValorPorTamanho(titulo.getCnpj().toString(), 15)); + transacaoTitulos.setValue("NumeroContrato", FormataUtil.formatarValorPorTamanho(titulo.getNumeroContrato(), 9)); + transacaoTitulos.setValue("NumeroControleDoParticipante", FormataUtil.formatarValorPorTamanho(titulo.getNumeroControleDoParticipante(), 25)); + transacaoTitulos.setValue("Filler1", FormataUtil.formatarValorPorTamanho("0", 8)); + transacaoTitulos.setValue("NossoNumero", FormataUtil.formatarValorPorTamanho(titulo.getNossoNumero(), 10)); + transacaoTitulos.setValue("DigitoVerificador", FormataUtil.formatarValorPorTamanho(titulo.getDigitoVerificador(), 1)); + transacaoTitulos.setValue("SeuNumero", FormataUtil.formatarValorPorTamanho(titulo.getSeuNumero(), 10)); + transacaoTitulos.setValue("DadosIgnorados2", FormataUtil.formatarValorPorTamanho("", 25)); + transacaoTitulos.setValue("QtdPagamento", FormataUtil.formatarValorPorTamanho(titulo.getQtdPagamento(), 25)); + //transacaoTitulos.setValue("CodigoDeOcorrencia", FormataUtil.formatarValorPorTamanho(titulo.getCodigoDeOcorrencia().toString(), 2)); + transacaoTitulos.setValue("NumeroDoDocumento", FormataUtil.formatarValorPorTamanho(titulo.getNumeroDoDocumento(), 10)); + transacaoTitulos.setValue("Vencimento", FormataUtil.formataDataToString(titulo.getVencimento(), "000000", "ddMMyy")); + transacaoTitulos.setValue("ValorTitulo", titulo.getValorTitulo()); + //transacaoTitulos.setValue("BancoCobranca", FormataUtil.formatarValorPorTamanho("0", 3)); + //transacaoTitulos.setValue("AgenciaAgencia", FormataUtil.formatarValorPorTamanho("0", 5)); + transacaoTitulos.setValue("EspecieDeTitulo", FormataUtil.formatarValorPorTamanho(titulo.getEspecieDeTitulo(), 2)); + //transacaoTitulos.setValue("Identificação", FormataUtil.formatarValorPorTamanho("N", 1)); + transacaoTitulos.setValue("Emissao", FormataUtil.formataDataToString(titulo.getEmissao(), "000000", "ddMMyy")); + transacaoTitulos.setValue("Instrucao1", FormataUtil.formatarValorPorTamanho(titulo.getInstrucao1(), 2)); + transacaoTitulos.setValue("Instrucao2", FormataUtil.formatarValorPorTamanho(titulo.getInstrucao2(), 2)); + transacaoTitulos.setValue("ValorAtraso", titulo.getValorAtraso()); + transacaoTitulos.setValue("DataLimiteDesconto", FormataUtil.formataData(titulo.getDataLimiteDesconto())); + transacaoTitulos.setValue("ValorDesconto", titulo.getValorDesconto()); + transacaoTitulos.setValue("ValorIOF", titulo.getValorIOF()); + transacaoTitulos.setValue("ValorAbatimentoConcedido", titulo.getValorAbatimentoConcedido()); + transacaoTitulos.setValue("NomePagador", FormataUtil.formatarValorPorTamanho(titulo.getNomePagador(), 40)); + transacaoTitulos.setValue("EnderecoCompletoPagador", FormataUtil.formatarValorPorTamanho(titulo.getEnderecoCompletoPagador(), 40)); + transacaoTitulos.setValue("Mensagem1", FormataUtil.formatarValorPorTamanho(titulo.getMensagem1(), 12)); + transacaoTitulos.setValue("CEPPrefixo", FormataUtil.formatarValorPorTamanho(titulo.getCepPrefixo(), 5)); + transacaoTitulos.setValue("CEPSufixo", FormataUtil.formatarValorPorTamanho(titulo.getCepSufixo(), 3)); + transacaoTitulos.setValue("BairroSacado", FormataUtil.formatarValorPorTamanho(titulo.getBairro(), 12)); + transacaoTitulos.setValue("Cidade", FormataUtil.formatarValorPorTamanho(titulo.getCidade(), 15)); + transacaoTitulos.setValue("Estado", FormataUtil.formatarValorPorTamanho(titulo.getEstado(), 2)); + transacaoTitulos.setValue("Sacador_Avalista_Mensagem2", FormataUtil.formatarValorPorTamanho(titulo.getSacadorAvalistaMensagem2(), 60)); + transacaoTitulos.setValue("NumeroSequencialRegistro", FormataUtil.formatarValorPorTamanho(titulo.getNumeroSequencialRegistro().toString(), 6)); + + DadosBoleto dadosBoleto = titulo.getDadosBoleto(); + + try{ + if(dadosBoleto != null){ + transacaoTitulos.addInnerRecord(createDadosBoletos(dadosBoleto)); + } + }catch(UnsupportedOperationException e){ } + + getFlatFile().addRecord(transacaoTitulos); + } + + @Override + protected Record createDadosBoletos(DadosBoleto boleto) { + throw new UnsupportedOperationException("Não necessário..."); + } + + @Override + protected Record createRateioDeCredito(RateioDeCredito rateioDeCredito) { + throw new UnsupportedOperationException("Não necessário..."); + } + + @Override + protected void createTrailler(RodapeRemessa trailler){ + Record trailer = getFlatFile().createRecord("Trailler"); + trailer.setValue("NumeroSequencialRegistro", FormataUtil.formatarValorPorTamanho(trailler.getNumeroSequencialRegistro().toString(), 6)); + getFlatFile().addRecord(trailer); + } + + @Override + protected CabecalhoRetorno readHeader(Record header) { + throw new UnsupportedOperationException("Somente classe de Retorno."); + } + + @Override + protected List readTransacaoTitulos(Collection registrosDeTransacoes) { + throw new UnsupportedOperationException("Somente classe de Retorno."); + } + + @Override + protected RodapeRetorno readTrailler(Record trailler) { + throw new UnsupportedOperationException("Somente classe de Retorno."); + } +} diff --git a/src/com/rjconsultores/ventaboletos/layouts/RemessaInterface.java b/src/com/rjconsultores/ventaboletos/layouts/RemessaInterface.java new file mode 100644 index 000000000..dde0e1734 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/layouts/RemessaInterface.java @@ -0,0 +1,14 @@ +package com.rjconsultores.ventaboletos.layouts; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.util.List; + +import com.rjconsultores.ventaboletos.ArquivoRemessa; + +public interface RemessaInterface { + + public List gerarRemessa(File arquivoRemessaFisico, ArquivoRemessa arquivoRemessa) throws FileNotFoundException, IOException; + +} \ No newline at end of file diff --git a/src/com/rjconsultores/ventaboletos/layouts/RetornoInteface.java b/src/com/rjconsultores/ventaboletos/layouts/RetornoInteface.java new file mode 100644 index 000000000..ed4522cb3 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/layouts/RetornoInteface.java @@ -0,0 +1,12 @@ +package com.rjconsultores.ventaboletos.layouts; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.IOException; + +import com.rjconsultores.ventaboletos.ArquivoRetorno; + +public interface RetornoInteface { + + public ArquivoRetorno lerRetorno(File arquivoRetornoFisico) throws FileNotFoundException, IOException; +} diff --git a/src/com/rjconsultores/ventaboletos/layouts/SantanderFlatFile.java b/src/com/rjconsultores/ventaboletos/layouts/SantanderFlatFile.java new file mode 100644 index 000000000..ee93698e6 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/layouts/SantanderFlatFile.java @@ -0,0 +1,165 @@ +package com.rjconsultores.ventaboletos.layouts; + +import java.math.BigDecimal; +import java.util.Collection; +import java.util.List; + +import org.jrimum.texgit.Record; + +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; +import com.rjconsultores.ventaboletos.blocos.CabecalhoRetorno; +import com.rjconsultores.ventaboletos.blocos.DadosBoleto; +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.blocos.DetalheRetorno; +import com.rjconsultores.ventaboletos.blocos.RateioDeCredito; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessa; +import com.rjconsultores.ventaboletos.blocos.RodapeRetorno; +import com.rjconsultores.ventaboletos.blocos.santander.CabecalhoRemessaSantander; +import com.rjconsultores.ventaboletos.blocos.santander.DetalheObrigatorioSantander; +import com.rjconsultores.ventaboletos.enuns.BancoLayout; +import com.rjconsultores.ventaboletos.utils.FormataUtil; + +public class SantanderFlatFile extends AbstractFlatFile implements RemessaInterface { + + private static BigDecimal valorTotal = BigDecimal.ZERO; + private static Integer quantidadeRegistro = 0; + + public SantanderFlatFile() { + super(BancoLayout.SANTANDER_400_Envio); + valorTotal = BigDecimal.ZERO; + quantidadeRegistro = 0; + } + + @Override + protected void createHeader(CabecalhoRemessa cabecalhoRemessaParam) { + + Record header = getFlatFile().createRecord("Header"); + + CabecalhoRemessaSantander cabecalhoRemessa = (CabecalhoRemessaSantander) cabecalhoRemessaParam; + + header.setValue("CodigoDaEmpresa", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getCodigoEmpresa().toString(), 20)); + header.setValue("NomeCedente", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNomeEmpresa(), 30)); + header.setValue("CodigoTransmissao", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getCodigoTransmissao().toString(), 20)); + header.setValue("DataGravacao", FormataUtil.formataDataToString(cabecalhoRemessa.getDataGravacao(), "000000", "ddMMyy")); + header.setValue("NumeroSequencialRemessa", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNumeroSequencialRemessa().toString(), 7)); + header.setValue("NumeroSequencialRegistro", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNumeroSequencialRegistro().toString(), 6)); + + quantidadeRegistro = quantidadeRegistro + 1; + + getFlatFile().addRecord(header); + } + + @Override + protected void createTransacaoTitulos(DetalheObrigatorio tituloParam) { + + Record transacaoTitulos = getFlatFile().createRecord("TransacaoTitulo"); + + DetalheObrigatorioSantander titulo = (DetalheObrigatorioSantander) tituloParam; + + transacaoTitulos.setValue("TipoInscricao", FormataUtil.formatarValorPorTamanho(titulo.getTipoInscricao().toString(), 2)); + transacaoTitulos.setValue("NumeroInscricao", FormataUtil.formatarValorPorTamanho(titulo.getNumeroInscricaoSacado().toString(), 14)); + transacaoTitulos.setValue("CodigoTransmissao", FormataUtil.formatarValorPorTamanho(titulo.getCodigoTransmissao().toString(), 20)); + transacaoTitulos.setValue("NumControleDoParticipante", FormataUtil.formatarValorPorTamanho(titulo.getNumControleDoParticipante(), 25)); + transacaoTitulos.setValue("NossoNumeroComDigito", FormataUtil.formatarValorPorTamanho(titulo.getNossoNumeroComDigito(), 8)); + transacaoTitulos.setValue("Carteira", FormataUtil.formatarValorPorTamanho(titulo.getCarteira(), 3)); + transacaoTitulos.setValue("MultaPercentual", titulo.getPercentualMulta()); + transacaoTitulos.setValue("JurosDeMora", FormataUtil.formatarValorPorTamanho(titulo.getValorAtraso(), 13)); + transacaoTitulos.setValue("Agencia", FormataUtil.formatarValorPorTamanho(titulo.getAgencia(), 4)); + transacaoTitulos.setValue("DVAgencia", FormataUtil.formatarValorPorTamanho(titulo.getDvAgencia(), 1)); + transacaoTitulos.setValue("CodigoEmpresa", FormataUtil.formatarValorPorTamanho(titulo.getCodigoEmpresa(), 7)); + transacaoTitulos.setValue("ContaCorrente", FormataUtil.formatarValorPorTamanho(titulo.getContacorrente(), 7)); + transacaoTitulos.setValue("DvConta", FormataUtil.formatarValorPorTamanho(titulo.getDvConta(), 1)); + transacaoTitulos.setValue("ContaCobrancaBeneficiario", FormataUtil.formatarValorPorTamanho(titulo.getContacorrente(), 8)); + transacaoTitulos.setValue("DvContaCobrancaBeneficiario", FormataUtil.formatarValorPorTamanho(titulo.getDvConta(), 1)); + + transacaoTitulos.setValue("Filler1", FormataUtil.formatarValorPorTamanho("0", 8)); + + transacaoTitulos.setValue("QtdPagamento", FormataUtil.formatarValorPorTamanho(titulo.getQtdPagamento().toString(), 25)); + transacaoTitulos.setValue("NumeroDoDocumento", FormataUtil.formatarValorPorTamanho(titulo.getNumeroDoDocumento(), 10)); + transacaoTitulos.setValue("Vencimento", FormataUtil.formataDataToString(titulo.getVencimento(), "000000", "ddMMyy")); + transacaoTitulos.setValue("Valor", titulo.getValor()); + transacaoTitulos.setValue("EspecieDeTitulo", FormataUtil.formatarValorPorTamanho(titulo.getEspecieDeTitulo(), 2)); + transacaoTitulos.setValue("NumeroInscricaoPagador", FormataUtil.formatarValorPorTamanho(titulo.getNumeroInscricao().toString(), 14)); + transacaoTitulos.setValue("AgenciaCobradora", FormataUtil.formatarValorPorTamanho(titulo.getAgenciaCobradora(), 4)); + transacaoTitulos.setValue("DVAgenciaCobradora", FormataUtil.formatarValorPorTamanho(titulo.getDvAgencia(), 1)); + + transacaoTitulos.setValue("Emissao", FormataUtil.formataDataToString(titulo.getEmissao(), "000000", "ddMMyy")); + transacaoTitulos.setValue("Instrucao1", FormataUtil.formatarValorPorTamanho(titulo.getInstrucao1(), 2)); + transacaoTitulos.setValue("Instrucao2", FormataUtil.formatarValorPorTamanho(titulo.getInstrucao2(), 2)); + transacaoTitulos.setValue("JurosDeMora", titulo.getValorAtraso()); +// transacaoTitulos.setValue("DataLimiteDesconto", FormataUtil.formataData(titulo.getDataLimiteDesconto())); + transacaoTitulos.setValue("ValorDesconto", titulo.getValorDesconto()); + transacaoTitulos.setValue("ValorIOF", titulo.getValorIOF()); + transacaoTitulos.setValue("ValorAbatimentoConcedido", titulo.getValorAbatimentoConcedido()); + transacaoTitulos.setValue("Mensagem1", FormataUtil.formatarValorPorTamanho(titulo.getMensagem1(), 12)); + transacaoTitulos.setValue("NomeSacado", FormataUtil.formatarValorPorTamanho(titulo.getNomeSacado(), 40)); + transacaoTitulos.setValue("EnderecoSacado", FormataUtil.formatarValorPorTamanho(titulo.getEnderecoSacado(), 40)); + transacaoTitulos.setValue("BairroSacado", FormataUtil.formatarValorPorTamanho(titulo.getBairroSacado(), 12)); + transacaoTitulos.setValue("CepSacado", FormataUtil.formatarValorPorTamanho(titulo.getCepSacado().toString(), 5)); + transacaoTitulos.setValue("ComplementoCepSacado", FormataUtil.formatarValorPorTamanho(titulo.getComplementoCepSacado().toString(), 3)); + transacaoTitulos.setValue("Cidade", FormataUtil.formatarValorPorTamanho(titulo.getCidade(), 15)); + transacaoTitulos.setValue("Estado", FormataUtil.formatarValorPorTamanho(titulo.getEstado(), 2)); + transacaoTitulos.setValue("SacadorAvalista", FormataUtil.formatarValorPorTamanho(titulo.getSacadorAvalista(), 30)); + transacaoTitulos.setValue("NumeroSequencialRegistro", FormataUtil.formatarValorPorTamanho(titulo.getNumeroSequencialRegistro().toString(), 6)); + transacaoTitulos.setValue("Complemento", FormataUtil.formatarValorPorTamanho(titulo.getContacorrente().substring(titulo.getContacorrente().length()-1, titulo.getContacorrente().length()).concat(titulo.getDvConta()),2)); + + valorTotal = valorTotal.add(titulo.getValor()); + quantidadeRegistro = quantidadeRegistro + 1; + + DadosBoleto dadosBoleto = titulo.getDadosBoleto(); + + try{ + if(dadosBoleto != null){ + transacaoTitulos.addInnerRecord(createDadosBoletos(dadosBoleto)); + } + }catch(UnsupportedOperationException e){ } + + RateioDeCredito rateioDeCredito = titulo.getRateioDeCredito(); + + try{ + if(dadosBoleto != null){ + transacaoTitulos.addInnerRecord(createRateioDeCredito(rateioDeCredito)); + } + }catch(UnsupportedOperationException e){ } + + getFlatFile().addRecord(transacaoTitulos); + } + + @Override + protected Record createDadosBoletos(DadosBoleto boleto) { + throw new UnsupportedOperationException("Não necessário..."); + } + + @Override + protected Record createRateioDeCredito(RateioDeCredito rateioDeCredito) { + throw new UnsupportedOperationException("Não necessário..."); + } + + @Override + protected void createTrailler(RodapeRemessa trailler){ + + Record trailer = getFlatFile().createRecord("Trailler"); + + trailer.setValue("NumeroSequencialRegistro", FormataUtil.formatarValorPorTamanho(trailler.getNumeroSequencialRegistro().toString(), 6)); + trailer.setValue("QuantidadeRegistro",quantidadeRegistro+1); + trailer.setValue("ValorTotal", valorTotal); + + getFlatFile().addRecord(trailer); + + } + + @Override + protected CabecalhoRetorno readHeader(Record header) { + throw new UnsupportedOperationException("Somente classe de Retorno."); + } + + @Override + protected List readTransacaoTitulos(Collection registrosDeTransacoes) { + throw new UnsupportedOperationException("Somente classe de Retorno."); + } + + @Override + protected RodapeRetorno readTrailler(Record trailler) { + throw new UnsupportedOperationException("Somente classe de Retorno."); + } +} diff --git a/src/com/rjconsultores/ventaboletos/layouts/SantanderProcessaRetorno.java b/src/com/rjconsultores/ventaboletos/layouts/SantanderProcessaRetorno.java new file mode 100644 index 000000000..eaded80c0 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/layouts/SantanderProcessaRetorno.java @@ -0,0 +1,136 @@ +package com.rjconsultores.ventaboletos.layouts; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +import org.apache.commons.lang.StringUtils; +import org.jrimum.texgit.Record; + +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; +import com.rjconsultores.ventaboletos.blocos.CabecalhoRetorno; +import com.rjconsultores.ventaboletos.blocos.DadosBoleto; +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.blocos.DetalheRetorno; +import com.rjconsultores.ventaboletos.blocos.RateioDeCredito; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessa; +import com.rjconsultores.ventaboletos.blocos.RodapeRetorno; +import com.rjconsultores.ventaboletos.enuns.BancoLayout; + +public class SantanderProcessaRetorno extends AbstractFlatFile implements RetornoInteface { + + protected SantanderProcessaRetorno() { + super(BancoLayout.SANTANDER_400_Retorno); + } + + @Override + protected void createHeader(CabecalhoRemessa cabecalhoRemessaParam) { + throw new UnsupportedOperationException("Somente classe de Envio."); + } + + @Override + protected void createTransacaoTitulos(DetalheObrigatorio tituloParam) { + throw new UnsupportedOperationException("Somente classe de Envio."); + } + + @Override + protected Record createDadosBoletos(DadosBoleto boleto) { + throw new UnsupportedOperationException("Somente classe de Envio."); + } + + @Override + protected Record createRateioDeCredito(RateioDeCredito rateioDeCredito) { + throw new UnsupportedOperationException("Somente classe de Envio."); + } + + @Override + protected void createTrailler(RodapeRemessa trailler) { + throw new UnsupportedOperationException("Somente classe de Envio."); + } + + @Override + protected CabecalhoRetorno readHeader(Record header) { + + CabecalhoRetorno cabecalhoRetorno = new CabecalhoRetorno(); + String codEmpresa = header.getValue("CodigoDaEmpresa"); + String numeroDoAvisoBancario = header.getValue("NumeroDoAvisoBancario"); + + cabecalhoRetorno.setCodEmpresa(codEmpresa); + cabecalhoRetorno.setNumeroDoAvisoBancario(numeroDoAvisoBancario); + + return cabecalhoRetorno; + } + + @Override + protected List readTransacaoTitulos(Collection registrosDeTransacoes) { + + List retornos = new ArrayList(); + + for (Record record : registrosDeTransacoes) { + + DetalheRetorno detalheRetorno = new DetalheRetorno(); + + String numeroControleDoParticipante = record.getValue("NumeroControleDoParticipante"); + String codigoDeOcorrencia = record.getValue("CodigoDeOcorrencia"); + String codigoDeMotivo1 = record.getValue("CodigoDeMotivo1"); + String codigoDeMotivo2 = record.getValue("CodigoDeMotivo2"); + String codigoDeMotivo3 = record.getValue("CodigoDeMotivo3"); + String codigoDeMotivo4 = record.getValue("CodigoDeMotivo4"); + String codigoDeMotivo5 = record.getValue("CodigoDeMotivo5"); +/* + OcorrenciaSantander ocorrencia = OcorrenciaSantander.getInstance(codigoDeOcorrencia); + detalheRetorno.setNumeroControleDoParticipante(numeroControleDoParticipante); + detalheRetorno.setOcorrencia(ocorrencia); + + if(checkIsNullOrBlank(codigoDeMotivo1)){ + MotivoOcorrenciaSantander motivoOcorrencia = MotivoOcorrenciaSantander.getInstance(ocorrencia, codigoDeMotivo1); + detalheRetorno.addMotivoOcorrencia(motivoOcorrencia); + } + + if(checkIsNullOrBlank(codigoDeMotivo2)){ + MotivoOcorrenciaSantander motivoOcorrencia = MotivoOcorrenciaSantander.getInstance(ocorrencia, codigoDeMotivo2); + detalheRetorno.addMotivoOcorrencia(motivoOcorrencia); + } + + if(checkIsNullOrBlank(codigoDeMotivo3)){ + MotivoOcorrenciaSantander motivoOcorrencia = MotivoOcorrenciaSantander.getInstance(ocorrencia, codigoDeMotivo3); + detalheRetorno.addMotivoOcorrencia(motivoOcorrencia); + } + + if(checkIsNullOrBlank(codigoDeMotivo4)){ + MotivoOcorrenciaSantander motivoOcorrencia = MotivoOcorrenciaSantander.getInstance(ocorrencia, codigoDeMotivo4); + detalheRetorno.addMotivoOcorrencia(motivoOcorrencia); + } + + if(checkIsNullOrBlank(codigoDeMotivo5)){ + MotivoOcorrenciaSantander motivoOcorrencia = MotivoOcorrenciaSantander.getInstance(ocorrencia, codigoDeMotivo5); + detalheRetorno.addMotivoOcorrencia(motivoOcorrencia); + } +*/ + + retornos.add(detalheRetorno); + } + + return retornos; + } + + private boolean checkIsNullOrBlank(String value){ + + if(value != null){ + return StringUtils.isEmpty(value); + } + + return Boolean.TRUE; + } + + @Override + protected RodapeRetorno readTrailler(Record trailler) { + + RodapeRetorno rodapeRetorno = new RodapeRetorno(); + + + return rodapeRetorno; + + + } +} diff --git a/src/com/rjconsultores/ventaboletos/layouts/SicoobFlatFile.java b/src/com/rjconsultores/ventaboletos/layouts/SicoobFlatFile.java new file mode 100644 index 000000000..04735f524 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/layouts/SicoobFlatFile.java @@ -0,0 +1,197 @@ +package com.rjconsultores.ventaboletos.layouts; + +import java.util.Collection; +import java.util.List; + +import org.jrimum.texgit.Record; + +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; +import com.rjconsultores.ventaboletos.blocos.CabecalhoRetorno; +import com.rjconsultores.ventaboletos.blocos.DadosBoleto; +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.blocos.DetalheRetorno; +import com.rjconsultores.ventaboletos.blocos.RateioDeCredito; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessa; +import com.rjconsultores.ventaboletos.blocos.RodapeRetorno; +import com.rjconsultores.ventaboletos.blocos.sicoob.CabecalhoLoteRemessaSicoob; +import com.rjconsultores.ventaboletos.blocos.sicoob.CabecalhoRemessaSicoob; +import com.rjconsultores.ventaboletos.blocos.sicoob.DetalheObrigatorioDadosPagadorSicoob; +import com.rjconsultores.ventaboletos.blocos.sicoob.DetalheObrigatorioSicoob; +import com.rjconsultores.ventaboletos.blocos.sicoob.RodapeRemessaLoteSicoob; +import com.rjconsultores.ventaboletos.blocos.sicoob.RodapeRemessaSicoob; +import com.rjconsultores.ventaboletos.enuns.BancoLayout; +import com.rjconsultores.ventaboletos.utils.FormataUtil; + +public class SicoobFlatFile extends AbstractFlatFile implements RemessaInterface { + + public SicoobFlatFile() { + super(BancoLayout.SICOOB_240_Envio); + } + + @Override + protected void createHeader(CabecalhoRemessa cabecalhoRemessaParam) { + + Record header = getFlatFile().createRecord("HeaderArquivo"); + + CabecalhoRemessaSicoob cabecalhoRemessa = (CabecalhoRemessaSicoob) cabecalhoRemessaParam; + + header.setValue("CpfCnpj", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getCpfCnpj().toString(), 1)); + header.setValue("NumCpfCnpj", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNumCpfCnpj(), 14)); + header.setValue("NumAgencia", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNumAgencia(), 5)); + header.setValue("DigAgencia", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getDigAgencia(), 1)); + header.setValue("NumContaCorrente", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNumContaCorrente(), 12)); + header.setValue("DigContaCorrente", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getDigContaCorrente(), 1)); + header.setValue("NomeEmpresa", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNomeEmpresa(), 30)); + header.setValue("NumeroRemessa", FormataUtil.formatarValorPorTamanhoZeroEsquerda(cabecalhoRemessa.getNumRemessa().toString(), 8)); + header.setValue("DataGeracao", FormataUtil.formataDataToString(cabecalhoRemessa.getDataGravacao(), "000000", "ddMMyy")); + header.setValue("HoraGeracao", FormataUtil.formataDataToString(cabecalhoRemessa.getDataGravacao(), "000000", "HHmmss")); + + getFlatFile().addRecord(header); + + createHeaderLote(cabecalhoRemessa.getCabecalhoLoteRemessaSicoob()); + } + + private void createHeaderLote(CabecalhoLoteRemessaSicoob cabecalhoLote) { + + Record header = getFlatFile().createRecord("HeaderLote"); + + if(cabecalhoLote.getLoteServico() != null){ + header.setValue("LoteServico", FormataUtil.formatarValorPorTamanhoZeroEsquerda(cabecalhoLote.getLoteServico().toString(), 4)); + } + + header.setValue("NumCpfCnpj", FormataUtil.formatarValorPorTamanho(cabecalhoLote.getNumCpfCnpj(), 15)); + header.setValue("NumAgencia", FormataUtil.formatarValorPorTamanho(cabecalhoLote.getNumAgencia(), 5)); + header.setValue("DigAgencia", FormataUtil.formatarValorPorTamanho(cabecalhoLote.getDigAgencia(), 1)); + header.setValue("NumContaCorrente", FormataUtil.formatarValorPorTamanho(cabecalhoLote.getNumContaCorrente(), 12)); + header.setValue("DigContaCorrente", FormataUtil.formatarValorPorTamanho(cabecalhoLote.getDigContaCorrente(), 1)); + header.setValue("NomeEmpresa", FormataUtil.formatarValorPorTamanho(cabecalhoLote.getNomeEmpresa(), 30)); + header.setValue("NumeroRemessa", FormataUtil.formatarValorPorTamanhoZeroEsquerda(cabecalhoLote.getNumeroRemessa().toString(), 8)); + header.setValue("DataGeracao", FormataUtil.formataData(cabecalhoLote.getDataGeracao())); + header.setValue("DataCredito", FormataUtil.formataData(cabecalhoLote.getDataCredito())); + + getFlatFile().addRecord(header); + } + + @Override + protected void createTransacaoTitulos(DetalheObrigatorio tituloParam) { + + Record transacaoTitulos = getFlatFile().createRecord("SegmentoP"); + + DetalheObrigatorioSicoob dadosTitulos = (DetalheObrigatorioSicoob) tituloParam; + + if(dadosTitulos.getLoteServico() != null){ + transacaoTitulos.setValue("LoteServico", FormataUtil.formatarValorPorTamanhoZeroEsquerda(dadosTitulos.getLoteServico().toString(), 4)); + } + transacaoTitulos.setValue("NumSeqRegistro", FormataUtil.formatarValorPorTamanhoZeroEsquerda(dadosTitulos.getNumSeqRegistro().toString(), 5)); + transacaoTitulos.setValue("NumAgencia", FormataUtil.formatarValorPorTamanho(dadosTitulos.getNumAgencia(), 5)); + transacaoTitulos.setValue("DigAgencia", FormataUtil.formatarValorPorTamanho(dadosTitulos.getDigAgencia(), 1)); + transacaoTitulos.setValue("NumContaCorrente", FormataUtil.formatarValorPorTamanho(dadosTitulos.getNumContaCorrente(), 12)); + transacaoTitulos.setValue("DigContaCorrente", FormataUtil.formatarValorPorTamanho(dadosTitulos.getDigContaCorrente(), 1)); + transacaoTitulos.setValue("NossoNumero", FormataUtil.formatarValorPorTamanho(dadosTitulos.getNossoNumero(), 20)); + transacaoTitulos.setValue("NumeroDoDocumento", FormataUtil.formatarValorPorTamanho(dadosTitulos.getNumeroDoDocumento(), 15)); + transacaoTitulos.setValue("Vencimento", FormataUtil.formataData(dadosTitulos.getVencimento())); + transacaoTitulos.setValue("Valor", dadosTitulos.getValor()); + transacaoTitulos.setValue("Emissao", FormataUtil.formataData(dadosTitulos.getEmissao())); + transacaoTitulos.setValue("CodMora", FormataUtil.formatarValorPorTamanho(dadosTitulos.getCodMora().toString(), 1)); + transacaoTitulos.setValue("DataMora", FormataUtil.formataDataToString(dadosTitulos.getDataMora(), "00000000")); + transacaoTitulos.setValue("JurosDeMora", dadosTitulos.getJurosDeMora()); + transacaoTitulos.setValue("CodigoDesconto", FormataUtil.formatarValorPorTamanho(dadosTitulos.getCodigoDesconto().toString(), 1)); + transacaoTitulos.setValue("DataDesconto", FormataUtil.formataDataToString(dadosTitulos.getDataDesconto(), "00000000")); + transacaoTitulos.setValue("DescontoConcedido", dadosTitulos.getDescontoConcedido()); + transacaoTitulos.setValue("IOF_Devido", dadosTitulos.getIofDevido()); + transacaoTitulos.setValue("AbatimentoConcedido", dadosTitulos.getAbatimentoConcedido()); + transacaoTitulos.setValue("NossoNumeroEmp", FormataUtil.formatarValorPorTamanho(dadosTitulos.getNossoNumeroEmp(), 25)); + transacaoTitulos.setValue("CodigoProtesto", FormataUtil.formatarValorPorTamanho(dadosTitulos.getCodigoProtesto().toString(), 1)); + transacaoTitulos.setValue("DiasProtesto", FormataUtil.formatarValorPorTamanho(dadosTitulos.getDiasProtesto().toString(), 2)); + transacaoTitulos.setValue("NumeroContrato", FormataUtil.formatarValorPorTamanhoZeroEsquerda(dadosTitulos.getNumeroContrato().toString(), 10)); + + getFlatFile().addRecord(transacaoTitulos); + createTransacaoTitulosSeguimentoQ(transacaoTitulos, dadosTitulos.getDetalheObrigatorioDadosPagadorSicoob()); + + } + + private void createTransacaoTitulosSeguimentoQ(Record recordFather, DetalheObrigatorioDadosPagadorSicoob dadosPagadorSicoobl) { + + Record transacaoTitulos = getFlatFile().createRecord("SegmentoQ"); + + if(dadosPagadorSicoobl.getLoteServico() != null){ + transacaoTitulos.setValue("LoteServico", FormataUtil.formatarValorPorTamanhoZeroEsquerda(dadosPagadorSicoobl.getLoteServico().toString(), 4)); + } + + transacaoTitulos.setValue("NumSeqRegistro", FormataUtil.formatarValorPorTamanhoZeroEsquerda(dadosPagadorSicoobl.getNumeroSequencialRegistro().toString(), 5)); + transacaoTitulos.setValue("TipoInscricaoSacado", FormataUtil.formatarValorPorTamanho(dadosPagadorSicoobl.getTipoInscricaoSacado().toString(), 1)); + transacaoTitulos.setValue("NumeroInscricaoSacado", FormataUtil.formatarValorPorTamanho(dadosPagadorSicoobl.getNumeroInscricaoSacado(), 15)); + transacaoTitulos.setValue("NomeSacado", FormataUtil.formatarValorPorTamanho(dadosPagadorSicoobl.getNomeSacado(), 40)); + transacaoTitulos.setValue("LogradouroSacado", FormataUtil.formatarValorPorTamanho(dadosPagadorSicoobl.getLogradouroSacado(), 40)); + transacaoTitulos.setValue("BairroSacado", FormataUtil.formatarValorPorTamanho(dadosPagadorSicoobl.getBairroSacado(), 15)); + transacaoTitulos.setValue("CepSacado", FormataUtil.formatarValorPorTamanhoZeroEsquerda(dadosPagadorSicoobl.getCepSacado().toString(), 5)); + transacaoTitulos.setValue("SufixoCep", FormataUtil.formatarValorPorTamanhoZeroEsquerda(dadosPagadorSicoobl.getSufixoCep().toString(), 3)); + transacaoTitulos.setValue("Cidade", FormataUtil.formatarValorPorTamanho(dadosPagadorSicoobl.getCidade(), 15)); + transacaoTitulos.setValue("Estado", FormataUtil.formatarValorPorTamanho(dadosPagadorSicoobl.getEstado(), 2)); + + try{ + transacaoTitulos.setValue("CodBancoCorresp", FormataUtil.formatarValorPorTamanho(dadosPagadorSicoobl.getCodBancoCorresp().toString(), 3)); + }catch(Exception e){ + + } + transacaoTitulos.setValue("NossoNumeroNoBancoCorresp", FormataUtil.formatarValorPorTamanho(dadosPagadorSicoobl.getNossoNumeroNoBancoCorresp(), 20)); + + recordFather.addInnerRecord(transacaoTitulos); + } + + @Override + protected void createTrailler(RodapeRemessa trailler){ + + RodapeRemessaSicoob rodapeRemessaSicoob = (RodapeRemessaSicoob) trailler; + + createTraillerLote(rodapeRemessaSicoob.getRodapeRemessaLoteSicoob()); + + Record traillerArquivo = getFlatFile().createRecord("TraillerArquivo"); + + traillerArquivo.setValue("QtdLotes", FormataUtil.formatarValorPorTamanhoZeroEsquerda(rodapeRemessaSicoob.getQtdLotes().toString(), 6)); + traillerArquivo.setValue("QtdArquivos", FormataUtil.formatarValorPorTamanhoZeroEsquerda(rodapeRemessaSicoob.getQtdArquivos().toString(), 6)); + traillerArquivo.setValue("QtdContas", FormataUtil.formatarValorPorTamanhoZeroEsquerda(rodapeRemessaSicoob.getQtdContas().toString(), 6)); + + getFlatFile().addRecord(traillerArquivo); + } + + private void createTraillerLote(RodapeRemessaLoteSicoob rodapeRemessaLoteSicoob) { + + + Record traillerArquivo = getFlatFile().createRecord("TraillerLote"); + + if(rodapeRemessaLoteSicoob.getLoteServico() != null){ + traillerArquivo.setValue("LoteServico", FormataUtil.formatarValorPorTamanhoZeroEsquerda(rodapeRemessaLoteSicoob.getLoteServico().toString(), 4)); + } + + traillerArquivo.setValue("QtdTitulosSimples", FormataUtil.formatarValorPorTamanhoZeroEsquerda(rodapeRemessaLoteSicoob.getQtdRegistros().toString(), 6)); + traillerArquivo.setValue("ValorTitulosSimples", FormataUtil.formatarValorPorTamanhoZeroEsquerda(rodapeRemessaLoteSicoob.getValorRegistros().toString(), 15) ); + + getFlatFile().addRecord(traillerArquivo); + } + + @Override + protected CabecalhoRetorno readHeader(Record header) { + throw new UnsupportedOperationException("Somente classe de Retorno."); + } + + @Override + protected List readTransacaoTitulos(Collection registrosDeTransacoes) { + throw new UnsupportedOperationException("Somente classe de Retorno."); + } + + @Override + protected RodapeRetorno readTrailler(Record trailler) { + throw new UnsupportedOperationException("Somente classe de Retorno."); + } + + @Override + protected Record createDadosBoletos(DadosBoleto boleto) { + throw new UnsupportedOperationException("Não necessário..."); + } + + @Override + protected Record createRateioDeCredito(RateioDeCredito rateioDeCredito) { + throw new UnsupportedOperationException("Não necessário..."); + } +} diff --git a/src/com/rjconsultores/ventaboletos/utils/FormataUtil.java b/src/com/rjconsultores/ventaboletos/utils/FormataUtil.java new file mode 100644 index 000000000..ac303db22 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/utils/FormataUtil.java @@ -0,0 +1,90 @@ +package com.rjconsultores.ventaboletos.utils; + +import java.math.BigDecimal; +import java.text.SimpleDateFormat; +import java.util.Date; + +public class FormataUtil { + + public static String formatarValorPorTamanho(String value, int tamanho) { + + value = value == null ? "" : value; + + if(value.length() > tamanho){ + value = value.substring(0, tamanho); + } + + return value; + } + + public static String formatarValorPorTamanho(Integer valor, int tamanho) { + + String value = valor == null ? "" : valor.toString(); + + return formatarValorPorTamanho(value, tamanho) ; + } + + public static String formatarValorPorTamanho(BigDecimal valor, int tamanho) { + + String value = valor == null ? "" : valor.toString(); + + return formatarValorPorTamanho(value, tamanho) ; + } + + public static String formatarValorPorTamanhoZeroEsquerda(String value, int tamanho) { + + value = value == null ? "" : value; + + if(value.length() > tamanho){ + value = value.substring(0, tamanho); + } + + while(value.length() < tamanho){ + value = "0" + value; + } + + return value; + } + + public static String formatarValorPorTamanhoZeroDireita(String value, int tamanho) { + + value = value == null ? "" : value; + + if(value.length() > tamanho){ + value = value.substring(0, tamanho); + } + + while(value.length() < tamanho){ + value = value + "0"; + } + + return value; + } + + public static Date formataData(Date data) { + + if(data == null){ + data = new Date(); + } + + return data; + } + + public static String formataDataToString(Date data, String defaultValue) { + + if(data == null){ + return defaultValue; + } + + return new SimpleDateFormat("ddMMyyyy").format(data); + } + + public static String formataDataToString(Date data, String defaultValue, String pattern) { + + if(data == null){ + return defaultValue; + } + + return new SimpleDateFormat(pattern).format(data); + } +} diff --git a/src/com/rjconsultores/ventaboletos/utils/NossoNumeroUtils.java b/src/com/rjconsultores/ventaboletos/utils/NossoNumeroUtils.java new file mode 100644 index 000000000..f7715387e --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/utils/NossoNumeroUtils.java @@ -0,0 +1,354 @@ +package com.rjconsultores.ventaboletos.utils; + +import java.math.BigInteger; + +import org.apache.commons.lang.StringUtils; + +import com.rjconsultores.ventaboletos.enuns.BancoLayout; + +public class NossoNumeroUtils { + + /** + * Devolve o nosso numero do Bradesco com o DV calculado (Tamanho 12)... + * @param numCarteira + * @param nossoNumero + * @return + */ + public static String calcularNossonumeroBradesco(Integer numCarteira, BigInteger nossoNumero){ + return StringUtils.right("00000000000" + nossoNumero, 11) + dacBradesco(numCarteira, nossoNumero); + } + + /** + * Devolve o nosso numero do Itau com o DV calculado (Tamanho 9)... + * @param codAgencia + * @param numConta + * @param numCarteira + * @param nossoNumero + * @return + */ + public static String calcularNossoNumeroItau(Integer codAgencia, Integer numConta, Integer numCarteira, BigInteger nossoNumero){ + return StringUtils.right("00000000" + nossoNumero, 8) + dacItau(codAgencia, numConta, numCarteira, nossoNumero); + } + + public static String calcularNossoNumeroSantander(BigInteger nossoNumero){ + return StringUtils.right("0000000" + nossoNumero, 7)+dacSantander( nossoNumero.toString() ); + } + + public static String calcularNossoNumeroSicoob(Integer numCooperativa, Integer codCliente, BigInteger nossoNumero){ + return StringUtils.right("0000000" + nossoNumero, 7)+dacSicoob(numCooperativa, codCliente, nossoNumero.toString() ); + } + + public static String calcularNossoNumeroMercantil(Integer agencia, BigInteger nossoNumero){ + return StringUtils.right("0000000000" + nossoNumero, 10)+dacMercantil( agencia, nossoNumero ); + } + + /** + * Devolve o nosso numero do BB com o DV calculado (Tamanho 20)... + * @param convenioBanco + * @param numCarteira + * @param nossoNumero + * @return + */ + public static String calcularNossoNumeroBancoBrasil(Long convenioBanco, Integer numCarteira, BigInteger nossoNumero){ + + int controllConvenioNossoNumero = 0; + int controllNossoNumero = 0; + boolean dvControll = Boolean.TRUE; + + if(convenioBanco < 10000){ + controllConvenioNossoNumero = 4; + controllNossoNumero = 7; + }else if(convenioBanco < 1000000){ + controllConvenioNossoNumero = 6; + controllNossoNumero = 5; + }else{ + controllConvenioNossoNumero = 7; + controllNossoNumero = 10; + dvControll = Boolean.FALSE; + } + + String nC = StringUtils.right("0000000" + convenioBanco, controllConvenioNossoNumero); + String nN = StringUtils.right("0000000000" + nossoNumero, controllNossoNumero); + + String base = nC + nN; + + return dvControll ? StringUtils.left(base + dacBB(base, numCarteira), 20) : base; + } + + /** + * Calcula do DV para o Bradesco + * @param numCarteira + * @param nossoNumero + * @return + */ + public static String dacBradesco(Integer numCarteira, BigInteger nossoNumero){ + + int multiplicadores[] = {2,7,6,5,4,3,2,7,6,5,4,3,2}; + int multiplicandos[] = new int[13]; + + String carteira = StringUtils.right("00" + numCarteira, 2); + String nNumero = StringUtils.right("00000000000" + nossoNumero, 11); + + String base = carteira + nNumero; + + for (int i = 0; i < multiplicandos.length; i++) { + String d = base.charAt(i) + ""; + multiplicandos[i] = Integer.valueOf(d) * multiplicadores[i]; + } + + int dac = 0; + + for(Integer v : multiplicandos){ + dac += v; + } + + dac = 11 - (dac % 11); + + return (dac == 11) ? "0" :(dac == 10) ? "P" : dac + ""; + + } + + public static String dacSicoob(Integer numCooperativa, Integer codCliente, String nossoNumero){ + + int multiplicadores[] = {3,1,9,7,3,1,9,7,3,1,9,7,3,1,9,7,3,1,9,7,3}; + int multiplicandos[] = new int[21]; + + String cooperativa = StringUtils.right("0000" + numCooperativa, 4); + String cliente = StringUtils.right("0000000000" + codCliente, 10); + String nNumero = StringUtils.right("0000000" + nossoNumero, 7); + + String base = cooperativa + cliente + nNumero; + + for (int i = 0; i < multiplicandos.length; i++) { + String d = base.charAt(i) + ""; + multiplicandos[i] = Integer.valueOf(d) * multiplicadores[i]; + } + + int dac = 0; + + for(Integer v : multiplicandos){ + dac += v; + } + + dac = dac % 11; + + if( dac == 0 || dac == 1) + return "0"; + + return (11 - dac) + ""; + + } + + public static String dacMercantil(Integer agencia, BigInteger nossoNumero){ + + int multiplicadores[] = {7,6,5,4,3,2,9,8,7,6,5,4,3,2}; + + String agenciaformatada = StringUtils.right("0000" + agencia, 4); + String nNumero = StringUtils.right("00000000000" + nossoNumero, 10); + + String base = agenciaformatada + nNumero; + + int soma = 0; + + for (int i = 0; i < base.length(); i++) { + String d = base.charAt(i)+""; + soma = Integer.valueOf(d) * multiplicadores[i]; + } + + int mod = soma % 11; + + if( mod == 0 || mod == 1 ) { + return "0"; + } + + return String.valueOf(11 - mod); + } + + /** + * Calcula do DV para o Itau + * @param codAgencia + * @param numConta + * @param numCarteira + * @param nossoNumero + * @return + */ + public static String dacItau(Integer codAgencia, Integer numConta, Integer numCarteira, BigInteger nossoNumero){ + + + int multiplicadores[] = {1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2}; + int multiplicandos[] = new int[20]; + + String agencia = StringUtils.right("0000" + codAgencia, 4); + String conta = StringUtils.right("00000" + numConta, 5); + String carteira = StringUtils.right("000" + numCarteira, 3); + String nNumero = StringUtils.right("00000000" + nossoNumero, 8); + + String base = agencia + conta + carteira + nNumero; + + for (int i = 0; i < multiplicandos.length; i++) { + + String d = base.charAt(i) + ""; + + multiplicandos[i] = Integer.valueOf(d) * multiplicadores[i]; + } + + int dac = 0; + + for(Integer v : multiplicandos){ + + if(v < 10){ + dac += v; + }else{ + dac += 1 + (v - 10); + } + } + + dac = 10 - (dac % 10); + + return dac == 10 ? "0" : dac+""; + } + + /** + * Calcula do DV para o Banco do Brasil + * @param nossoNumero + * @param numCarteira + * @return + */ + public static String dacBB(String nossoNumero, Integer numCarteira){ + + int multiplicador = 9; + + int soma = 0; + + for (int i = nossoNumero.length() - 1; i >= 0 ; i--) { + + int current = Integer.parseInt(nossoNumero.charAt(i) + ""); + + current = current * multiplicador; + soma = soma + current; + multiplicador--; + + if(multiplicador == 2){ + multiplicador = 9; + } + } + + int mod = soma % 11; + + if(mod == 10){ + return "X"; + } + + return mod + ""; + } + + public static String dacSantander(String nossoNumero){ + + int multiplicador = 2; + + int soma = 0; + + for (int i = nossoNumero.length() - 1; i >= 0 ; i--) { + + int current = Integer.parseInt(nossoNumero.charAt(i) + ""); + + current = current * multiplicador; + soma = soma + current; + multiplicador++; + + if(multiplicador == 2){ + multiplicador = 9; + } + } + + int mod = soma % 11; + + if(mod == 10){ + return "1"; + }else if( mod == 0 || mod == 1 ) { + return "0"; + } + + return String.valueOf(11 - mod); + } + + /** + * Calcula do DV para o Itau (Numero Documento) + * @param codAgencia + * @param numConta + * @param numCarteira + * @param nossoNumero + * @return + */ + public static String dvDocumentoItau(Integer numeroDoc){ + + + int multiplicadores[] = {1,2,1,2,1,2,1,2,1,2}; + int multiplicandos[] = new int[10]; + + String doc = StringUtils.right("0000000000" + numeroDoc, 10); + + String base = doc; + + for (int i = 0; i < multiplicandos.length; i++) { + + String d = base.charAt(i) + ""; + + multiplicandos[i] = Integer.valueOf(d) * multiplicadores[i]; + } + + int dac = 0; + + for(Integer v : multiplicandos){ + + if(v < 10){ + dac += v; + }else{ + dac += 1 + (v - 10); + } + } + + dac = 10 - (dac % 10); + + return dac + ""; + } + + public static boolean validaNossoNumero(String nossoNumero, BancoLayout bancoLayout){ + + if(BancoLayout.BRADESCO_400_Envio.equals(bancoLayout) && nossoNumero.length() == 13 ){ + return Boolean.TRUE; + } + + if(BancoLayout.ITAU_400_Envio.equals(bancoLayout) && nossoNumero.length() == 10 ){ + return Boolean.TRUE; + } + + if(BancoLayout.MERCANTIL_400_Envio.equals(bancoLayout) && nossoNumero.length() == 12 ){ + return Boolean.TRUE; + } + + if(BancoLayout.SANTANDER_400_Envio.equals(bancoLayout) && nossoNumero.length() == 9 ){ + return Boolean.TRUE; + } + + if(BancoLayout.BB_240_Envio.equals(bancoLayout) && (nossoNumero.length() == 13 || nossoNumero.length() == 17)){ + return Boolean.TRUE; + } + + if(BancoLayout.SICOOB_240_Envio.equals(bancoLayout) && nossoNumero.length() == 10 ){ + return Boolean.TRUE; + } + + if(BancoLayout.CAIXA_400_Envio.equals(bancoLayout) && ( nossoNumero.length() == 10 && nossoNumero.startsWith("3"))){ + return Boolean.TRUE; + } + + return Boolean.FALSE; + } + + public static void main(String[] args) { + + System.out.println( calcularNossoNumeroItau( 98, 92192, 109, new BigInteger("98712345") )); + + } +} diff --git a/src/layouts/LayoutBBCNAB240Envio.txg.xml b/src/layouts/LayoutBBCNAB240Envio.txg.xml new file mode 100644 index 000000000..2b58f2dcc --- /dev/null +++ b/src/layouts/LayoutBBCNAB240Envio.txg.xml @@ -0,0 +1,188 @@ + + + Arquivo-Remessa_BBCNAB240 + Version 01, Published: 2012/05/25 + + Layout para Cobrança. + Arquivo texto - padrão CNAB Meio de Registro Transmissão de Dados Descrição de Registro - Tamanho 240 Bytes + Organização Sequencial ARQUIVO FORMATO CNAB REMESSA, + REGISTROS: + 0 - Header do Arquivo + 1 - Header do Lote + 3 - Segmento P + 3 - Segmento Q + 5 - Trailler Lote + 9 - Trailler Arquivo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/layouts/LayoutBBCNAB400Envio.txg.xml b/src/layouts/LayoutBBCNAB400Envio.txg.xml new file mode 100644 index 000000000..c541e689f --- /dev/null +++ b/src/layouts/LayoutBBCNAB400Envio.txg.xml @@ -0,0 +1,108 @@ + + + + Arquivo-Remessa_BBCNAB240 + Version 01, Published: 2012/05/25 + + Layout para Cobrança. + Arquivo texto - padrão CNAB Meio de Registro Transmissão de Dados Descrição de Registro - Tamanho 240 Bytes + Organização Sequencial ARQUIVO FORMATO CNAB REMESSA, + REGISTROS: + 0 - Header do Arquivo + 1 - Header do Lote + 3 - Segmento P + 3 - Segmento Q + 5 - Trailler Lote + 9 - Trailler Arquivo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/layouts/LayoutBradescoCNAB400Envio.txg.xml b/src/layouts/LayoutBradescoCNAB400Envio.txg.xml new file mode 100644 index 000000000..0a494878c --- /dev/null +++ b/src/layouts/LayoutBradescoCNAB400Envio.txg.xml @@ -0,0 +1,144 @@ + + + + Arquivo-Remessa_BradescoCNAB400 + Version 08, Published: 2009/09/30 + + Layout para Cobrança. + + Arquivo texto - padrão CNAB + Meio de Registro Transmissão de Dados + Descrição de Registro - Tamanho 400 Bytes + Organização Sequencial + + ARQUIVO FORMATO CNAB REMESSA, REGISTROS: + + 0 - Header Label + 1 - Cobrança - Transação + 2 - Mensagem (opcional) + 3 - Rateio de Crédito (opcional) + 7 – Sacador Avalista (opcional) + 9 - Trailler (Papel de finalizador de lote) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/layouts/LayoutBradescoCNAB400Retorno.txg.xml b/src/layouts/LayoutBradescoCNAB400Retorno.txg.xml new file mode 100644 index 000000000..8c6260b61 --- /dev/null +++ b/src/layouts/LayoutBradescoCNAB400Retorno.txg.xml @@ -0,0 +1,123 @@ + + + + + Arquivo-Retorno_BradescoCNAB400 + Version 08, Published: 2009/09/30 + + Layout para Cobrança. + + Arquivo texto - padrão CNAB + Meio de Registro Transmissão de Dados + Descrição de Registro - Tamanho 400 Bytes + Organização Sequencial + + ARQUIVO FORMATO CNAB RETORNO, REGISTROS: + + 0 - Header Label + 1 - Cobrança - Transação + 3 - Rateio de Crédito (opcional) + 9 - Trailler (Papel de finalizador de lote e totalizador) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/layouts/LayoutBradescoCNAB400RetornoParaLer.txg.xml b/src/layouts/LayoutBradescoCNAB400RetornoParaLer.txg.xml new file mode 100644 index 000000000..95d014107 --- /dev/null +++ b/src/layouts/LayoutBradescoCNAB400RetornoParaLer.txg.xml @@ -0,0 +1,123 @@ + + + + + Arquivo-Retorno_BradescoCNAB400 + Version 08, Published: 2009/09/30 + + Layout para Cobrança. + + Arquivo texto - padrão CNAB + Meio de Registro Transmissão de Dados + Descrição de Registro - Tamanho 400 Bytes + Organização Sequencial + + ARQUIVO FORMATO CNAB RETORNO, REGISTROS: + + 0 - Header Label + 1 - Cobrança - Transação + 3 - Rateio de Crédito (opcional) + 9 - Trailler (Papel de finalizador de lote e totalizador) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/layouts/LayoutBradescoCNAB400RetornoParaReEscrever.txg.xml b/src/layouts/LayoutBradescoCNAB400RetornoParaReEscrever.txg.xml new file mode 100644 index 000000000..4e5b40c5c --- /dev/null +++ b/src/layouts/LayoutBradescoCNAB400RetornoParaReEscrever.txg.xml @@ -0,0 +1,67 @@ + + + + + Arquivo-Retorno_BradescoCNAB400 + Version 08, Published: 2009/09/30 + + + Arquivo para ler e reescrever ocorrencias e motivos. + + Layout para Cobrança. + + Arquivo texto - padrão CNAB + Meio de Registro Transmissão de Dados + Descrição de Registro - Tamanho 400 Bytes + Organização Sequencial + + ARQUIVO FORMATO CNAB RETORNO, REGISTROS: + + 0 - Header Label + 1 - Cobrança - Transação + 3 - Rateio de Crédito (opcional) + 9 - Trailler (Papel de finalizador de lote e totalizador) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/layouts/LayoutCaixaCNAB400Envio.txg.xml b/src/layouts/LayoutCaixaCNAB400Envio.txg.xml new file mode 100644 index 000000000..9260e7e3a --- /dev/null +++ b/src/layouts/LayoutCaixaCNAB400Envio.txg.xml @@ -0,0 +1,104 @@ + + + + + Arquivo-Remessa_CaixaCNAB400 + Version 67.126 v021micro, Published: 02/04/2021 + + Layout para Cobrança. + + Arquivo texto - padrão CNAB + Meio de Registro Transmissão de Dados + Descrição de Registro - Tamanho 400 Bytes + Organização Sequencial + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/layouts/LayoutItauCNAB400Envio.txg.xml b/src/layouts/LayoutItauCNAB400Envio.txg.xml new file mode 100644 index 000000000..4c7196e84 --- /dev/null +++ b/src/layouts/LayoutItauCNAB400Envio.txg.xml @@ -0,0 +1,131 @@ + + + + Arquivo-Remessa_ItauCNAB400 + Version 01, Published: 2012/05/25 + + Layout para Cobrança. + + Arquivo texto - padrão CNAB + Meio de Registro Transmissão de Dados + Descrição de Registro - Tamanho 400 Bytes + Organização Sequencial + + ARQUIVO FORMATO CNAB REMESSA, REGISTROS: + + 0 - Registro Header do Arquivo + 1 - Registro de Detalhe (Obrigatório) + 1 - Registro de Transação (Opcional – Cheque Devolvido) + 4 - Registro de Detalhe (Opcional) + 5 - Registro de Detalhe (Opcional) + 9 - Trailler (Papel de finalizador de lote) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/layouts/LayoutItauCNAB400Retorno.txg.xml b/src/layouts/LayoutItauCNAB400Retorno.txg.xml new file mode 100644 index 000000000..963c17dd1 --- /dev/null +++ b/src/layouts/LayoutItauCNAB400Retorno.txg.xml @@ -0,0 +1,130 @@ + + + + + Arquivo-Retorno_ItauCNAB400 + Version 01, Published: 2012/05/25 + + Layout para Cobrança. + + Arquivo texto - padrão CNAB + Meio de Registro Transmissão de Dados + Descrição de Registro - Tamanho 400 Bytes + Organização Sequencial + + ARQUIVO FORMATO CNAB RETORNO, REGISTROS: + + 0 - Header Label + 1 - Cobrança - Transação + 3 - Rateio de Crédito (opcional) + 9 - Trailler (Papel de finalizador de lote e totalizador) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/layouts/LayoutMercantilCNAB400Envio.txg.xml b/src/layouts/LayoutMercantilCNAB400Envio.txg.xml new file mode 100644 index 000000000..8eeb2cd91 --- /dev/null +++ b/src/layouts/LayoutMercantilCNAB400Envio.txg.xml @@ -0,0 +1,113 @@ + + + + + Arquivo-Remessa_SantanderCNAB400 + Version 2,0, Published: outubro/2009 + + Layout para Cobrança. + + Arquivo texto - padrão CNAB + Meio de Registro Transmissão de Dados + Descrição de Registro - Tamanho 400 Bytes + Organização Sequencial + + ARQUIVO FORMATO CNAB REMESSA, REGISTROS: + + 0 = Header + 1 = Registro de Movimento + 2 = Mensagem Variável por Título (Opcional) + 4 = Mensagem Variável por Título (Opcional) + 5 = Mensagem Variável por Título (Opcional) + 6 = Mensagem Variável por Título (Opcional) + 7 = Mensagem Variável por Título (Opcional) + 9 = Trailler + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/layouts/LayoutSantanderCNAB400Envio.txg.xml b/src/layouts/LayoutSantanderCNAB400Envio.txg.xml new file mode 100644 index 000000000..1469832fe --- /dev/null +++ b/src/layouts/LayoutSantanderCNAB400Envio.txg.xml @@ -0,0 +1,119 @@ + + + + + Arquivo-Remessa_SantanderCNAB400 + Version 2,0, Published: outubro/2009 + + Layout para Cobrança. + + Arquivo texto - padrão CNAB + Meio de Registro Transmissão de Dados + Descrição de Registro - Tamanho 400 Bytes + Organização Sequencial + + ARQUIVO FORMATO CNAB REMESSA, REGISTROS: + + 0 = Header + 1 = Registro de Movimento + 2 = Mensagem Variável por Título (Opcional) + 4 = Mensagem Variável por Título (Opcional) + 5 = Mensagem Variável por Título (Opcional) + 6 = Mensagem Variável por Título (Opcional) + 7 = Mensagem Variável por Título (Opcional) + 9 = Trailler + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/layouts/LayoutSantanderCNAB400Retorno.txg.xml b/src/layouts/LayoutSantanderCNAB400Retorno.txg.xml new file mode 100644 index 000000000..963c17dd1 --- /dev/null +++ b/src/layouts/LayoutSantanderCNAB400Retorno.txg.xml @@ -0,0 +1,130 @@ + + + + + Arquivo-Retorno_ItauCNAB400 + Version 01, Published: 2012/05/25 + + Layout para Cobrança. + + Arquivo texto - padrão CNAB + Meio de Registro Transmissão de Dados + Descrição de Registro - Tamanho 400 Bytes + Organização Sequencial + + ARQUIVO FORMATO CNAB RETORNO, REGISTROS: + + 0 - Header Label + 1 - Cobrança - Transação + 3 - Rateio de Crédito (opcional) + 9 - Trailler (Papel de finalizador de lote e totalizador) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/layouts/LayoutSicoobCNAB240Envio.txg.xml b/src/layouts/LayoutSicoobCNAB240Envio.txg.xml new file mode 100644 index 000000000..f9cbeca48 --- /dev/null +++ b/src/layouts/LayoutSicoobCNAB240Envio.txg.xml @@ -0,0 +1,184 @@ + + + + Arquivo-Remessa_SicoobCNAB240 + Version 01, Published: 2020/03/18 + + Layout para Cobrança. + Arquivo texto - padrão CNAB Meio de Registro Transmissão de Dados Descrição de Registro - Tamanho 240 Bytes + Organização Sequencial ARQUIVO FORMATO CNAB REMESSA, + REGISTROS: + 0 - Header do Arquivo + 1 - Header do Lote + 3 - Segmento P + 3 - Segmento Q + 5 - Trailler Lote + 9 - Trailler Arquivo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/target/GeneradorBoletosCNAB.jar b/target/GeneradorBoletosCNAB.jar new file mode 100644 index 0000000000000000000000000000000000000000..4c56fc19e72878c8926cd436181a9cadb24afe35 GIT binary patch literal 167396 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 + 4.0.0 + br.com.rjconsultores + GeneradorBoletosCNAB + 0.0.1-SNAPSHOT + + + src + + + src + + **/*.java + + + + + + maven-compiler-plugin + 3.3 + + 1.6 + 1.6 + Cp1252 + + + + ${project.artifactId} + + + + + commons-lang + commons-lang + 2.0 + + + + commons-io + commons-io + 1.4 + + + + br.com.rjconsultores + jrimum-texgit + 1.0.0 + + + sun-jaxb-rj + jaxb-api + + + sun-jaxb-rj + jaxb-impl + + + + + diff --git a/target/classes/com/rjconsultores/ventaboletos/ArquivoRemessa.class b/target/classes/com/rjconsultores/ventaboletos/ArquivoRemessa.class new file mode 100644 index 0000000000000000000000000000000000000000..16b3ec075960afcb89fca0ef97964c91c9bb8856 GIT binary patch literal 2236 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 literal 0 HcmV?d00001 diff --git a/target/classes/com/rjconsultores/ventaboletos/ArquivoRetornoItem.class b/target/classes/com/rjconsultores/ventaboletos/ArquivoRetornoItem.class new file mode 100644 index 0000000000000000000000000000000000000000..10c3a672271377e1752eb5fad96cbf50a1542f55 GIT binary patch literal 1898 zcmbtUYflqV6r9_Zu9O0mrywApVq28*kY@>r!5A@B6CfD2^8yx_BTBPeWW_^`F7EY)`(|4XNRV zK<_2!rsddDFItkR4814~-P%7VA+S=oCQ;FH43ggrMdk%G&-AL6Qz34_PgnI!D_1Zp z9xvN>%(AU}RhMa>hpyLK%=uJ$`zGsOxQ<0*>&cS|lFsH*Jt0WY8!&sfS4Q0`kR+hQt5( zf>KOZSE0ai%k=94755#d>KgKyss1j5jV_;2wP1p_j3R| zMlPch{%Id$27H8p;8hJlp(~0i@fhyZu*yDlU@Uur@t^3*e#hk7Gu%7HxH_5siu)0~ zQ8}VS1q+CA9AY`cT#sOsSc+|sYwRM|7^d-%IUf0uLe)LvSKUy+Y`B047BG1QG=2dZ z_q9|7%wwTez@?HW82QX>5uazES1 H=ehO=l0e($ literal 0 HcmV?d00001 diff --git a/target/classes/com/rjconsultores/ventaboletos/ArquivoRetornoItemInteface.class b/target/classes/com/rjconsultores/ventaboletos/ArquivoRetornoItemInteface.class new file mode 100644 index 0000000000000000000000000000000000000000..dedbe568b28eacbfc7d5e5cbd9b33a8aa14544e6 GIT binary patch literal 737 zcmbVKO-sW-5Pe&5udiL6040ur+5kwIx1)&x1o9!4AwpmR!`Eefn0sbg)y4pjl zV(>J(!_4~_-rM`jD}W>HH&7EeRc7jEi85(kXlpXc{gP5EL!-%>+`q`4i?}o+{$!~c zSegz}OAk^}1FHgFB1`FOnMVF?n2@ppot*5Y3`t4-INuWpy2C%1LTwZiF0Tf?dx55$ zOzvV^Xv2!DB3+SX3G^l1;drcVWG3=y-W52h3b(N5&^pmiPW#>7f2|6%81mC-F3@Hq zci+Os+8@Tb4fqt}I7+20G7`A?HgHyvdg(Uj4D2!Wf=7Yl%2pN@8LTxnMW*OF)-3bj z_YfV<{M7{nRydSEoinwDI%e5wVBOUwTCQ$j)733(^ZX7^*WmHoF53L&;JMD;2ZA!} APyhe` literal 0 HcmV?d00001 diff --git a/target/classes/com/rjconsultores/ventaboletos/Main.class b/target/classes/com/rjconsultores/ventaboletos/Main.class new file mode 100644 index 0000000000000000000000000000000000000000..fade4b272a4e785411fda3cf180a7d8c5b1b8343 GIT binary patch literal 4020 zcmb7HTW}j!8UBtVc_np|IC7F!jZ0c`vun$;Wy^N#IKh!+*N$wZwsC6`2YeVS7vyld}k%g*P!HOchA}X{(t}f zpYyl>zVT-OQT$0kgTOJ}%0}!J-O3e;8OO4XLS)s*IohI?F&wK9nbORh0*^q`ingjn zGFmPjNiD7zx+Bnd#>|<{S%E#RZSw-2xV2;ium^q>UNj2qPntPnx|m%w>^W^QV+aJ3 zmab*yHQSWy>ZZrJY8C`eB=5qMA*#vJB!R=Nmy#PM%{sQ3OAocpD>xu9UPsbm#?t9q z*06Og=a`wuh<&YSu39rj)+iLTsrCH;n&4M(P+;O-CC0TygRWlPMP@VnKHSgnbw_)8 zV|@WMBc$R%9AS_PhQlbDX)BSx2h$-k5IIxk? ziJW7k4O>MY`YB*l%M^{&vdsHL+op(A$%dr1(<%l*ggi)Xgq>kqv&OZe8;(phwUU1q zZfQd^hE<%E{6}`>Pn!kDwtRRG!!R@XaD1a;B=30@ahZaBlGn-_)%*pJz_@}jf$lm8 z+6uu5$H=O93=@o)jNLXg2@JK?E0-$Bx3jvbydZF)jy*eSWYlnoXCt*pWNGXarnRX~ zCS{#W3mkM4nAM!Ck@IGH)X>eWmhs^tGf1fScMc2$FokdclbBU8hxb+@Hm_wYd(L!< z8KN&#&CoU}E>I@%go-C6YWFfM^D?(twkt~tjQDU#z}pk;>Sk3;;{7T>^X5e-+mid`RHMz+cB0B*L5TBm=+y++U@UoHeF}d(e$V0 zY)v;5d{|(h4z4oV(^k>pU|DanV;RjEGc)W<&qxq`RN!1ap_}tq04B_Gi$+RNUZXZ6!!4@C9Jf~yX>0o+7b!RH0Sb^O^{`hI*7&nx(nKvx|;BUj87BImW7ZYABQs`xU#!j3VOn2C=} z&rKw+^mcV!N#s^dmQ}PK=yr%B*q+1JWHbM|K&)=WcJfPLCGZW2|8EKm*T?VR{{Z<1q&&c7t<^T*8XMt#=GktYGoPV)%Wyvvb@ z*wnV1ZYqK6xi^y}(-133-!X_T)DyI0kZhkwwN5|tgsoe)BCd+p7wio?5}tUGr&N;|kUpJQgh)LGyAD$cD#jvHI) z1S0j+ZiAtK;J7-pDQGpwNvGV#Kc(f}W4wZwIrwI+qOBXUD{?x?t3#)RD-WC;xx91$ z4gBKWfKP?12;YKl@1tw*-FANm_>{ka{kV@$wL-x6UatJu$9dkFC0q^%uauyLgG(hWhoxe3gMOtw zTtc>lYxnwo1%W|N$WubGjAv-kM+QA*+~CK@2E8Hgfm8ck%Rk;8@|N(4GHxyeKf8u! z2OGI?ZOHRK63hLqRwy*+rMw)>;o%+xKsiGN^K zw1`g8&Gό|9{dmz*Eb3DptGkiG2`_cV4j0ezy5Ki$9(~BcG!&L$g;R250B6I&F zj={ij-{KYE zUp(2rP09bpFy6sA;l+q(LR_@)Xng|Xq7#pa9-fv5FeOHL5S>6uOyhAELV5WVDf|R4 z({3L8|^Hc3AgboywrFOzr*i& z_GzJQe?SQewN^NM)ak_KQ@fI}D;n!5az^3Yrz35QTzOZcoFvd0WAY3T`O4 Usc_!9B-09Bl2uTqpa%T$f9F`HivR!s literal 0 HcmV?d00001 diff --git a/target/classes/com/rjconsultores/ventaboletos/blocos/CabecalhoRemessa.class b/target/classes/com/rjconsultores/ventaboletos/blocos/CabecalhoRemessa.class new file mode 100644 index 0000000000000000000000000000000000000000..b197d2d4ada0e48b58cfde3034a4d0a99dc4749f GIT binary patch literal 350 zcmaKo&q~8U5XQf4V`Hm=mwM0_NH1OR;KidL2%=!1_sue-37Z|<-Q?js_yB#V;#4Yv z1TXW=F!P&#yZy%}fLmPTm?+#??sRA^``Ek0fubJBCsVPb#8Fp{t;mC^$QrlhH|i)x zlOt2OY|UV_GrrcZRZBK0T-TId`i=sZ^xl)Vjd4drVOgx6e~~AjsHSi)Q2YnFDn^*q zM&V|3RNcfBShAx%f3k~``(Wv@aU^T~J#Kwia;Bg#l}`bg+bl?=}+81dBQiRLI&JYt_YNGTCTF` zXmd;0+#RZWs(MnTkzgo{_>`M2mjm<88VNgK$l9uZJ$@t_&QR>k8@hq#$iW#yMNY=T zQ&;L@>iFuCOPhO+Vo04k(g|7&@p_}jkZ7yE$RZBIz#1|P`HmyS?PP2T?}1yc(DaHV z^$4!>Suqg|9iQQ}^FLoCFgFkZ4gYmft~XYFWWZ21kVJ|A{vx1KU+veHYD7#1R?Ta& zZ3AgdRwJ^=CfaRRO*~uNINE$=`9+TOu5mzAaeCeueIzct5igxd`a_GPn5E35lj&;n z4eQTgTaIEXEXJ`xcjKo4c@!vP*hG=yBKQTRrzLPE5?n!b25yDgXjJp?6{Y#;EYXz4<&0wO|UBC2Q z+i8{~f@0*m6#3p^Fld>s&u!OaFd2#Q*713hyBH*eJ2;k&>m$hQn}%>*w0yhofJEyPwQP z3!_fdgk`p_OxLFWaI(+;Y^%uts90!8QB+THq))BxXc#MAxW?>G;UgvKx|3z{hS2{m|r=fENGfL1_ zYwO=(zPmML3^0XRXM+gS9aXqJq0xB|^`a6aCxgr=L6+1YIT>UYx0{Orp@I;|b0x^K z46>jESyh89%OHygl8XVMjv$b{5~Lu5EGa?O)gT2KWCcN1V?d}S31kB{ag=*xO9m+@ zL0-Ui=-ksITQbN7f^5cs(48QVq7tMegXl_-T{TEa1}P#)DF%ctC4szDg6zp4yGoD) zHOQU}vX3AKF(C9R5XdWKkCbJQvJ&LAx<|?~NCiQTVnFCwB9Mv_oAdg1nCbp@*43&VwiP;xDb~NuB@z literal 0 HcmV?d00001 diff --git a/target/classes/com/rjconsultores/ventaboletos/blocos/DetalheObrigatorio.class b/target/classes/com/rjconsultores/ventaboletos/blocos/DetalheObrigatorio.class new file mode 100644 index 0000000000000000000000000000000000000000..d6baf48ee96a401fc578f2f43379bd4f8577b48f GIT binary patch literal 306 zcmZut!Ae6h5S+BySE~mvwFiHoy)@uS@Fr3yhy@G1=fx$>BQJ|dUO&!*AK*uc`+D)v zUUpcR*_qj&->+`~54fo?PeN_{xeJ98WqqJnOwEA`XI%%j0xwid*wdy?-Wj2J zu5h7n+n9sV!9=Gwbwjo&Of!}B$MaFXBD*)OoMVN%`RhM<9Sb>1Pm7%h+$ zxEF)BuBF6V`s^rLZ^An{pGy*($(FlhY2^bc%uZu3`w$}qg`s=_7)pyvjL^5KFh1f{ LzYAj`bAanVsNz`C literal 0 HcmV?d00001 diff --git a/target/classes/com/rjconsultores/ventaboletos/blocos/DetalheRetorno.class b/target/classes/com/rjconsultores/ventaboletos/blocos/DetalheRetorno.class new file mode 100644 index 0000000000000000000000000000000000000000..c2c389546fe1db299b1d9a230f343b6e62ec072d GIT binary patch literal 1790 zcmbu9-%k@k5XZmU7HUf=&=v&50!px!kK+yOjfBYla!GSr z9AS(lFpMO_NXhZUi)Otd)Ei!L{jx}#yL((Y=DV$o=zWJ0SiOj-Z+{45wk9-1`A0W0 z`9g0$Vqlm`U;u;UqH&Rn@qDiblk_kJ@AiRVjY3_uv4&_ifhew#Um`l~cRhb)w+1sq zn899B%~O91b9!vbJ<9(d7L(eY1Y(FYq*}LA667g49V^lbDF>dJftBeEQT|EZawz3!h43Nmn;9dbkxzZ=Jtmje%K!S zcv&`;EuK5(VWiLgb(Rbv=Ba35`hkTJGGj_o$P94Xr?dFUF6%@)ch_2+2S#BKanhcN8#NGs7yJdS^SE7A-px9VVGv65TSLB hIy+DD0#zk<3OL)TT$bL{GR1i0Te1|1D

S_zw#twFLkG literal 0 HcmV?d00001 diff --git a/target/classes/com/rjconsultores/ventaboletos/blocos/RateioDeCredito.class b/target/classes/com/rjconsultores/ventaboletos/blocos/RateioDeCredito.class new file mode 100644 index 0000000000000000000000000000000000000000..ae8ad54453ac55e1871278b74883af25ec41df4e GIT binary patch literal 847 zcmbVJT}uK%6g`u=rfzC}lzlz)rUoqp(L>RT6$E0C(fjN=*~q#RyJNqrpa^>C2lS(& zJDXtH_7Vd#bMM@9?m2hfKVIJe>|ra51%`c3jh%4hsUVv8T7@EV?nR)vt9+qVTBEL!~<_?dwnm z!$XEbprT0iCSwsQ2J1)$QXey;Eu{CXPq!~X(^=hJ!#=MYHqLB4uA&q$<6>3-gLx>ru5wa0m-~0qe$D!x| literal 0 HcmV?d00001 diff --git a/target/classes/com/rjconsultores/ventaboletos/blocos/RodapeRemessa.class b/target/classes/com/rjconsultores/ventaboletos/blocos/RodapeRemessa.class new file mode 100644 index 0000000000000000000000000000000000000000..bddccba69dfdad5acbe970c046e5262ad6812af1 GIT binary patch literal 270 zcmaKn!D_-l6h-e-Yi!&U!EX8kx^bW`-3x`H5W)Rqe1wF_ymn@ik8{xv=tq@KR#GUg zE?hX=bH9JCUjSY)&oClvjkL-)MqKD@6wg8R?4mBka+IJ-D<(xD7yZEnw;Y1bFd;lO zy4T8TSE*y!u!)41isPYc*~^JPJ9ehlw&1D`(F`UYShn+^&Bhk=ScJq}coW|2{vQtzG;BYhQ-QK{!gD&Wvp zLwQSmiYZOyr5tLh9FzoB#`0czkxWM3g+HdiIH(95{NqxAR+7b})fL@klmwxS`ZNkt zqm@9d_r-IT7#fj25~v)9NocwP#rDoXpmd^!R7DYsF6L1cSnh=hooBI6`da!C39R*0 zAftiQq0MK-lDP>}fur6(R8LpITDC@HnCch(jrLB?1oIGRxNtDX`1CJ)vz-ICGgq%v zrUN<+?R2f2SK70S!!|P&*~)AMOUOUK=Da5M3!Hfz1;=vd1@0ps3Rq%anG}my=CeC( zzzSA5<7J}8{yX>y^@kr|Hy7N*`V8D^`IZMO~d#>#VskxuH4jn$cTnb`Gn$ IHDTQN1jHh&P5=M^ literal 0 HcmV?d00001 diff --git a/target/classes/com/rjconsultores/ventaboletos/blocos/RodapeRetorno.class b/target/classes/com/rjconsultores/ventaboletos/blocos/RodapeRetorno.class new file mode 100644 index 0000000000000000000000000000000000000000..aeaeac62a664f6df854b8efa40b6c7b9173e4ef2 GIT binary patch literal 340 zcmbV|u};J=5JYEl$pyl}o%jPfpuiG{3PgiM6@hf1>m8p3j(lF^IQL&vNECbkABEUN zG_*7`o>^J@v|ryJp8(FWD3K8^3~y9y4TrAxiKFe*)`p}T_BL^+8qY>-$!q;;mr}*R zC33=|)myE+4$tbLX{||w>9q?k-4G_nCo4jJ%WGRpi(GEXnABV5-1K)WJTkK9LN@7%cH5BS-@j3Wr4oB-l9kcpO()R=+d^c_2I ZQe>z^hcV>Cp6G0R7vlSp2nV7W=07gTR8jx{ literal 0 HcmV?d00001 diff --git a/target/classes/com/rjconsultores/ventaboletos/blocos/bancobrasil/ArquivoRemessaBancoBrasil.class b/target/classes/com/rjconsultores/ventaboletos/blocos/bancobrasil/ArquivoRemessaBancoBrasil.class new file mode 100644 index 0000000000000000000000000000000000000000..8d15e1a8b2d1a67d29833379fab8d43481650cc2 GIT binary patch literal 4152 zcmb_fTXPge6#hDinXpU(Nk{@ButY9NHY6gT$Ra|55n>V`31H+Rv%6y$oa`(!vr)Vw zBHk76mp84_@=Z%fz*GqoWvKGS7x@ML45}=@o|)a9O=7vIm8zZY)7_`f`ObGvpZxmg zPd@{=7oRC86L>Ufjdj{5l2+QunyzK*PUpCucD00M>aOKeNZ1Y z9M`sZR$xI$(8qlOm0OLp;cgQsZ)rUsP|}(HynZfzJKuacA$$3)H}M{ zttE6`csvKLK)j{IYi1sew;oWioMzs>l`~a^LM&m8s#uDr>Uh!I|oT3V@!YenWUa^4J)mnMWCs$KIGa) zdbBHRm?_<^LYqKik7l}BG?{}w>KYkqOEiMDXqN<9C(zK+H&X-Qji3|j72HGO6jr-U z&2dzw*9HNFuncHpQgI*dCxx|4Mo*^%*3EU*th0gro{9%lY>~HB zxt6aug4JkO@Swn5g*!dFx;4kmBU6Qk1QrijV@!8_4)?dBor#l&B?zg&<`Scrk6dt) z6t5m~wd7O%S|-S(d0HwpY`9s|5_qswqVLpQW{AEgVH=|wE0$p~7BaOTQLziG9*XO! zWQs2Ify=tAT79e_WXq#WG!GR|xWl%!Q*tGOUeqWU5IA)E`7+z0om$Fre9xSs?AeP! z1^WbQ3z6AP_(yeH#Sn&R{J3Uj^*v9Lmo2-)qzSgg=i>k#Q*e-hD9zH@)~Oi5;{r=r za9Hhh+ZxhOX7zN^(9B$=mDh(@m%Ch&z8{BG9FYoYs6eLWkZz9~NlPw0q2d@cfp$`V z_Qf77d$m!bV~1c7c;a8xhLSH}o+Kq`%&-41ytDm~w;Z02Q5Xu26P^OkB*j#mz*Bsq z$oUx+Wl!RSo^<1_gtXGuXUWaNA@a-W-$q;#bGSryOam`Zujdw5GP zsCW@C39Oijl{_3$FECg#bbo8^44vfTY01Y|1P1;i5HmD0_Jp7aDi(@TOKZ_NuYq_? zV0ocb4P;GouVt`c+4*Ng!RrDWO7o&fe*|yhZ3S=9k5>~hLfW**=~AYHk;m;ttP*Ba3`Bn z{;HfE(9gpw|*|k=qhJW=~fW=g|nCq&q z2urvV9J5smF8PC(mQnU>>>8GRj*+(5Bv!PITtI!rG2Roqie(d6IgM2XnH)99)do4L zm805k5ud{9ktwVlscW4?td6HTCa`e=nj)aY}mk*38iuwn3eP)nEB(CM|PLkr=H zVL8^Z>FmIEHl@9|2g6v8qm+ze1I`iB^Vozhu^Hds0er`X@fU0jfjXTBbs8qd0#K_^ z(R2%EswJvvSU#$FC*bNXnx44|HxJWzK~V4Eb}A4|;Q47Z6($@tcpF}pvhV4OPl`sy z3k+&4!`jR!cA|&D?G4d-S74_MIWy=Mmj%w?Ro^tRF9`U}*bOvK;jB-@bA<5{-jH;B zH^v z_`Dao3|O+2L#nro3U9m_3wX49_a@@7d|W^KbQ zxV~JLb=hp1(=@U<(l>B}Jc^@?;X8^xKjU5OsDK~&$&yPk*XL~$0!aiZj_ zf!IZj(EM&)&ej{a3>dPnE}f=Xk@Yi)zb6dXjnSp&M%md_HhptmdZuOKH)Mm)Z27oU zGo~-;BT10=WZCvn&~wFhZ2zhOJ4TPM8ql40%Q6EyU_`*HaM*x>g6+s#t$Im%D`u&N z?1Kdt7aUVz({uQ;+uyL81{4b~wy6K3f{-{_5^VgHAwO+0tQIFCkUMw#dqit)`cq4g&Fd=CLr7P=p2ob5|%Eh zX9Vmab@=sBQB(S6q9P~d4FQ8~WjumS8s#G{chVOG43T~)N=iH)cwv-|CLyo)1ng~l z>El?N9aPGhoK^%3lhYth6{Cf1rq&?tG}7M@u#fa=z2YGQ1jfJF?n6?3C}2M+1xAhr zI&~AIdnDk1uEXZd2Dyp*m$YR8FH;?7gT%yxL2Y3h$NfFnuG+Z6DTFQHARG!lphG_t z7HuqVmn_M`U4bGv0$xc*h&Bw>jKKy>I!{1v)O78AnNmvULAVK%Zc9KP=_sX%Ap;IZ zDJaU#mfAmS(PnlqN&z#tKiK)0kwa|Eirw@*-0}{wLEEDTwnuFbWr}Xgv*esj+u+gY zVB$}{aXOk{1V4QT{@aPQ-bIVEt1OnLvRHb`Vp%DRwV^DoFxnHyhkHH#zJ^aZv&r_QLi zBbdV@D#E@%6;4lRlt-dI38xs4aUJ9+3vwFHgw7ox<2uMO1Q|^Mp@k%n2^M5h2N`2Q z&ha3VI>;#m8BYPBN+OW+EXV~NF~LOd-g%6cB1=0-0t(@;b;g3o^@tmZ8=Qb+-z?TkR)WkD8okXtOsO&(-X2U$Xp~`hv=C$~1%z%D1hNhl{MD}k8#>5i7NiOvh0YzP z?}iTY1VNsrfY7yuKx!;VT?cu_g19_LT?hFBLB31@p?ej9G}xut)Iq*tL7M#1Z0aCi zBgi)?Aavm*5T6BU=^)>-ARqG}Egj@L1o=J%gl@b9@|XqLR;)j;AfNCc+luu^1o(9`jAf}$(B?LLht&Z!G7-hksw1lQzW5|iWq6x21DF3O*UlRs0A G&;J7(g7S0# literal 0 HcmV?d00001 diff --git a/target/classes/com/rjconsultores/ventaboletos/blocos/bancobrasil/CabecalhoRemessaBancoBrasil.class b/target/classes/com/rjconsultores/ventaboletos/blocos/bancobrasil/CabecalhoRemessaBancoBrasil.class new file mode 100644 index 0000000000000000000000000000000000000000..665a034835ed0bc439cb00c28dd329c031be4fd7 GIT binary patch literal 4779 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 Ee^S!q=>Px# literal 0 HcmV?d00001 diff --git a/target/classes/com/rjconsultores/ventaboletos/blocos/bancobrasil/DetalheObrigatorioDadosTitulosBancoBrasil.class b/target/classes/com/rjconsultores/ventaboletos/blocos/bancobrasil/DetalheObrigatorioDadosTitulosBancoBrasil.class new file mode 100644 index 0000000000000000000000000000000000000000..753980dcff828886e47d2a5f0b024f1b9efcce95 GIT binary patch literal 9147 zcmb`LYmgjO6~|9+9-C~MWV4$W21NxWFSGJS5((LzB!(<(WH%w2#H4qone8w;oy_zs zQAE_BphOW-P(V;XP(Yr+C_$nIjS@6!P*6a8Rrx`y{Ge5S&{F^Z+dVrycTZPB;g>nn zeb2e~*XQ2z=ziuuPdp_er^z2$rNxnr`Eagr;ZMfgxaj{=SWA&ra!6#(!;5OeekJVg25UYn^mvuX4=Px<^U|;~?Dcqs*oVf2 zu!(~0VJ^(Ws2l-xMo_??6~jTb>V@5B`Q zeig@;u5hW@xSU={Mz9HazYr9l(zd#9<(8a3VlFzpK`)A3l2VzP+N%}A+i_^(b=FpJ zzN+y$fmdx@ax=lv?FBornUf0`O#bt@VIO!1DhL%2)~ex(o%vF&8jRqwBPev6KwIhO zhrDEO<`?t;Tk93+_Edm5viWEpKKA$>J3aPe;?kfTMCUm&Zr=R$j*RaK3x1o7lXF}- zL(X($T5nMHajXaZ%0L{29lc@RE3Nk`0k4yr6vdT#U2)|&7{o-Q1~b!7p6GKUIdN_@uW^QVyE3&tLt_NF zDMsKC9!+}GU+2m+>UYK~HjT$tn5F41t={8Gd)>+&M>sT58Dko4c4az^Is(EPj?BhdtCa*#vmLI?qS+Qr&3yDOcV= zL+-tzf)cly7Cq-K0RJMHHu=BFw`qN_3wA(t>l=NaMZ`*qg}s3u811|nmpvn zDI{V@j8TY>cB4t4!DFt>qXCm^V+0NgQoRIo#qzQ31ns}&%6!`MyeKNMD^h6+O$W`M zbY%gL8C}slns#2j4WY$%U0K-dy!vS3yj0sl{ij`7M1AAD)Yxd2tamk3{*fzhqjHiZ z>qF>ixGnXbhnmm2vY47K9b6wsp0cSQqVmsN>8dlwiH3rxF9^`CR)?eq$n z(_@Y-BFC|}PFs#1n6IgMBJ8hSyl9;cG=rJ8*UuIN{OBr=1Mh;SnjvPL2hjYNPMiP$j`kzphby^%P~MxqNf66XbS z4ZMa18^34asteMAoUmZ8oc)MVdk20enwyj5T>N)q1z93XaplN6q=c*t%9b|S zXMn6qK;ET-tgu0PRFKtjf$|h-P-ko7vqfDN({Ae%Bk80!SNL>-UkW2O0FW4Yg0OW%iAk6m!DXJbBvO%s=LAL208L~lk0p#io5EdMQ zT&9AQY>;bIkg^U^vO%r`$nFdfRy=})D#&&lLSkZm>ZP0p!^X5O%%<`Mi2qZ?ZuSs~}&{59>`f$Ps`%mjS}o zn;>6QYt1b-$nz@5ZF;S_#Rhp1ATMQru=gj(msF43ZiBp{f_z!`$n7@B9|7{G3=qD2 z5acUr_}*!Q{8&@-AbWI>M{STP0C6)w9#25Nse0&3+r?L>1(FderQ$QcD^nwl2r-J-OUQCRen&%g6kO6?K%K+ggID)*S iZq3U!$OaYU6@6=7wm~)lWOD`xzm*c?cjimm@BasDNjC}r literal 0 HcmV?d00001 diff --git a/target/classes/com/rjconsultores/ventaboletos/blocos/bancobrasil/RodapeRemessaBancoBrasil.class b/target/classes/com/rjconsultores/ventaboletos/blocos/bancobrasil/RodapeRemessaBancoBrasil.class new file mode 100644 index 0000000000000000000000000000000000000000..a78cf35495cf7ac1efcb631f5c4587f1581bf762 GIT binary patch literal 1873 zcmb`HTW=CU6vxj1g#v3)5G=L@sjb{<*UOX9G_g%gG^D9u`aUcZ+-BLay9=L76OD-v zegHp|@tj@IWipsX8^WBKo&TKqoy+czpWnU%z!P|!fdqp$mYkU0g(Y2o>IBjgzBvs<|RWwsQLh?Ra}yLNEIAlYi4Gf17tk;p+3iUw>zfkB~XyW(^@ z84B+mA3B0Tu_rC=oO92n_55KfcyA+r?|%Vf;UZjqEP}Vc(^hV^HJQx1jM9TXH>Tc1K%3CDE!Fb%hH zZbSkoLj_k1?!YFF%ZEQh^`mmQpgp_=+w;RmNSdIlI^8c&{d09Ld|JeaN}-2Jq?%t( zXcQk&?`T14Do9xia!(IZQ$aQnq`Crx5=wtQw3>gLE6xnA6_a=Qw7;Wko^@P)M5nE)n?>C1!-zQ4)qy1P(eBf(p>>U?*f6C IVOKu-1rT_o{ literal 0 HcmV?d00001 diff --git a/target/classes/com/rjconsultores/ventaboletos/blocos/bancobrasil/RodapeRemessaLoteBancoBrasil.class b/target/classes/com/rjconsultores/ventaboletos/blocos/bancobrasil/RodapeRemessaLoteBancoBrasil.class new file mode 100644 index 0000000000000000000000000000000000000000..a51b871e54293cea1bd110818c40e8c1f9d07b13 GIT binary patch literal 902 zcmbVK-%k@k5dO9;tsEx>3l&98cq@=_i98t%515dUTnM&?_r2?+F4^9~?zVrICMt;! z{sI0`#@VBWw7G|dhy5`#`^|jw&HnlO>o)+ zym3jUO&$(e{R7Opp#z9sZ6viM#*{MX+-wDK=Xqtls^%u_x7&@8XwJ&BGmCT#wsF#cB%@x zn2a;BpJk>=;8|*Nsjs9}!JauA{)=(~m+5jum(`95wnyYY`C*?%%6V(J$aZhPqLm07 ziP1$zV3#q>nXDPm?SzV4N&P>8z&c06jAqKLGVn!=7M^g(&4mQIy^2ynsAym&Hm5Tc zB-xvr+rs>hg6!DiDs^5fylSBsf4BzUS!CYV*h=^me6AeaA^ygf8rFGlmd+;He2?!R zU;~?M@hH&YeIEQ1TVEHzaV7Y91^7F57Qq{p;Fs8)RX$;!wZQY>@CSAtct@poiyPi9 VGj#7?&A5lYf(W7IS0&xo{{UGQ)k**W literal 0 HcmV?d00001 diff --git a/target/classes/com/rjconsultores/ventaboletos/blocos/bradesco/ArquivoRemessaBradesco.class b/target/classes/com/rjconsultores/ventaboletos/blocos/bradesco/ArquivoRemessaBradesco.class new file mode 100644 index 0000000000000000000000000000000000000000..ac3fbd716a4d55014894aede636cc22fb15c1aa8 GIT binary patch literal 2302 zcmbVN+fo}x5IrM=7fA~U0rEw5z&Iqj*cORRz{pMlGIo^6;7Ejva~-WF@{*NC-d$0N zU-K3I0>38Z7==(3m!Djfk4n;`3j&msWooNtW@om$&*?rr``6!p{0ZQFe5=93ux!Y3 z(%v>?#i?1Yw1t!05fzsgq$OPGBny@_)MWFba15DTv>(;X9hnnl;W&J$wXMO+@ZM`& z9W~9kqRepWrdcuF4;lKRv2_M-S{8*Leemh%$0>&4tXUB&wQ@n&YrJ3yhEP@-+*;?h zsoqDp?%`nu7 zsDkOZ1?pI@V?L&`QsZX)_!vtX78yo5D#(zcO2XEW#%*G?!>yWF{hlEl%^Vg&>$6k< zckqdZyHugxD0Cy&k-?`75$avKGK4Mj;!#ah43k?qQ6l6v6)JpKT&^&^HUC7v}MUw|&q zLHnrB*%Nuxu*q=a1X%9#qRpir8}J42rK;yw4A)NJh{2ziHQNw(Om*o;j{ZB^61}R_ zM)wSrjDBf=msa%Kpi!f@B+ZQG{&*b&ztX}3KaJ`b2+#xQ%@1fEq&HGJhG|sBkI9jT z=F5qf2tGj|o~R@A6chUx+uBEXD|DugbD`iaF6`pcF5ayp{zAp*Ys3hXH4r3EBjh_o zUPqC@cq3-G>9-Y=BGAcYih6}CyzmT1XnnN-Ug3Dw!m%0u4KuGW6yL}7tvWtm@Z--Q%K=mYn^?vD7XE(pg`$eU=g85h2>eVbQ3;=o6R7+v4DMrt2y8utrZ%1X4*6fmu$j@JMu}sDDvlY-Sf_fkEhH*`l-ryJ_K%85GdwhCBt(X<>C}U7{sohz BcvAoX literal 0 HcmV?d00001 diff --git a/target/classes/com/rjconsultores/ventaboletos/blocos/bradesco/CabecalhoRemessaBradesco.class b/target/classes/com/rjconsultores/ventaboletos/blocos/bradesco/CabecalhoRemessaBradesco.class new file mode 100644 index 0000000000000000000000000000000000000000..9a07a708b8fd7d69b003d65907b306fd5d098eaa GIT binary patch literal 1753 zcma)*ZEq4m5XWbMf`w~~P^f~nR;vQlo>Da$OIgxL~K=?j?8oo$DfA33|1`JwR`gU;1gnT2D#=$zok6e?LB6Yapge#b1}MH@rH*O7MBP#iWn-}F`scI z(0{`n4umIL;`30rmd%~85C-`v`6E|}p77BB!n}Xa_LYa~$tSjJs{;n{O0~@(aVWbY z4ROdDum)KMYfak~$HPHKcyD>f5mbT1=C!$J(|!0bp-ya{!BO*UefsYx5IWlv3TdXB zw_d4E)fcvJ85ooeNWnRb@#kU+mH7~=bQR@~Cv7K{D+Vl+$||Z%y}~A-FSdSaD7i7o zWGtj`-GDS?FaQ;11M(rp#GfEa1hHtAg>jBx8OPJ4G`j{Eu!7+Px+uIjUHCYfl9she zM+-sfcMMo1^|Drdyg2EW9D0^`Vbe}*Mi+nlN$t_L!#1kM@xO$>7)=U4-Wc^du-LJ{ zVo8C;asZPiRypQD4@AY(+utYeBa4AX`z8 zhY0d$0SGmkK(4|yJfj`iiGnn=AUEJ<7(COFohZml1bMXpgeFZO6{u=JYEh7u7UUM( u)`8TbAZ-MBw*Z7zjX?IaAZ8Tgy%yxI9>k1-d_a(o3qWYs38Wru<^EqTlTp$D literal 0 HcmV?d00001 diff --git a/target/classes/com/rjconsultores/ventaboletos/blocos/bradesco/DetalheObrigatorioBradesco.class b/target/classes/com/rjconsultores/ventaboletos/blocos/bradesco/DetalheObrigatorioBradesco.class new file mode 100644 index 0000000000000000000000000000000000000000..6b0540941323f95379875b7ac97572b91b0e0d71 GIT binary patch literal 9498 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 VpI+D8prIR0{6Ws3zpH=$_z%q&-rWEI literal 0 HcmV?d00001 diff --git a/target/classes/com/rjconsultores/ventaboletos/blocos/caixa/ArquivoRemessaCaixa.class b/target/classes/com/rjconsultores/ventaboletos/blocos/caixa/ArquivoRemessaCaixa.class new file mode 100644 index 0000000000000000000000000000000000000000..8ce6c1e4d8997f6513d5d66562c4baccaa28d6ac GIT binary patch literal 2275 zcmbVNZC4XV6n-WImm~{>01-tCVrlcDhE^#^v=*bbX(QN#@?u{nn`vCS$;RCY$NIIu z!e8Lm_Oy~x&Z);wp3@)I_Rb~{AnhS?_MDm7nZ5Tu&%Mu`{p;^P{sizozSZDkxMkRt zl(T8rRkv++1+)8J=#?-(bC z?Xpr-7*5?VtET*rp(hq!W$m~kM=k+q+?yWK5CkduWA?~Xm5h-s1q;8DlNl0 z1~8~$l;PYa-{L8YSIeo4#a%bUU3vG3A!^dJs~S!-oNj+nkd9d`->#chNjQBt!!TB` zD^y`IY3y;GlxEFdm<%F{ah3gZ45P8!Q6I!7h_^7QVS=jDKJ_r@xPU1Jtt{jcuTZf@ zV)0H7D#F`3rtuEdpVw-lT4K2TU!gi|TMW|5MNCIrMeCDxlU@)b7-tCYGioW6Vg97W zW9TnPZv1ec*IG&o@KR~Tly%EyxY?~J?g&Y063a!$EOTlv)21{AKrN$F3tpv+NzWxo zINao1m!_47+W@!F8hk-S4=ygS$Sct>g|q^I@$6^W6VnoX628~q6@HL(K@Xfz_cWn~@ literal 0 HcmV?d00001 diff --git a/target/classes/com/rjconsultores/ventaboletos/blocos/caixa/CabecalhoRemessaCaixa.class b/target/classes/com/rjconsultores/ventaboletos/blocos/caixa/CabecalhoRemessaCaixa.class new file mode 100644 index 0000000000000000000000000000000000000000..63e7aaaa0cb38bf33f41aa4ce7ff5665bcad02f2 GIT binary patch literal 2171 zcma)+TTc@~6vxk$OQkHd7AOb^f(oS|D<~irYoH1-X)qDP`*a!0lI@P}h3L1^L}TKE zAHWY~JZIb5?R3`g&^f!abN=UdF4NzCe*OZ0O(>@!#o*AA4b!`_r0a)HAU)xm*TM~W zO*$fwzFBjmg~sCcCvH}FO<3Hyly5~t_&%@DZW{U-UhzKN7BZZ{ve!O9sQPY>0o3#sv@f ziHC3&$B((DP8isZ`H}|$RVLlAAv}2|K8BH+)5;C?V?kfLfv5`)&rkK9uiJj$p}KJ` zJfF)d|186R!Qg@I+CiB?UvcG}L4QSFhz#_>gaNl9&mdd1U2z&VYQlTRYmT5aC6@Ob z6QTFkW`A&L`wS}8n-%jvokIFtT?EJxukCnoC6;KbxoE4 z`O{AQNoCQ145^HwO6(J+k7uz5vF_yCB%S_{!m4N*Z`8#o&h;>qSD2`G02?B(6hv`O>;M`-oWT$uhX4_1(fN--vACniUtDz zJW_-bS!``&u|bi=3Pu)ljVwk-n?-*dd0fZv%|y%44wQbt_}A!I0oTE3GYymYY%~wR z6x_i#1cVt}yPdzm>=(s3uXUb-`Id7T$x{@nwE7)pJE1etZUJ+gj1&sZQ?2lXMtKwU zJuS$B3Noz)xvvLVP(kJpWIh3e3Qiyo;32MRMV3^MMJ-4XR$9(o6wp5TkEy#|3Mz&OtGJ?EF0HMoCAkVZQyDG?$7Gz%!va5m|Bgjbt2;F`HIf(A* F^S}A{geCw0 literal 0 HcmV?d00001 diff --git a/target/classes/com/rjconsultores/ventaboletos/blocos/caixa/DetalheObrigatorioCaixa.class b/target/classes/com/rjconsultores/ventaboletos/blocos/caixa/DetalheObrigatorioCaixa.class new file mode 100644 index 0000000000000000000000000000000000000000..641226ab9f111afab29d18e6aa660b646b020e12 GIT binary patch literal 6393 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 literal 0 HcmV?d00001 diff --git a/target/classes/com/rjconsultores/ventaboletos/blocos/mercantil/ArquivoRemessaMercantil.class b/target/classes/com/rjconsultores/ventaboletos/blocos/mercantil/ArquivoRemessaMercantil.class new file mode 100644 index 0000000000000000000000000000000000000000..a4d4dfb5504fdd4dfe09c6369486a5d808faf555 GIT binary patch literal 2311 zcmbVN+fo}x5IrM=7fA~U0rCZGh#kke*cORRz{pO538Z7==)kRGwUwk4n-b2?|cNX_B(+0@U;dX!+pc4 zq}(mTvAvol9ang%ZDC7ZbSxnqFIBW0gQkjb4Q@-*N-eriYUZ|+7Zu@od})7QgP-Bu z*ElIs?QMM1$H@AG9y$9fEL)HEGm(=b91-xT3dN9~-e zG>z&Q!mx&MhRH3y%~KY)%c+dTJukyOdG~umRHfu4$KV*G#J<+yR_s zI8|^eRCzIN>~o%$X4P4k4kC&PRgFo8@mTJt58@TXIZSJqqH1+c8yIxFh4TzrS;%Ex zq2i6j;@uupgtv8E#5<%1Uabnd#Bk-mLUq};7^Ibpn2xxLHXxlQy&%Rg!4PgUYN?iC z{Qx+fgd|mom7;5wIklbXP#OcE7SgFTuTjQi z!zD>N+~izS&6hJhnbt5%;%p?kvAO8F{0DUs#B~HT%riWAQ;l`wX{#)R1>Dp?4KdV- zslw^F1?pSBXFjFEQu}6u_z1T(EHaFAbdV)Ym4&M#gFD1)n_D%p@-0I&mOUti)@SJu z?%`t%_o+s`k?4l5Ba2TMCa8bu;t;M=5Kn5tHcW2iMVXMhRI2DfdF=;}uPL@U9ZOgy zN>te+l3yuq2}7pik4UJ^3NbA7sHJY8l+!SEM&2p$s%UF-j#{KQ>W2)|N$z43~VZ96U-2Y%cj{%BznlPUs#Aj)BjxbGO9@9uu zlGkzJ0RD|O{tc|)VGDmh`XVt!;8WyjR0Mvcl&FNyCJ0pF6$baPP6RfeLsJ_sQBact ze2~MV28Y5=WZ2B;P@}|`2vrO-bl-QXH`_v@@<+MNYheGVm^8yjgGNeZ_>xY2`08KJ C0DP$c literal 0 HcmV?d00001 diff --git a/target/classes/com/rjconsultores/ventaboletos/blocos/mercantil/CabecalhoRemessaMercantil.class b/target/classes/com/rjconsultores/ventaboletos/blocos/mercantil/CabecalhoRemessaMercantil.class new file mode 100644 index 0000000000000000000000000000000000000000..183aef6a3c26d94caa9f8508241d17cfaff27b4a GIT binary patch literal 2211 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 H{d(j7f@!Wn literal 0 HcmV?d00001 diff --git a/target/classes/com/rjconsultores/ventaboletos/blocos/santander/ArquivoRemessaSantander.class b/target/classes/com/rjconsultores/ventaboletos/blocos/santander/ArquivoRemessaSantander.class new file mode 100644 index 0000000000000000000000000000000000000000..5595206d53b2eaa3f40c2dacfe81b3bdfa0e38c0 GIT binary patch literal 2311 zcmbVNZBrXn6n<_9T?h+=0O<=2dY+n_B%Nvl%&Vr&YPATRaxCb_1In=IYkFxs#F zivEIr)zN~;jEa_EkyX)D5d_`R@y~#o{Xh!Fi{kLTE#$iFTY4=*?JVwNNSLl)Ef*wi1YBoV>JG zq-*K-`ex97Y$_7pgoIdy>>$_IDc&lRBENTbN z3Y^J0C01UI=Jz>|`qrj1I~qb1L%JHn0)w&4aUbLr!W$ShFv4mboK`WIxPUPMqp17^ zSz_@9V)14VI>MVK#_<;QAU8Kvxgc=)zd|+H))}Oyr?!q0_*O!2Q?NSTml6%DOO%8wS`A zJqIy$I1@L)z72ZTQx=x(n-1Ya+%hmH(08DNG&NOJu8DcvCa*1NSJdJ+0?}CduoUW_ zrMhqz9~rpE8ns5E8M=uyJ{A~a|MKEcu9Ha|p9nugS7KrZk>?oM!@&9;qU(_}J2)2!Z{z$nE^g!P9VGtHG1{szqO=CW^wdY+ z5qj;%1O}@yqcy+vn2f-aON@G%7C{7hhq%5{1+Q`ZT*tAN_yvCU$W@fYm0<)Bl5c3>}PjmYB~G@p-OBi0J}mFoqN^ zvZ&*S@UJ!SuVE1n>-gKz7Kv#BpJ0ijCh!AOq7y!qAgJt1bnju61lFI!&>Jt1)sqH% zn8TwghwP6utYx&PTH-iSB{0d19aL|sjzs5=xm_|K{?RcxBf!C+5(U2CX#ijT3l$Q4 A!2kdN literal 0 HcmV?d00001 diff --git a/target/classes/com/rjconsultores/ventaboletos/blocos/santander/CabecalhoRemessaSantander.class b/target/classes/com/rjconsultores/ventaboletos/blocos/santander/CabecalhoRemessaSantander.class new file mode 100644 index 0000000000000000000000000000000000000000..94a92b5cfccd32fd19c830b589a1f42a8ce7cad2 GIT binary patch literal 2185 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 literal 0 HcmV?d00001 diff --git a/target/classes/com/rjconsultores/ventaboletos/blocos/sicoob/CabecalhoRemessaSicoob.class b/target/classes/com/rjconsultores/ventaboletos/blocos/sicoob/CabecalhoRemessaSicoob.class new file mode 100644 index 0000000000000000000000000000000000000000..6278399c249aad9ef4ea7da8abd769baa187ec50 GIT binary patch literal 4057 zcmb`JU31$+6o!wIG^UP{hNMYLLP(*MItf&T(hr)FemEaZYmyR|w6xGxR<@3Utqrmq znBf9uxPX~nz)yi07-qQO2k@g9-m{ivdA(vfOfRC7)xPKKqqFDi`tN`K{ELX*BR@xd z78N~NcfvhS290JdlA&lg2O@~vimZu9Hk?XLdN2*&ld|Fz-HPzs+OFIZbmrfZJ8tBzg~0G!380ooGxBTBvKtBLj|I)T2xVD(*%X22yS4Z;EE-RRUk@Tt6(RJ; zd-YYn5rv38RFjb?i|_y$uqfy4KP?9Pdlu#4Qfv=~cpw8L)Q5uC#y=K!COC_%aIBQd$hTwn*-45e1Mn}&OQw)(+uoLYyRL8YTmY2C;lTE{LXV5J7$@GV} zy?N1Tx+BC|#JakDT z4Y#OLvNfAt=It16aU@E$bDgf^h_`JTOLnd^1>aWGxD8plY14QrYSN&rTuvI6m1Ucb zww0Y393(Mmx^-E9&!!31kH@^}`IZ-=bTvGCJ+x`E?WNBr{Bduv{;^HRIC*halG9=a zRLL3J)8$AJs_8`?8O*U`({Xymq8Z-A|2U{hg%`Fg7jM2So1rIGeLjY!lZCquk28Fa z(CdKg$KN3oWgj08xDxxg!IeduDvLf+78S273RqbbsIsU)Wl>(rqIQ%;WhjdsR~CDy zEcQlO*EN;^Hq!-SPS;h{2w&)tCG#)IjCOd=mh?^TLQqpfssWg=}kPloqwZK zzhJTt(c8|`M(5L1h@F?9?ql`*!tZpdvvgj)okfmLs0foSRlGb$=e#lXoDpPR2RUg3 zdD{#!uY;ThNFf7+H;zHxp)+{u8F6%w1tZA2_)*ky?#hUxgE#;=n*qX=!yxDAeFMmO z9ps!5Al$qRa@`1WLkGES1X(tN+|WTb0dgk;gij9!Suu9ast!^%g4{HB z&8iM^4;ABkh^A(EgeJxWIqFhZx9Cg#0avjgEWjF_st;NI>=W5`8orH zuP_Gr)ClrG2l>Vb@|hXrfe!L5K)%ZW;X9N;J~y`SBOT;>BghkT`##b^egMdi86bR# pGl)wSJoUTA(?OmYK?FUGoxAQDPY3x4AU|h-@UI94sjB;a_g`hnwIBch literal 0 HcmV?d00001 diff --git a/target/classes/com/rjconsultores/ventaboletos/blocos/sicoob/DetalheObrigatorioDadosPagadorSicoob.class b/target/classes/com/rjconsultores/ventaboletos/blocos/sicoob/DetalheObrigatorioDadosPagadorSicoob.class new file mode 100644 index 0000000000000000000000000000000000000000..07964733f909b7790041d1a6b518156f94ba1b39 GIT binary patch literal 4536 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 J+05XT{{s*u3XlK* literal 0 HcmV?d00001 diff --git a/target/classes/com/rjconsultores/ventaboletos/blocos/sicoob/RodapeRemessaLoteSicoob.class b/target/classes/com/rjconsultores/ventaboletos/blocos/sicoob/RodapeRemessaLoteSicoob.class new file mode 100644 index 0000000000000000000000000000000000000000..980af4702a8f1b3087ed5c1788414d0da9a0edeb GIT binary patch literal 1169 zcmbVKU279T6g`uqiA`f-Q!Rn01vR%kJHod(S=Ro|zv%zkLVr7!N8a2%H2u^2~Xl<75(AZ7A`k6kF-* zkgQHTKhyz-LUCC;tH#SP7j7 zGE>$eu+}@5Q|W~=9(%81OJg$61nN^6YSX8&O03a|K>M;RlJ?Adp~fc^s7QufS$?i! zWse1l-NT_k>7^b~6-6{^SV2vo(Ni(Koa*l5= zT%h?KeB_QE`%F{hcL@c4cp$#&1;@&<%=>(d{JqI5kE7tYbo3SVPifh$SrHhv%KxsE z3(&+GM}gaD@plpY1?`WVEMN|<=YltLz!&Ib!OdLoHtx)rkJG_;n4^cE(V6S6@;=aJ zwd-kzcDgRlw7cP*8E)hq?EW#u1@^K+I=Mm)a5qoLURKBs3)%gP5O*3*$i39J`@aC# CcmJ0F literal 0 HcmV?d00001 diff --git a/target/classes/com/rjconsultores/ventaboletos/blocos/sicoob/RodapeRemessaSicoob.class b/target/classes/com/rjconsultores/ventaboletos/blocos/sicoob/RodapeRemessaSicoob.class new file mode 100644 index 0000000000000000000000000000000000000000..39617a2a8785572e04cb494a52643f1de734e55d GIT binary patch literal 1803 zcmb`GZEq4m5Xb)u6bhW6rKOLy_Ca~Hr`9({)2K}vn-HVL^!))Fyyjr--NEP5L}TI$ zKY$;~ICBRAmnCVmA?)n#{b%+!GrPZj|M&^u2_B~q6L{HHJ=48xtG+jIeC0~d9Lm0L zwUi@$<(Vx^Q>mDmqJ3|+4Z8#xWBVHuBB2)3LO1|yFk`a zzHCZ&NE`x%#-%m1OvmbX&9lBQyV89wuz2Nn8YJ^bPSaQJ)xaJqTBT`qq9{?Cue#G| zu{=yo;Iwf)GF^Elafl=N!tUGtu|T|Bxe!R4sE*7ajwJ&*@Dj4=KrV1(MR53JlbkY%M2D#s1lAl=N}nbcO`4UykSml&XIz`!j^ zngHgWcvild1IOhGvI*}oGdwhq8kcM8lR&1a25wuP+I&COX7IwU9`X~wF2#t`e}R56 z4n@yB#yt!ybt14-=fG0BWV58Fi%8>bTA5@8*@fzN-1!p73N$8z%_Np-ZiE7?phzov zLs+A6*7+;eKS!MNTIWq{jhv5(G{#3&Yu~UwIXV;U7AT|TAVM)zjgDtD&X1|@YC*Q6 zAgfxCdwP)VD99#(Y|R1T0yD_27Gy69vZDn#(1YwnLG}scU=9d(m_hF20gchtl%gOd zEl35`k@HMzN>Pv+fz;=K@D*c_nzkbKD2S;AIn-CA9tAlfkf(D%_$@Gq8QjW8e*mAi BYPbLZ literal 0 HcmV?d00001 diff --git a/target/classes/com/rjconsultores/ventaboletos/enuns/AceiteBB.class b/target/classes/com/rjconsultores/ventaboletos/enuns/AceiteBB.class new file mode 100644 index 0000000000000000000000000000000000000000..f6bdec0c3505083521494f2306896a1ccf8eeef4 GIT binary patch literal 1351 zcmb7DTTc^F5dKcL+isVIV#O*quc+;ES*YTz4WTqO5=(g~G^swA?Yh<_+g-C468@Ef z2BMMp?2j_eS&BAPAKHhWGjnFX`M#OipTEAI0w~~F5;2BF!|iI`p5Z!vXa}xm`r5wf z1bW-G&A|0F(+M44D;uU2m>U~O#2Lo+^nG2kb*H0Mov_Q0C|9bRJ5>g)HWXTsL9Um# z-<+q5`??*P44K;B3XQem!(4sbtueV+CsrLN4EAh*#XV zrUX&KB?eZO!Ejl@1g?;xQZF)>8|1P%=*l-!lzml!h=hcsgegL-bKi`DBoh2~U4e`d zhIGwx%zD^uo8FGzwj;f+q1#Q}v$!2OWeB*<$=qSc{)@v|#k&e5q)1Be-trlwju|x1 zdN`5G57H!IQHv?GkjoF-LKzEKN@9^=yl*}SeqeSLXjo=Q>7J(_819Dy2DP8{c6-k> zf?|K?&Rv^)6v>Fz_B)13e_C(&`5|Y`oA*$`3RW3b`|&Ea?)$~TzVx?>uQXrGh8uc@ z`P||I8a?0tB`%zFHmr`L2cbuAhlNK`L$H*KZ8=2SQnaRkU7QfT8aENT96+gsu;|Q~# zC@Y2=^gk9=7LlfU*Xe#Udf~71A@u6JAb*_viaI}Yj9cpB7tCEmkSISz9OVchOZgO! zdyxu$<2nSwyN_HCRil$pl&F5j+{dUaCzObs=?F$S3+Tb5kcUbhF8vWn=Pk<~Vz%{C zP)}PWu5wG5KEeFLMKtzDR*JTw(8ExPBqtzen0kT-KfwN<7o&>2DUb0aI-mXqem*af literal 0 HcmV?d00001 diff --git a/target/classes/com/rjconsultores/ventaboletos/enuns/BancoLayout.class b/target/classes/com/rjconsultores/ventaboletos/enuns/BancoLayout.class new file mode 100644 index 0000000000000000000000000000000000000000..4f6c5831d2614832e62ac2fade19911024c1df4d GIT binary patch literal 3267 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 literal 0 HcmV?d00001 diff --git a/target/classes/com/rjconsultores/ventaboletos/enuns/CarteiraSicoob.class b/target/classes/com/rjconsultores/ventaboletos/enuns/CarteiraSicoob.class new file mode 100644 index 0000000000000000000000000000000000000000..455e117f4827e3aca0b4144b836629a408bc3167 GIT binary patch literal 2368 zcmbVMT~``c6y2Av8E{m@kHkb1nx+xZgleiyf?5fpodh9u)RrWz8E{I*;7kgGYx&-_ z`WyO~r@p47NnP!#tIz!h{R#aOP0zhx8Pq3VxZFMG?0e2WAAkM(+Yx{nypZ5wxLvmQ zlC|BkZPgo9$F3RmP_%GkVQ2%$ly5W!o-E@Gic@Ks#}$0 z)@tlA3}$oLjrBra&7`;2v#Y8`7lzr~IUYzc3}@1t8MTm4FQ>OV#2hc&Ur*=h4K2Io zdS`Gw{YWL-Ou>x~xL8^S#IT&zGKKucNoJ3^LrLU1X{nZDRE!!0f1WQGCDRljBK%N+9|0MXj2m6mjCP{nb}i!=fx4Wr8=5|3DA5)oH z#q3IhTg@m4a;uPxS<+oml*Q z9naY|6sUN>8+=Q_m-vc!jqe(Im3W8UVHZlfM%hWlA2TqUp;vSC@{2Y7r4U@gQ-*M7 zG+H`H7zkk-x`b!lUk~bzv8SMfGDA?W)%1h1{qlezamIu0hHuB9QvG;|4L*7_aISb0t|VWUv^7GS-Kdp~6_dBoVE2B##gn1vG_zvqPNPN^t1eQ`Fn_KJE~b{I zNp>&o|KQRnA5ef!8bEQhdvU}gn;6Hi9-niO$q2$K;}?VK+^)cEro^W zCjy%j*c~}6T<;1j6%PDCuX>xfrWJinOlU=a6H{6-(8RP>l$w~+igFVv?F|-w7O8wj zzgH*)kQjp$`VIPjmlDd+9(hK4!XdGige4b%R%AQPr-b_nk0d53xpd;@TP!C=eQ&YS z;f=sY77DTU(kAI6vHAs9R1_eB&)ZT(gs{9Q5xxn?i>4M2+Ak&PWc1CS_yx5m6I z=zsu+1)KmKM zO}>Mcc!$j&;h%i{y@!pBzk2@<;}3X6bR)v?3MCZ9IEi+ZM4ljVm&js-Xo-}PrY<6j zUKB+(kLfl9?|TCL5}trD310&P9x4UxoOV!i#LT4{X=0)H(3?0a&hwhDc`qO0o2ip2 qGVvmRFG%BhoLGV);F5+SEOCgPKOrJ_>)P@2phA`&JclXH-TwfrY6m|6 literal 0 HcmV?d00001 diff --git a/target/classes/com/rjconsultores/ventaboletos/enuns/MotivoOcorrenciaBradesco.class b/target/classes/com/rjconsultores/ventaboletos/enuns/MotivoOcorrenciaBradesco.class new file mode 100644 index 0000000000000000000000000000000000000000..2975a98705c7b222408e312317b1f86202f2c758 GIT binary patch literal 28929 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 IKEX%+7ZjcJ_W%F@ literal 0 HcmV?d00001 diff --git a/target/classes/com/rjconsultores/ventaboletos/enuns/OcorrenciaBradesco.class b/target/classes/com/rjconsultores/ventaboletos/enuns/OcorrenciaBradesco.class new file mode 100644 index 0000000000000000000000000000000000000000..4c48b312962b217d14b0cc4d06932390ca95454e GIT binary patch literal 3015 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 Cd`@xz literal 0 HcmV?d00001 diff --git a/target/classes/com/rjconsultores/ventaboletos/enuns/OcorrenciaMercantil.class b/target/classes/com/rjconsultores/ventaboletos/enuns/OcorrenciaMercantil.class new file mode 100644 index 0000000000000000000000000000000000000000..a03b0d937f82773397aaff3e9543646cd25a911f GIT binary patch literal 2435 zcmbtVOLNm!7(Lf7DMkcGg+M|eCWR6^fFZn-KoPb8gCD_iTnzLfJ0d7363B82yUw&T z{D7`lcGXQ6)Rf1xQ>HWQ`ZKy}|3v9`Z`_F|&MJ&Exzh3d&Ue12|NQsYw*aQ`SVD;5 zT+>_0_{&YtZMB`i^Q~59)p7%~;W<{|wKA65c3YWp)AN1HZQ5qh@|&g`*p7q7|9@!J1ZB&<%#!J0GG^o@+X`YX=t@!jq{Q zLnP}hS~8+Cc9WLlCuEE;j8^obZWvnfuW!Cj>ZNK$%W26{xl+^$aWL#vFot~;!(5kY zX0l&@z8~sGQndl%8&?oTOok+5f{U1zage-R*7CR3B+To%e6F0Nzic5-dUS5}i2{jR z$ud&h>XeKrhDohZ)hpV&r|-Tk3;Ee{DNC{N*PNczE^F0%ktoWX;-~_dQw+#B&M8jI zm}W@#QD{U_(1ck($teW`oFp#eEGIc5<2=LEMw0nTxl$=#?J6TFHNBKwmolp$&RMp} zpxT6vpOtZmVYg79(<|iGpy#RxqH>UnzpP*zw@_s0+~T~9s|*LoPgOUnS|w@d#bi;- z8%eE}Hz;-GlCe;zYTP!jKtYT@-B6Ig5W|jw?OLVwO2hK2X2Y>~PkK$$shPgb-vt;) z7-e4kd4}Q5YQ9#_ih}JJ7z?lkf(OvIhpG31qPYEE_8dI-*j7n z={8A9X%k5$7^yaDcFq;pG=0lNq2}5x_z={Og2fe&cT7k8qzy+BM zn7(g5X?hQzP!DfH-8+$8Z}~jm0g}i;`5rH?uizm_+v#3{tYfxXv;8IOts>u~w6x-e z*Y=y%6`Qxvo=rCJF`g9?YuHP!8MJ-6R_I~oG;>=o?Zw$kC#V!*`mKmx8sTdNppzDb zIBD9&NdqfR8aZ*&Ac>QPf-FP4eZ@)53nWJQh|s%4+d{=h#J`i?{uXzEpMC?YtGmML zu)60pMqgmR0Fn{)fcmij4hi6JRGn1Q0yrXoV=*E>J@=pOGv+y=Wqx6je4YmLq)@nOmpYg+>T(B~QBM$b&3J+9 zKZ~de^nZe40p(|iqL`q_PSSgh7TE%=p?kDg9#amB;x^9*t^01&cL|RYuBNBPUZa#g z`Vu$OBaxRd*11(g=*D(p9weq6 z{slLm(?bYccuau9f>2qz&?RKJwW+bO(Rg$d;{nuho9K9DpOPycW9kj=)Mp}ZFNQDt zh&>~bvFXCpD}0%L1@jrAQ_sH(v9WzWy#I%B2VtRZSQw5|KnEyg6Bwt@Vfye?4ihbr zcAJX_za*l$Pv}mB-xCm(XnQaw!3KsxR1VrvT~TL3 uk8BK)36I?00L}CNfu%_SPib6b={I=v2ZZw8ysq1Y5YWvK+E^9m*Z%=`VH?8$ literal 0 HcmV?d00001 diff --git a/target/classes/com/rjconsultores/ventaboletos/enuns/OcorrenciaSantander.class b/target/classes/com/rjconsultores/ventaboletos/enuns/OcorrenciaSantander.class new file mode 100644 index 0000000000000000000000000000000000000000..ebe4ad32af4e3c9d4b64f2053b69de776d4b4128 GIT binary patch literal 2609 zcmbtVYf}?f7=BK!o49H?B7$NY(H0Vv2#Oa#>KaxX4T;SrsZm?HgcXBfqq$J&z17y4 z&h!Vg(=YwhuQt}pv{R-teCveQEoRvbyB13qE7huH7fYsL(novFs`}w! z*s)+PnX$5I&&PDTu}FZP%4W1FZ6=$@=8|cKvE<7-7-vw=X^AT>tClo{JtN_`K1DJ*L#TzNa?^T- zlmo=i>PA+}FzhsP;$g;t=&P$V$H0@V6d3ht$)2aUy=8OODl=@;N$F5tOXhTgVf@;w zZ2KFQ!7h~ybO@yeW~z^kB#VmUgjU>}9!qpz8QP3Q@&VF2pu!8E0>6So!ug1THz|X%Ty3t!(E$~Haa2(-D2^UiaD<`T zDdpBrDmX0|ClpW__N|wH^?~E3)dRxM z85Kdn+NR*FV4YNOj-iM8U?`kg{Xz6VnBvS1IXxmcQ!2Izj;i2-;G9yBVA#9XJC2`p z*wAz93W9V=g(^tf6{G~|v;Z%w*e<{w3aB|;!=#k^zst6~Ry;;Ep5V;7xD zmTW84Se&)0S#!2*i9W0p&2rwXmc+XRgK*6y0)tKS}i|Nu@fPoKC7YwA?mF9 z%~FlJc;2cfsKq-6BAfewL7~q{r_aSnyGDzlNTH;*@D+La)))P|pyC#2pnOYaxnWUk zX9gm#Fik?zRxt-Fh})o5c88jG;~cA~p-wKXI}Ni;E_b(ID?Phl73<@Xs|>8du-&Me z#aq+nZJBsKb_KDFkNx=QMcw6E-C9)f2|lIWVpgl>a$A1RvX`3vi2&9ZA}vrG%Ag1(K=reE!4fmmLC#XpDylvJS zRXUbzQx-B4FJIcp@w3BJ3OD^8sb_n{N&(2yzL1udfV4E)($cU>O9Ln^&6Kn>M$*!d zkdjNZv$WLAKxnTR8G85AQt8BQ^4A5hK6w`S`**Mc-{a=peD72AK0;UmeI9<0zafEs z2}Ha+$`4CmNCHQFe3&1Tz^DXH`uQn7CV>eFOe*{>u1O#+0X^j7=lRQNQSU9 z83OahBV74K=HV*+kJ73GWw?Xx-AB1NM%kF6rI{oA2CcNaw4uJGh4dp;DR$5wms(+2VUD7cb1o|+s?Np2 zAr=#}=y-~eW%SJ({S`A0>A?kY0iOiBrJ%ZYz!7A0fvw2qMsn{Ka-=NBsb)3mI&>H`#Aw#KkXsL{P+;)a8X%k+c`mCU(_zTcxSie}5A`mGJau$7t&;Nvsygjcio(o^mNf++n IzO-Ne2Vev_P5=M^ literal 0 HcmV?d00001 diff --git a/target/classes/com/rjconsultores/ventaboletos/enuns/TipoInscricaoPagador.class b/target/classes/com/rjconsultores/ventaboletos/enuns/TipoInscricaoPagador.class new file mode 100644 index 0000000000000000000000000000000000000000..48aa2e1334a828fb21e6eb1064c76a9279fc6815 GIT binary patch literal 1965 zcmbtUU31%15IxtDBiT{DOlq3iX-f&jR@%5Rw9wi$Y2AdnwUf-a&5X;_jUtSKECor< zOx~H{H}J?4uO)>x1Jex8{1g5JW$(2+brR3eA=ZqgyV~7z_Ux|y`seo}07W!3#29W_ zey0%ZSiTo_-N+B@u&`%)5#RD%JMzPV?RCAd@Yvb)YhGvtj>Y{A-sanWph0CA-{E__ z;Bv2BSn;|Y2Bo^O%22BR@3bWbwYs+PkRj%5Goopcx`eRU0Hk5nA^Ntf3nhK zD1UV(G`(!Oj^{)bBA?4|3V46p))Ch+MI^2-CBg8XfoYs$7%BH%bGg&RYNt*4%>+fi zZy=5l9h!~{B4tq+vj#Mbh^LDNk{D%}s5_p$*6nQB!DGJV+M;^j;_fC79C4P$Botf` zY(8X24sTUX_qf}&iE1U6KTAWC_yjjJe9AC+a&ipZ#Ajr;zw2^0thGHF z_bLxb=X1jfd&bDz*N#n1nA4tl$B|jll#}mxp2L zbe{)XFSeC7DcSV9fn~2cV%lbgt@)x*k=Qn!w#TDxKz@yZ)FMy$3?on}EiaLF3Vo8) z-&aiYI@3EUOStq7H@f(PH(p7U<5%D{lUZxn~kq5E_xjDVfITIrP&o zmfO#@FJtR1RtGGt#gl<0&JE2_u5R0wb>QP0x^E1xRsM%tDfzp{TQ2Y_`g=gQ# zSa$ZO*MBnsph&sWGBAS_vY4go5;9cMm4Tx3y_S*37(SQP+@k1dD6h#7*JwEz({LM@ zijgFxcO+H*Z&LFFnIlShA~jFf;xSScF-Px6iatkurEXHWVlvYQm~A~$%%fIW3{ykN z9O8?sCv|5MQFJ~*OZi4^lhkHpOQx84h}AzK0-s}GYBQ~S! literal 0 HcmV?d00001 diff --git a/target/classes/com/rjconsultores/ventaboletos/layouts/AbstractFlatFile.class b/target/classes/com/rjconsultores/ventaboletos/layouts/AbstractFlatFile.class new file mode 100644 index 0000000000000000000000000000000000000000..530435634addbefbffc0907ce6d1b69bec5bc68c GIT binary patch literal 10539 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 literal 0 HcmV?d00001 diff --git a/target/classes/com/rjconsultores/ventaboletos/layouts/BancoBrasilFlatFile.class b/target/classes/com/rjconsultores/ventaboletos/layouts/BancoBrasilFlatFile.class new file mode 100644 index 0000000000000000000000000000000000000000..3dbad08ee9dca997350e45c91b2d8fbcd5f5db50 GIT binary patch literal 11597 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 literal 0 HcmV?d00001 diff --git a/target/classes/com/rjconsultores/ventaboletos/layouts/BradescoFlatFile.class b/target/classes/com/rjconsultores/ventaboletos/layouts/BradescoFlatFile.class new file mode 100644 index 0000000000000000000000000000000000000000..0402e57e1216f7e1091d4dedbd5766a2bf1e47c3 GIT binary patch literal 7867 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 literal 0 HcmV?d00001 diff --git a/target/classes/com/rjconsultores/ventaboletos/layouts/BradescoProcessaRetorno.class b/target/classes/com/rjconsultores/ventaboletos/layouts/BradescoProcessaRetorno.class new file mode 100644 index 0000000000000000000000000000000000000000..bbdc12b2394e0d09484aaefe3bd50b83a7401c69 GIT binary patch literal 6061 zcmb_gS#%TE8UC)3J+eGDj#!Fl!cy8`V;g}n7;Izk#?pErULcSrbUYg50ZF6Gj9f^w zv`L#bOLw|t>As{3Z3!&~hc-!Ro1XTi=kzsw>RV4A`jV5Eo)h}bqLI8PQaHufy6b2;iR=nR- z5}KtN$4o=jEK3>ZteG(+gakS(l+ibB*`}h}hf<1tNKa`JY6SLFxY%9jA{(KD#~cUN`ck=<9&le69Z$X zJ9g|i?H?-8KKx$gbw{uQcgThYeLp9al`< z>HC8rdq%ee4wgHlj5E6hWYyFZTRWoB+onKwS=`epLuHr@DAO8o%^2fa+6j;D=Hn99 z3v4~B%qk3`Ofo*j2+L*-)7BDWSyy@4UQ={3an`wF36m)O+Az3VH{T%K{%$EN?KrVIir-)KwzzBj7d|;Sc<9` zle(Qt88r0%O3gB;*))naHf`!jg$bh@F4j8RmE#BD~4<&l&n_B2Z1oz&zG{hQa}rY z2t;VdL_Rwwn@YQ^xxxdA64xd4ZV9`~lk(D>aW_ZMflen+!(r?rdy$g$q%o)rrL(+P zlsa@{zl0uUdZ|#8(TfALR8q5#E2$g_@9yRDy@&$Frq61sP1t<`jfBSG^^~?m?-G$c6-KB}d;V42-Ah-K?pGD?^_iw}!2ub;6gum068A|s zMU@Ln3Yy9IDDG!~>9%tP8BFN4O~uL{^~byGa2kq)kI~KrIr&)`(@Ceq%%sgmmQDCFhAedgtFQzfmhp&_%o~GbUf!b4+Q(#k5})!Y zp#WH*r!4K4gwT9E0)Z!Fd>Wr|F6&m5&7xqf+8#^><`=CYDVEM6$kUm@JZJM&tz(yGIk z@D&MP<~3f(VTUPXd=(e@a^S&>jPGY}^C>6)zb@k&_@;m~qgbPEs`ITuW?5ruNlGyd zYf$q!)zDZMt}SBC0_Bi9!>0FK;+n>yH9oV}m~NRxlnJk144xf(ZjU3$9Nsmse4IN$ z=-tdkw88w&4|*2exn!h$$;hrHBOOadSWZNYfSm;PmD8zYBGGthm(B_yE^weSaV4X~ z@!EnX)rD;SS=CamL@Up-br+QMd z3YjEMVo3At?me-*=g<`Ia!baq9k!8li&c$%p%zzhO~RbO9d0JLH&wsEOGU}ZxQ=;V zW|QMnLrg{wfAIn)>s8#4@mnVsK z%J86npDx%L!RzRxG0kFee3F-oo8@FNl_L{I&Qvw$`wOO7o@^F|wkwESL*vVAS7DXAu8MzST)Q5t*^<3=ScA3fh44PC^JVl> zwzD>J1F@6Q_g}+Zud(Mzsd0C0a3!quR{0VfB%54hA$$N^DwegSgsczZLzEH1-Pl^O ztfmsOn$YaZ+J=^jWwn)%)rvM()^@}zmepQD)(-4+Wwm3MFY6+0>Ueeg4RoBmhCL%K z(Y^ENs$!@e9BqmA=i6PO*0wnew#GtpINW+U@XvbGu)UY@u#abU(H}ju;C{5?fQzBS zlOFhNJ3fq$@a!;G4P%6-uV#FVVvI4c8TB~ER)|0MV4QOk?m3fAq*cAm{z^bJ-@p`+ zo)~GF$Grkwp_fE`EHsY?1TlAy-avx0XS%A}qR9Y!OJ| zok&~s!Jt#u7PW$o9Fwji*Hs^@j@8WJ6a1*3!=u|`;cIyOIjoA+$HLd~WLE~*94w_=RdBKLT)NPij6en z5RHBq8~7aDN*8p{{C#x5D1Yvw(PwD-9L@eXjs6rSS#M0SWH^EE;$HleFOkc9Zp`C; z+{6R;3l#jF4~I9Q;-5H!eyZ|#@u0X1hs9RdZXnDd>NqbS2y8uv z=bbh|k=yc#;L@>r6>%%|rJ+>s`{Tsf|R+zYN;s#cl?8syjgoR)Km z$3=W8K>Q0L{w3#5L%KyHS4$8QPD-?!#4)P!A{v4*34H6FmXMHeaJm1pz&ifBMV%H4 z;xVkYd91^>Q~Y$8va#h2gj=rTSC_8fH*VIJU!AQ`{TM7lXrlx}J)(@QV>3H}vl)aQhRZ0wAr7bf%WbKdiw_w&5xoZtWYfPIdBcxp1XL(!6X;A8EMuj#n=_n@mNN~3u9U57=7#1JBwv~Ixep6P zfyva%=Qk_Rp*x1=8tcZcQ7mc#yF(}0DW?;q9a!ui&hLUV-rw(s>~a6|dr)fMPrOf~A?|vL+Su2~3}0sv2I@(eg%7w-cu3 zCJH7u<2(WiUK5yU&_Y^cLs@ylshPMaOH|{!O5+hM8;;H(3TDkj zNSYWDxY=L?Nmnb?v>l`MKg7?DQC1g07^k}l}BovQ_L9RYzr&U=I= zPHMUr8bo$`+ST+&%i2ekvvb`2Jnfb(VE(_|U-lxqzuf!^UguTPU`49Ex#rlqJgMuv zvly};QwX&46ulu&QL8*YvnuBBCa;%0%`6$b8K!u!UcOlEH1(E>w{b&2jYhK*ljGUA zwO6pEAgUrJ1*a;4N;FawSCNpSuIPGXA)bz{W+%rznu{uuQhcUP?9pFRk&+8KW0B11qm)l)464+PHDo{$wgUD6*W3Wk}FJC5xrXch3M?UJJ# z^3Gufo(E`5Dq?{9+sv0t1aHet=E%nxz7hPklM53Cv1Q~b{6BKg1eM>`qe*mdtX9US z&`GWxL7e7{RQ`jjrSjuv=o`2cB-bdQuLnWP0$h9uW`DRqeRTTgM} z;1Cyy{lo#{WnzeUl{iQoCXNtCiPwqY193o0&E=@CmZNH?j{qB?gMK>c`!s!b({~U3 z_2Lusd9r$paonK(1W85PpIA_iezbHGla)MoD|wFoE6+>RY9q;7oF(-iVu~?MGbT?| zT`W1c5&gJ~AzZ--|Fyb~dLn2+bH5^jZSqk&axHA8CQJFl6U=P=2H(NvGu(RqtAAC>tfIuLSgrK$+UuGVYhcoYm_ufQk zt+uwbwTsx8H@n!yZqj|z{`b8%GcS_~8U4!lLGsQ$_uO;N z{m*~zJv{XE-S+}GTdawoN?=ve%Es+|Ny~I{8P~FPCqAy5t~O$2bk}m?8SS8zbDelX zGY)7QGn%{6$mkK&2&}1aX4i=0+FH^rPOhzd@_?Sz9Y^amUESWRC3S)5xR$Z(Anwhlvy!};i2F~PqiLTy@yY{T==-AU^jvGwb z*?rH}RA&^`I7`K;Xcbu9`t0X>Ti}iwj=;Gy%`S^h?x~uzb)d}^pmRnyMlx2C zXisP(I`cbf1-R>M8;){6+Ev8SAyA*z3osT~)Y{f(+3EN`+sNj!aaTW(Hr#j~=A8;_ z47I)s^;m^-BUmjkfBG3J)?jVH_W?a=*(t8w8Uo3nYa3>|v)sDAerE*d3v|t}X+g9} zS<_Qu_9|V$I@U{9S~ru1wm~=by#{}=4J(TCuwKQ5xQGa5I?AZ98km`40R&D*u>su? zBxZ(Z&NVVle4}NvuC-nKP|<^p0w?YDMfR|yfE{E3EvuQMgy~sjk~FEh0w3zJ8CxRg z6__`5AN&le*or=~f}^`!CdZn)sEqMYc>N>$^rU;dJyEco*x7Dn^`7h)8CH`?+@WHp zOyVpiF*KxLkPs-%_%0R0QaMItvXhav0!s=mruw*UJ6cf6()Oh)o+s63Q++rzrr-tC z?q*gu+2qZn=56O56_-QvwZmg%oBTe?9f@;HC#sV~b%*yy0kcz^N^RSA@Sxn?w2Dy} z#7(eI(%6vYr(R%lkjA2|P!favnJOs*Bn4Lx3#3Kewg&b6IS-?mpkihCSrsOTiup3N z<<$h5^Rb0Vn&dSX`&HO7dx{(QE`_d&9L6a$%sei5TJ*}oKA_?tUMNtfrBeB-UE5lQ z8iEonSG@(+pkv7r6565JT2^4~Ok_A6hjEWa10tM1y;lTR>B0hu3fDXilaP()`fNO8 zYo;SXH)OcEj75IGpi*A$)_L5I>ir|Ok=A%iF)T8(f|nDtB~~MN1>Jr&{5REhz<{r! zbss*xrjxV{uUrn{)hb>i;n7$?S7`Wk*dM|5%w;M4DR_g&0ghw&HlsL%H>r5DH05(Z zVMxJSi6&V+TXMGLNX@sYc)P686TONiDQ9^}vlQIKtA=l{+v>KG1UtoY!aG&GOPZcj z@G_*J;61!Z4a>p_?A$`>j374dqubI*dmx2$_fb_U0Yw*72 zx$q$sAC^8xX&?|Q_^4c1S}TP1aTTAC>&PT{BVD{MI*jf1fUCN7hu2d-tUFYEO4@9u zvRtmu$QrJm*HAFQ6nRGSA{ogM6-VU?l07F4D!7O7d7|F_jZ*b9D(;o4@}$qp72HoG zcwb#3n(L=bDt}hRgHm}xUb#4&u*{^MGExlV^ISMMB@@<&t)(nmQ}9IrDEKn7F=UKc zgDi`bm$Zjfd<9=6ztN@~DPU`dmX=dx(X`D}mHz#%+;kG$*Ca&0E^yuqMKZk+1>a;s z3UDhr|7{iDk)WGL=SwQbS5ojjMl6rJ;-v4Z_<@`xp?V-74?p(_;X&*A5-wxptiU1y+t7WJzo&sw}jO{Rs2iB z%Byu*DuL#I7=>@z?i$xJeAMtFaR^VVct)-v`KV-A5rUiH??m{d^dCf=EUHyeBacc6 z;pz2ei&|Ag1Rp%rJmZRY(oz}-4(n1e%gOa9KRC(Gp9#OgNj8<4d6>k=4yL1pkC9s6 zxWXTpqAe+8Cdl-m6ufQKEqi!!yb=R4wZbXOUrb>j|3&zDq70tTcj>na7KQ)X#dE zyv~{my)Ipbr9Wup?4&MRdE5n$_3{spc3BcQ4WxShJpomS%FY%$hEds*@_s6)hsx0t zWgn40<)2xHG3yRARUbj~9awNXB~>_u|3>)}n1@=nzZQ8?aK@>H`CBB33 z$9dbAH+HU=zy*;b=sJo`)!4nfaT^8wu|*-t03}1Qu+DBuE~yQvJfDKg8b=yaN3b_< zXdh*n35#(RI5n61nUUTsKZ+}>u)CO~b|w^T!Kqk+2DD-^<5|UsHZq>wjOYri zz)RSIx*jWWBU3ITU+PB}M9w(zB3#ATRcgH$S2L{*xDMBFUNtpeifjG6R2}y7B93`^ zd08PZhnSaF();Ts@Y>j{P?)c$@QpDgBzX%ZHMYe?-eN`5p+@>5EF7E?nyzog_>(o{H2zoqbZvDqQDKT`5k*oD7PP@2iV zQTC5~9RKFWf5X6R5?C=IswBjU@f}7J^=_RIC$I!7z}wZV9C;{RQqUCt6`cyzk6ywPfpOMRo+@nUla8#SU$ zEUnyUdm8i2On@}DOau%|oJ>lgll6fQ#2nmaTV#I|ImIR1wK_JN_7)b~uEaHYQGmqhg$-MaH1wn1K zw$^S|t+v%JTB}yO*DZ>+?%LKacC(AM`(kT1yYJHPzBiM3nM}y=`}L1Z=AL`bxo5xU zo_X%IhaUy7TnG}g^$~F4zr0Lq}`lNBl9&*$59j-Cd zo;2KcD``ehB3M-$dbT`vgNF5D?7 zX|?0#BvfE>1iGMM0-?;*P%2&DVx(err>B^XDVQpl(y_gH$DYQ9hCOYm1C}jV-g&H? zn#vKzG#wFC2~Mv)c6z1G)J`j9ZW$WrGo9^5Uy}M(b=ol_xzlhgwax%b+r%ZH6 zA?Gy-^q6BBu6d?u#7#%gG@-D4Njt_^Xf^sw3bW77xTR^~&TeMJP*NAbw0SB^%kjNtT% zqkYJ=lIi+(+ZixiV+R*HR$;YZ)?Odv>@nMMtYLyGFBn zKn-nNMUB`9$|fCWDijr(S-6I?h}Gh#B9LCDp;I6=8nzH?i#=er4GgjfdIxOPu}yho z3aLkJ^(r537gXka=o>}@lei*Eb8j+P^bA|cdA5$-ILBub*kW#H-K!i`&n=Vj(TMYO zoR160C*vkXBbcADUJf_ommEODg*nZZYv`kUSWHaE?lmtO^1?OQVv)32b(qRJ zbCrJM;Hlh9=-3BKFv*C=vx&F5wm^1gvaC=7jwC)aBbHZ3wi=ExAXq(7IUBDGv5@S` z)Ur9_OGS6(A1r7t^2~9I0aIY6Urx6(qSDIe+bwq}X|q0`QEXw2nl8(#+1=+@34@og zWwW$uAd9JaTq78w(8o}~#n0@Ckn$j9B7laxb6ud=!Y|`*XmNc?*oguPnPMQfn{9Rn7w^)g&8M6kAByXsjSkkvRt%l>8mgBK_pN{vdvpn;R z>}dEPF_oaU*IKB}wt6K{4iQ%4Hh6_^6JLsiTyE#~^6<1ZCT)P8lKil#WlUf~2&_?P$1%{`IZ|#q~ZN z_bY3u>goYC3^Ro?_gkyo=NNI@x5`604lBv4iJHH!;Su_=Ej>u9no-lw4aNU+Iv!P0 zSCJ@hTf^f_>E@Vexu!yWQpZyYb&}%mK{Y(XE4XdIVsq%(;PX1Zpj1*!cl~MoOI=-VUr2;UprQv%F zZB@LZW}5xA@2v0Zcu5JWLOZyp;fM5Z7LylP%#2%cPq!cI_=)1L{5u9g!_SoL-R*m# z=79{sFLeA;5h(xWb~OBoE^6*GTt5;4_)V=YU==hs*W~nkrT*E(@ zWqHLfr_R50{2TvaVIXorq`<}PwVjXch~@A#T_!1fm04(6Cw z=~At-S10Poh9)zZf~{7ZPXwle%+lpJ#ZRT657lH2G1}6u9|dx}E+=F$e5fWTQUL!T zr}==9WaFW#sGOwBe1)n~KW|$T_W0T6Y=tIl*USAh$z+?<>as9fymC95ETVh2I>sd` zWn_siOO;NlczHlg8ghIaRf5MA-U?kBg`KoY-6$1Fw|LK9^?;i&WHa4JfQ&&PvPzfL zvWCj}T|r=**Lio*9YIc*qjkjW!=*`=b#exEV0YG$N|{c!MO%4{En22~Q+C;)%SLJT zJ=DX#)Z%T`>aZfYd?c(X+BSKlo_$(%i3_FTVS#tO4ldJ{uAQiMWdmVs6UTJs>?5x$Ec3YwT8m`t z^`3?MICh^EOwnB2t|*dcAS}saDorrj$E%9ulkWsxI=!wD+uvmjdb5g%^s=#^pl*+A zz=-S+EGv>aXNHLEVg?sSmZyLwyIE$pJaxNWlQLtRJw0_ByYZzf*uj83-6OJin0>VPt8W7KT$&|r2x zxV#|6QT5>cpRr{oK(_rKJemzZ-<=GZUiLLHQ_YaoYcViVUaA~}lQ>Nb^RJWx>Ph?` zfyU2CT&+Zi-vF)dUX(wG%6s@dglc}4^FMGLac5&Xzv(_6W?&{)C78uMkB8K9RYKVP zb;Folb;4ns7(&;g$8qYG#Z?QI3}fLimP8)Hio;kF#;(Ox8whJAObfuGgtZe^5`cA7 zZLSRBbP=a}7(JEq0!TXu-1QL7%`)FpwRxJH7CLt__$?Q| zAI6`8eE&|^KZo((pogmkONJ$sAKnb-0A;n55-FmPYIF9gmU2RM1=WMlsf13;^INq{ zCv;}z)F9$)g657oW*#9m!91&$lk+4wl_(2x_NbOR0v3;UZ?)8qqN-vt$}%NVE>Z|t zzP4m`$+MWTxNdgIu&g{RYnhpMp>(a%cKzDY>}Kh(wB$C+Mx}8mTpFGgo+Ity`QgU! zDrslBsWSE=OB|TUI+~b>>-l5H1`g{tq6N*^$7N%Vy-M=W$b;-NcWhVEx6dIpKmi`W->1y<+?_J>Q6 z3YWtU&%#CFnJOaL@)K^8Go?e7pYR$v%P&9S zM%gT#2$SbV>5?rdA-9vITehN9wt3bmITD_O(g-9XJrS&pz>UauwQ83mn1iysorvu8 zH~E7lA7y?;qhZ6|ol)_KwC}E#vmcam9wT@EIw>O(aD^xHOdl;PGb-eKO2r=?)eEM0 zW><~FOevj8WFE-_Lc$`57y%`Okc1sc6hjgql8q#UO11Q5<|RCwnHS!?L9leO zwRX4F?yI%7+P&3Q1Z`bvtF7H@7rU>vwfo-MTJ3+|n>X_&3mLwz@R7WG?z!il?f&Q7 z%Og+UeJ_A@G8jcfuq9?E8=XTjJC)8PT-!0zjYrIsYYf{7)3wu$3FDZZanp_6rV}$# zu9eu4Fx(wh!i=I+u(`<9t;1>8F=B3haar+;`^}`8P8*#m*K|gVm?%fMlrUMt@GgdJmQv>C%DH9BZ#1Jt}~s2qaDI?l!t zLB*(@Q``E!-ve6d%AdN*eZy&B`hM4sa)5h<09~!N9nq@)Yu`Of&!0q*$i+wF2VLF zS_QN7zEm?h+LYfl*Y;CELkHv2V<*jaqa!&+tTWUmJ9X?*e6zWUn#@jVxRjXCPS5Ui zm{T#sZgmc4tRuEs)1{*uJv^pd6J`l1sDjhTIg`oV$K-DE{%GjucRb$Ree9SD^q`Kt z;CZjkhD-??%<3!HmGx*|R>+^({GLdeB%T_c#ZVGYOvfHD4`;j-P4t_i7J=EbXupnU z<8r~-$_rEQ3Fa5LUqSMy=`aG%Q4u&Gn46D4c2a}Egq$eR!*u1!n2xyGc=4ngdu$33 zMs$qgpkSsEj|aznOYJ0>l0Dm#9s3;I(2&?T^y)JlBguL=9gBd-i`=sa2qK&>@Zo&WF;Z!jwS$(MN!TnB7ZnTa?WRjuH+zQ(VFr5w%OZaW)wS; z7JF9D3-{@`Uujsbczv>l&v4wCBKT%_MAs_qKC9z%N~AI*KcnH{Fy}hO`2`)1OyFc7 zz7&|;%G6DJdw)g8R|`z`r!;(>x~p2#WhE__rlolU@PqcKj&CY;=Tnc#I2!P69pAxY z+$>bH1j{DWs%#y~7cULpqkW$1!#n;!#}Ac~szEB4)bL}LZ;#a3yF;1&Qyo83tg5*T z=o)^(5PGB5VZ-%PgC{g*#;v&LgjWfbkifXEQ62jQ)fsy!Ywb4a;FK zzzX5{NJ@2?p;%{fbAL{gD2rN~73aNxzL%N0lm{F>RTIiD>qxs<8MAen6L9!cP3F=I z{w~ge)+0uO4To_cuui43RO>QNty0m+at4fHKI~V_3w1e57WonJkZ8MiQB@bMRYjK3 z&@y%|B4_KeM9$%P@C#>Xnnkm>=%T66&{yVkEiM~tIaik&;q_)VTba&O%5;K$X44t= zGuc)rD$Ci~=R2>xyvvV`*^X<*d&f*xG0RSM9F3V{>Vrw{dL2Qw;hFa8m~D6_7H#$# zl?0k`T}GKNUC>=*IPzW1#4U1t0r#q49tIv3tS?e}D4LWpYrr*PS9Tj?-t{>uYo>ny znbQ2I@P@XwxZWqEg(hp+?e{!*i(Qj4V|>_n@Mbnx4Gj(DvP{y}+s!tISm*M7H&AT4j$3)Ulw}2E4i)aRxk&eq--bz_YfrsChXE*B zWjk(+nfb>CO)g?}U`Of+s*r8iAC*g(8pXw=KP*n&60?E`CB+&SmcZ@{Nw7MK7YfOzCCf;8=!Ibe;Z3^(KOZht&n-Sf*@roQT2JV9hjk$%nMK-QGz zi>b zIGHj7c7}Hy^|VUubHEo|SsPSza30^+O89REUvOvgca)7cMEJ!!=zP~<%mj)`cp6?*q67aj`jdcX+;g@Vj2G~=R4F2bn+$P3S5B0Sc&Vf3OAt6 zv$oE+C~GZkgM~x1S0~q%NYFQPaSf74(XXYjG3NWCt6o+0n#!=`*OKFg%JLA$8%TLm zX^8Mv65g&@a=X8)>fHrG-$Rb~DoT#yHc~!NAojzgd~{r#ZYS*%fk}69aEdnO65vxL z+&gZ?1Ef6|W_pN(&xZ+LB;m_}%&&3qjg$CRF#ayb-wy^q;@~I2;O87X9t?iX!EY*S zL%RH)ls^_w{zA&%D)kW0KS_Bq?AxbEcsieM_0=M4PDn|3QMHtjq=j?5S}I7I6|$*X zDoLrTYzb|~6qosh=}gLkt)+`fAHw|lx<#cYWbr9k%G|yUGq%ns$aRVIMvO>YmN6&Q z3BHy23^X!l*D_nzGv_z(=SIF-Zo+MD%6`6Z9>Q+93SDw7y5$C5`))z6+{yRKhp|T<<6Gqu7?7th z7@32;k@GMV*?@hKPFxo0#pRJfToEyFATk0Yau~zjdE20{DdGg@E#k-uIbWT($cS9v zpSOr1E2S1Cl(Ae^2~Q}s0+t~1OeBsOQSjbTAH{|!(otzpqh)-hQ9XJVr?$~A3ezg? zk!6=vOVeGl?miBExGN(QFybk*z-J4TL4|DOc1qYL*<8G^E2j{)MK1J&ZI$M%u&aq7 zCEUJA#j{#keAuY3+PC_Y@EN->Aqrw1s9)vb)fi?G$yUH&)YIPXHNM=ODNWKU+qvs3 z`moLOYpJwL$K*!sn8ZU@O>UG2ipoQ~q?7+Yc&YNM?Dk5`oq0+^C j6X~Hazxq^=((C!IPxchA^EFe5Z>0nHSSJ0RwgdkIp!r64 literal 0 HcmV?d00001 diff --git a/target/classes/com/rjconsultores/ventaboletos/layouts/RemessaInterface.class b/target/classes/com/rjconsultores/ventaboletos/layouts/RemessaInterface.class new file mode 100644 index 0000000000000000000000000000000000000000..277234198b645ad828a0eed951f423cce8c034e5 GIT binary patch literal 464 zcmb`E&q@O^5Ql$LwQFnDf_U_<7Xw~AtOy<~6c!8i3DP(&S+u@2U;7Y&;r7q;eLy{P4@jlqk1Ub6Rc zY681QsW`(nVO+^ZCd8Ctwy0PI!l+~?-I^xMPK%DwR!nrwdGW`0H|{y=#;*JGvsHHt zx)z1@AtwxPUlczDorE(C2q!=1-`Oy+(L8LJ410v5Z)7^#JP-zRT^bppV}kl$&8wAm z7tB03ZOZ(*RiE4F6t_VTj(;b5-dgqvgsrq6fKtFa=%a@$-P&^(LyS`0!+xR;y6W%? DU<{9* literal 0 HcmV?d00001 diff --git a/target/classes/com/rjconsultores/ventaboletos/layouts/RetornoInteface.class b/target/classes/com/rjconsultores/ventaboletos/layouts/RetornoInteface.class new file mode 100644 index 0000000000000000000000000000000000000000..eca1634da6697f1e186444810d81d0384db6ae40 GIT binary patch literal 322 zcmaiw%Sr=55Jhi|I<4`65V!7iV}lDfS%?b*fnXqhL8mQchPF$4x(EF=7k+>rB~~N` zapUq(r*1tyKHuH}oa4ZtB3yWRw5jzHyArY_?rhI7yM+YK(%Il%rR2`el~R;R%zW=W z8*CB|Th}`^;)9(nTK1VR2%J_b;qqkqZ8T!XP2kb#^q*l@>A5t$tO7Jc* MwlPrJQ>w841?g5_F#rGn literal 0 HcmV?d00001 diff --git a/target/classes/com/rjconsultores/ventaboletos/layouts/SantanderFlatFile.class b/target/classes/com/rjconsultores/ventaboletos/layouts/SantanderFlatFile.class new file mode 100644 index 0000000000000000000000000000000000000000..9ed351ec9d3540cda5b6f15e9e9316b185cea0b6 GIT binary patch literal 8908 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 literal 0 HcmV?d00001 diff --git a/target/classes/com/rjconsultores/ventaboletos/layouts/SantanderProcessaRetorno.class b/target/classes/com/rjconsultores/ventaboletos/layouts/SantanderProcessaRetorno.class new file mode 100644 index 0000000000000000000000000000000000000000..02f06478e4e3b2a3e516e525a3a52b4f523ade2c GIT binary patch literal 4930 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 literal 0 HcmV?d00001 diff --git a/target/classes/com/rjconsultores/ventaboletos/utils/FormataUtil.class b/target/classes/com/rjconsultores/ventaboletos/utils/FormataUtil.class new file mode 100644 index 0000000000000000000000000000000000000000..a1dba6292de467c375d1d820a3f6959b0de37912 GIT binary patch literal 2452 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 literal 0 HcmV?d00001 diff --git a/target/classes/layouts/LayoutBBCNAB240Envio.txg.xml b/target/classes/layouts/LayoutBBCNAB240Envio.txg.xml new file mode 100644 index 000000000..2b58f2dcc --- /dev/null +++ b/target/classes/layouts/LayoutBBCNAB240Envio.txg.xml @@ -0,0 +1,188 @@ + + + Arquivo-Remessa_BBCNAB240 + Version 01, Published: 2012/05/25 + + Layout para Cobrança. + Arquivo texto - padrão CNAB Meio de Registro Transmissão de Dados Descrição de Registro - Tamanho 240 Bytes + Organização Sequencial ARQUIVO FORMATO CNAB REMESSA, + REGISTROS: + 0 - Header do Arquivo + 1 - Header do Lote + 3 - Segmento P + 3 - Segmento Q + 5 - Trailler Lote + 9 - Trailler Arquivo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/target/classes/layouts/LayoutBBCNAB400Envio.txg.xml b/target/classes/layouts/LayoutBBCNAB400Envio.txg.xml new file mode 100644 index 000000000..c541e689f --- /dev/null +++ b/target/classes/layouts/LayoutBBCNAB400Envio.txg.xml @@ -0,0 +1,108 @@ + + + + Arquivo-Remessa_BBCNAB240 + Version 01, Published: 2012/05/25 + + Layout para Cobrança. + Arquivo texto - padrão CNAB Meio de Registro Transmissão de Dados Descrição de Registro - Tamanho 240 Bytes + Organização Sequencial ARQUIVO FORMATO CNAB REMESSA, + REGISTROS: + 0 - Header do Arquivo + 1 - Header do Lote + 3 - Segmento P + 3 - Segmento Q + 5 - Trailler Lote + 9 - Trailler Arquivo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/target/classes/layouts/LayoutBradescoCNAB400Envio.txg.xml b/target/classes/layouts/LayoutBradescoCNAB400Envio.txg.xml new file mode 100644 index 000000000..0a494878c --- /dev/null +++ b/target/classes/layouts/LayoutBradescoCNAB400Envio.txg.xml @@ -0,0 +1,144 @@ + + + + Arquivo-Remessa_BradescoCNAB400 + Version 08, Published: 2009/09/30 + + Layout para Cobrança. + + Arquivo texto - padrão CNAB + Meio de Registro Transmissão de Dados + Descrição de Registro - Tamanho 400 Bytes + Organização Sequencial + + ARQUIVO FORMATO CNAB REMESSA, REGISTROS: + + 0 - Header Label + 1 - Cobrança - Transação + 2 - Mensagem (opcional) + 3 - Rateio de Crédito (opcional) + 7 – Sacador Avalista (opcional) + 9 - Trailler (Papel de finalizador de lote) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/target/classes/layouts/LayoutBradescoCNAB400Retorno.txg.xml b/target/classes/layouts/LayoutBradescoCNAB400Retorno.txg.xml new file mode 100644 index 000000000..8c6260b61 --- /dev/null +++ b/target/classes/layouts/LayoutBradescoCNAB400Retorno.txg.xml @@ -0,0 +1,123 @@ + + + + + Arquivo-Retorno_BradescoCNAB400 + Version 08, Published: 2009/09/30 + + Layout para Cobrança. + + Arquivo texto - padrão CNAB + Meio de Registro Transmissão de Dados + Descrição de Registro - Tamanho 400 Bytes + Organização Sequencial + + ARQUIVO FORMATO CNAB RETORNO, REGISTROS: + + 0 - Header Label + 1 - Cobrança - Transação + 3 - Rateio de Crédito (opcional) + 9 - Trailler (Papel de finalizador de lote e totalizador) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/target/classes/layouts/LayoutBradescoCNAB400RetornoParaLer.txg.xml b/target/classes/layouts/LayoutBradescoCNAB400RetornoParaLer.txg.xml new file mode 100644 index 000000000..95d014107 --- /dev/null +++ b/target/classes/layouts/LayoutBradescoCNAB400RetornoParaLer.txg.xml @@ -0,0 +1,123 @@ + + + + + Arquivo-Retorno_BradescoCNAB400 + Version 08, Published: 2009/09/30 + + Layout para Cobrança. + + Arquivo texto - padrão CNAB + Meio de Registro Transmissão de Dados + Descrição de Registro - Tamanho 400 Bytes + Organização Sequencial + + ARQUIVO FORMATO CNAB RETORNO, REGISTROS: + + 0 - Header Label + 1 - Cobrança - Transação + 3 - Rateio de Crédito (opcional) + 9 - Trailler (Papel de finalizador de lote e totalizador) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/target/classes/layouts/LayoutBradescoCNAB400RetornoParaReEscrever.txg.xml b/target/classes/layouts/LayoutBradescoCNAB400RetornoParaReEscrever.txg.xml new file mode 100644 index 000000000..4e5b40c5c --- /dev/null +++ b/target/classes/layouts/LayoutBradescoCNAB400RetornoParaReEscrever.txg.xml @@ -0,0 +1,67 @@ + + + + + Arquivo-Retorno_BradescoCNAB400 + Version 08, Published: 2009/09/30 + + + Arquivo para ler e reescrever ocorrencias e motivos. + + Layout para Cobrança. + + Arquivo texto - padrão CNAB + Meio de Registro Transmissão de Dados + Descrição de Registro - Tamanho 400 Bytes + Organização Sequencial + + ARQUIVO FORMATO CNAB RETORNO, REGISTROS: + + 0 - Header Label + 1 - Cobrança - Transação + 3 - Rateio de Crédito (opcional) + 9 - Trailler (Papel de finalizador de lote e totalizador) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/target/classes/layouts/LayoutCaixaCNAB400Envio.txg.xml b/target/classes/layouts/LayoutCaixaCNAB400Envio.txg.xml new file mode 100644 index 000000000..9260e7e3a --- /dev/null +++ b/target/classes/layouts/LayoutCaixaCNAB400Envio.txg.xml @@ -0,0 +1,104 @@ + + + + + Arquivo-Remessa_CaixaCNAB400 + Version 67.126 v021micro, Published: 02/04/2021 + + Layout para Cobrança. + + Arquivo texto - padrão CNAB + Meio de Registro Transmissão de Dados + Descrição de Registro - Tamanho 400 Bytes + Organização Sequencial + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/target/classes/layouts/LayoutItauCNAB400Envio.txg.xml b/target/classes/layouts/LayoutItauCNAB400Envio.txg.xml new file mode 100644 index 000000000..4c7196e84 --- /dev/null +++ b/target/classes/layouts/LayoutItauCNAB400Envio.txg.xml @@ -0,0 +1,131 @@ + + + + Arquivo-Remessa_ItauCNAB400 + Version 01, Published: 2012/05/25 + + Layout para Cobrança. + + Arquivo texto - padrão CNAB + Meio de Registro Transmissão de Dados + Descrição de Registro - Tamanho 400 Bytes + Organização Sequencial + + ARQUIVO FORMATO CNAB REMESSA, REGISTROS: + + 0 - Registro Header do Arquivo + 1 - Registro de Detalhe (Obrigatório) + 1 - Registro de Transação (Opcional – Cheque Devolvido) + 4 - Registro de Detalhe (Opcional) + 5 - Registro de Detalhe (Opcional) + 9 - Trailler (Papel de finalizador de lote) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/target/classes/layouts/LayoutItauCNAB400Retorno.txg.xml b/target/classes/layouts/LayoutItauCNAB400Retorno.txg.xml new file mode 100644 index 000000000..963c17dd1 --- /dev/null +++ b/target/classes/layouts/LayoutItauCNAB400Retorno.txg.xml @@ -0,0 +1,130 @@ + + + + + Arquivo-Retorno_ItauCNAB400 + Version 01, Published: 2012/05/25 + + Layout para Cobrança. + + Arquivo texto - padrão CNAB + Meio de Registro Transmissão de Dados + Descrição de Registro - Tamanho 400 Bytes + Organização Sequencial + + ARQUIVO FORMATO CNAB RETORNO, REGISTROS: + + 0 - Header Label + 1 - Cobrança - Transação + 3 - Rateio de Crédito (opcional) + 9 - Trailler (Papel de finalizador de lote e totalizador) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/target/classes/layouts/LayoutMercantilCNAB400Envio.txg.xml b/target/classes/layouts/LayoutMercantilCNAB400Envio.txg.xml new file mode 100644 index 000000000..8eeb2cd91 --- /dev/null +++ b/target/classes/layouts/LayoutMercantilCNAB400Envio.txg.xml @@ -0,0 +1,113 @@ + + + + + Arquivo-Remessa_SantanderCNAB400 + Version 2,0, Published: outubro/2009 + + Layout para Cobrança. + + Arquivo texto - padrão CNAB + Meio de Registro Transmissão de Dados + Descrição de Registro - Tamanho 400 Bytes + Organização Sequencial + + ARQUIVO FORMATO CNAB REMESSA, REGISTROS: + + 0 = Header + 1 = Registro de Movimento + 2 = Mensagem Variável por Título (Opcional) + 4 = Mensagem Variável por Título (Opcional) + 5 = Mensagem Variável por Título (Opcional) + 6 = Mensagem Variável por Título (Opcional) + 7 = Mensagem Variável por Título (Opcional) + 9 = Trailler + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/target/classes/layouts/LayoutSantanderCNAB400Envio.txg.xml b/target/classes/layouts/LayoutSantanderCNAB400Envio.txg.xml new file mode 100644 index 000000000..1469832fe --- /dev/null +++ b/target/classes/layouts/LayoutSantanderCNAB400Envio.txg.xml @@ -0,0 +1,119 @@ + + + + + Arquivo-Remessa_SantanderCNAB400 + Version 2,0, Published: outubro/2009 + + Layout para Cobrança. + + Arquivo texto - padrão CNAB + Meio de Registro Transmissão de Dados + Descrição de Registro - Tamanho 400 Bytes + Organização Sequencial + + ARQUIVO FORMATO CNAB REMESSA, REGISTROS: + + 0 = Header + 1 = Registro de Movimento + 2 = Mensagem Variável por Título (Opcional) + 4 = Mensagem Variável por Título (Opcional) + 5 = Mensagem Variável por Título (Opcional) + 6 = Mensagem Variável por Título (Opcional) + 7 = Mensagem Variável por Título (Opcional) + 9 = Trailler + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/target/classes/layouts/LayoutSantanderCNAB400Retorno.txg.xml b/target/classes/layouts/LayoutSantanderCNAB400Retorno.txg.xml new file mode 100644 index 000000000..963c17dd1 --- /dev/null +++ b/target/classes/layouts/LayoutSantanderCNAB400Retorno.txg.xml @@ -0,0 +1,130 @@ + + + + + Arquivo-Retorno_ItauCNAB400 + Version 01, Published: 2012/05/25 + + Layout para Cobrança. + + Arquivo texto - padrão CNAB + Meio de Registro Transmissão de Dados + Descrição de Registro - Tamanho 400 Bytes + Organização Sequencial + + ARQUIVO FORMATO CNAB RETORNO, REGISTROS: + + 0 - Header Label + 1 - Cobrança - Transação + 3 - Rateio de Crédito (opcional) + 9 - Trailler (Papel de finalizador de lote e totalizador) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/target/classes/layouts/LayoutSicoobCNAB240Envio.txg.xml b/target/classes/layouts/LayoutSicoobCNAB240Envio.txg.xml new file mode 100644 index 000000000..f9cbeca48 --- /dev/null +++ b/target/classes/layouts/LayoutSicoobCNAB240Envio.txg.xml @@ -0,0 +1,184 @@ + + + + Arquivo-Remessa_SicoobCNAB240 + Version 01, Published: 2020/03/18 + + Layout para Cobrança. + Arquivo texto - padrão CNAB Meio de Registro Transmissão de Dados Descrição de Registro - Tamanho 240 Bytes + Organização Sequencial ARQUIVO FORMATO CNAB REMESSA, + REGISTROS: + 0 - Header do Arquivo + 1 - Header do Lote + 3 - Segmento P + 3 - Segmento Q + 5 - Trailler Lote + 9 - Trailler Arquivo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/target/maven-archiver/pom.properties b/target/maven-archiver/pom.properties new file mode 100644 index 000000000..8c4252ce2 --- /dev/null +++ b/target/maven-archiver/pom.properties @@ -0,0 +1,5 @@ +#Generated by Maven +#Sat Jun 26 11:17:35 GMT-03:00 2021 +groupId=br.com.rjconsultores +artifactId=GeneradorBoletosCNAB +version=0.0.1-SNAPSHOT diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 000000000..5e9384286 --- /dev/null +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1 @@ +com\rjconsultores\ventaboletos\layouts\CNABFactory$1.class diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 000000000..4e95706d0 --- /dev/null +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,71 @@ +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\bancobrasil\CabecalhoLoteRemessaBancoBrasil.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\bradesco\DetalheObrigatorioBradesco.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\sicoob\RodapeRemessaSicoob.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\ArquivoRemessaItemInteface.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\enuns\MotivoOcorrenciaItau.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\itau\CabecalhoRemessaItau.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\itau\DetalheObrigatorioItau.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\enuns\AceiteBB.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\DetalheRetorno.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\santander\DetalheObrigatorioSantander.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\enuns\MotivoOcorrenciaBradesco.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\RodapeRetorno.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\bancobrasil\DetalheObrigatorioDadosTitulosBancoBrasil.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\caixa\DetalheObrigatorioCaixa.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\caixa\CabecalhoRemessaCaixa.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\RateioDeCredito.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\enuns\CarteiraSicoob.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\ArquivoRetorno.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\ArquivoRemessa.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\DetalheObrigatorio.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\bancobrasil\CabecalhoRemessaBancoBrasil.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\enuns\OcorrenciaBradesco.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\layouts\AbstractFlatFile.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\ArquivoRetornoItem.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\mercantil\DetalheObrigatorioMercantil.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\bradesco\ArquivoRemessaBradesco.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\enuns\BancoLayout.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\layouts\BradescoProcessaRetorno.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\enuns\OcorrenciaMercantil.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\layouts\RetornoInteface.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\layouts\SicoobFlatFile.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\RodapeRemessa.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\Main.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\mercantil\CabecalhoRemessaMercantil.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\caixa\ArquivoRemessaCaixa.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\mercantil\ArquivoRemessaMercantil.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\sicoob\DetalheObrigatorioSicoob.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\utils\FormataUtil.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\enuns\OcorrenciaSantander.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\bancobrasil\DetalheObrigatorioDadosPagadorBancoBrasil.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\bancobrasil\RodapeRemessaBancoBrasil.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\santander\ArquivoRemessaSantander.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\sicoob\ArquivoRemessaSicoob.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\bancobrasil\ArquivoRemessaBancoBrasil.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\ArquivoRemessaItem.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\santander\CabecalhoRemessaSantander.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\layouts\BancoBrasilFlatFile.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\enuns\CarteiraSantander.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\layouts\ItauFlatFile.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\layouts\SantanderProcessaRetorno.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\CabecalhoRemessa.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\RodapeRemessaPadrao.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\sicoob\CabecalhoRemessaSicoob.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\DadosBoleto.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\ArquivoRetornoItemInteface.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\layouts\CaixaFlatFile.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\bancobrasil\RodapeRemessaLoteBancoBrasil.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\layouts\CNABFactory.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\sicoob\DetalheObrigatorioDadosPagadorSicoob.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\sicoob\CabecalhoLoteRemessaSicoob.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\bradesco\CabecalhoRemessaBradesco.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\enuns\TipoInscricaoPagador.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\layouts\RemessaInterface.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\itau\ArquivoRemessaItau.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\enuns\OcorrenciaItau.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\layouts\BradescoFlatFile.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\CabecalhoRetorno.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\utils\NossoNumeroUtils.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\sicoob\RodapeRemessaLoteSicoob.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\layouts\MercantilFlatFile.java +E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\layouts\SantanderFlatFile.java From 97a6f696b652b1600878308deae6188c15a900ea Mon Sep 17 00:00:00 2001 From: fabiorj Date: Sat, 4 Dec 2021 10:08:23 -0300 Subject: [PATCH 02/17] =?UTF-8?q?altera=C3=A7=C3=A3o=20de=20vers=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 697a9c837..0b183ece7 100644 --- a/pom.xml +++ b/pom.xml @@ -2,9 +2,12 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 4.0.0 + br.com.rjconsultores GeneradorBoletosCNAB - 0.0.1-SNAPSHOT + 1.0.0 + ${project.packaging} + GeneradorBoletosCNAB src @@ -21,9 +24,9 @@ maven-compiler-plugin 3.3 - 1.6 - 1.6 - Cp1252 + 1.8 + 1.8 + ISO-8859-1 From 814815c99d85934a3b06b48bbdcfac86cca0f5f9 Mon Sep 17 00:00:00 2001 From: fabiorj Date: Sat, 4 Dec 2021 10:14:09 -0300 Subject: [PATCH 03/17] =?UTF-8?q?corre=C3=A7=C3=A3o=20de=20erro=20de=20bui?= =?UTF-8?q?ld?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/pom.xml b/pom.xml index 0b183ece7..e5b6ea765 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,6 @@ br.com.rjconsultores GeneradorBoletosCNAB 1.0.0 - ${project.packaging} GeneradorBoletosCNAB From a34bcce4a438ade02efd14eb6c8b922dbd543ad1 Mon Sep 17 00:00:00 2001 From: fabiorj Date: Sat, 4 Dec 2021 10:40:34 -0300 Subject: [PATCH 04/17] limpeza da pasta target --- .gitignore | 1 + target/GeneradorBoletosCNAB.jar | Bin 167396 -> 0 bytes target/classes/META-INF/MANIFEST.MF | 5 - .../GeneradorBoletosCNAB/pom.properties | 7 - .../GeneradorBoletosCNAB/pom.xml | 62 ------ .../ventaboletos/ArquivoRemessa.class | Bin 2236 -> 0 bytes .../ventaboletos/ArquivoRemessaItem.class | Bin 2380 -> 0 bytes .../ArquivoRemessaItemInteface.class | Bin 745 -> 0 bytes .../ventaboletos/ArquivoRetorno.class | Bin 1267 -> 0 bytes .../ventaboletos/ArquivoRetornoItem.class | Bin 1898 -> 0 bytes .../ArquivoRetornoItemInteface.class | Bin 737 -> 0 bytes .../com/rjconsultores/ventaboletos/Main.class | Bin 4020 -> 0 bytes .../blocos/CabecalhoRemessa.class | Bin 350 -> 0 bytes .../blocos/CabecalhoRetorno.class | Bin 850 -> 0 bytes .../ventaboletos/blocos/DadosBoleto.class | Bin 2446 -> 0 bytes .../blocos/DetalheObrigatorio.class | Bin 306 -> 0 bytes .../ventaboletos/blocos/DetalheRetorno.class | Bin 1790 -> 0 bytes .../ventaboletos/blocos/RateioDeCredito.class | Bin 847 -> 0 bytes .../ventaboletos/blocos/RodapeRemessa.class | Bin 270 -> 0 bytes .../blocos/RodapeRemessaPadrao.class | Bin 730 -> 0 bytes .../ventaboletos/blocos/RodapeRetorno.class | Bin 340 -> 0 bytes .../ArquivoRemessaBancoBrasil.class | Bin 4152 -> 0 bytes .../CabecalhoLoteRemessaBancoBrasil.class | Bin 4990 -> 0 bytes .../CabecalhoRemessaBancoBrasil.class | Bin 4779 -> 0 bytes ...heObrigatorioDadosPagadorBancoBrasil.class | Bin 4561 -> 0 bytes ...heObrigatorioDadosTitulosBancoBrasil.class | Bin 9147 -> 0 bytes .../RodapeRemessaBancoBrasil.class | Bin 1873 -> 0 bytes .../RodapeRemessaLoteBancoBrasil.class | Bin 902 -> 0 bytes .../bradesco/ArquivoRemessaBradesco.class | Bin 2302 -> 0 bytes .../bradesco/CabecalhoRemessaBradesco.class | Bin 1753 -> 0 bytes .../bradesco/DetalheObrigatorioBradesco.class | Bin 9498 -> 0 bytes .../blocos/caixa/ArquivoRemessaCaixa.class | Bin 2275 -> 0 bytes .../blocos/caixa/CabecalhoRemessaCaixa.class | Bin 2171 -> 0 bytes .../caixa/DetalheObrigatorioCaixa.class | Bin 6393 -> 0 bytes .../blocos/itau/ArquivoRemessaItau.class | Bin 2175 -> 0 bytes .../blocos/itau/CabecalhoRemessaItau.class | Bin 2091 -> 0 bytes .../blocos/itau/DetalheObrigatorioItau.class | Bin 10791 -> 0 bytes .../mercantil/ArquivoRemessaMercantil.class | Bin 2311 -> 0 bytes .../mercantil/CabecalhoRemessaMercantil.class | Bin 2211 -> 0 bytes .../DetalheObrigatorioMercantil.class | Bin 9529 -> 0 bytes .../santander/ArquivoRemessaSantander.class | Bin 2311 -> 0 bytes .../santander/CabecalhoRemessaSantander.class | Bin 2185 -> 0 bytes .../DetalheObrigatorioSantander.class | Bin 11298 -> 0 bytes .../blocos/sicoob/ArquivoRemessaSicoob.class | Bin 2284 -> 0 bytes .../sicoob/CabecalhoLoteRemessaSicoob.class | Bin 4965 -> 0 bytes .../sicoob/CabecalhoRemessaSicoob.class | Bin 4057 -> 0 bytes ...DetalheObrigatorioDadosPagadorSicoob.class | Bin 4536 -> 0 bytes .../sicoob/DetalheObrigatorioSicoob.class | Bin 9091 -> 0 bytes .../sicoob/RodapeRemessaLoteSicoob.class | Bin 1169 -> 0 bytes .../blocos/sicoob/RodapeRemessaSicoob.class | Bin 1803 -> 0 bytes .../ventaboletos/enuns/AceiteBB.class | Bin 1351 -> 0 bytes .../ventaboletos/enuns/BancoLayout.class | Bin 3267 -> 0 bytes .../enuns/CarteiraSantander.class | Bin 2389 -> 0 bytes .../ventaboletos/enuns/CarteiraSicoob.class | Bin 2368 -> 0 bytes .../enuns/MotivoOcorrenciaBradesco.class | Bin 28929 -> 0 bytes .../enuns/MotivoOcorrenciaItau.class | Bin 19912 -> 0 bytes .../enuns/OcorrenciaBradesco.class | Bin 3015 -> 0 bytes .../ventaboletos/enuns/OcorrenciaItau.class | Bin 12128 -> 0 bytes .../enuns/OcorrenciaMercantil.class | Bin 2435 -> 0 bytes .../enuns/OcorrenciaSantander.class | Bin 2609 -> 0 bytes .../enuns/TipoInscricaoPagador.class | Bin 1965 -> 0 bytes .../layouts/AbstractFlatFile.class | Bin 10539 -> 0 bytes .../layouts/BancoBrasilFlatFile.class | Bin 11597 -> 0 bytes .../layouts/BradescoFlatFile.class | Bin 7867 -> 0 bytes .../layouts/BradescoProcessaRetorno.class | Bin 6061 -> 0 bytes .../ventaboletos/layouts/CNABFactory.class | Bin 2563 -> 0 bytes .../ventaboletos/layouts/CaixaFlatFile.class | Bin 6881 -> 0 bytes .../ventaboletos/layouts/ItauFlatFile.class | Bin 7970 -> 0 bytes .../layouts/MercantilFlatFile.class | Bin 7395 -> 0 bytes .../layouts/RemessaInterface.class | Bin 464 -> 0 bytes .../layouts/RetornoInteface.class | Bin 322 -> 0 bytes .../layouts/SantanderFlatFile.class | Bin 8908 -> 0 bytes .../layouts/SantanderProcessaRetorno.class | Bin 4930 -> 0 bytes .../ventaboletos/layouts/SicoobFlatFile.class | Bin 10176 -> 0 bytes .../ventaboletos/utils/FormataUtil.class | Bin 2452 -> 0 bytes .../ventaboletos/utils/NossoNumeroUtils.class | Bin 8798 -> 0 bytes .../layouts/LayoutBBCNAB240Envio.txg.xml | 188 ------------------ .../layouts/LayoutBBCNAB400Envio.txg.xml | 108 ---------- .../LayoutBradescoCNAB400Envio.txg.xml | 144 -------------- .../LayoutBradescoCNAB400Retorno.txg.xml | 123 ------------ ...ayoutBradescoCNAB400RetornoParaLer.txg.xml | 123 ------------ ...adescoCNAB400RetornoParaReEscrever.txg.xml | 67 ------- .../layouts/LayoutCaixaCNAB400Envio.txg.xml | 104 ---------- .../layouts/LayoutItauCNAB400Envio.txg.xml | 131 ------------ .../layouts/LayoutItauCNAB400Retorno.txg.xml | 130 ------------ .../LayoutMercantilCNAB400Envio.txg.xml | 113 ----------- .../LayoutSantanderCNAB400Envio.txg.xml | 119 ----------- .../LayoutSantanderCNAB400Retorno.txg.xml | 130 ------------ .../layouts/LayoutSicoobCNAB240Envio.txg.xml | 184 ----------------- target/maven-archiver/pom.properties | 5 - .../compile/default-compile/createdFiles.lst | 1 - .../compile/default-compile/inputFiles.lst | 71 ------- 92 files changed, 1 insertion(+), 1815 deletions(-) delete mode 100644 target/GeneradorBoletosCNAB.jar delete mode 100644 target/classes/META-INF/MANIFEST.MF delete mode 100644 target/classes/META-INF/maven/br.com.rjconsultores/GeneradorBoletosCNAB/pom.properties delete mode 100644 target/classes/META-INF/maven/br.com.rjconsultores/GeneradorBoletosCNAB/pom.xml delete mode 100644 target/classes/com/rjconsultores/ventaboletos/ArquivoRemessa.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/ArquivoRemessaItem.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/ArquivoRemessaItemInteface.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/ArquivoRetorno.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/ArquivoRetornoItem.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/ArquivoRetornoItemInteface.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/Main.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/CabecalhoRemessa.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/CabecalhoRetorno.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/DadosBoleto.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/DetalheObrigatorio.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/DetalheRetorno.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/RateioDeCredito.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/RodapeRemessa.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/RodapeRemessaPadrao.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/RodapeRetorno.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/bancobrasil/ArquivoRemessaBancoBrasil.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/bancobrasil/CabecalhoLoteRemessaBancoBrasil.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/bancobrasil/CabecalhoRemessaBancoBrasil.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/bancobrasil/DetalheObrigatorioDadosPagadorBancoBrasil.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/bancobrasil/DetalheObrigatorioDadosTitulosBancoBrasil.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/bancobrasil/RodapeRemessaBancoBrasil.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/bancobrasil/RodapeRemessaLoteBancoBrasil.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/bradesco/ArquivoRemessaBradesco.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/bradesco/CabecalhoRemessaBradesco.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/bradesco/DetalheObrigatorioBradesco.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/caixa/ArquivoRemessaCaixa.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/caixa/CabecalhoRemessaCaixa.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/caixa/DetalheObrigatorioCaixa.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/itau/ArquivoRemessaItau.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/itau/CabecalhoRemessaItau.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/itau/DetalheObrigatorioItau.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/mercantil/ArquivoRemessaMercantil.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/mercantil/CabecalhoRemessaMercantil.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/mercantil/DetalheObrigatorioMercantil.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/santander/ArquivoRemessaSantander.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/santander/CabecalhoRemessaSantander.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/santander/DetalheObrigatorioSantander.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/sicoob/ArquivoRemessaSicoob.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/sicoob/CabecalhoLoteRemessaSicoob.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/sicoob/CabecalhoRemessaSicoob.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/sicoob/DetalheObrigatorioDadosPagadorSicoob.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/sicoob/DetalheObrigatorioSicoob.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/sicoob/RodapeRemessaLoteSicoob.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/blocos/sicoob/RodapeRemessaSicoob.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/enuns/AceiteBB.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/enuns/BancoLayout.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/enuns/CarteiraSantander.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/enuns/CarteiraSicoob.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/enuns/MotivoOcorrenciaBradesco.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/enuns/MotivoOcorrenciaItau.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/enuns/OcorrenciaBradesco.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/enuns/OcorrenciaItau.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/enuns/OcorrenciaMercantil.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/enuns/OcorrenciaSantander.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/enuns/TipoInscricaoPagador.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/layouts/AbstractFlatFile.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/layouts/BancoBrasilFlatFile.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/layouts/BradescoFlatFile.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/layouts/BradescoProcessaRetorno.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/layouts/CNABFactory.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/layouts/CaixaFlatFile.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/layouts/ItauFlatFile.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/layouts/MercantilFlatFile.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/layouts/RemessaInterface.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/layouts/RetornoInteface.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/layouts/SantanderFlatFile.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/layouts/SantanderProcessaRetorno.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/layouts/SicoobFlatFile.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/utils/FormataUtil.class delete mode 100644 target/classes/com/rjconsultores/ventaboletos/utils/NossoNumeroUtils.class delete mode 100644 target/classes/layouts/LayoutBBCNAB240Envio.txg.xml delete mode 100644 target/classes/layouts/LayoutBBCNAB400Envio.txg.xml delete mode 100644 target/classes/layouts/LayoutBradescoCNAB400Envio.txg.xml delete mode 100644 target/classes/layouts/LayoutBradescoCNAB400Retorno.txg.xml delete mode 100644 target/classes/layouts/LayoutBradescoCNAB400RetornoParaLer.txg.xml delete mode 100644 target/classes/layouts/LayoutBradescoCNAB400RetornoParaReEscrever.txg.xml delete mode 100644 target/classes/layouts/LayoutCaixaCNAB400Envio.txg.xml delete mode 100644 target/classes/layouts/LayoutItauCNAB400Envio.txg.xml delete mode 100644 target/classes/layouts/LayoutItauCNAB400Retorno.txg.xml delete mode 100644 target/classes/layouts/LayoutMercantilCNAB400Envio.txg.xml delete mode 100644 target/classes/layouts/LayoutSantanderCNAB400Envio.txg.xml delete mode 100644 target/classes/layouts/LayoutSantanderCNAB400Retorno.txg.xml delete mode 100644 target/classes/layouts/LayoutSicoobCNAB240Envio.txg.xml delete mode 100644 target/maven-archiver/pom.properties delete mode 100644 target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst delete mode 100644 target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst diff --git a/.gitignore b/.gitignore index 8d0718774..0186c4e3c 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ /.settings/org.eclipse.wst.common.component /.settings/org.eclipse.wst.common.project.facet.core.xml /.settings/org.eclipse.wst.validation.prefs +target diff --git a/target/GeneradorBoletosCNAB.jar b/target/GeneradorBoletosCNAB.jar deleted file mode 100644 index 4c56fc19e72878c8926cd436181a9cadb24afe35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 167396 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 - 4.0.0 - br.com.rjconsultores - GeneradorBoletosCNAB - 0.0.1-SNAPSHOT - - - src - - - src - - **/*.java - - - - - - maven-compiler-plugin - 3.3 - - 1.6 - 1.6 - Cp1252 - - - - ${project.artifactId} - - - - - commons-lang - commons-lang - 2.0 - - - - commons-io - commons-io - 1.4 - - - - br.com.rjconsultores - jrimum-texgit - 1.0.0 - - - sun-jaxb-rj - jaxb-api - - - sun-jaxb-rj - jaxb-impl - - - - - diff --git a/target/classes/com/rjconsultores/ventaboletos/ArquivoRemessa.class b/target/classes/com/rjconsultores/ventaboletos/ArquivoRemessa.class deleted file mode 100644 index 16b3ec075960afcb89fca0ef97964c91c9bb8856..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2236 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 diff --git a/target/classes/com/rjconsultores/ventaboletos/ArquivoRetornoItem.class b/target/classes/com/rjconsultores/ventaboletos/ArquivoRetornoItem.class deleted file mode 100644 index 10c3a672271377e1752eb5fad96cbf50a1542f55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1898 zcmbtUYflqV6r9_Zu9O0mrywApVq28*kY@>r!5A@B6CfD2^8yx_BTBPeWW_^`F7EY)`(|4XNRV zK<_2!rsddDFItkR4814~-P%7VA+S=oCQ;FH43ggrMdk%G&-AL6Qz34_PgnI!D_1Zp z9xvN>%(AU}RhMa>hpyLK%=uJ$`zGsOxQ<0*>&cS|lFsH*Jt0WY8!&sfS4Q0`kR+hQt5( zf>KOZSE0ai%k=94755#d>KgKyss1j5jV_;2wP1p_j3R| zMlPch{%Id$27H8p;8hJlp(~0i@fhyZu*yDlU@Uur@t^3*e#hk7Gu%7HxH_5siu)0~ zQ8}VS1q+CA9AY`cT#sOsSc+|sYwRM|7^d-%IUf0uLe)LvSKUy+Y`B047BG1QG=2dZ z_q9|7%wwTez@?HW82QX>5uazES1 H=ehO=l0e($ diff --git a/target/classes/com/rjconsultores/ventaboletos/ArquivoRetornoItemInteface.class b/target/classes/com/rjconsultores/ventaboletos/ArquivoRetornoItemInteface.class deleted file mode 100644 index dedbe568b28eacbfc7d5e5cbd9b33a8aa14544e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 737 zcmbVKO-sW-5Pe&5udiL6040ur+5kwIx1)&x1o9!4AwpmR!`Eefn0sbg)y4pjl zV(>J(!_4~_-rM`jD}W>HH&7EeRc7jEi85(kXlpXc{gP5EL!-%>+`q`4i?}o+{$!~c zSegz}OAk^}1FHgFB1`FOnMVF?n2@ppot*5Y3`t4-INuWpy2C%1LTwZiF0Tf?dx55$ zOzvV^Xv2!DB3+SX3G^l1;drcVWG3=y-W52h3b(N5&^pmiPW#>7f2|6%81mC-F3@Hq zci+Os+8@Tb4fqt}I7+20G7`A?HgHyvdg(Uj4D2!Wf=7Yl%2pN@8LTxnMW*OF)-3bj z_YfV<{M7{nRydSEoinwDI%e5wVBOUwTCQ$j)733(^ZX7^*WmHoF53L&;JMD;2ZA!} APyhe` diff --git a/target/classes/com/rjconsultores/ventaboletos/Main.class b/target/classes/com/rjconsultores/ventaboletos/Main.class deleted file mode 100644 index fade4b272a4e785411fda3cf180a7d8c5b1b8343..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4020 zcmb7HTW}j!8UBtVc_np|IC7F!jZ0c`vun$;Wy^N#IKh!+*N$wZwsC6`2YeVS7vyld}k%g*P!HOchA}X{(t}f zpYyl>zVT-OQT$0kgTOJ}%0}!J-O3e;8OO4XLS)s*IohI?F&wK9nbORh0*^q`ingjn zGFmPjNiD7zx+Bnd#>|<{S%E#RZSw-2xV2;ium^q>UNj2qPntPnx|m%w>^W^QV+aJ3 zmab*yHQSWy>ZZrJY8C`eB=5qMA*#vJB!R=Nmy#PM%{sQ3OAocpD>xu9UPsbm#?t9q z*06Og=a`wuh<&YSu39rj)+iLTsrCH;n&4M(P+;O-CC0TygRWlPMP@VnKHSgnbw_)8 zV|@WMBc$R%9AS_PhQlbDX)BSx2h$-k5IIxk? ziJW7k4O>MY`YB*l%M^{&vdsHL+op(A$%dr1(<%l*ggi)Xgq>kqv&OZe8;(phwUU1q zZfQd^hE<%E{6}`>Pn!kDwtRRG!!R@XaD1a;B=30@ahZaBlGn-_)%*pJz_@}jf$lm8 z+6uu5$H=O93=@o)jNLXg2@JK?E0-$Bx3jvbydZF)jy*eSWYlnoXCt*pWNGXarnRX~ zCS{#W3mkM4nAM!Ck@IGH)X>eWmhs^tGf1fScMc2$FokdclbBU8hxb+@Hm_wYd(L!< z8KN&#&CoU}E>I@%go-C6YWFfM^D?(twkt~tjQDU#z}pk;>Sk3;;{7T>^X5e-+mid`RHMz+cB0B*L5TBm=+y++U@UoHeF}d(e$V0 zY)v;5d{|(h4z4oV(^k>pU|DanV;RjEGc)W<&qxq`RN!1ap_}tq04B_Gi$+RNUZXZ6!!4@C9Jf~yX>0o+7b!RH0Sb^O^{`hI*7&nx(nKvx|;BUj87BImW7ZYABQs`xU#!j3VOn2C=} z&rKw+^mcV!N#s^dmQ}PK=yr%B*q+1JWHbM|K&)=WcJfPLCGZW2|8EKm*T?VR{{Z<1q&&c7t<^T*8XMt#=GktYGoPV)%Wyvvb@ z*wnV1ZYqK6xi^y}(-133-!X_T)DyI0kZhkwwN5|tgsoe)BCd+p7wio?5}tUGr&N;|kUpJQgh)LGyAD$cD#jvHI) z1S0j+ZiAtK;J7-pDQGpwNvGV#Kc(f}W4wZwIrwI+qOBXUD{?x?t3#)RD-WC;xx91$ z4gBKWfKP?12;YKl@1tw*-FANm_>{ka{kV@$wL-x6UatJu$9dkFC0q^%uauyLgG(hWhoxe3gMOtw zTtc>lYxnwo1%W|N$WubGjAv-kM+QA*+~CK@2E8Hgfm8ck%Rk;8@|N(4GHxyeKf8u! z2OGI?ZOHRK63hLqRwy*+rMw)>;o%+xKsiGN^K zw1`g8&Gό|9{dmz*Eb3DptGkiG2`_cV4j0ezy5Ki$9(~BcG!&L$g;R250B6I&F zj={ij-{KYE zUp(2rP09bpFy6sA;l+q(LR_@)Xng|Xq7#pa9-fv5FeOHL5S>6uOyhAELV5WVDf|R4 z({3L8|^Hc3AgboywrFOzr*i& z_GzJQe?SQewN^NM)ak_KQ@fI}D;n!5az^3Yrz35QTzOZcoFvd0WAY3T`O4 Usc_!9B-09Bl2uTqpa%T$f9F`HivR!s diff --git a/target/classes/com/rjconsultores/ventaboletos/blocos/CabecalhoRemessa.class b/target/classes/com/rjconsultores/ventaboletos/blocos/CabecalhoRemessa.class deleted file mode 100644 index b197d2d4ada0e48b58cfde3034a4d0a99dc4749f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 350 zcmaKo&q~8U5XQf4V`Hm=mwM0_NH1OR;KidL2%=!1_sue-37Z|<-Q?js_yB#V;#4Yv z1TXW=F!P&#yZy%}fLmPTm?+#??sRA^``Ek0fubJBCsVPb#8Fp{t;mC^$QrlhH|i)x zlOt2OY|UV_GrrcZRZBK0T-TId`i=sZ^xl)Vjd4drVOgx6e~~AjsHSi)Q2YnFDn^*q zM&V|3RNcfBShAx%f3k~``(Wv@aU^T~J#Kwia;Bg#l}`bg+bl?=}+81dBQiRLI&JYt_YNGTCTF` zXmd;0+#RZWs(MnTkzgo{_>`M2mjm<88VNgK$l9uZJ$@t_&QR>k8@hq#$iW#yMNY=T zQ&;L@>iFuCOPhO+Vo04k(g|7&@p_}jkZ7yE$RZBIz#1|P`HmyS?PP2T?}1yc(DaHV z^$4!>Suqg|9iQQ}^FLoCFgFkZ4gYmft~XYFWWZ21kVJ|A{vx1KU+veHYD7#1R?Ta& zZ3AgdRwJ^=CfaRRO*~uNINE$=`9+TOu5mzAaeCeueIzct5igxd`a_GPn5E35lj&;n z4eQTgTaIEXEXJ`xcjKo4c@!vP*hG=yBKQTRrzLPE5?n!b25yDgXjJp?6{Y#;EYXz4<&0wO|UBC2Q z+i8{~f@0*m6#3p^Fld>s&u!OaFd2#Q*713hyBH*eJ2;k&>m$hQn}%>*w0yhofJEyPwQP z3!_fdgk`p_OxLFWaI(+;Y^%uts90!8QB+THq))BxXc#MAxW?>G;UgvKx|3z{hS2{m|r=fENGfL1_ zYwO=(zPmML3^0XRXM+gS9aXqJq0xB|^`a6aCxgr=L6+1YIT>UYx0{Orp@I;|b0x^K z46>jESyh89%OHygl8XVMjv$b{5~Lu5EGa?O)gT2KWCcN1V?d}S31kB{ag=*xO9m+@ zL0-Ui=-ksITQbN7f^5cs(48QVq7tMegXl_-T{TEa1}P#)DF%ctC4szDg6zp4yGoD) zHOQU}vX3AKF(C9R5XdWKkCbJQvJ&LAx<|?~NCiQTVnFCwB9Mv_oAdg1nCbp@*43&VwiP;xDb~NuB@z diff --git a/target/classes/com/rjconsultores/ventaboletos/blocos/DetalheObrigatorio.class b/target/classes/com/rjconsultores/ventaboletos/blocos/DetalheObrigatorio.class deleted file mode 100644 index d6baf48ee96a401fc578f2f43379bd4f8577b48f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 306 zcmZut!Ae6h5S+BySE~mvwFiHoy)@uS@Fr3yhy@G1=fx$>BQJ|dUO&!*AK*uc`+D)v zUUpcR*_qj&->+`~54fo?PeN_{xeJ98WqqJnOwEA`XI%%j0xwid*wdy?-Wj2J zu5h7n+n9sV!9=Gwbwjo&Of!}B$MaFXBD*)OoMVN%`RhM<9Sb>1Pm7%h+$ zxEF)BuBF6V`s^rLZ^An{pGy*($(FlhY2^bc%uZu3`w$}qg`s=_7)pyvjL^5KFh1f{ LzYAj`bAanVsNz`C diff --git a/target/classes/com/rjconsultores/ventaboletos/blocos/DetalheRetorno.class b/target/classes/com/rjconsultores/ventaboletos/blocos/DetalheRetorno.class deleted file mode 100644 index c2c389546fe1db299b1d9a230f343b6e62ec072d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1790 zcmbu9-%k@k5XZmU7HUf=&=v&50!px!kK+yOjfBYla!GSr z9AS(lFpMO_NXhZUi)Otd)Ei!L{jx}#yL((Y=DV$o=zWJ0SiOj-Z+{45wk9-1`A0W0 z`9g0$Vqlm`U;u;UqH&Rn@qDiblk_kJ@AiRVjY3_uv4&_ifhew#Um`l~cRhb)w+1sq zn899B%~O91b9!vbJ<9(d7L(eY1Y(FYq*}LA667g49V^lbDF>dJftBeEQT|EZawz3!h43Nmn;9dbkxzZ=Jtmje%K!S zcv&`;EuK5(VWiLgb(Rbv=Ba35`hkTJGGj_o$P94Xr?dFUF6%@)ch_2+2S#BKanhcN8#NGs7yJdS^SE7A-px9VVGv65TSLB hIy+DD0#zk<3OL)TT$bL{GR1i0Te1|1D

S_zw#twFLkG diff --git a/target/classes/com/rjconsultores/ventaboletos/blocos/RateioDeCredito.class b/target/classes/com/rjconsultores/ventaboletos/blocos/RateioDeCredito.class deleted file mode 100644 index ae8ad54453ac55e1871278b74883af25ec41df4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 847 zcmbVJT}uK%6g`u=rfzC}lzlz)rUoqp(L>RT6$E0C(fjN=*~q#RyJNqrpa^>C2lS(& zJDXtH_7Vd#bMM@9?m2hfKVIJe>|ra51%`c3jh%4hsUVv8T7@EV?nR)vt9+qVTBEL!~<_?dwnm z!$XEbprT0iCSwsQ2J1)$QXey;Eu{CXPq!~X(^=hJ!#=MYHqLB4uA&q$<6>3-gLx>ru5wa0m-~0qe$D!x| diff --git a/target/classes/com/rjconsultores/ventaboletos/blocos/RodapeRemessa.class b/target/classes/com/rjconsultores/ventaboletos/blocos/RodapeRemessa.class deleted file mode 100644 index bddccba69dfdad5acbe970c046e5262ad6812af1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 270 zcmaKn!D_-l6h-e-Yi!&U!EX8kx^bW`-3x`H5W)Rqe1wF_ymn@ik8{xv=tq@KR#GUg zE?hX=bH9JCUjSY)&oClvjkL-)MqKD@6wg8R?4mBka+IJ-D<(xD7yZEnw;Y1bFd;lO zy4T8TSE*y!u!)41isPYc*~^JPJ9ehlw&1D`(F`UYShn+^&Bhk=ScJq}coW|2{vQtzG;BYhQ-QK{!gD&Wvp zLwQSmiYZOyr5tLh9FzoB#`0czkxWM3g+HdiIH(95{NqxAR+7b})fL@klmwxS`ZNkt zqm@9d_r-IT7#fj25~v)9NocwP#rDoXpmd^!R7DYsF6L1cSnh=hooBI6`da!C39R*0 zAftiQq0MK-lDP>}fur6(R8LpITDC@HnCch(jrLB?1oIGRxNtDX`1CJ)vz-ICGgq%v zrUN<+?R2f2SK70S!!|P&*~)AMOUOUK=Da5M3!Hfz1;=vd1@0ps3Rq%anG}my=CeC( zzzSA5<7J}8{yX>y^@kr|Hy7N*`V8D^`IZMO~d#>#VskxuH4jn$cTnb`Gn$ IHDTQN1jHh&P5=M^ diff --git a/target/classes/com/rjconsultores/ventaboletos/blocos/RodapeRetorno.class b/target/classes/com/rjconsultores/ventaboletos/blocos/RodapeRetorno.class deleted file mode 100644 index aeaeac62a664f6df854b8efa40b6c7b9173e4ef2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 340 zcmbV|u};J=5JYEl$pyl}o%jPfpuiG{3PgiM6@hf1>m8p3j(lF^IQL&vNECbkABEUN zG_*7`o>^J@v|ryJp8(FWD3K8^3~y9y4TrAxiKFe*)`p}T_BL^+8qY>-$!q;;mr}*R zC33=|)myE+4$tbLX{||w>9q?k-4G_nCo4jJ%WGRpi(GEXnABV5-1K)WJTkK9LN@7%cH5BS-@j3Wr4oB-l9kcpO()R=+d^c_2I ZQe>z^hcV>Cp6G0R7vlSp2nV7W=07gTR8jx{ diff --git a/target/classes/com/rjconsultores/ventaboletos/blocos/bancobrasil/ArquivoRemessaBancoBrasil.class b/target/classes/com/rjconsultores/ventaboletos/blocos/bancobrasil/ArquivoRemessaBancoBrasil.class deleted file mode 100644 index 8d15e1a8b2d1a67d29833379fab8d43481650cc2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4152 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 G&;J7(g7S0# diff --git a/target/classes/com/rjconsultores/ventaboletos/blocos/bancobrasil/CabecalhoRemessaBancoBrasil.class b/target/classes/com/rjconsultores/ventaboletos/blocos/bancobrasil/CabecalhoRemessaBancoBrasil.class deleted file mode 100644 index 665a034835ed0bc439cb00c28dd329c031be4fd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4779 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 Ee^S!q=>Px# diff --git a/target/classes/com/rjconsultores/ventaboletos/blocos/bancobrasil/DetalheObrigatorioDadosTitulosBancoBrasil.class b/target/classes/com/rjconsultores/ventaboletos/blocos/bancobrasil/DetalheObrigatorioDadosTitulosBancoBrasil.class deleted file mode 100644 index 753980dcff828886e47d2a5f0b024f1b9efcce95..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9147 zcmb`LYmgjO6~|9+9-C~MWV4$W21NxWFSGJS5((LzB!(<(WH%w2#H4qone8w;oy_zs zQAE_BphOW-P(V;XP(Yr+C_$nIjS@6!P*6a8Rrx`y{Ge5S&{F^Z+dVrycTZPB;g>nn zeb2e~*XQ2z=ziuuPdp_er^z2$rNxnr`Eagr;ZMfgxaj{=SWA&ra!6#(!;5OeekJVg25UYn^mvuX4=Px<^U|;~?Dcqs*oVf2 zu!(~0VJ^(Ws2l-xMo_??6~jTb>V@5B`Q zeig@;u5hW@xSU={Mz9HazYr9l(zd#9<(8a3VlFzpK`)A3l2VzP+N%}A+i_^(b=FpJ zzN+y$fmdx@ax=lv?FBornUf0`O#bt@VIO!1DhL%2)~ex(o%vF&8jRqwBPev6KwIhO zhrDEO<`?t;Tk93+_Edm5viWEpKKA$>J3aPe;?kfTMCUm&Zr=R$j*RaK3x1o7lXF}- zL(X($T5nMHajXaZ%0L{29lc@RE3Nk`0k4yr6vdT#U2)|&7{o-Q1~b!7p6GKUIdN_@uW^QVyE3&tLt_NF zDMsKC9!+}GU+2m+>UYK~HjT$tn5F41t={8Gd)>+&M>sT58Dko4c4az^Is(EPj?BhdtCa*#vmLI?qS+Qr&3yDOcV= zL+-tzf)cly7Cq-K0RJMHHu=BFw`qN_3wA(t>l=NaMZ`*qg}s3u811|nmpvn zDI{V@j8TY>cB4t4!DFt>qXCm^V+0NgQoRIo#qzQ31ns}&%6!`MyeKNMD^h6+O$W`M zbY%gL8C}slns#2j4WY$%U0K-dy!vS3yj0sl{ij`7M1AAD)Yxd2tamk3{*fzhqjHiZ z>qF>ixGnXbhnmm2vY47K9b6wsp0cSQqVmsN>8dlwiH3rxF9^`CR)?eq$n z(_@Y-BFC|}PFs#1n6IgMBJ8hSyl9;cG=rJ8*UuIN{OBr=1Mh;SnjvPL2hjYNPMiP$j`kzphby^%P~MxqNf66XbS z4ZMa18^34asteMAoUmZ8oc)MVdk20enwyj5T>N)q1z93XaplN6q=c*t%9b|S zXMn6qK;ET-tgu0PRFKtjf$|h-P-ko7vqfDN({Ae%Bk80!SNL>-UkW2O0FW4Yg0OW%iAk6m!DXJbBvO%s=LAL208L~lk0p#io5EdMQ zT&9AQY>;bIkg^U^vO%r`$nFdfRy=})D#&&lLSkZm>ZP0p!^X5O%%<`Mi2qZ?ZuSs~}&{59>`f$Ps`%mjS}o zn;>6QYt1b-$nz@5ZF;S_#Rhp1ATMQru=gj(msF43ZiBp{f_z!`$n7@B9|7{G3=qD2 z5acUr_}*!Q{8&@-AbWI>M{STP0C6)w9#25Nse0&3+r?L>1(FderQ$QcD^nwl2r-J-OUQCRen&%g6kO6?K%K+ggID)*S iZq3U!$OaYU6@6=7wm~)lWOD`xzm*c?cjimm@BasDNjC}r diff --git a/target/classes/com/rjconsultores/ventaboletos/blocos/bancobrasil/RodapeRemessaBancoBrasil.class b/target/classes/com/rjconsultores/ventaboletos/blocos/bancobrasil/RodapeRemessaBancoBrasil.class deleted file mode 100644 index a78cf35495cf7ac1efcb631f5c4587f1581bf762..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1873 zcmb`HTW=CU6vxj1g#v3)5G=L@sjb{<*UOX9G_g%gG^D9u`aUcZ+-BLay9=L76OD-v zegHp|@tj@IWipsX8^WBKo&TKqoy+czpWnU%z!P|!fdqp$mYkU0g(Y2o>IBjgzBvs<|RWwsQLh?Ra}yLNEIAlYi4Gf17tk;p+3iUw>zfkB~XyW(^@ z84B+mA3B0Tu_rC=oO92n_55KfcyA+r?|%Vf;UZjqEP}Vc(^hV^HJQx1jM9TXH>Tc1K%3CDE!Fb%hH zZbSkoLj_k1?!YFF%ZEQh^`mmQpgp_=+w;RmNSdIlI^8c&{d09Ld|JeaN}-2Jq?%t( zXcQk&?`T14Do9xia!(IZQ$aQnq`Crx5=wtQw3>gLE6xnA6_a=Qw7;Wko^@P)M5nE)n?>C1!-zQ4)qy1P(eBf(p>>U?*f6C IVOKu-1rT_o{ diff --git a/target/classes/com/rjconsultores/ventaboletos/blocos/bancobrasil/RodapeRemessaLoteBancoBrasil.class b/target/classes/com/rjconsultores/ventaboletos/blocos/bancobrasil/RodapeRemessaLoteBancoBrasil.class deleted file mode 100644 index a51b871e54293cea1bd110818c40e8c1f9d07b13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 902 zcmbVK-%k@k5dO9;tsEx>3l&98cq@=_i98t%515dUTnM&?_r2?+F4^9~?zVrICMt;! z{sI0`#@VBWw7G|dhy5`#`^|jw&HnlO>o)+ zym3jUO&$(e{R7Opp#z9sZ6viM#*{MX+-wDK=Xqtls^%u_x7&@8XwJ&BGmCT#wsF#cB%@x zn2a;BpJk>=;8|*Nsjs9}!JauA{)=(~m+5jum(`95wnyYY`C*?%%6V(J$aZhPqLm07 ziP1$zV3#q>nXDPm?SzV4N&P>8z&c06jAqKLGVn!=7M^g(&4mQIy^2ynsAym&Hm5Tc zB-xvr+rs>hg6!DiDs^5fylSBsf4BzUS!CYV*h=^me6AeaA^ygf8rFGlmd+;He2?!R zU;~?M@hH&YeIEQ1TVEHzaV7Y91^7F57Qq{p;Fs8)RX$;!wZQY>@CSAtct@poiyPi9 VGj#7?&A5lYf(W7IS0&xo{{UGQ)k**W diff --git a/target/classes/com/rjconsultores/ventaboletos/blocos/bradesco/ArquivoRemessaBradesco.class b/target/classes/com/rjconsultores/ventaboletos/blocos/bradesco/ArquivoRemessaBradesco.class deleted file mode 100644 index ac3fbd716a4d55014894aede636cc22fb15c1aa8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2302 zcmbVN+fo}x5IrM=7fA~U0rEw5z&Iqj*cORRz{pMlGIo^6;7Ejva~-WF@{*NC-d$0N zU-K3I0>38Z7==(3m!Djfk4n;`3j&msWooNtW@om$&*?rr``6!p{0ZQFe5=93ux!Y3 z(%v>?#i?1Yw1t!05fzsgq$OPGBny@_)MWFba15DTv>(;X9hnnl;W&J$wXMO+@ZM`& z9W~9kqRepWrdcuF4;lKRv2_M-S{8*Leemh%$0>&4tXUB&wQ@n&YrJ3yhEP@-+*;?h zsoqDp?%`nu7 zsDkOZ1?pI@V?L&`QsZX)_!vtX78yo5D#(zcO2XEW#%*G?!>yWF{hlEl%^Vg&>$6k< zckqdZyHugxD0Cy&k-?`75$avKGK4Mj;!#ah43k?qQ6l6v6)JpKT&^&^HUC7v}MUw|&q zLHnrB*%Nuxu*q=a1X%9#qRpir8}J42rK;yw4A)NJh{2ziHQNw(Om*o;j{ZB^61}R_ zM)wSrjDBf=msa%Kpi!f@B+ZQG{&*b&ztX}3KaJ`b2+#xQ%@1fEq&HGJhG|sBkI9jT z=F5qf2tGj|o~R@A6chUx+uBEXD|DugbD`iaF6`pcF5ayp{zAp*Ys3hXH4r3EBjh_o zUPqC@cq3-G>9-Y=BGAcYih6}CyzmT1XnnN-Ug3Dw!m%0u4KuGW6yL}7tvWtm@Z--Q%K=mYn^?vD7XE(pg`$eU=g85h2>eVbQ3;=o6R7+v4DMrt2y8utrZ%1X4*6fmu$j@JMu}sDDvlY-Sf_fkEhH*`l-ryJ_K%85GdwhCBt(X<>C}U7{sohz BcvAoX diff --git a/target/classes/com/rjconsultores/ventaboletos/blocos/bradesco/CabecalhoRemessaBradesco.class b/target/classes/com/rjconsultores/ventaboletos/blocos/bradesco/CabecalhoRemessaBradesco.class deleted file mode 100644 index 9a07a708b8fd7d69b003d65907b306fd5d098eaa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1753 zcma)*ZEq4m5XWbMf`w~~P^f~nR;vQlo>Da$OIgxL~K=?j?8oo$DfA33|1`JwR`gU;1gnT2D#=$zok6e?LB6Yapge#b1}MH@rH*O7MBP#iWn-}F`scI z(0{`n4umIL;`30rmd%~85C-`v`6E|}p77BB!n}Xa_LYa~$tSjJs{;n{O0~@(aVWbY z4ROdDum)KMYfak~$HPHKcyD>f5mbT1=C!$J(|!0bp-ya{!BO*UefsYx5IWlv3TdXB zw_d4E)fcvJ85ooeNWnRb@#kU+mH7~=bQR@~Cv7K{D+Vl+$||Z%y}~A-FSdSaD7i7o zWGtj`-GDS?FaQ;11M(rp#GfEa1hHtAg>jBx8OPJ4G`j{Eu!7+Px+uIjUHCYfl9she zM+-sfcMMo1^|Drdyg2EW9D0^`Vbe}*Mi+nlN$t_L!#1kM@xO$>7)=U4-Wc^du-LJ{ zVo8C;asZPiRypQD4@AY(+utYeBa4AX`z8 zhY0d$0SGmkK(4|yJfj`iiGnn=AUEJ<7(COFohZml1bMXpgeFZO6{u=JYEh7u7UUM( u)`8TbAZ-MBw*Z7zjX?IaAZ8Tgy%yxI9>k1-d_a(o3qWYs38Wru<^EqTlTp$D diff --git a/target/classes/com/rjconsultores/ventaboletos/blocos/bradesco/DetalheObrigatorioBradesco.class b/target/classes/com/rjconsultores/ventaboletos/blocos/bradesco/DetalheObrigatorioBradesco.class deleted file mode 100644 index 6b0540941323f95379875b7ac97572b91b0e0d71..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9498 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 VpI+D8prIR0{6Ws3zpH=$_z%q&-rWEI diff --git a/target/classes/com/rjconsultores/ventaboletos/blocos/caixa/ArquivoRemessaCaixa.class b/target/classes/com/rjconsultores/ventaboletos/blocos/caixa/ArquivoRemessaCaixa.class deleted file mode 100644 index 8ce6c1e4d8997f6513d5d66562c4baccaa28d6ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2275 zcmbVNZC4XV6n-WImm~{>01-tCVrlcDhE^#^v=*bbX(QN#@?u{nn`vCS$;RCY$NIIu z!e8Lm_Oy~x&Z);wp3@)I_Rb~{AnhS?_MDm7nZ5Tu&%Mu`{p;^P{sizozSZDkxMkRt zl(T8rRkv++1+)8J=#?-(bC z?Xpr-7*5?VtET*rp(hq!W$m~kM=k+q+?yWK5CkduWA?~Xm5h-s1q;8DlNl0 z1~8~$l;PYa-{L8YSIeo4#a%bUU3vG3A!^dJs~S!-oNj+nkd9d`->#chNjQBt!!TB` zD^y`IY3y;GlxEFdm<%F{ah3gZ45P8!Q6I!7h_^7QVS=jDKJ_r@xPU1Jtt{jcuTZf@ zV)0H7D#F`3rtuEdpVw-lT4K2TU!gi|TMW|5MNCIrMeCDxlU@)b7-tCYGioW6Vg97W zW9TnPZv1ec*IG&o@KR~Tly%EyxY?~J?g&Y063a!$EOTlv)21{AKrN$F3tpv+NzWxo zINao1m!_47+W@!F8hk-S4=ygS$Sct>g|q^I@$6^W6VnoX628~q6@HL(K@Xfz_cWn~@ diff --git a/target/classes/com/rjconsultores/ventaboletos/blocos/caixa/CabecalhoRemessaCaixa.class b/target/classes/com/rjconsultores/ventaboletos/blocos/caixa/CabecalhoRemessaCaixa.class deleted file mode 100644 index 63e7aaaa0cb38bf33f41aa4ce7ff5665bcad02f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2171 zcma)+TTc@~6vxk$OQkHd7AOb^f(oS|D<~irYoH1-X)qDP`*a!0lI@P}h3L1^L}TKE zAHWY~JZIb5?R3`g&^f!abN=UdF4NzCe*OZ0O(>@!#o*AA4b!`_r0a)HAU)xm*TM~W zO*$fwzFBjmg~sCcCvH}FO<3Hyly5~t_&%@DZW{U-UhzKN7BZZ{ve!O9sQPY>0o3#sv@f ziHC3&$B((DP8isZ`H}|$RVLlAAv}2|K8BH+)5;C?V?kfLfv5`)&rkK9uiJj$p}KJ` zJfF)d|186R!Qg@I+CiB?UvcG}L4QSFhz#_>gaNl9&mdd1U2z&VYQlTRYmT5aC6@Ob z6QTFkW`A&L`wS}8n-%jvokIFtT?EJxukCnoC6;KbxoE4 z`O{AQNoCQ145^HwO6(J+k7uz5vF_yCB%S_{!m4N*Z`8#o&h;>qSD2`G02?B(6hv`O>;M`-oWT$uhX4_1(fN--vACniUtDz zJW_-bS!``&u|bi=3Pu)ljVwk-n?-*dd0fZv%|y%44wQbt_}A!I0oTE3GYymYY%~wR z6x_i#1cVt}yPdzm>=(s3uXUb-`Id7T$x{@nwE7)pJE1etZUJ+gj1&sZQ?2lXMtKwU zJuS$B3Noz)xvvLVP(kJpWIh3e3Qiyo;32MRMV3^MMJ-4XR$9(o6wp5TkEy#|3Mz&OtGJ?EF0HMoCAkVZQyDG?$7Gz%!va5m|Bgjbt2;F`HIf(A* F^S}A{geCw0 diff --git a/target/classes/com/rjconsultores/ventaboletos/blocos/caixa/DetalheObrigatorioCaixa.class b/target/classes/com/rjconsultores/ventaboletos/blocos/caixa/DetalheObrigatorioCaixa.class deleted file mode 100644 index 641226ab9f111afab29d18e6aa660b646b020e12..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6393 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 diff --git a/target/classes/com/rjconsultores/ventaboletos/blocos/mercantil/ArquivoRemessaMercantil.class b/target/classes/com/rjconsultores/ventaboletos/blocos/mercantil/ArquivoRemessaMercantil.class deleted file mode 100644 index a4d4dfb5504fdd4dfe09c6369486a5d808faf555..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2311 zcmbVN+fo}x5IrM=7fA~U0rCZGh#kke*cORRz{pO538Z7==)kRGwUwk4n-b2?|cNX_B(+0@U;dX!+pc4 zq}(mTvAvol9ang%ZDC7ZbSxnqFIBW0gQkjb4Q@-*N-eriYUZ|+7Zu@od})7QgP-Bu z*ElIs?QMM1$H@AG9y$9fEL)HEGm(=b91-xT3dN9~-e zG>z&Q!mx&MhRH3y%~KY)%c+dTJukyOdG~umRHfu4$KV*G#J<+yR_s zI8|^eRCzIN>~o%$X4P4k4kC&PRgFo8@mTJt58@TXIZSJqqH1+c8yIxFh4TzrS;%Ex zq2i6j;@uupgtv8E#5<%1Uabnd#Bk-mLUq};7^Ibpn2xxLHXxlQy&%Rg!4PgUYN?iC z{Qx+fgd|mom7;5wIklbXP#OcE7SgFTuTjQi z!zD>N+~izS&6hJhnbt5%;%p?kvAO8F{0DUs#B~HT%riWAQ;l`wX{#)R1>Dp?4KdV- zslw^F1?pSBXFjFEQu}6u_z1T(EHaFAbdV)Ym4&M#gFD1)n_D%p@-0I&mOUti)@SJu z?%`t%_o+s`k?4l5Ba2TMCa8bu;t;M=5Kn5tHcW2iMVXMhRI2DfdF=;}uPL@U9ZOgy zN>te+l3yuq2}7pik4UJ^3NbA7sHJY8l+!SEM&2p$s%UF-j#{KQ>W2)|N$z43~VZ96U-2Y%cj{%BznlPUs#Aj)BjxbGO9@9uu zlGkzJ0RD|O{tc|)VGDmh`XVt!;8WyjR0Mvcl&FNyCJ0pF6$baPP6RfeLsJ_sQBact ze2~MV28Y5=WZ2B;P@}|`2vrO-bl-QXH`_v@@<+MNYheGVm^8yjgGNeZ_>xY2`08KJ C0DP$c diff --git a/target/classes/com/rjconsultores/ventaboletos/blocos/mercantil/CabecalhoRemessaMercantil.class b/target/classes/com/rjconsultores/ventaboletos/blocos/mercantil/CabecalhoRemessaMercantil.class deleted file mode 100644 index 183aef6a3c26d94caa9f8508241d17cfaff27b4a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2211 zcma)+ZBx@g5XUz>RZ4iUKtT`?R47G=Rs{ttA_~J;VMZL@U&BpFC(U7!^0{^XS9J`XII9SGGHip^zy!~Weu#g@32y8Ra_HR;>?^(!EdCF^I;^K^dZAuI`%GrSNM6hEoJWi1gSqa;V!AqYSrV>$)L)C9PxH7B&Qs5l6hsq zAY={5piIj!u0h9+aH!Aw$qPl!Z%oL<4edHKAbTd7zReFE8pnC{cD6762HiwGz9m|0GDEi}Vz;yzjEZhy;`-{I|^1C#f!gWBt z%)m7MH(Lg94`%QQ3kmme?RNeFbKex_oYr{(9z@P%B=4b6#kHR>*9o1KZ}XVrlvK#K ztfKIQMtKtTq84OH1)0%;Jkoq6fKaCiWDTBZK-N`|q87x0r#g^z6=VZJtP~I$H3E621u3Z@B`wGcJxECf*+h`7 z6cCzq0(l9WxT>w$QbD%0Ag^INa_(x)mI_ivki8TTx|{^EqaD^=737^3q^uv-T@~aI RL5@;D=xaeBd-9&X{SU8Yj4VV>W701sk>@MsMUkfZ>DoSFzYqEhs8XvJ=)W$9gEUsx{&E7kE8NBz-GI#C@ z6&MzjUlkP=6_%Nnl_Ulz79M5kl6*T$sDE*tq3e#W!+( zvMTD9Zv$~cfY|P~yD@;M5!Yb8VovU&w$Dns-WtcxCJ~JKfFx!4>zZ4gM7s?=D+xd2 z?93o8>~=d;t+rE6CS$><#z|*0f-r{>!26}bO+vTJjA8s;8AP)Z+ zrBb*arLH@BmKiiPuNWht4Y2y=ys+vF%O|c*b_lK7j_MkHFi3i&NQzP zj4{UgAXepWF_9@d|B@+oI&OP*4D+5E77W~hVRz03k(?T^_1YV?F3Z#W#dv< zht^80DNJwHN+K}=WtEp$ad=6_&aTMiVJ*nqOt20NI(N8;<(6}M!3dG6TI8f1e~CdO z8XEhM#%*rguAvchzDe_GK@BaW#nrS3*;lr-Oj<(kHmDjS%-THz2zo^j?|9;C?hWjkj*UoL-$4zi zrVkl(W?`PycDus$d$WUsuIJnFyecP1ze$%+3=>$w7i|0RJ08PnDcyKWHFH}p$01=- zEt#-E2sN9@#nH=|aGuVD`(PQ!TQ<8*nly&p&V<_&>0*_!x55t3#)Bq}W#h4ITzG`> zLbqMt|JlMfX&hTjf<>7EvJ-Ztm0%ncOYfK)N=gN%1lD6&wcu2f?oVJet&r4((^DuV z47s=K8az$-38@G=s-d!@6M=eWWXNz*Z{b1}z?bYdb*~z$5>@NpGPu4VnT1`5j9dhTA<)@Cr_;X}}NCzP#JW zFFw^0tA3EF_M0@DCcqR_QKsP{ELif(f{iNQ!LYNtO*)GcCfKO*j|`d)unxJuVY|a7 zy_M~z10q7rAQL{q)@3eR{luiR*~)}f{((U}|Gg0%51ZX<(i}G9Oo-A8yae$mZ;sf@ zeI_+?y<{&@dO?hedK`o151&S1g)C}~_=UeV>0Ek85Ze-$3x>@a!6Q!~Z#mtiO&-7K zcP71^N5)%@_Bhxi+VXuStN-4lw{bXmJ1IN~rVH0W6UvHzH0hjhy7CXuvw@-w=M`4@ zlS$(_8LQcsI>T@o3Bnt;ovim4ljbraSB%o9!FzkdzLb^!YT}RyWlod)12nJj+^QOD zR{Fb14Gf2tHg`ABXj2_GYy88c#!w@;8)$T>R-85dWl~e95!|i8-G6g$vKG5?ubV|L zz0Bbw3zf4tG81C(#B|1yxct7H9=GXE-faaC4$0x(OxG7$}KyuO#B9BwAc0 z(cmhH3acc_qmrn4N}_Hli7KNcDu|LO5lW%}D2bj|No?LqqVrV}eXo+}dX>Z$rzAEN zC9xkUiS?}{qO2rhsU#w%Bv!JL$R#C_DoSFhDv8CWBvMmJ%)gSDS|zbIAiEJY92M~Q zow&Lj@iHLiHr+|*HI2B7-nE~W=45Nr9n`*`Is>sh5Z!_3*{fWx!rxgm3V&;8B+d+c zT9|~|IRgiPS*T)-X#W{!H8jlNMbt}caAnX1)R%);0*DISt7ry-)39S#R zxXjDB8HKo5_fVzo$u9CVD(@*yHtaaA#TWy+u~TGRz*t94&bTBV1A07Ch(|gi9-R6d zkM$zRWje?P5hNvpT&9C$0WuT;!fTH~(jthfgKQE(Hpn2Z4zd{_TOvSs@iT}gf@E}% zts+QP2Fd6k+W@jX0)%%T1{o4lb*T<=l?ZaVyk?f_AlCup(-9yWb8BXk2-2#9><~dd zEQ7S_AUgqaeFO;ayBv{^&`0rCUp1R`kX<6k74)&3amlLLtb^cP20)#6MgKQHcvRwzcRRsBz9Fgrh$ZY`G69K}dk3p`YtMON# znrn2By&}kUNWs9kWNNO_LG}aWKm^EVP%|0iv*Oh3&_NE0AfK0~W`_=P2q1?eK)Cob z$QQ(^*{OpZ5kbBvPt8sp`M1IUWJR?GJ-| zRRr0sgFGODd`$+~t%E!SkcT5cxc_31uZzjrse?Q!g4`%4Yo`wKI6$6=0O1CZLB1j8 z$W1!PQzFRCa*o`jgFFL}XCpwk17(m~#E2}{L7o>uz9mOwxeoFoKwgRf;TD)dzAb`u z>maX)Ah*gO-8#r?0C_zEgnMuX`Hl$Eql3I5f_zs7De8rTj`e>4c{2ip4*?AFJ-Q8l z^__K(24WZ@$nCT@XI!$g?$IJ*R8pl;6#>Gh5C*w}ejtGC(?LdyAP4A931puRG6o=H zBS82V#2|Nx`^Z5ZWP%9tLwO%LsDn%fNPPqdpTijBM<#L$W!vp`lJrB79f{K zfbfSd2Klp?BTwrfmI(5UoFh-`AT~e-B0%^{6oWh~f;^{#I3mdNGRSi}ND3h72oU}h z#vp$abL0gbWP=FuqMRcy=pb2u3`KzOH$Db=Nd$RW2iYWoyds0Vtb=R@$d(8Y{>aE6 z{}e%9)j_t3Ag{?Fuj(M%0J1#-guikc<6HQDsms2`%~pu~QSSh~t|8$Oe_iD7hX(ye H{d(j7f@!Wn diff --git a/target/classes/com/rjconsultores/ventaboletos/blocos/santander/ArquivoRemessaSantander.class b/target/classes/com/rjconsultores/ventaboletos/blocos/santander/ArquivoRemessaSantander.class deleted file mode 100644 index 5595206d53b2eaa3f40c2dacfe81b3bdfa0e38c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2311 zcmbVNZBrXn6n<_9T?h+=0O<=2dY+n_B%Nvl%&Vr&YPATRaxCb_1In=IYkFxs#F zivEIr)zN~;jEa_EkyX)D5d_`R@y~#o{Xh!Fi{kLTE#$iFTY4=*?JVwNNSLl)Ef*wi1YBoV>JG zq-*K-`ex97Y$_7pgoIdy>>$_IDc&lRBENTbN z3Y^J0C01UI=Jz>|`qrj1I~qb1L%JHn0)w&4aUbLr!W$ShFv4mboK`WIxPUPMqp17^ zSz_@9V)14VI>MVK#_<;QAU8Kvxgc=)zd|+H))}Oyr?!q0_*O!2Q?NSTml6%DOO%8wS`A zJqIy$I1@L)z72ZTQx=x(n-1Ya+%hmH(08DNG&NOJu8DcvCa*1NSJdJ+0?}CduoUW_ zrMhqz9~rpE8ns5E8M=uyJ{A~a|MKEcu9Ha|p9nugS7KrZk>?oM!@&9;qU(_}J2)2!Z{z$nE^g!P9VGtHG1{szqO=CW^wdY+ z5qj;%1O}@yqcy+vn2f-aON@G%7C{7hhq%5{1+Q`ZT*tAN_yvCU$W@fYm0<)Bl5c3>}PjmYB~G@p-OBi0J}mFoqN^ zvZ&*S@UJ!SuVE1n>-gKz7Kv#BpJ0ijCh!AOq7y!qAgJt1bnju61lFI!&>Jt1)sqH% zn8TwghwP6utYx&PTH-iSB{0d19aL|sjzs5=xm_|K{?RcxBf!C+5(U2CX#ijT3l$Q4 A!2kdN diff --git a/target/classes/com/rjconsultores/ventaboletos/blocos/santander/CabecalhoRemessaSantander.class b/target/classes/com/rjconsultores/ventaboletos/blocos/santander/CabecalhoRemessaSantander.class deleted file mode 100644 index 94a92b5cfccd32fd19c830b589a1f42a8ce7cad2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2185 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 diff --git a/target/classes/com/rjconsultores/ventaboletos/blocos/sicoob/CabecalhoRemessaSicoob.class b/target/classes/com/rjconsultores/ventaboletos/blocos/sicoob/CabecalhoRemessaSicoob.class deleted file mode 100644 index 6278399c249aad9ef4ea7da8abd769baa187ec50..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4057 zcmb`JU31$+6o!wIG^UP{hNMYLLP(*MItf&T(hr)FemEaZYmyR|w6xGxR<@3Utqrmq znBf9uxPX~nz)yi07-qQO2k@g9-m{ivdA(vfOfRC7)xPKKqqFDi`tN`K{ELX*BR@xd z78N~NcfvhS290JdlA&lg2O@~vimZu9Hk?XLdN2*&ld|Fz-HPzs+OFIZbmrfZJ8tBzg~0G!380ooGxBTBvKtBLj|I)T2xVD(*%X22yS4Z;EE-RRUk@Tt6(RJ; zd-YYn5rv38RFjb?i|_y$uqfy4KP?9Pdlu#4Qfv=~cpw8L)Q5uC#y=K!COC_%aIBQd$hTwn*-45e1Mn}&OQw)(+uoLYyRL8YTmY2C;lTE{LXV5J7$@GV} zy?N1Tx+BC|#JakDT z4Y#OLvNfAt=It16aU@E$bDgf^h_`JTOLnd^1>aWGxD8plY14QrYSN&rTuvI6m1Ucb zww0Y393(Mmx^-E9&!!31kH@^}`IZ-=bTvGCJ+x`E?WNBr{Bduv{;^HRIC*halG9=a zRLL3J)8$AJs_8`?8O*U`({Xymq8Z-A|2U{hg%`Fg7jM2So1rIGeLjY!lZCquk28Fa z(CdKg$KN3oWgj08xDxxg!IeduDvLf+78S273RqbbsIsU)Wl>(rqIQ%;WhjdsR~CDy zEcQlO*EN;^Hq!-SPS;h{2w&)tCG#)IjCOd=mh?^TLQqpfssWg=}kPloqwZK zzhJTt(c8|`M(5L1h@F?9?ql`*!tZpdvvgj)okfmLs0foSRlGb$=e#lXoDpPR2RUg3 zdD{#!uY;ThNFf7+H;zHxp)+{u8F6%w1tZA2_)*ky?#hUxgE#;=n*qX=!yxDAeFMmO z9ps!5Al$qRa@`1WLkGES1X(tN+|WTb0dgk;gij9!Suu9ast!^%g4{HB z&8iM^4;ABkh^A(EgeJxWIqFhZx9Cg#0avjgEWjF_st;NI>=W5`8orH zuP_Gr)ClrG2l>Vb@|hXrfe!L5K)%ZW;X9N;J~y`SBOT;>BghkT`##b^egMdi86bR# pGl)wSJoUTA(?OmYK?FUGoxAQDPY3x4AU|h-@UI94sjB;a_g`hnwIBch diff --git a/target/classes/com/rjconsultores/ventaboletos/blocos/sicoob/DetalheObrigatorioDadosPagadorSicoob.class b/target/classes/com/rjconsultores/ventaboletos/blocos/sicoob/DetalheObrigatorioDadosPagadorSicoob.class deleted file mode 100644 index 07964733f909b7790041d1a6b518156f94ba1b39..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4536 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 J+05XT{{s*u3XlK* diff --git a/target/classes/com/rjconsultores/ventaboletos/blocos/sicoob/RodapeRemessaLoteSicoob.class b/target/classes/com/rjconsultores/ventaboletos/blocos/sicoob/RodapeRemessaLoteSicoob.class deleted file mode 100644 index 980af4702a8f1b3087ed5c1788414d0da9a0edeb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1169 zcmbVKU279T6g`uqiA`f-Q!Rn01vR%kJHod(S=Ro|zv%zkLVr7!N8a2%H2u^2~Xl<75(AZ7A`k6kF-* zkgQHTKhyz-LUCC;tH#SP7j7 zGE>$eu+}@5Q|W~=9(%81OJg$61nN^6YSX8&O03a|K>M;RlJ?Adp~fc^s7QufS$?i! zWse1l-NT_k>7^b~6-6{^SV2vo(Ni(Koa*l5= zT%h?KeB_QE`%F{hcL@c4cp$#&1;@&<%=>(d{JqI5kE7tYbo3SVPifh$SrHhv%KxsE z3(&+GM}gaD@plpY1?`WVEMN|<=YltLz!&Ib!OdLoHtx)rkJG_;n4^cE(V6S6@;=aJ zwd-kzcDgRlw7cP*8E)hq?EW#u1@^K+I=Mm)a5qoLURKBs3)%gP5O*3*$i39J`@aC# CcmJ0F diff --git a/target/classes/com/rjconsultores/ventaboletos/blocos/sicoob/RodapeRemessaSicoob.class b/target/classes/com/rjconsultores/ventaboletos/blocos/sicoob/RodapeRemessaSicoob.class deleted file mode 100644 index 39617a2a8785572e04cb494a52643f1de734e55d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1803 zcmb`GZEq4m5Xb)u6bhW6rKOLy_Ca~Hr`9({)2K}vn-HVL^!))Fyyjr--NEP5L}TI$ zKY$;~ICBRAmnCVmA?)n#{b%+!GrPZj|M&^u2_B~q6L{HHJ=48xtG+jIeC0~d9Lm0L zwUi@$<(Vx^Q>mDmqJ3|+4Z8#xWBVHuBB2)3LO1|yFk`a zzHCZ&NE`x%#-%m1OvmbX&9lBQyV89wuz2Nn8YJ^bPSaQJ)xaJqTBT`qq9{?Cue#G| zu{=yo;Iwf)GF^Elafl=N!tUGtu|T|Bxe!R4sE*7ajwJ&*@Dj4=KrV1(MR53JlbkY%M2D#s1lAl=N}nbcO`4UykSml&XIz`!j^ zngHgWcvild1IOhGvI*}oGdwhq8kcM8lR&1a25wuP+I&COX7IwU9`X~wF2#t`e}R56 z4n@yB#yt!ybt14-=fG0BWV58Fi%8>bTA5@8*@fzN-1!p73N$8z%_Np-ZiE7?phzov zLs+A6*7+;eKS!MNTIWq{jhv5(G{#3&Yu~UwIXV;U7AT|TAVM)zjgDtD&X1|@YC*Q6 zAgfxCdwP)VD99#(Y|R1T0yD_27Gy69vZDn#(1YwnLG}scU=9d(m_hF20gchtl%gOd zEl35`k@HMzN>Pv+fz;=K@D*c_nzkbKD2S;AIn-CA9tAlfkf(D%_$@Gq8QjW8e*mAi BYPbLZ diff --git a/target/classes/com/rjconsultores/ventaboletos/enuns/AceiteBB.class b/target/classes/com/rjconsultores/ventaboletos/enuns/AceiteBB.class deleted file mode 100644 index f6bdec0c3505083521494f2306896a1ccf8eeef4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1351 zcmb7DTTc^F5dKcL+isVIV#O*quc+;ES*YTz4WTqO5=(g~G^swA?Yh<_+g-C468@Ef z2BMMp?2j_eS&BAPAKHhWGjnFX`M#OipTEAI0w~~F5;2BF!|iI`p5Z!vXa}xm`r5wf z1bW-G&A|0F(+M44D;uU2m>U~O#2Lo+^nG2kb*H0Mov_Q0C|9bRJ5>g)HWXTsL9Um# z-<+q5`??*P44K;B3XQem!(4sbtueV+CsrLN4EAh*#XV zrUX&KB?eZO!Ejl@1g?;xQZF)>8|1P%=*l-!lzml!h=hcsgegL-bKi`DBoh2~U4e`d zhIGwx%zD^uo8FGzwj;f+q1#Q}v$!2OWeB*<$=qSc{)@v|#k&e5q)1Be-trlwju|x1 zdN`5G57H!IQHv?GkjoF-LKzEKN@9^=yl*}SeqeSLXjo=Q>7J(_819Dy2DP8{c6-k> zf?|K?&Rv^)6v>Fz_B)13e_C(&`5|Y`oA*$`3RW3b`|&Ea?)$~TzVx?>uQXrGh8uc@ z`P||I8a?0tB`%zFHmr`L2cbuAhlNK`L$H*KZ8=2SQnaRkU7QfT8aENT96+gsu;|Q~# zC@Y2=^gk9=7LlfU*Xe#Udf~71A@u6JAb*_viaI}Yj9cpB7tCEmkSISz9OVchOZgO! zdyxu$<2nSwyN_HCRil$pl&F5j+{dUaCzObs=?F$S3+Tb5kcUbhF8vWn=Pk<~Vz%{C zP)}PWu5wG5KEeFLMKtzDR*JTw(8ExPBqtzen0kT-KfwN<7o&>2DUb0aI-mXqem*af diff --git a/target/classes/com/rjconsultores/ventaboletos/enuns/BancoLayout.class b/target/classes/com/rjconsultores/ventaboletos/enuns/BancoLayout.class deleted file mode 100644 index 4f6c5831d2614832e62ac2fade19911024c1df4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3267 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 diff --git a/target/classes/com/rjconsultores/ventaboletos/enuns/CarteiraSicoob.class b/target/classes/com/rjconsultores/ventaboletos/enuns/CarteiraSicoob.class deleted file mode 100644 index 455e117f4827e3aca0b4144b836629a408bc3167..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2368 zcmbVMT~``c6y2Av8E{m@kHkb1nx+xZgleiyf?5fpodh9u)RrWz8E{I*;7kgGYx&-_ z`WyO~r@p47NnP!#tIz!h{R#aOP0zhx8Pq3VxZFMG?0e2WAAkM(+Yx{nypZ5wxLvmQ zlC|BkZPgo9$F3RmP_%GkVQ2%$ly5W!o-E@Gic@Ks#}$0 z)@tlA3}$oLjrBra&7`;2v#Y8`7lzr~IUYzc3}@1t8MTm4FQ>OV#2hc&Ur*=h4K2Io zdS`Gw{YWL-Ou>x~xL8^S#IT&zGKKucNoJ3^LrLU1X{nZDRE!!0f1WQGCDRljBK%N+9|0MXj2m6mjCP{nb}i!=fx4Wr8=5|3DA5)oH z#q3IhTg@m4a;uPxS<+oml*Q z9naY|6sUN>8+=Q_m-vc!jqe(Im3W8UVHZlfM%hWlA2TqUp;vSC@{2Y7r4U@gQ-*M7 zG+H`H7zkk-x`b!lUk~bzv8SMfGDA?W)%1h1{qlezamIu0hHuB9QvG;|4L*7_aISb0t|VWUv^7GS-Kdp~6_dBoVE2B##gn1vG_zvqPNPN^t1eQ`Fn_KJE~b{I zNp>&o|KQRnA5ef!8bEQhdvU}gn;6Hi9-niO$q2$K;}?VK+^)cEro^W zCjy%j*c~}6T<;1j6%PDCuX>xfrWJinOlU=a6H{6-(8RP>l$w~+igFVv?F|-w7O8wj zzgH*)kQjp$`VIPjmlDd+9(hK4!XdGige4b%R%AQPr-b_nk0d53xpd;@TP!C=eQ&YS z;f=sY77DTU(kAI6vHAs9R1_eB&)ZT(gs{9Q5xxn?i>4M2+Ak&PWc1CS_yx5m6I z=zsu+1)KmKM zO}>Mcc!$j&;h%i{y@!pBzk2@<;}3X6bR)v?3MCZ9IEi+ZM4ljVm&js-Xo-}PrY<6j zUKB+(kLfl9?|TCL5}trD310&P9x4UxoOV!i#LT4{X=0)H(3?0a&hwhDc`qO0o2ip2 qGVvmRFG%BhoLGV);F5+SEOCgPKOrJ_>)P@2phA`&JclXH-TwfrY6m|6 diff --git a/target/classes/com/rjconsultores/ventaboletos/enuns/MotivoOcorrenciaBradesco.class b/target/classes/com/rjconsultores/ventaboletos/enuns/MotivoOcorrenciaBradesco.class deleted file mode 100644 index 2975a98705c7b222408e312317b1f86202f2c758..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28929 zcmbt+2YeO9_WzmPnVThfk>|+5Q2g<38L8Wl3c>YBsbn92-th?y^9Td z859w_vG?99_TGE@pEEOivw`q?@Bex4^WOV1-#usgoH=u5a-aNX{e1v1G_gwoI1F~E z%+{9XmR4r#8k%Yvv$=Fb>9TZPV`@>hCf%5AC{5Qj)ispP%r<70WoK7rbGdX~WhON_ zm#RuPRAvi+GbmY_T9zuUN!3-Cme)1aGAJysYb?vwEnc|&_6&BM@jsO?E}q?xcw%@g zF=RwMF)EfA8rK;b*BKfY8#X$oGi*#OF??7&5ie)>$oQ9dZo}ibjlfRG_sEENZX@E= z85z%DWIThB@#>6<=Qb+dxKTr6<&27#Gb&!|QSn-jZk33aGsc!PH@!5yaC@7zN!YAS z!ZyJqY&j-j+hY>8Jtkqx(TO4Pa)!jS9%Ace#NrtYjq5}Mti^`LD;kZq`4Z0{8g2b$ zc)SV2<4uSL*oej36AiHb5)H6UjEpy7WIVT#@%BUmY;@us5)H8a5)H6P#2Xh4u=x^i zf*$P|nFE?KRVlp!3!{WyCHVw(NR${(Sx-)7mQQMGG&)g2j}Ij#r|Me1P+|xb8hz1O z=M&V@e1iHdO6ZZJLdzCTZmAn3bOvSRbEct%S*W|0bg*>`w~xxvi6}Rnpe96O`HIq) ze03->oTf`8mTxJ285#dFDxURd8o4RyMe|a*jG6xV1PyRLL3PU~TIo<9wF@fo9@y4mw0Y^E#$vYMe~VPS<^&{zUaQrC&*Id6Y&}hjn_agnY>uM21DcR(WWym z7O%n3cnyY8_eNsF;x!l+ufec*4Ti;gbXdFw!{Rj<7ViVSob%SSiA<>isiq=YoPb6{FitQ^qv)c(IzdQh}S^xS@|#V zQ5Y4kfi`J*v3L#iqRoGa*I-n<4@Spl;^=q{M#uYLbi4+m<27hy5A?1X6*@XT3ZvsS z7#**H-cKW)G4UFViPvCEyar?9H5e0b_Lz8~W8#I5!9t6oa)yut7E58Vu@sgYOW`z& zrLeGAib^BrZ%(Ru;V3FCN{pe&IjN>`N~$WmaC>T1K0$TQCt8V72GJL7sPhSGVm?8I z<`Z!pZKR?v+Aif2ah;*9bZ9IhF>ROfiFmEGUCMuA&|0SNaHaO82ZDaC@ zc;mFah`#8xpHIZg(JMUvCEgyrsG~1>sz(Vu)$@sX$Lq-%ebG~JT3th<-bkqr@(G%c z`2mrk+P}*u;&s#WApfOR1~eqm z7d_hfM7*VX)Cw^Z*n`7iOT_1Pf$qDMQQh-a;bKK~`&2YM69e~I^jo)pm+y>H|b zG!vtQ9{MPu?NUBLQ!Gkowi82dgCi=GIg282@KqR{pT~_ zW!b8<2f|}ru@3rV+I&47O_Qn0bfz&?2#j@?tOwf~>pI@5_UpH4Wv6XQ^`GAkwYQNV zAmKrQ$9gm9Qr5htDpQ?JR%Mgu{Z?j^nYv}ot7LIDYT9_!CwSWLJ!yDU?S zC+cjnuKCJrvOb-w%`~D`vObl=$|fsQxyE!Rm!e#@li*PDo*~1J;Z(7$KpMGAQyG&iU@;4fV~}Rc6xE=6TIGH8$03)atPk zib!61YzOQjQ(!6?Wts0H-MAekND?mg*klGh=cj72xzfhea$U!zO}T7CvNnrd(yCvl zNGK+y5|8bKJu)YkT4{T(K9_AwH#BBTle5y*DGX1fnpaZ?w^E-bp@h`idu#@SNpsRw z`JUgLep{oIO=2%o^Qn_&NoY@b`X1YrLBCj)7U78nTaSIdEL+pmMs+GA_@o+m45x7C zS=n0Mx45n1{+VlC^*tm6B-_Dbd*NWt%hYE}F}gCCMl@5`P?^h^0&r|L(buzK9|;{O zgV1C9G3ZrZSC!7Cn^)@@9BJsrX6hDabG29lYTY6UA!%*lu{48XJdq`*#V2~Tge~ZM zM~^LK(3`&J(u*-?oLM-l%+kRJQWi3I^S#G+(zU zgNriN)R?VpUWMxm|6QG~tFrxYkc6#BytBs+WiTWX*ZD?r$wA3#*@=^>BX7KO!F#S^Tzx{8Ik=-<8roTQ>G_M=t`M(^Vlg2=Kp_Wik1xf zFH=uO1=nyDjvjUgt%GD0cJts^A5%f6N$5reb@$kr3`TFRpu7!DW1eZuxhfOQGt78y zZ_4Uy3Ee5H9v(Xnr`6`NYQqvnQ!7Q`&PuE=Wp{yu9+chI9=n*qyv=1tYmsbXUGw_d zv>Bj{R%E?h(N$@jWH>WgW-=9Xsf4Ymn54&6F*rIJ|8k7D=9+J>qp3J$$|Rg!RyLV^Eb2OKFRqoa4Jq~X*bNLO zl-H&*HPNgxQ!ZV%EJIb?aQIn~8O4HY_0-sC1yU_;lF*Yf?B%gr(RDBxM*XRmUt1aC zjA+>z8`8Dd3)N^sa=MO6LNCg)x5w^a&?i5!sIQC^PSwU#%@VS#u}%F>3B5_LkH^-d zmC5U+l3B8F*58O!^bER3LLXAu)?@cG7?D>=w^Gr~h&+K*Tb{s!61Js$`g-i)c$M48 z2RDW0>vA}0sP`U~(3kZ3dF%-s!%5YqlBGD(jj7TpnQH3sLCJ%s#oPImgnp#d-($}* z*m733p`m4RN6pjOKQEy_Ne=MXOPfemHPzRkn_~8nS0oG|$?ZJ$Iyz|R%4jbq-@&@K z-juK%2@UkvJ7{F5(RPtRi)FWRT=RKX0w>U-n(P5hIJsNr@t%Z%l*b^CZ6Le8snZj+ zKo|Lugh3=e*khkE*mi!4Z-kp5+8A6n+Q+~NmBkSdEcMt|=<8_rWwVaa zHxf!oczch1{~sJFU8^4@Y)|q-JoXENzIn&%KTnk3Bn%lBeNz90|inemEtBgyEDJ;W-}e{L$1(wz12g!C6KdIH?s% z7(r?yJ*SvKkI3g~wW8x5h|^xeNKzQ(IUR6P7{}*7TH1WQ$@g)#kT8n!80|S*ZtVMP zzU0mlMw8YU%A%WuF_akVIe3K7j!p(+)74EisT{5#uSWSGP}ehA9^Vo@VqhB9gW9_ailfgbMW}kentk*2snt#E49N))xo2|c#_z`bMR=e z%`Dp?(S9B|o9X4)@7C#Z@I0^s=}e#uhDn$}i5)31Qo@dum`I5+5++h&lIM(Pu*>Fl zy|%`=W#h*wWId`$Eglu+K0(4H%6&2=CP|n~i89Zb!eIF3iuwHInx+S z*<3bdcn67|E$x|2=6)@Fv@L1eAnh!W5(cPmhF;lk$&w_eN>?UC<$?oJid!VV^M7DBC8m%F9 z>YfsIBFUXSXCDT^9P~ZRMm;B$!vk>*$t;wxGs#TzoJ9<_n43atY+XY1-W!{24^&B* zMq<-Fr+TAf^(1|)ro1u|rjyVvo>PMsmu^;4$+B#1ikxSh>f~4AX+4^SbrNqpd;c+T|dRp|8LrX3yYX$Pb*3l)8vggr@bFVDH1 z!Pscq(_OxZW^ZZy#E#x-a$dS7os1qiwB8ffO4y4s+uL*QLI+}IKD?u|i|VAUOKTf{ zw}ib(aUajQkHNTT@U0iAwe!1ht9`%C!FfQ!K9t+Op3}@=>!@7n3)NXyZJs>;9yKg`~Tm=RAY{NsDen6K?Z* z^C>OI_0~ETLw*08g#Ab}}NRKU!2$H5dYn9PD^-kW~JXkRg?&p7Sr7 zc3TSCq)I$5Qgkh~2t#dpa-q1(BrGNI{XLhrG^7&4qv;wu1#y10)=5a%pLA+Gw;ejH zn-&o*0xF=O7zMIjQnypJGr#7#u%+Mb1_Lq<&jRwyh*s=toCXqKY zI5{Va^SnA;OY(yyG?09w=i=2xw5T&WT%ZRV$Ifaupph`aJY6^RB^ybz$#X}NZ_>t; zpFCw2l`&dE6G<-f+;JEzZA)^V?zfrv`Ye;2+JvEP6O49ukg$wY5A@uL*a6epu9uzp zx>}PZ97r0=J+~akbTb+>4Yc@95|)$r3eTP1G83cz(z9hwsv12=YRC);D@b^y=gw}K z>SzZ_>#OnDL|$QaQ>JoB^Yyrg;+8@>yGmF|ItO{~JUsfe)p!inq^g@zIURp;=Sw(< z6b|;>1)Gkbu2DtPqDu6vw2$cSCE;L_Kg4tQZ5hE(L_qPw>9R{#&}Xu$4fYdw2t-MlQyq~7J4!Ed~{lL zPmypeX&vXer*FQ??N(>}0~g)O<4EUt&qcQ~+Nq<-6xFZ36sJ=DdV^|+?&k5NcY^1l zySce`Ek++1+c}@&wX4(R0zcjJ%PJORLzeVqWRo@_D6YljhEAK5OnYJvq?H zJdt!y^4zP)nQyx%QMa_Bd?u>TY^{Ecgp)}9WY4{B(+Z<^k$2|fThR>?PA08WJojci zL6y-x9PYTfUy|rQHR*$vd#i*~NbFS4U4vWDWIb`|OkwAD%fZOKL&B*fdYb31YcUTd zL(;%O#do+E;iX_Y_4IlPr;)e%MD(|%<%a>CSxk0bzCnTInN@scQ z(=EGfK2kR)g{LVrYgCD6C7eZ~XM64o=q%fjLX%pTuEe=u1aYUV&7k9+#*K4{iNw1v zNjRGn&+*(>DUOMKL2EEuhkZ`xv%E6i49%T0xqk(f_PT^~Nah}H zKQ$&aX*liqxlGLxyP`goa6ZXi;JII5eNYygZEs?+2@ToBjR&T%Ta$Xu(LF4c@RfuM zNb5q+{T7?Pc`fV{db6!N`g;i%lF~(<`x7>zmD0>iC0eY|_Dy;-#c>na44t*t*tOgx$a~E=wK5F_L&0Nnh@9j3jP3H?1eWiF~27wH+jh zA;il`a+Sw1gqXxPFL9R_&0ZD8sPGP?I*VpqpN=?23|EoL6&}ZkVdP)uCpG3z%Ml~Q zIUK@8)QcR$g;$Wul^*ZbhRV=~u20ey5KVJZ=^^1tQn||G+q9S-TyHtN^E55l=o*K# zdP%s7w66B}wzwHi${jE`3S%|kohw~nrE^K#of@f zM{9!NOKMGvGr$K)xQ66cdmP`34YsS)o&f105@Yu@bQ^1rThlD*F3W3_C{E$2*X0abLWaiI8k3D=SA^&a1m!FIM{ zxIL0FBFksHEFW=9#b*Hq8?Ptr8$6D|#%PO)j&6~pxuQ(Aj#~1m5^f;f8$FH@#?H26 z8#cr4i?;~FhBuPzO&-UvVb^l|pdvr;WZ#l_rL7%FjxoTSNcv`vV+^pM0>3qByUH=* zcQbvt#p4+9>s3Y3Xb#zQT@%TH7ED1l~zv>pYHuz{pJC zoWj=V9n*#sHnzSmrJ;pdsV^{B>p7nV({%rN<2l0 zwWBPIOug~5gy$)b7d-wOuKp>}J*#%u@p=z8Zau0vXXtecsr(_~1yXs@ z**p~c%?g&vL;T6i|RcxXNB)m$A*C>Im*K3q`-4p0~jhz=optClt zUuv%I^hOf}ja$F@!?|T+{Q{k`*D13%Jb_MGzi5m%6YI}kUQj*IIeUXt-=xGg65gc5 zTb}4mmn`Y}R`1}%wi4c=?{9meKUJEZ=S7#YI81H72WokrmM@rg6|tR!w<)uCD1l+Q zcPR0$ConA6^6nI$R*|>gdTcNf_bv&)=Lw3$nZ>rTB&{@ok+}Cr@_kB-lkh$zKJdf@ z+;F2cI$giQjMh$kp^AwTJ|K+^o+!(&YVs~NdN-iUDwnWzh^6;3F;BwBB>oBY!|oD3p~R<@Ku_vZN_<9%eI$HFiO(s4(X!7e@dYI+C451N zFDbED!k3iziW2Dkd_{?`DN!TgYf5}W2@Gd_Ly2!Gk(2N(CBCCXlZ5Xm@x3ROW54DX zSG3vZCkhF#l<++X|3C@!Sbm_ykCZrE!jF{ri4quT`iT-hdjca(gQGPNw;s_Y7X>kB z2wTr83_ATx8T>-Ioh0EGO8iQRQziULiQhbN2Hh>TZJP!qr{}Fx%M^(oA5%VON%)QO z`JEEzi~LTBKPYj5gg+?przb9EFfvv`%s#a$AjZdwxKzTQl+j<5>naI}rdyl9L$uiY78S^zqXWN=L3mX)DV_1>7j%Uo3#( z+iWIoK?_O=<_Yvo@~>ec7ea3Z@z*focF7niIG#W^t(G38U@3A~x?J}-(D;+xQh>MXuX zO*ITO0Zdc*uO%xX`SzZ`d&wSc%SRVMRM8(KYflQkC-72o5{CWt%^#gPVvmdQMf^-$ zm}I_jT=bLhffP+ytl#F?D2(m}%JWyre9ANM1m0SX+9=D&tYc@G)6M^p(_fMWkf1#O zk!%arQ9rDzOV4Vm#nGRaT2zz9*w+j?!_LPDGNm zPzQ#$jJ$D4rU4gsb-K~~N&=o9`}N=Sk4o@&5>RADYEinz$l+h8B#LB0Vq1aN;ig!a zC`tGQiS`WqjsK)ZCW1r&v3Xer zWB$8Q-n9SmO1NERG*uah8d@C;oLbDZxS}ytx&O>myv zJJ!m?q{L**E0xQoR#ax|SK#S4-oLiK@jvy7sA=@aWEFAYX!!oSMs0TLk{Kzdxiu9{ zcszd{-D-2Kw9Iq*9Tn`H!isEDt};C}L#C?x=876jdf57kOm!W_EKqjW*i53l#{Z9v znJ{kR5WqjZ17IZ+JJa9A0U+Xjtr53sjkpzS#4S`KZiO0gH`9o_kw)BQG~(u=5e>dZ zG}jtCSPU(0VX>pdP8PScxRu4u7Q0yNYO$Ne?iPDk+}dK&;x-n0TI^-9x5Yjdx3$>U zVn2)hEe^1_oyCC`2U#3!vDD)B7Kd0IYH^sw;TA_&9BFZs#nBeWSR89{oW=1Lcd$6Y z;*J(4TAXBYvc)osQ!JKSoN93=i#uDKW^ua3T`bP9IMd=Ri?c1xvAC|i%(j7%Hq=&pRxF?#pf(OZ}A0-FIs%b;>#9avG}UR*DStn@ePY_T71jm z+ZNxk_^!qGEWU5?1B)9herWL{iyvG3#NwwGKePC`#V;&=Y4IzIUt9df; zUdTpiVvHfi`KU8qGZPFm(MP38nkh3(xsO^?HM6r}ru*$ewu@$F8fLa%7_vEVf%?Wvi)4YRLb9I}O)Ng1ZnF9}(dW)>S}iQhhC8O`i(m|EWtS)FF; z4U_YOkTqzg$uI}{9YVHTGb;^qupfr(5X~HBm?QixLUyEPjyBA(e#ejYokMn!W-c+zWqy~CU9Ooc40Dy=HDp(7 zX0>6i^Sg!Ydd=Kun4A6XA-hF0w;5)Q-y>wVYi6xs*7;k9>@LmRZJ2xgWXSH*%mapb z$loSp&6;_{Fpv2?L-x34o;1wUey@-{qnYOn^Mc}}1wYnb=_z9IWSGank}W4~X>KGDo)hWWzpAF?ks^R;2V^#_FPJI(xHn4kRZLiV#} zel^VR{=ks^p_#u7^N&9$Wd9Q5FwHowKiJMyhZ`p0mxfM(mT700B7ghPk(wznjPDN# zoj^08VLJLlL#LBwwlYi?f0&(_PFKTp_lJj04=rPssMFIQ5juK}I%bVJef^Q4qZg@T z7O6AP9~C-!l{#jXIz#-?c4j(5P0qvpF?MD;BMdXjA8Ti(Gukj?{c)i)PM5xeVRrP# z+nMQ1G|XgwhtMh0GUbNZ$)6B9J8NdTVP^O{hR#gQ%r?xf{>0FktC@L*neR^uo!vFF zz%YCHlS5~3&FpKK{rs}fNol6iFlm2E=q%RE62mO@%R^^>&D0tu>rV}xdd=hv)9CLM zI!&56&@e0fokM4(W)3#Yq5ibcIZQK080IK{dgvUjnPUxeyuVB6oS>PL40DP-NWVICi#5~U zFoC}$bUSEf3&V8sGoibsW;z?DtG_gKyJ@C}VUqs-p}UP{dKspVUlY39YNnrI2Kcq1 zyPakR8K%^)3*GHCW7e`e+|P#Y2+fQ#GGqMu&>gFp@rIe;9}v1bYG#sQ%KTjDPSMO% z!|d!ggzhxW>|&Uieq-p)(##yg%=Mc>w?Z?!8D@8XS?KPenLQ1&w|`*h?xUH7hDrI$ zLwAv8stmK(UlF?1n#mYue}84@)@Y{AF!laHp?iR48Vu9q9~`>NG_%|=EB!-4_aMz2 zVwl7HLqqp)%^Yc%qy57|_ZZC_XP6TLI6QPu)YQp_IyHbJLiaRHnU(6E6~K|9tCy;4 zma2Px07r$cUaPKItL`NM938rPvASllx>p2nOz2*z^Sat(zdC?pL-$%uU2mux12`^p zZ_?B)hPo|)<3m?z>UKk|4d8^(y;D12`je z-_z6whWapoGeh?yO?_gh&jL6rbU)YBmxlT}fU`sQ8%=#@s2>72Cv<<*)X#?cHGp$N z_cu-bVW__XI4^Yn*3`e6;&@4Me#jl7xY>+(B7h4*u6JW@c4J-?z=a{#+c7uWG4}(w zDCBxS=4Lnh*V`^P+b*9G!0M3eeV3bkm+uy$rl~cCx+8#lLcUg0>kPF%fO|uJ zx2Enj)cpb6XAfcg0Yg0$!2Q-g;AU-eT-y(XT(50z);7nr{h;*__)|vlnE)ON`LjCv z=MD8@0L>wPNmH*F>a_qKwr4nQHf8>10FPLIn!jbF-U;B*kiV-H-#65T03HkZhno7> zP@e|yc*sA~)E9>ODu5?K{C&rYa1zTLACdSt#ZkYL5Uuu;)Ty z?1Vr&vB6GEvA2=hH-HcAIZ&9rU!(%~$U3uPk&&tj;A1;iMcPo+0eoWJSz)Y+Kx^`; zjW&q=jZ|#_pV_0IFiwJ~58!hJrsv&?c?DQ3lhFTWDm!UXNw{eA`4hrBadmt3X z<_NSoU)vL*ILt^L5x_V0NGOauA&w5<+fZnKLKuHSpg-}Qozdb%qj+)v-`g22PBGMJ z0sIh(({&}zG}PGv{1{DNW0?e6rk|qed%lsnFo2&!agkQM#88(7@JlqKFE`W`0sI=x z=qn9%bpXFbGuj*y#I*tZ9twR*5H}d9n*#VFn&ifQ3AA5-hCT)e9trSqvC#HQ82crj3>b?hxv^j3 znSeR=*dd-Z**_mJHxw`Eo_NVnuLO*T;#Ex<`z78CmT`2U)LYR|<_%UFGq0mPQVU8B!w}2IeLZ29B;_^}o~+!*2~Sb(GlZuq z_eH|fl=~Xt>B@bZ@C@aCKzOEdKOsCzxnB~Vt=#Vj&r$Brgy$;v55n`5`!C`7isSUh zqm1G>|MC2yI4%G@v?z`%08c84;}XE*iQ?S}FIBuJ;bn^VCA?hmfrP6RA3}JA;v)&K zRD2xaRf^-}$76)zIQ#MJpg2x{JTNGZ^B+$MisJ&nqk-bM0`NSbI4%J^1SpPc06l-j zaS@=quQ;v(^zjwPWq^*o;u<4QokU2$9r=&UP_YXLoU#ZM=^L-BJ6 z*D8J?;hl{5rz*ir-9lx8iFE?@@dm;k}CAOL(8+4-nq3xE`Me6xZYP zpyE#v|B&L(6E-XU3gN?wWA$&#&m+)C7Ji_OcC?c`sDvJ`mz2=s^|BI4`u>U%eF$GwVgTW5 zO5o~2uTTkGKIjT6f$InTKPAQzzNN&Dgl{V`h439ErV+lY#4N)1l&BzlUy1pIA1I;6 zZ-WwhQ~E+d@yPNekrN}NLYgA!*F{-}f=@1K-7pVB`oaS7osN?cC( zs}ffd{-y+)Ky+1G%b zx6xgj_!odLWnJ*!f_{7&k0%BA1DyC9f%sl|3jQ4QZuk?=i-CSBqZt3{z6Ad!xIO-v zq7M(Cdu4hPfSJxZ4{>xFcbtyEBY(_k_`I4UBOQg|Y7GFwVUK#=Ez} z4(_8c!F?TebiaU!?q4v8m%wD6gfc!9rtm3H&ga8az65sSD`6Tx3a0auVHbWW%;2}e zO#Tqe=1;*K{xa;!KY5U3%!R$gUa+^Qf_=m?SSSvI z{lxLGNSpzc;zFnrH$qz62aCn?P%SpV67dsc5(!wE*b4Sf41k)%c&JO1LpCuB>J$6H z0f`*s5=TQr;#_DT){v1BM(0QU_(#*`Gw*5GYV7j zw-ENgUp82ZKU;7x{vN@p_!9${<1Ys&{9%BH@$dX!#XsQx4F4AY4>-47F`U;f3Fo&P z1{buO3KzCp02j5Zfs5N62A8xu6E1CcHC)zi9bDe-DOlC+UAUs%_i$w)hpP&=gsTe& zz%_+C!0N&|aBX2FTvxaZt}i?RZYaDMZY;b7ZYq2TZZ3QUZYlf>ZY}&1ZYwGQRkRJP zDH;y97wrUh6zvIXi)!J{qQhZb(OGa;(KWEX=q|Xs=xMm8=smc%=m)q@3b^sJP{t1m%wB4R(M=C!xQpVcv5~2PszXF>EibAOmR83^x}>8hl>z1$ccpgR&gZ=KNQ z(7VHdkYIzLhz-^`bkcc9Ts=Ao`Y|@ju|xs>Er)(7fWN?s&r>m1G2r$DE@Nx#PytCc zOzTM_V6$O~c6sFylo{$24Op8fbp3+0iQ%k+LYHEPQWmVvCJ) z7#GW-(B{xCu_f9A(}G8_5(SvU^t%(C7ho=3*Cl$~ndliN`m9a#-46e^HnH8zb&0_X z#wP9?Dcq5KHFWNr=*Wl88iYj-T$>nr0f<4j9?e-t-chXj_Y+1naLMM=4~SzoOhn5( z8HTVaFrJme1pN2TY`U)106ikp6C)F&P#Wuy7>%zo@DHqDaAFMp%Yh+KoEVF_xQTH( zKlfk!HQ$1QM7M%O3H}$`P=FQlp8d`ZR^n9DcD z21CFc0g{je0tw_Gk0h|-Cfng7yt6iXNYKy{b(^+iso(Z+g-7D$L7A?eFt{!@7vq6ui{`&@BZ#h zeY<-0_wB3b={?Z9ucEbY|Mr7@$<2Lx_xAK|-rk+q-+iE%3KR|5(S5MHVpn(Xwu*S~ zf!&IR4iu`Kv$3*D(Snx$a}x_f^5%q?>RhIJV`Z3`8!A&5V(LT8ynLprGQ?nf*(0vr zSe4g9Frofbh5A!f6Ot3^PgSTtb3(1p3AH|_Hed3b(AejMBv*$frR##J90SAA$)^`UXqhsISO8rQr~f98eDghnwhckER);y<$1 z7c;p%WG1(V%;ffvncUWy$!#4>-s)y1SBF)#q5go$)ghP3YaLA9xN1XffeE#h=OrLH z&r2{9k~}9@^C*+&C78*z1ZF~`n3Jbxl*!XGn9xY`d<#p?(=(V*pYyy8YUOzwW{}8mrrwuV*l!*7NmT zx3MN9CvOKq5A${qWq33b z^ZaN%&p%hyhi0dKW4?uh$r~3K^m$Oct+RDvSFEKoo>sJQ-9L1=(+fB6+TOc;{~|^9 z)M;Ic3L5&h^k^#7bdMs^^mawl8{+NJbi6eh>xj2CCR*cd9m!~8JldX0cEr>8yDb@Q zO$uE~itcyl0eXj`qJ_TT`BPg4&Zz1Ad$;#)TaXA-VP;xa3FN)Yp+YLsRIKSeiXK6W zvBqSyA=!#Pbi`AwiMCk(ss7{1XiK~~))HOW8ILAf+vDh9EShLbH>48gYY-@k{6#fbZWD3X7LaP6CW5NutJr!G4v1Q)5gwrv=QrwrK9m^ zM=I8qZh~}_YmcR381zz5{ikBlvn?sXWR@I-z70%U*(u| zjGR?&zHRM4+m>ieMw6Y<))*^=zk+r2A6*Tad-E}eO1U?KG(Dxrg&Ct1deG5-wxhEp zsp+2-P0eSsgjH3}uB?=QW>!|Rz)w0fhy^;DK7)gH8w`=6Nr`Ftf}-+RbN?CUqWC7BO2KHj>3?x( zFxMNR>0cFfdl^C|7qieG45($GEepXhk#z5$8^imKLoSOd)ASO$Y38~@I`jiY zQ%uuXPwg>GLRY*+))t#sj&bmSf9OydODfm&V<-v>D9r|ae``F2nfs}tr8!h|dH>O9 zD&CClvSQfQgZ0K!v^3Uc29J4x6~>}XvBYXo?0-2_&h11r{g0xGT%mA8W|i;)!r)m3#V2haxQDB2B-6RfsL4Fcv;fo~GX_s>>rY`j45#CT5-zWw6T7^;AbZ zVb;`Z4qe3JFV^%2c;sY5GLxh#KR+JRy7fU>6p zOTstpHdzzOa%dQLbhuW9igeIXt%?;54?Y=ja0ji44$KAys7f3f&h;+Q%0X}<=%v4y z)DT6rxtx*Fl2{6-f?(OFPzSF)uuvm5v>CklgVhIei2NXQ6=J2ZkD8L8Dsm`+3gxyD2@G~3#a ziHK=6TG42D=y-FI=LcODKan%d>QaYBvW!t$jZ;+Sn_YBiOA-!|4Ny%`RO!>{0X{v` zmzM5Kx5wMka5$}Ce6PqXmONUksqmDhZE*k{C@NEtPV*KciuAYWScZO~!c~IQ-PE>}2KT zd;xXjdz4IjzTR1Sy+fC>^s!nY(iGwOt7vF%%68!DGDTy<4l~i*iOoJ1T?^O4+n`$P z&{!4~)oLlb{A}M8H6A9O@i3~l=Tix zWRa7!+6brD*de{>NahOeRy4~DCYsKim7-PkmC`j{K*5mx^}tHm?9e0@Jz1-*iWYOn z(*5Uh`@-Gl#h!|#6K2!$o5@l@eP;YuIy9LjPSI*7cEQ-vSclmzv_jByOvX9~zQ`*TI5T>xwy4Gnd<02 zCTAM_$y$PP@qhm)IyKSQI4#$`OXp8GG@aXfGtjOs+FatGg9V#CJFkHO4A}CGH^cV?2zJ)GA1?`Lg3=g?dh zS)*0IqKkrMR3Xk}mRyas!rh`d_Z#^lBUTPkzOvuK41U3(8g8>zt1l{w=UXrDG5!S% zXZd6+YdURg9Cu%w6BF&7EjX2@%}K!woyYR84%M>UI<3B}Xw_Ssy#CYJj2py*wbZ@1 zTKy-xm_)lQ1<{sPFJgef0T1ove4Cm2WM=A9@h;qD-ue`M*P(gb_8x&uH^Sq}sp4l2E#Mw3)at*{1C9~}qO|&jqBZB~L3W|& zRI{zapJ7W%!~3sJrl-w}Vo&Nn%|~DOFLQy!(0s+!u^+AH@&C%9h1~jOTD^)hO;bxO zy=-6vTKx`Im8l-|OVn}n3HBgire%+zVxZy=w{Sj>#7s4JkII2s} zLyg3x?M#nQA=9bwIrC2rE#fv7YxP%-8~E4Hinh-^lbOQYb1`~mDTfwwttI@Sz@a7l zA*QWjgbIW3RL0nr@`c;1|6qUSE4$FpHq_h_1gcmZ?shR2w^UoW+bw!4;-rKAfc+3a z8cQhN%KN`H#G$1uut8g8in<20XEyPM&J-3KhuSXGR7K`o@#YOh9BSZ(8nrbHTm6N^ zaf~fc1T49!C5b~~TQhg{5{DXDLR?#;6jcv++XRQLaIsj+dc+MKlN#J6`EPSQz)_Pu zo;AjyI7?~LR#ee^+|iSWs-|LH{ikL3f^NXE^=CF~xdB!*ARH(|^yh|!jd!Stg*9ty zlA_6ob#|o8?Y1Jx=H!R0q*{D6YaIs-t~kY^X0EtQThlR*#(JgLo8BR#=C+A3rsJK_ zW)pOn#sX(Lw2TENw1s*X!2j999mpIhI0$R1z zfRIRLQNwPsjz8Q~+@V%3*`}>!Fuu%qgS!;s#;6noF7s8u5|%sE#uAd+YE@K|8Bf;0 z2gW=CqbnPd78@|N^$YDws3tMo;53G6_`jF_XZcm zG?(nq7A}e_vP5R zp(b`a)X7bBX=@L*lI$i#pdS=um%zRmR|Q07F~4yWbHk}CnQCOC%bGmSUcedkpF{YI zhq2e8E^cF$whkyty;&Q+8~8soanIL?yRrxP8>ctMw_#|&_hYR@Fj?^ zs+>c?ZV2xZSlqxgT<_3o7QIGWhjETFrrpwimXj#S=!^kd&sq>UyLbL#2o4q4l2|`S z9a_Wk*J|qohjheQM!DPBs)B|^JDH#wTz8@?2w7&E%}oxiWqIqgh5PWrEP2_E8C?&8 zw0ui3!9m=^b6Vx@;hMaT#jV#CuE~pY;=>RUET+q%^YB03wS%)l_F~B_ZI<{pht{*i z4ca=#XZ#lE-%sgal-aQ)@u!FaW%h8nvif^Cx5ZuWNT%AdR*n&1RC~8W8@Q#*wS`n- zSDrp$#3ovaR%19@ix0{=24ru@(kl#?jYT%gfo}4UkaoPB8``L?cPgq6ZSf6=D#Tl2 zY+}+%c25#*W{Uj%@j-_+vZyPx^l^6XNXLgIsmVr3A^n=+xlwZqDu%!8GJ1 zFl5Jk*r6-9iEeE@iVSOZXN-*nF?F*Va+qODIT!o?zUbn%y1X87#3 zvj-qIOt=i*G0)o?+rrZhZDH{}+WO?*C;t30`QF)p%)wd7aaf;rsE5UG)z)*0)| z5Q6bObC<@Yj9-gXso^eTpBx2u4RADp{?B9HfJr0Ft(h*45!NPZH3xR~1V5yrc zpM*OyeGwN7sX=Cv9YnnUe&Y~dbZ95b*`=-TA!3`CWgXBo&(`-H+QnseYwL$-Gf>2U zc?=YP(>8zP&~BE~tF52n+!xvnSp~^X+(U9)8{Qanws4R*F4{#>wwHzUX$wi&Nx^wF zm@|#QGz8mrXdl24f{ z_>!IQL%G>*C-wK8OY9nlZs0a<)OI~51cQWZpmBcgaUB23e!GISfH_Co^Bua8YaiA& zvbK{mshBJc42&`>IcXz#dzdR8(KeE|UA}{YoggF48&PJg+_q%5GY14wX>ih#j9lC7 z^lYgmDQa8}@B-{8-nFm}k@r2q4IR~XGjtg20X+5RyNj}UOMCtiJ}93%cbvo-h-%qL z5Fh0>j%gbS;(>X3OMOrB(=V)74oGl@Q4S28YR?@9lE%lljpN!z(s;Z$Ty9ah?c1iznOHkVn4f-#mvV6R~&7o6V`(|zLfOc~Bkqb7t z%b}aO(rIn?A)k_Ma=9*Jzz8mMaHt5vC~R_9Idq!kp3(MxTuk1Y+;Ap}MIChL42!x& z+lLe-|G(}-@`}Q~&Y@elgs{(t&5E*?ySKH4~{q^LQMI_ls$ca@uDcx{ZqXuUj3uosdl)+Ooa3 zr|rP*O+9-%x;O2DVU@S^ZSLOH)xCE+e-^ToY#Z0(2kbi(4Lje<)oEBe1^chuzE4r% z=I-5lU@Ya~x2t&aw|n0De7mZrahad4JB6+ki^&V2Y)SNrcam+131)y3_uF_ruY+R#jvSl~y>fX0+L0D_kvMByF+XB4QNcSDsySb-nJI~jM^Zg8NHY)_5d?AE7sQcW5XW#q9GL}itQEuoRS@S*K^zAKkNSvXm3+oYNf5^# z!IM7XSR$WK`FOLBr+qx*<1Iek>f>1-Z)0>v@{RMnchH^iFXzBM&)*RZIq^wS zYs&Ak%kM6~_bIyXNqVOc4;FxUw-E0Y;^9IN?-SxtAwE!4{+M6ogF<|`xcnpKAC(eM z3h{AW{)zIZg?L7YPq{_qpDuq^n9mB+?-rN;bNT0md0v<=y1M*Jewi19`LbJ5{+05t zN|~<<^B-<$`8Uh|Q<^n4byrb9XS9{}$#K!u-k| zQvU1mSB3eVFt58q%YR?~M`8XX%wJp=3T3E5%DF89)iS`|@igj{FH4er>8x;&z;5OR|tx40M}s`m)F z&5+yOaS^p6qIL<{YsfwB_=vhHqV@@Sz>rtF6C&!Gh`LtD>kWCMJ29dTN7PXvj~nu& zJ1L@Wim01~JY&dP-N_MkHll79@(x3ubEim`?h^7IL%!Xe8d3K})B{4wdWfh8-Dwf^ z?udG?kPn-ZkGRt#>d}b$fRK+H@Y=E@~4LUFSjqJ9%mzZLQ|L;l{a7xE86zG28eyYtHLj;OydXOVE0<<5tXkp*hmhAMOypqM2q z%`z*^Ds>k!H%O`uHsyx8moeuGS8lkA+(pb?EZlIzjc^w;H&VFKhP%{V!rWNl#u;vc z8)I&waFY!;)m_TmG~s3#ZkF4?oUBF5tVL^%+sItCl&dl2>fAVU^}@|J+(NgBxyyuG zY`B=)%-mAp8V%RvE@Q4)xP;+WxC!Q3gljWgyStpZmBOVB*Xgccu1mPphFj~lFt<*) z4Tjt3wlXKn)iTS~+Tyk`C#%&mtJT`>CYjqIb$6M%y>2^meZpO3xP9(Q=JpGB&~Vqd zDdr9dcb(yGaMR4)DBKal9dkRFJ1*Qw!<}+FnUe)=nFVd#>UJ@AR?6LO%H83vV(w1i z?lRmx?rP>_ceCy@+ym|!=H4OY-etIVyK9+yk8lqe?tSh$<{lC5{f2wYUC-R(!hOha zA8|J@_k?hs;XdYG&fLd^d&+SCUX=DljUxio;`>t>=8SV$} zHs)Ry?iIuR*u9cD*-9g&N18&cMo$zg)1{$#J!3+*>`QT z@7kBRdzl*{F) zH%GX+hO2e2VXjWNd4^ly9%4>*X4~w{_7eA6=45BK&CYDc-Rqc>o!K@!v%TECo;lf> zZL>4mN%sck+NF(@X`{ovk-1LcRvB)MdziVk!mT&lh~a=VZ_4Y|9Fjx*USM3uMtEuwV5FxS0HZv$3^3YLt$;C} z>Hu8osda#{p4tS6dTJYBoTqvL<2`i%Fu_yT115UvIAD^e&HyHR>JGpZPu&BU>M5wi zo#v^B0n%FGS4apEb^@3fW@9Q z8nDE(#sOlUH5stfvt|GqJd1VK=vg&@xM$4=Gpkm3fDNAI0WSBfrvMv0>r;R$Jd3Ta+p}1^ zn>>rPyV?mNrXHNng@a*Y;gPvUhxZ1Pl0CuROP8vz(^&O0imE@;IIE1tTa##lHJ>J0Nt$GBp~==E znqu8XQ>}++n)NhIw_czb*2^^0dYxt=K|9+XM-_H0RoW}4%Dw{sd94FfZJ(jJ_JdSo ze~fDF=c&&AF4fz=p?L+xG{0apEhwm>g#}G?S;0D5RIrDZ6r7+~!M(J!;Bjgwc$OLq zzDDtapHNf58`NAlloEv#XnA2BttebUErlDYwQwJ`6`rDG;RDoO_z_xJ*iWg#Z&JGO z=hRX7SL!T^P*>3uT2-`wRu?5{P0?mrTXZ$8E4qc&7d=QDik_s)i@rb`i(aHFihfDm z#Wrm!9!{H!XV8}7#ne-rrme->Xj}1hbY=1Fw7vKt+EM%z?JWKh?J9nWdW&C0I=&dG z^-;)~S0FFmfV}o9e89gNpwr;e7dzX zNoPy9(Cwv%=xwF9(H*4^(VeAFBief#TaEmK{|1DKYT&W24eKE)o<3vrQ}*o{!-5HM z(Ys+*_e#a61X+viJ53mbitTguT|Rd={wkmn`yTsVUu-Rea!_`dXWz1Bg+2WLw IKEX%+7ZjcJ_W%F@ diff --git a/target/classes/com/rjconsultores/ventaboletos/enuns/OcorrenciaBradesco.class b/target/classes/com/rjconsultores/ventaboletos/enuns/OcorrenciaBradesco.class deleted file mode 100644 index 4c48b312962b217d14b0cc4d06932390ca95454e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3015 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 Cd`@xz diff --git a/target/classes/com/rjconsultores/ventaboletos/enuns/OcorrenciaMercantil.class b/target/classes/com/rjconsultores/ventaboletos/enuns/OcorrenciaMercantil.class deleted file mode 100644 index a03b0d937f82773397aaff3e9543646cd25a911f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2435 zcmbtVOLNm!7(Lf7DMkcGg+M|eCWR6^fFZn-KoPb8gCD_iTnzLfJ0d7363B82yUw&T z{D7`lcGXQ6)Rf1xQ>HWQ`ZKy}|3v9`Z`_F|&MJ&Exzh3d&Ue12|NQsYw*aQ`SVD;5 zT+>_0_{&YtZMB`i^Q~59)p7%~;W<{|wKA65c3YWp)AN1HZQ5qh@|&g`*p7q7|9@!J1ZB&<%#!J0GG^o@+X`YX=t@!jq{Q zLnP}hS~8+Cc9WLlCuEE;j8^obZWvnfuW!Cj>ZNK$%W26{xl+^$aWL#vFot~;!(5kY zX0l&@z8~sGQndl%8&?oTOok+5f{U1zage-R*7CR3B+To%e6F0Nzic5-dUS5}i2{jR z$ud&h>XeKrhDohZ)hpV&r|-Tk3;Ee{DNC{N*PNczE^F0%ktoWX;-~_dQw+#B&M8jI zm}W@#QD{U_(1ck($teW`oFp#eEGIc5<2=LEMw0nTxl$=#?J6TFHNBKwmolp$&RMp} zpxT6vpOtZmVYg79(<|iGpy#RxqH>UnzpP*zw@_s0+~T~9s|*LoPgOUnS|w@d#bi;- z8%eE}Hz;-GlCe;zYTP!jKtYT@-B6Ig5W|jw?OLVwO2hK2X2Y>~PkK$$shPgb-vt;) z7-e4kd4}Q5YQ9#_ih}JJ7z?lkf(OvIhpG31qPYEE_8dI-*j7n z={8A9X%k5$7^yaDcFq;pG=0lNq2}5x_z={Og2fe&cT7k8qzy+BM zn7(g5X?hQzP!DfH-8+$8Z}~jm0g}i;`5rH?uizm_+v#3{tYfxXv;8IOts>u~w6x-e z*Y=y%6`Qxvo=rCJF`g9?YuHP!8MJ-6R_I~oG;>=o?Zw$kC#V!*`mKmx8sTdNppzDb zIBD9&NdqfR8aZ*&Ac>QPf-FP4eZ@)53nWJQh|s%4+d{=h#J`i?{uXzEpMC?YtGmML zu)60pMqgmR0Fn{)fcmij4hi6JRGn1Q0yrXoV=*E>J@=pOGv+y=Wqx6je4YmLq)@nOmpYg+>T(B~QBM$b&3J+9 zKZ~de^nZe40p(|iqL`q_PSSgh7TE%=p?kDg9#amB;x^9*t^01&cL|RYuBNBPUZa#g z`Vu$OBaxRd*11(g=*D(p9weq6 z{slLm(?bYccuau9f>2qz&?RKJwW+bO(Rg$d;{nuho9K9DpOPycW9kj=)Mp}ZFNQDt zh&>~bvFXCpD}0%L1@jrAQ_sH(v9WzWy#I%B2VtRZSQw5|KnEyg6Bwt@Vfye?4ihbr zcAJX_za*l$Pv}mB-xCm(XnQaw!3KsxR1VrvT~TL3 uk8BK)36I?00L}CNfu%_SPib6b={I=v2ZZw8ysq1Y5YWvK+E^9m*Z%=`VH?8$ diff --git a/target/classes/com/rjconsultores/ventaboletos/enuns/OcorrenciaSantander.class b/target/classes/com/rjconsultores/ventaboletos/enuns/OcorrenciaSantander.class deleted file mode 100644 index ebe4ad32af4e3c9d4b64f2053b69de776d4b4128..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2609 zcmbtVYf}?f7=BK!o49H?B7$NY(H0Vv2#Oa#>KaxX4T;SrsZm?HgcXBfqq$J&z17y4 z&h!Vg(=YwhuQt}pv{R-teCveQEoRvbyB13qE7huH7fYsL(novFs`}w! z*s)+PnX$5I&&PDTu}FZP%4W1FZ6=$@=8|cKvE<7-7-vw=X^AT>tClo{JtN_`K1DJ*L#TzNa?^T- zlmo=i>PA+}FzhsP;$g;t=&P$V$H0@V6d3ht$)2aUy=8OODl=@;N$F5tOXhTgVf@;w zZ2KFQ!7h~ybO@yeW~z^kB#VmUgjU>}9!qpz8QP3Q@&VF2pu!8E0>6So!ug1THz|X%Ty3t!(E$~Haa2(-D2^UiaD<`T zDdpBrDmX0|ClpW__N|wH^?~E3)dRxM z85Kdn+NR*FV4YNOj-iM8U?`kg{Xz6VnBvS1IXxmcQ!2Izj;i2-;G9yBVA#9XJC2`p z*wAz93W9V=g(^tf6{G~|v;Z%w*e<{w3aB|;!=#k^zst6~Ry;;Ep5V;7xD zmTW84Se&)0S#!2*i9W0p&2rwXmc+XRgK*6y0)tKS}i|Nu@fPoKC7YwA?mF9 z%~FlJc;2cfsKq-6BAfewL7~q{r_aSnyGDzlNTH;*@D+La)))P|pyC#2pnOYaxnWUk zX9gm#Fik?zRxt-Fh})o5c88jG;~cA~p-wKXI}Ni;E_b(ID?Phl73<@Xs|>8du-&Me z#aq+nZJBsKb_KDFkNx=QMcw6E-C9)f2|lIWVpgl>a$A1RvX`3vi2&9ZA}vrG%Ag1(K=reE!4fmmLC#XpDylvJS zRXUbzQx-B4FJIcp@w3BJ3OD^8sb_n{N&(2yzL1udfV4E)($cU>O9Ln^&6Kn>M$*!d zkdjNZv$WLAKxnTR8G85AQt8BQ^4A5hK6w`S`**Mc-{a=peD72AK0;UmeI9<0zafEs z2}Ha+$`4CmNCHQFe3&1Tz^DXH`uQn7CV>eFOe*{>u1O#+0X^j7=lRQNQSU9 z83OahBV74K=HV*+kJ73GWw?Xx-AB1NM%kF6rI{oA2CcNaw4uJGh4dp;DR$5wms(+2VUD7cb1o|+s?Np2 zAr=#}=y-~eW%SJ({S`A0>A?kY0iOiBrJ%ZYz!7A0fvw2qMsn{Ka-=NBsb)3mI&>H`#Aw#KkXsL{P+;)a8X%k+c`mCU(_zTcxSie}5A`mGJau$7t&;Nvsygjcio(o^mNf++n IzO-Ne2Vev_P5=M^ diff --git a/target/classes/com/rjconsultores/ventaboletos/enuns/TipoInscricaoPagador.class b/target/classes/com/rjconsultores/ventaboletos/enuns/TipoInscricaoPagador.class deleted file mode 100644 index 48aa2e1334a828fb21e6eb1064c76a9279fc6815..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1965 zcmbtUU31%15IxtDBiT{DOlq3iX-f&jR@%5Rw9wi$Y2AdnwUf-a&5X;_jUtSKECor< zOx~H{H}J?4uO)>x1Jex8{1g5JW$(2+brR3eA=ZqgyV~7z_Ux|y`seo}07W!3#29W_ zey0%ZSiTo_-N+B@u&`%)5#RD%JMzPV?RCAd@Yvb)YhGvtj>Y{A-sanWph0CA-{E__ z;Bv2BSn;|Y2Bo^O%22BR@3bWbwYs+PkRj%5Goopcx`eRU0Hk5nA^Ntf3nhK zD1UV(G`(!Oj^{)bBA?4|3V46p))Ch+MI^2-CBg8XfoYs$7%BH%bGg&RYNt*4%>+fi zZy=5l9h!~{B4tq+vj#Mbh^LDNk{D%}s5_p$*6nQB!DGJV+M;^j;_fC79C4P$Botf` zY(8X24sTUX_qf}&iE1U6KTAWC_yjjJe9AC+a&ipZ#Ajr;zw2^0thGHF z_bLxb=X1jfd&bDz*N#n1nA4tl$B|jll#}mxp2L zbe{)XFSeC7DcSV9fn~2cV%lbgt@)x*k=Qn!w#TDxKz@yZ)FMy$3?on}EiaLF3Vo8) z-&aiYI@3EUOStq7H@f(PH(p7U<5%D{lUZxn~kq5E_xjDVfITIrP&o zmfO#@FJtR1RtGGt#gl<0&JE2_u5R0wb>QP0x^E1xRsM%tDfzp{TQ2Y_`g=gQ# zSa$ZO*MBnsph&sWGBAS_vY4go5;9cMm4Tx3y_S*37(SQP+@k1dD6h#7*JwEz({LM@ zijgFxcO+H*Z&LFFnIlShA~jFf;xSScF-Px6iatkurEXHWVlvYQm~A~$%%fIW3{ykN z9O8?sCv|5MQFJ~*OZi4^lhkHpOQx84h}AzK0-s}GYBQ~S! diff --git a/target/classes/com/rjconsultores/ventaboletos/layouts/AbstractFlatFile.class b/target/classes/com/rjconsultores/ventaboletos/layouts/AbstractFlatFile.class deleted file mode 100644 index 530435634addbefbffc0907ce6d1b69bec5bc68c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10539 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 diff --git a/target/classes/com/rjconsultores/ventaboletos/layouts/BancoBrasilFlatFile.class b/target/classes/com/rjconsultores/ventaboletos/layouts/BancoBrasilFlatFile.class deleted file mode 100644 index 3dbad08ee9dca997350e45c91b2d8fbcd5f5db50..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11597 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 diff --git a/target/classes/com/rjconsultores/ventaboletos/layouts/BradescoFlatFile.class b/target/classes/com/rjconsultores/ventaboletos/layouts/BradescoFlatFile.class deleted file mode 100644 index 0402e57e1216f7e1091d4dedbd5766a2bf1e47c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7867 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 diff --git a/target/classes/com/rjconsultores/ventaboletos/layouts/BradescoProcessaRetorno.class b/target/classes/com/rjconsultores/ventaboletos/layouts/BradescoProcessaRetorno.class deleted file mode 100644 index bbdc12b2394e0d09484aaefe3bd50b83a7401c69..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6061 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 diff --git a/target/classes/com/rjconsultores/ventaboletos/layouts/RemessaInterface.class b/target/classes/com/rjconsultores/ventaboletos/layouts/RemessaInterface.class deleted file mode 100644 index 277234198b645ad828a0eed951f423cce8c034e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 464 zcmb`E&q@O^5Ql$LwQFnDf_U_<7Xw~AtOy<~6c!8i3DP(&S+u@2U;7Y&;r7q;eLy{P4@jlqk1Ub6Rc zY681QsW`(nVO+^ZCd8Ctwy0PI!l+~?-I^xMPK%DwR!nrwdGW`0H|{y=#;*JGvsHHt zx)z1@AtwxPUlczDorE(C2q!=1-`Oy+(L8LJ410v5Z)7^#JP-zRT^bppV}kl$&8wAm z7tB03ZOZ(*RiE4F6t_VTj(;b5-dgqvgsrq6fKtFa=%a@$-P&^(LyS`0!+xR;y6W%? DU<{9* diff --git a/target/classes/com/rjconsultores/ventaboletos/layouts/RetornoInteface.class b/target/classes/com/rjconsultores/ventaboletos/layouts/RetornoInteface.class deleted file mode 100644 index eca1634da6697f1e186444810d81d0384db6ae40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 322 zcmaiw%Sr=55Jhi|I<4`65V!7iV}lDfS%?b*fnXqhL8mQchPF$4x(EF=7k+>rB~~N` zapUq(r*1tyKHuH}oa4ZtB3yWRw5jzHyArY_?rhI7yM+YK(%Il%rR2`el~R;R%zW=W z8*CB|Th}`^;)9(nTK1VR2%J_b;qqkqZ8T!XP2kb#^q*l@>A5t$tO7Jc* MwlPrJQ>w841?g5_F#rGn diff --git a/target/classes/com/rjconsultores/ventaboletos/layouts/SantanderFlatFile.class b/target/classes/com/rjconsultores/ventaboletos/layouts/SantanderFlatFile.class deleted file mode 100644 index 9ed351ec9d3540cda5b6f15e9e9316b185cea0b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8908 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 diff --git a/target/classes/com/rjconsultores/ventaboletos/layouts/SantanderProcessaRetorno.class b/target/classes/com/rjconsultores/ventaboletos/layouts/SantanderProcessaRetorno.class deleted file mode 100644 index 02f06478e4e3b2a3e516e525a3a52b4f523ade2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4930 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 diff --git a/target/classes/com/rjconsultores/ventaboletos/utils/FormataUtil.class b/target/classes/com/rjconsultores/ventaboletos/utils/FormataUtil.class deleted file mode 100644 index a1dba6292de467c375d1d820a3f6959b0de37912..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2452 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 diff --git a/target/classes/layouts/LayoutBBCNAB240Envio.txg.xml b/target/classes/layouts/LayoutBBCNAB240Envio.txg.xml deleted file mode 100644 index 2b58f2dcc..000000000 --- a/target/classes/layouts/LayoutBBCNAB240Envio.txg.xml +++ /dev/null @@ -1,188 +0,0 @@ - - - Arquivo-Remessa_BBCNAB240 - Version 01, Published: 2012/05/25 - - Layout para Cobrança. - Arquivo texto - padrão CNAB Meio de Registro Transmissão de Dados Descrição de Registro - Tamanho 240 Bytes - Organização Sequencial ARQUIVO FORMATO CNAB REMESSA, - REGISTROS: - 0 - Header do Arquivo - 1 - Header do Lote - 3 - Segmento P - 3 - Segmento Q - 5 - Trailler Lote - 9 - Trailler Arquivo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/target/classes/layouts/LayoutBBCNAB400Envio.txg.xml b/target/classes/layouts/LayoutBBCNAB400Envio.txg.xml deleted file mode 100644 index c541e689f..000000000 --- a/target/classes/layouts/LayoutBBCNAB400Envio.txg.xml +++ /dev/null @@ -1,108 +0,0 @@ - - - - Arquivo-Remessa_BBCNAB240 - Version 01, Published: 2012/05/25 - - Layout para Cobrança. - Arquivo texto - padrão CNAB Meio de Registro Transmissão de Dados Descrição de Registro - Tamanho 240 Bytes - Organização Sequencial ARQUIVO FORMATO CNAB REMESSA, - REGISTROS: - 0 - Header do Arquivo - 1 - Header do Lote - 3 - Segmento P - 3 - Segmento Q - 5 - Trailler Lote - 9 - Trailler Arquivo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/target/classes/layouts/LayoutBradescoCNAB400Envio.txg.xml b/target/classes/layouts/LayoutBradescoCNAB400Envio.txg.xml deleted file mode 100644 index 0a494878c..000000000 --- a/target/classes/layouts/LayoutBradescoCNAB400Envio.txg.xml +++ /dev/null @@ -1,144 +0,0 @@ - - - - Arquivo-Remessa_BradescoCNAB400 - Version 08, Published: 2009/09/30 - - Layout para Cobrança. - - Arquivo texto - padrão CNAB - Meio de Registro Transmissão de Dados - Descrição de Registro - Tamanho 400 Bytes - Organização Sequencial - - ARQUIVO FORMATO CNAB REMESSA, REGISTROS: - - 0 - Header Label - 1 - Cobrança - Transação - 2 - Mensagem (opcional) - 3 - Rateio de Crédito (opcional) - 7 – Sacador Avalista (opcional) - 9 - Trailler (Papel de finalizador de lote) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/target/classes/layouts/LayoutBradescoCNAB400Retorno.txg.xml b/target/classes/layouts/LayoutBradescoCNAB400Retorno.txg.xml deleted file mode 100644 index 8c6260b61..000000000 --- a/target/classes/layouts/LayoutBradescoCNAB400Retorno.txg.xml +++ /dev/null @@ -1,123 +0,0 @@ - - - - - Arquivo-Retorno_BradescoCNAB400 - Version 08, Published: 2009/09/30 - - Layout para Cobrança. - - Arquivo texto - padrão CNAB - Meio de Registro Transmissão de Dados - Descrição de Registro - Tamanho 400 Bytes - Organização Sequencial - - ARQUIVO FORMATO CNAB RETORNO, REGISTROS: - - 0 - Header Label - 1 - Cobrança - Transação - 3 - Rateio de Crédito (opcional) - 9 - Trailler (Papel de finalizador de lote e totalizador) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/target/classes/layouts/LayoutBradescoCNAB400RetornoParaLer.txg.xml b/target/classes/layouts/LayoutBradescoCNAB400RetornoParaLer.txg.xml deleted file mode 100644 index 95d014107..000000000 --- a/target/classes/layouts/LayoutBradescoCNAB400RetornoParaLer.txg.xml +++ /dev/null @@ -1,123 +0,0 @@ - - - - - Arquivo-Retorno_BradescoCNAB400 - Version 08, Published: 2009/09/30 - - Layout para Cobrança. - - Arquivo texto - padrão CNAB - Meio de Registro Transmissão de Dados - Descrição de Registro - Tamanho 400 Bytes - Organização Sequencial - - ARQUIVO FORMATO CNAB RETORNO, REGISTROS: - - 0 - Header Label - 1 - Cobrança - Transação - 3 - Rateio de Crédito (opcional) - 9 - Trailler (Papel de finalizador de lote e totalizador) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/target/classes/layouts/LayoutBradescoCNAB400RetornoParaReEscrever.txg.xml b/target/classes/layouts/LayoutBradescoCNAB400RetornoParaReEscrever.txg.xml deleted file mode 100644 index 4e5b40c5c..000000000 --- a/target/classes/layouts/LayoutBradescoCNAB400RetornoParaReEscrever.txg.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - - - Arquivo-Retorno_BradescoCNAB400 - Version 08, Published: 2009/09/30 - - - Arquivo para ler e reescrever ocorrencias e motivos. - - Layout para Cobrança. - - Arquivo texto - padrão CNAB - Meio de Registro Transmissão de Dados - Descrição de Registro - Tamanho 400 Bytes - Organização Sequencial - - ARQUIVO FORMATO CNAB RETORNO, REGISTROS: - - 0 - Header Label - 1 - Cobrança - Transação - 3 - Rateio de Crédito (opcional) - 9 - Trailler (Papel de finalizador de lote e totalizador) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/target/classes/layouts/LayoutCaixaCNAB400Envio.txg.xml b/target/classes/layouts/LayoutCaixaCNAB400Envio.txg.xml deleted file mode 100644 index 9260e7e3a..000000000 --- a/target/classes/layouts/LayoutCaixaCNAB400Envio.txg.xml +++ /dev/null @@ -1,104 +0,0 @@ - - - - - Arquivo-Remessa_CaixaCNAB400 - Version 67.126 v021micro, Published: 02/04/2021 - - Layout para Cobrança. - - Arquivo texto - padrão CNAB - Meio de Registro Transmissão de Dados - Descrição de Registro - Tamanho 400 Bytes - Organização Sequencial - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/target/classes/layouts/LayoutItauCNAB400Envio.txg.xml b/target/classes/layouts/LayoutItauCNAB400Envio.txg.xml deleted file mode 100644 index 4c7196e84..000000000 --- a/target/classes/layouts/LayoutItauCNAB400Envio.txg.xml +++ /dev/null @@ -1,131 +0,0 @@ - - - - Arquivo-Remessa_ItauCNAB400 - Version 01, Published: 2012/05/25 - - Layout para Cobrança. - - Arquivo texto - padrão CNAB - Meio de Registro Transmissão de Dados - Descrição de Registro - Tamanho 400 Bytes - Organização Sequencial - - ARQUIVO FORMATO CNAB REMESSA, REGISTROS: - - 0 - Registro Header do Arquivo - 1 - Registro de Detalhe (Obrigatório) - 1 - Registro de Transação (Opcional – Cheque Devolvido) - 4 - Registro de Detalhe (Opcional) - 5 - Registro de Detalhe (Opcional) - 9 - Trailler (Papel de finalizador de lote) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/target/classes/layouts/LayoutItauCNAB400Retorno.txg.xml b/target/classes/layouts/LayoutItauCNAB400Retorno.txg.xml deleted file mode 100644 index 963c17dd1..000000000 --- a/target/classes/layouts/LayoutItauCNAB400Retorno.txg.xml +++ /dev/null @@ -1,130 +0,0 @@ - - - - - Arquivo-Retorno_ItauCNAB400 - Version 01, Published: 2012/05/25 - - Layout para Cobrança. - - Arquivo texto - padrão CNAB - Meio de Registro Transmissão de Dados - Descrição de Registro - Tamanho 400 Bytes - Organização Sequencial - - ARQUIVO FORMATO CNAB RETORNO, REGISTROS: - - 0 - Header Label - 1 - Cobrança - Transação - 3 - Rateio de Crédito (opcional) - 9 - Trailler (Papel de finalizador de lote e totalizador) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/target/classes/layouts/LayoutMercantilCNAB400Envio.txg.xml b/target/classes/layouts/LayoutMercantilCNAB400Envio.txg.xml deleted file mode 100644 index 8eeb2cd91..000000000 --- a/target/classes/layouts/LayoutMercantilCNAB400Envio.txg.xml +++ /dev/null @@ -1,113 +0,0 @@ - - - - - Arquivo-Remessa_SantanderCNAB400 - Version 2,0, Published: outubro/2009 - - Layout para Cobrança. - - Arquivo texto - padrão CNAB - Meio de Registro Transmissão de Dados - Descrição de Registro - Tamanho 400 Bytes - Organização Sequencial - - ARQUIVO FORMATO CNAB REMESSA, REGISTROS: - - 0 = Header - 1 = Registro de Movimento - 2 = Mensagem Variável por Título (Opcional) - 4 = Mensagem Variável por Título (Opcional) - 5 = Mensagem Variável por Título (Opcional) - 6 = Mensagem Variável por Título (Opcional) - 7 = Mensagem Variável por Título (Opcional) - 9 = Trailler - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/target/classes/layouts/LayoutSantanderCNAB400Envio.txg.xml b/target/classes/layouts/LayoutSantanderCNAB400Envio.txg.xml deleted file mode 100644 index 1469832fe..000000000 --- a/target/classes/layouts/LayoutSantanderCNAB400Envio.txg.xml +++ /dev/null @@ -1,119 +0,0 @@ - - - - - Arquivo-Remessa_SantanderCNAB400 - Version 2,0, Published: outubro/2009 - - Layout para Cobrança. - - Arquivo texto - padrão CNAB - Meio de Registro Transmissão de Dados - Descrição de Registro - Tamanho 400 Bytes - Organização Sequencial - - ARQUIVO FORMATO CNAB REMESSA, REGISTROS: - - 0 = Header - 1 = Registro de Movimento - 2 = Mensagem Variável por Título (Opcional) - 4 = Mensagem Variável por Título (Opcional) - 5 = Mensagem Variável por Título (Opcional) - 6 = Mensagem Variável por Título (Opcional) - 7 = Mensagem Variável por Título (Opcional) - 9 = Trailler - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/target/classes/layouts/LayoutSantanderCNAB400Retorno.txg.xml b/target/classes/layouts/LayoutSantanderCNAB400Retorno.txg.xml deleted file mode 100644 index 963c17dd1..000000000 --- a/target/classes/layouts/LayoutSantanderCNAB400Retorno.txg.xml +++ /dev/null @@ -1,130 +0,0 @@ - - - - - Arquivo-Retorno_ItauCNAB400 - Version 01, Published: 2012/05/25 - - Layout para Cobrança. - - Arquivo texto - padrão CNAB - Meio de Registro Transmissão de Dados - Descrição de Registro - Tamanho 400 Bytes - Organização Sequencial - - ARQUIVO FORMATO CNAB RETORNO, REGISTROS: - - 0 - Header Label - 1 - Cobrança - Transação - 3 - Rateio de Crédito (opcional) - 9 - Trailler (Papel de finalizador de lote e totalizador) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/target/classes/layouts/LayoutSicoobCNAB240Envio.txg.xml b/target/classes/layouts/LayoutSicoobCNAB240Envio.txg.xml deleted file mode 100644 index f9cbeca48..000000000 --- a/target/classes/layouts/LayoutSicoobCNAB240Envio.txg.xml +++ /dev/null @@ -1,184 +0,0 @@ - - - - Arquivo-Remessa_SicoobCNAB240 - Version 01, Published: 2020/03/18 - - Layout para Cobrança. - Arquivo texto - padrão CNAB Meio de Registro Transmissão de Dados Descrição de Registro - Tamanho 240 Bytes - Organização Sequencial ARQUIVO FORMATO CNAB REMESSA, - REGISTROS: - 0 - Header do Arquivo - 1 - Header do Lote - 3 - Segmento P - 3 - Segmento Q - 5 - Trailler Lote - 9 - Trailler Arquivo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/target/maven-archiver/pom.properties b/target/maven-archiver/pom.properties deleted file mode 100644 index 8c4252ce2..000000000 --- a/target/maven-archiver/pom.properties +++ /dev/null @@ -1,5 +0,0 @@ -#Generated by Maven -#Sat Jun 26 11:17:35 GMT-03:00 2021 -groupId=br.com.rjconsultores -artifactId=GeneradorBoletosCNAB -version=0.0.1-SNAPSHOT diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst deleted file mode 100644 index 5e9384286..000000000 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +++ /dev/null @@ -1 +0,0 @@ -com\rjconsultores\ventaboletos\layouts\CNABFactory$1.class diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst deleted file mode 100644 index 4e95706d0..000000000 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ /dev/null @@ -1,71 +0,0 @@ -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\bancobrasil\CabecalhoLoteRemessaBancoBrasil.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\bradesco\DetalheObrigatorioBradesco.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\sicoob\RodapeRemessaSicoob.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\ArquivoRemessaItemInteface.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\enuns\MotivoOcorrenciaItau.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\itau\CabecalhoRemessaItau.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\itau\DetalheObrigatorioItau.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\enuns\AceiteBB.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\DetalheRetorno.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\santander\DetalheObrigatorioSantander.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\enuns\MotivoOcorrenciaBradesco.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\RodapeRetorno.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\bancobrasil\DetalheObrigatorioDadosTitulosBancoBrasil.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\caixa\DetalheObrigatorioCaixa.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\caixa\CabecalhoRemessaCaixa.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\RateioDeCredito.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\enuns\CarteiraSicoob.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\ArquivoRetorno.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\ArquivoRemessa.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\DetalheObrigatorio.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\bancobrasil\CabecalhoRemessaBancoBrasil.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\enuns\OcorrenciaBradesco.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\layouts\AbstractFlatFile.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\ArquivoRetornoItem.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\mercantil\DetalheObrigatorioMercantil.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\bradesco\ArquivoRemessaBradesco.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\enuns\BancoLayout.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\layouts\BradescoProcessaRetorno.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\enuns\OcorrenciaMercantil.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\layouts\RetornoInteface.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\layouts\SicoobFlatFile.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\RodapeRemessa.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\Main.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\mercantil\CabecalhoRemessaMercantil.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\caixa\ArquivoRemessaCaixa.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\mercantil\ArquivoRemessaMercantil.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\sicoob\DetalheObrigatorioSicoob.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\utils\FormataUtil.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\enuns\OcorrenciaSantander.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\bancobrasil\DetalheObrigatorioDadosPagadorBancoBrasil.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\bancobrasil\RodapeRemessaBancoBrasil.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\santander\ArquivoRemessaSantander.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\sicoob\ArquivoRemessaSicoob.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\bancobrasil\ArquivoRemessaBancoBrasil.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\ArquivoRemessaItem.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\santander\CabecalhoRemessaSantander.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\layouts\BancoBrasilFlatFile.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\enuns\CarteiraSantander.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\layouts\ItauFlatFile.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\layouts\SantanderProcessaRetorno.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\CabecalhoRemessa.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\RodapeRemessaPadrao.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\sicoob\CabecalhoRemessaSicoob.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\DadosBoleto.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\ArquivoRetornoItemInteface.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\layouts\CaixaFlatFile.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\bancobrasil\RodapeRemessaLoteBancoBrasil.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\layouts\CNABFactory.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\sicoob\DetalheObrigatorioDadosPagadorSicoob.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\sicoob\CabecalhoLoteRemessaSicoob.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\bradesco\CabecalhoRemessaBradesco.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\enuns\TipoInscricaoPagador.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\layouts\RemessaInterface.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\itau\ArquivoRemessaItau.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\enuns\OcorrenciaItau.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\layouts\BradescoFlatFile.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\CabecalhoRetorno.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\utils\NossoNumeroUtils.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\blocos\sicoob\RodapeRemessaLoteSicoob.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\layouts\MercantilFlatFile.java -E:\Desenvolvimento\rjconsultores\GeneradorBoletosCNAB\src\com\rjconsultores\ventaboletos\layouts\SantanderFlatFile.java From c058645aac61474e8f7377c20a7ce09dd93bee26 Mon Sep 17 00:00:00 2001 From: fabiorj Date: Wed, 8 Dec 2021 18:58:05 -0300 Subject: [PATCH 05/17] ajuste para build --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index e5b6ea765..c5027ca53 100644 --- a/pom.xml +++ b/pom.xml @@ -21,7 +21,7 @@ maven-compiler-plugin - 3.3 + 3.8.1 1.8 1.8 From f6cd3abb3d6ed3d1c21bbaeb88b7acc006546325 Mon Sep 17 00:00:00 2001 From: fabiorj Date: Fri, 10 Dec 2021 12:26:39 -0300 Subject: [PATCH 06/17] ajustes de projeto para build --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c5027ca53..2344cfc31 100644 --- a/pom.xml +++ b/pom.xml @@ -38,7 +38,7 @@ commons-lang 2.0 - + commons-io commons-io From 1b824eaea549ead71eb24c91029d69090ca2ea8f Mon Sep 17 00:00:00 2001 From: Fabio Date: Thu, 17 Mar 2022 20:55:10 -0300 Subject: [PATCH 07/17] deploy no nexus --- pom.xml | 39 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 2344cfc31..2bd248237 100644 --- a/pom.xml +++ b/pom.xml @@ -7,6 +7,23 @@ GeneradorBoletosCNAB 1.0.0 GeneradorBoletosCNAB + + + + nexus-rjconsultores + nexus-rjconsultores + http://52.5.53.15:8081/nexus/content/groups/public + default + false + + + nexus-rjconsultores + nexus-rjconsultores + http://52.5.53.15/:8081/nexus/content/repositories/snapshots + default + false + + src @@ -18,16 +35,34 @@ + + + + org.apache.maven.plugins + maven-deploy-plugin + 2.8.2 + + + maven-compiler-plugin 3.8.1 - 1.8 - 1.8 + 11 + 11 ISO-8859-1 + + org.codehaus.mojo + sonar-maven-plugin + 3.2 + + + org.apache.maven.plugins + maven-deploy-plugin + ${project.artifactId} From 4b743be3c7971221ff587db5a33e94bc0e24d568 Mon Sep 17 00:00:00 2001 From: Fabio Faria Date: Fri, 18 Mar 2022 18:15:35 -0300 Subject: [PATCH 08/17] teste nexus --- pom.xml | 76 ++++++++++++++++++++------------------------------------- 1 file changed, 27 insertions(+), 49 deletions(-) diff --git a/pom.xml b/pom.xml index 2bd248237..a8678bf18 100644 --- a/pom.xml +++ b/pom.xml @@ -7,64 +7,42 @@ GeneradorBoletosCNAB 1.0.0 GeneradorBoletosCNAB - - - - nexus-rjconsultores - nexus-rjconsultores - http://52.5.53.15:8081/nexus/content/groups/public - default - false - - - nexus-rjconsultores - nexus-rjconsultores - http://52.5.53.15/:8081/nexus/content/repositories/snapshots - default - false - - + + 1.8 + 1.8 + 1.8 + ISO-8859-1 + + + + + rj-releases + http://52.5.53.15:8081/nexus/content/repositories/releases/ + + + - src - - - src - - **/*.java - - - - - - - org.apache.maven.plugins - maven-deploy-plugin - 2.8.2 - - - - maven-compiler-plugin + org.apache.maven.plugins + maven-release-plugin 3.8.1 - 11 - 11 - ISO-8859-1 + @{project.version} - - org.codehaus.mojo - sonar-maven-plugin - 3.2 - - - org.apache.maven.plugins - maven-deploy-plugin - - ${project.artifactId} + + + + + org.sonarsource.scanner.maven + sonar-maven-plugin + 3.9.1 + + + From 0c0500a1eee7628cd2d46d3b8290b814702395a8 Mon Sep 17 00:00:00 2001 From: Fabio Faria Date: Sat, 19 Mar 2022 13:49:07 -0300 Subject: [PATCH 09/17] ignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 0186c4e3c..31e0d1058 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ /.settings/org.eclipse.wst.common.project.facet.core.xml /.settings/org.eclipse.wst.validation.prefs target +/.settings/ From 2bd6c18c7ab4a9a1913fe202982e49eb812fb18a Mon Sep 17 00:00:00 2001 From: Fabio Faria Date: Mon, 28 Mar 2022 19:53:21 -0300 Subject: [PATCH 10/17] =?UTF-8?q?RollBack=20para=20corre=C3=A7=C3=A3o=20do?= =?UTF-8?q?=20build?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 - pom.xml | 41 ++++-------- .../ventaboletos/blocos/CabecalhoRetorno.java | 65 +++++++++++++++++++ .../ventaboletos/blocos/DetalheRetorno.java | 40 ++---------- .../layouts/BradescoProcessaRetorno.java | 3 +- .../layouts/SantanderProcessaRetorno.java | 8 +-- 6 files changed, 91 insertions(+), 67 deletions(-) diff --git a/.gitignore b/.gitignore index 31e0d1058..0186c4e3c 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,3 @@ /.settings/org.eclipse.wst.common.project.facet.core.xml /.settings/org.eclipse.wst.validation.prefs target -/.settings/ diff --git a/pom.xml b/pom.xml index a8678bf18..2344cfc31 100644 --- a/pom.xml +++ b/pom.xml @@ -8,41 +8,28 @@ 1.0.0 GeneradorBoletosCNAB - - 1.8 - 1.8 - 1.8 - ISO-8859-1 - - - - - rj-releases - http://52.5.53.15:8081/nexus/content/repositories/releases/ - - - + src + + + src + + **/*.java + + + - org.apache.maven.plugins - maven-release-plugin + maven-compiler-plugin 3.8.1 - @{project.version} + 1.8 + 1.8 + ISO-8859-1 - - - - - org.sonarsource.scanner.maven - sonar-maven-plugin - 3.9.1 - - - + ${project.artifactId} diff --git a/src/com/rjconsultores/ventaboletos/blocos/CabecalhoRetorno.java b/src/com/rjconsultores/ventaboletos/blocos/CabecalhoRetorno.java index d53b8b8d2..afd6ba34b 100644 --- a/src/com/rjconsultores/ventaboletos/blocos/CabecalhoRetorno.java +++ b/src/com/rjconsultores/ventaboletos/blocos/CabecalhoRetorno.java @@ -1,9 +1,20 @@ package com.rjconsultores.ventaboletos.blocos; +import java.util.Date; + public class CabecalhoRetorno { private String codEmpresa; private String numeroDoAvisoBancario; + private Integer agencia; + private Integer conta; + private Integer dacConta; + private String nomeEmpresa; + private String codigoBanco; + private String nomeBanco; + private Date dataGeracao; + private Integer numeroSequencialRegistro; + private Integer numeroSequencialRemessa; public String getCodEmpresa() { return codEmpresa; @@ -11,11 +22,65 @@ public class CabecalhoRetorno { public void setCodEmpresa(String codEmpresa) { this.codEmpresa = codEmpresa; } + public Integer getConta() { + return conta; + } + public void setConta(Integer conta) { + this.conta = conta; + } + public Integer getDacConta() { + return dacConta; + } + public void setDacConta(Integer dacConta) { + this.dacConta = dacConta; + } + public String getNomeEmpresa() { + return nomeEmpresa; + } + public void setNomeEmpresa(String nomeEmpresa) { + this.nomeEmpresa = nomeEmpresa; + } + public String getCodigoBanco() { + return codigoBanco; + } + public void setCodigoBanco(String codigoBanco) { + this.codigoBanco = codigoBanco; + } + public String getNomeBanco() { + return nomeBanco; + } + public void setNomeBanco(String nomeBanco) { + this.nomeBanco = nomeBanco; + } + public Date getDataGeracao() { + return dataGeracao; + } + public void setDataGeracao(Date dataGeracao) { + this.dataGeracao = dataGeracao; + } + public Integer getNumeroSequencialRegistro() { + return numeroSequencialRegistro; + } + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro) { + this.numeroSequencialRegistro = numeroSequencialRegistro; + } + public Integer getNumeroSequencialRemessa() { + return numeroSequencialRemessa; + } + public void setNumeroSequencialRemessa(Integer numeroSequencialRemessa) { + this.numeroSequencialRemessa = numeroSequencialRemessa; + } public String getNumeroDoAvisoBancario() { return numeroDoAvisoBancario; } public void setNumeroDoAvisoBancario(String numeroDoAvisoBancario) { this.numeroDoAvisoBancario = numeroDoAvisoBancario; } + public Integer getAgencia() { + return agencia; + } + public void setAgencia(Integer agencia) { + this.agencia = agencia; + } } diff --git a/src/com/rjconsultores/ventaboletos/blocos/DetalheRetorno.java b/src/com/rjconsultores/ventaboletos/blocos/DetalheRetorno.java index 3ee109846..a9a4831de 100644 --- a/src/com/rjconsultores/ventaboletos/blocos/DetalheRetorno.java +++ b/src/com/rjconsultores/ventaboletos/blocos/DetalheRetorno.java @@ -1,39 +1,11 @@ package com.rjconsultores.ventaboletos.blocos; -import java.util.ArrayList; -import java.util.List; - -import com.rjconsultores.ventaboletos.enuns.MotivoOcorrenciaBradesco; -import com.rjconsultores.ventaboletos.enuns.OcorrenciaBradesco; - -public class DetalheRetorno { - - private String numeroControleDoParticipante; - private OcorrenciaBradesco ocorrencia; - private List motivoOcorrencias; +public interface DetalheRetorno { - public String getNumeroControleDoParticipante() { - return numeroControleDoParticipante; - } - public void setNumeroControleDoParticipante(String numeroControleDoParticipante) { - this.numeroControleDoParticipante = numeroControleDoParticipante; - } - public OcorrenciaBradesco getOcorrencia() { - return ocorrencia; - } - public void setOcorrencia(OcorrenciaBradesco ocorrencia) { - this.ocorrencia = ocorrencia; - } - public List getMotivoOcorrencias() { - return motivoOcorrencias; - } - public void addMotivoOcorrencia(MotivoOcorrenciaBradesco motivoOcorrencias) { - - if(this.motivoOcorrencias == null){ - this.motivoOcorrencias = new ArrayList(); - } - - this.motivoOcorrencias.add(motivoOcorrencias); - } + public void setIdBoletoFechamento(Integer id); + public Integer getIdBoletoFechamento(); + public void setNossoNumero(String nossoNumero); + public String getNossoNumero(); + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro); } diff --git a/src/com/rjconsultores/ventaboletos/layouts/BradescoProcessaRetorno.java b/src/com/rjconsultores/ventaboletos/layouts/BradescoProcessaRetorno.java index 9a079cf65..67fe8aaaa 100644 --- a/src/com/rjconsultores/ventaboletos/layouts/BradescoProcessaRetorno.java +++ b/src/com/rjconsultores/ventaboletos/layouts/BradescoProcessaRetorno.java @@ -15,6 +15,7 @@ import com.rjconsultores.ventaboletos.blocos.DetalheRetorno; import com.rjconsultores.ventaboletos.blocos.RateioDeCredito; import com.rjconsultores.ventaboletos.blocos.RodapeRemessa; import com.rjconsultores.ventaboletos.blocos.RodapeRetorno; +import com.rjconsultores.ventaboletos.blocos.bradesco.DetalheRetornoBradesco; import com.rjconsultores.ventaboletos.enuns.BancoLayout; import com.rjconsultores.ventaboletos.enuns.MotivoOcorrenciaBradesco; import com.rjconsultores.ventaboletos.enuns.OcorrenciaBradesco; @@ -70,7 +71,7 @@ public class BradescoProcessaRetorno extends AbstractFlatFile implements Retorno for (Record record : registrosDeTransacoes) { - DetalheRetorno detalheRetorno = new DetalheRetorno(); + DetalheRetornoBradesco detalheRetorno = new DetalheRetornoBradesco(); String numeroControleDoParticipante = record.getValue("NumeroControleDoParticipante"); String codigoDeOcorrencia = record.getValue("CodigoDeOcorrencia"); diff --git a/src/com/rjconsultores/ventaboletos/layouts/SantanderProcessaRetorno.java b/src/com/rjconsultores/ventaboletos/layouts/SantanderProcessaRetorno.java index eaded80c0..2df118e7a 100644 --- a/src/com/rjconsultores/ventaboletos/layouts/SantanderProcessaRetorno.java +++ b/src/com/rjconsultores/ventaboletos/layouts/SantanderProcessaRetorno.java @@ -67,7 +67,7 @@ public class SantanderProcessaRetorno extends AbstractFlatFile implements Retorn List retornos = new ArrayList(); for (Record record : registrosDeTransacoes) { - +/* DetalheRetorno detalheRetorno = new DetalheRetorno(); String numeroControleDoParticipante = record.getValue("NumeroControleDoParticipante"); @@ -77,7 +77,7 @@ public class SantanderProcessaRetorno extends AbstractFlatFile implements Retorn String codigoDeMotivo3 = record.getValue("CodigoDeMotivo3"); String codigoDeMotivo4 = record.getValue("CodigoDeMotivo4"); String codigoDeMotivo5 = record.getValue("CodigoDeMotivo5"); -/* + OcorrenciaSantander ocorrencia = OcorrenciaSantander.getInstance(codigoDeOcorrencia); detalheRetorno.setNumeroControleDoParticipante(numeroControleDoParticipante); detalheRetorno.setOcorrencia(ocorrencia); @@ -105,10 +105,10 @@ public class SantanderProcessaRetorno extends AbstractFlatFile implements Retorn if(checkIsNullOrBlank(codigoDeMotivo5)){ MotivoOcorrenciaSantander motivoOcorrencia = MotivoOcorrenciaSantander.getInstance(ocorrencia, codigoDeMotivo5); detalheRetorno.addMotivoOcorrencia(motivoOcorrencia); - } -*/ + } retornos.add(detalheRetorno); +*/ } return retornos; From 314a1541cfd9982d3458ce4f83167542e9e1cdde Mon Sep 17 00:00:00 2001 From: Fabio Faria Date: Mon, 28 Mar 2022 19:56:52 -0300 Subject: [PATCH 11/17] =?UTF-8?q?RollBack=20para=20corre=C3=A7=C3=A3o=20do?= =?UTF-8?q?=20build?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .settings/.gitignore | 1 + .../bradesco/DetalheRetornoBradesco.java | 73 +++++++++++++++++++ .../blocos/itau/DetalheRetornoItau.java | 37 ++++++++++ 3 files changed, 111 insertions(+) create mode 100644 .settings/.gitignore create mode 100644 src/com/rjconsultores/ventaboletos/blocos/bradesco/DetalheRetornoBradesco.java create mode 100644 src/com/rjconsultores/ventaboletos/blocos/itau/DetalheRetornoItau.java diff --git a/.settings/.gitignore b/.settings/.gitignore new file mode 100644 index 000000000..b012ade25 --- /dev/null +++ b/.settings/.gitignore @@ -0,0 +1 @@ +/org.eclipse.core.resources.prefs diff --git a/src/com/rjconsultores/ventaboletos/blocos/bradesco/DetalheRetornoBradesco.java b/src/com/rjconsultores/ventaboletos/blocos/bradesco/DetalheRetornoBradesco.java new file mode 100644 index 000000000..bf5d8d1e6 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/blocos/bradesco/DetalheRetornoBradesco.java @@ -0,0 +1,73 @@ +package com.rjconsultores.ventaboletos.blocos.bradesco; + +import java.util.ArrayList; +import java.util.List; + +import com.rjconsultores.ventaboletos.blocos.DetalheRetorno; +import com.rjconsultores.ventaboletos.enuns.MotivoOcorrenciaBradesco; +import com.rjconsultores.ventaboletos.enuns.OcorrenciaBradesco; + +public class DetalheRetornoBradesco implements DetalheRetorno, Cloneable{ + + private String numeroControleDoParticipante; + private OcorrenciaBradesco ocorrencia; + private List motivoOcorrencias; + private Integer idBoletoFechamento; + private String nossoNumero; + private Integer numeroSequencialRegistro; + + public String getNumeroControleDoParticipante() { + return numeroControleDoParticipante; + } + public void setNumeroControleDoParticipante(String numeroControleDoParticipante) { + this.numeroControleDoParticipante = numeroControleDoParticipante; + } + public OcorrenciaBradesco getOcorrencia() { + return ocorrencia; + } + public void setOcorrencia(OcorrenciaBradesco ocorrencia) { + this.ocorrencia = ocorrencia; + } + public List getMotivoOcorrencias() { + return motivoOcorrencias; + } + public void addMotivoOcorrencia(MotivoOcorrenciaBradesco motivoOcorrencias) { + + if(this.motivoOcorrencias == null){ + this.motivoOcorrencias = new ArrayList(); + } + + this.motivoOcorrencias.add(motivoOcorrencias); + } + + public Integer getIdBoletoFechamento() { + return idBoletoFechamento; + } + + public void setIdBoletoFechamento(Integer idBoletoFechamento) { + this.idBoletoFechamento = idBoletoFechamento; + } + + public String getNossoNumero() { + return nossoNumero; + } + + public void setNossoNumero(String nossoNumero) { + this.nossoNumero = nossoNumero; + } + + public Integer getNumeroSequencialRegistro() { + return numeroSequencialRegistro; + } + + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro) { + this.numeroSequencialRegistro = numeroSequencialRegistro; + } + + public void setMotivoOcorrencias(List motivoOcorrencias) { + this.motivoOcorrencias = motivoOcorrencias; + } + + + +} diff --git a/src/com/rjconsultores/ventaboletos/blocos/itau/DetalheRetornoItau.java b/src/com/rjconsultores/ventaboletos/blocos/itau/DetalheRetornoItau.java new file mode 100644 index 000000000..1aeadb65d --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/blocos/itau/DetalheRetornoItau.java @@ -0,0 +1,37 @@ +package com.rjconsultores.ventaboletos.blocos.itau; + +import com.rjconsultores.ventaboletos.blocos.DetalheRetorno; + +public class DetalheRetornoItau implements DetalheRetorno, Cloneable{ + + private Integer idBoletoFechamento; + private String nossoNumero; + private Integer numeroSequencialRegistro; + + + public Integer getIdBoletoFechamento() { + return idBoletoFechamento; + } + + public void setIdBoletoFechamento(Integer idBoletoFechamento) { + this.idBoletoFechamento = idBoletoFechamento; + } + + public String getNossoNumero() { + return nossoNumero; + } + + public void setNossoNumero(String nossoNumero) { + this.nossoNumero = nossoNumero; + } + + public Integer getNumeroSequencialRegistro() { + return numeroSequencialRegistro; + } + + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro) { + this.numeroSequencialRegistro = numeroSequencialRegistro; + } + + +} From cadaeff71cfbc1e736de583abdfd010d2ecea919 Mon Sep 17 00:00:00 2001 From: Fabio Faria Date: Wed, 13 Apr 2022 13:47:25 -0300 Subject: [PATCH 12/17] reenvio pro nexus --- pom.xml | 7 +++++++ .../ventaboletos/layouts/BradescoProcessaRetorno.java | 1 - 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2344cfc31..c8b2ad9ef 100644 --- a/pom.xml +++ b/pom.xml @@ -8,6 +8,13 @@ 1.0.0 GeneradorBoletosCNAB + + + rj-releases + http://52.5.53.15:8081/nexus/content/repositories/releases/ + + + src diff --git a/src/com/rjconsultores/ventaboletos/layouts/BradescoProcessaRetorno.java b/src/com/rjconsultores/ventaboletos/layouts/BradescoProcessaRetorno.java index 67fe8aaaa..e703c1954 100644 --- a/src/com/rjconsultores/ventaboletos/layouts/BradescoProcessaRetorno.java +++ b/src/com/rjconsultores/ventaboletos/layouts/BradescoProcessaRetorno.java @@ -110,7 +110,6 @@ public class BradescoProcessaRetorno extends AbstractFlatFile implements Retorno detalheRetorno.addMotivoOcorrencia(motivoOcorrencia); } - retornos.add(detalheRetorno); } From fa25c9b8a1e28b03b7a302b2039db0e49dbbc347 Mon Sep 17 00:00:00 2001 From: Fabio Faria Date: Wed, 20 Apr 2022 15:43:46 -0300 Subject: [PATCH 13/17] teste java 17 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index c8b2ad9ef..3e2e09f50 100644 --- a/pom.xml +++ b/pom.xml @@ -30,8 +30,8 @@ maven-compiler-plugin 3.8.1 - 1.8 - 1.8 + 11 + 11 ISO-8859-1 From 3430bc4ca43b30125b8d56dbea2ce5ae35a1d640 Mon Sep 17 00:00:00 2001 From: Fabio Faria Date: Tue, 17 May 2022 11:59:30 -0300 Subject: [PATCH 14/17] =?UTF-8?q?Modifica=C3=A7=C3=A3o=20para=20gera=C3=A7?= =?UTF-8?q?=C3=A3o=20com=20JAVA=208?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 3e2e09f50..c8b2ad9ef 100644 --- a/pom.xml +++ b/pom.xml @@ -30,8 +30,8 @@ maven-compiler-plugin 3.8.1 - 11 - 11 + 1.8 + 1.8 ISO-8859-1 From 6d8e8ce94088d77d62c8bbb65751a7ceeb52aa7d Mon Sep 17 00:00:00 2001 From: Fabio Faria Date: Tue, 23 Aug 2022 18:49:37 -0300 Subject: [PATCH 15/17] =?UTF-8?q?atualiza=C3=A7=C3=A3o=20de=20fonte?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ventaboletos/blocos/DetalheRetorno.java | 8 +++++ .../bradesco/DetalheRetornoBradesco.java | 31 +++++++++++++++++++ .../blocos/itau/DetalheObrigatorioItau.java | 6 ++-- .../blocos/itau/DetalheRetornoItau.java | 28 +++++++++++++++++ .../layouts/BradescoProcessaRetorno.java | 1 + 5 files changed, 71 insertions(+), 3 deletions(-) diff --git a/src/com/rjconsultores/ventaboletos/blocos/DetalheRetorno.java b/src/com/rjconsultores/ventaboletos/blocos/DetalheRetorno.java index a9a4831de..d8c94b187 100644 --- a/src/com/rjconsultores/ventaboletos/blocos/DetalheRetorno.java +++ b/src/com/rjconsultores/ventaboletos/blocos/DetalheRetorno.java @@ -1,5 +1,7 @@ package com.rjconsultores.ventaboletos.blocos; +import java.math.BigDecimal; + public interface DetalheRetorno { public void setIdBoletoFechamento(Integer id); @@ -7,5 +9,11 @@ public interface DetalheRetorno { public void setNossoNumero(String nossoNumero); public String getNossoNumero(); public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro); + public String getCodigoOcorrencia(); + public void setCodigoOcorrencia(String codigoOcorrencia); + public BigDecimal getValorJuros(); + public void setValorJuros(BigDecimal valorJuros); + public String getDataBaixa(); + public void setDataBaixa(String dataBaixa); } diff --git a/src/com/rjconsultores/ventaboletos/blocos/bradesco/DetalheRetornoBradesco.java b/src/com/rjconsultores/ventaboletos/blocos/bradesco/DetalheRetornoBradesco.java index bf5d8d1e6..ddeb8b707 100644 --- a/src/com/rjconsultores/ventaboletos/blocos/bradesco/DetalheRetornoBradesco.java +++ b/src/com/rjconsultores/ventaboletos/blocos/bradesco/DetalheRetornoBradesco.java @@ -1,5 +1,6 @@ package com.rjconsultores.ventaboletos.blocos.bradesco; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; @@ -14,23 +15,31 @@ public class DetalheRetornoBradesco implements DetalheRetorno, Cloneable{ private List motivoOcorrencias; private Integer idBoletoFechamento; private String nossoNumero; + private String codigoOcorrencia; + private String dataBaixa; + private BigDecimal valorJuros; private Integer numeroSequencialRegistro; public String getNumeroControleDoParticipante() { return numeroControleDoParticipante; } + public void setNumeroControleDoParticipante(String numeroControleDoParticipante) { this.numeroControleDoParticipante = numeroControleDoParticipante; } + public OcorrenciaBradesco getOcorrencia() { return ocorrencia; } + public void setOcorrencia(OcorrenciaBradesco ocorrencia) { this.ocorrencia = ocorrencia; } + public List getMotivoOcorrencias() { return motivoOcorrencias; } + public void addMotivoOcorrencia(MotivoOcorrenciaBradesco motivoOcorrencias) { if(this.motivoOcorrencias == null){ @@ -68,6 +77,28 @@ public class DetalheRetornoBradesco implements DetalheRetorno, Cloneable{ this.motivoOcorrencias = motivoOcorrencias; } + public String getCodigoOcorrencia() { + return codigoOcorrencia; + } + public void setCodigoOcorrencia(String codigoOcorrencia) { + this.codigoOcorrencia = codigoOcorrencia; + } + + public BigDecimal getValorJuros() { + return valorJuros; + } + public void setValorJuros(BigDecimal valorJuros) { + this.valorJuros = valorJuros; + } + + public String getDataBaixa() { + return dataBaixa; + } + + public void setDataBaixa(String dataBaixa) { + this.dataBaixa = dataBaixa; + } + } diff --git a/src/com/rjconsultores/ventaboletos/blocos/itau/DetalheObrigatorioItau.java b/src/com/rjconsultores/ventaboletos/blocos/itau/DetalheObrigatorioItau.java index 32fc7b68f..ddf052863 100644 --- a/src/com/rjconsultores/ventaboletos/blocos/itau/DetalheObrigatorioItau.java +++ b/src/com/rjconsultores/ventaboletos/blocos/itau/DetalheObrigatorioItau.java @@ -47,7 +47,7 @@ public class DetalheObrigatorioItau implements DetalheObrigatorio{ //private String brancos2; // private String logradouroSacado; private String bairroSacado; - private Integer cepSacado; + private String cepSacado; private String cidade; private String estado; private String sacadorAvalista; @@ -289,10 +289,10 @@ public class DetalheObrigatorioItau implements DetalheObrigatorio{ public void setBairroSacado(String bairroSacado) { this.bairroSacado = bairroSacado; } - public Integer getCepSacado() { + public String getCepSacado() { return cepSacado; } - public void setCepSacado(Integer cepSacado) { + public void setCepSacado(String cepSacado) { this.cepSacado = cepSacado; } public String getCidade() { diff --git a/src/com/rjconsultores/ventaboletos/blocos/itau/DetalheRetornoItau.java b/src/com/rjconsultores/ventaboletos/blocos/itau/DetalheRetornoItau.java index 1aeadb65d..d282b5458 100644 --- a/src/com/rjconsultores/ventaboletos/blocos/itau/DetalheRetornoItau.java +++ b/src/com/rjconsultores/ventaboletos/blocos/itau/DetalheRetornoItau.java @@ -1,11 +1,16 @@ package com.rjconsultores.ventaboletos.blocos.itau; +import java.math.BigDecimal; + import com.rjconsultores.ventaboletos.blocos.DetalheRetorno; public class DetalheRetornoItau implements DetalheRetorno, Cloneable{ private Integer idBoletoFechamento; private String nossoNumero; + private String codigoOcorrencia; + private String dataBaixa; + private BigDecimal valorJuros; private Integer numeroSequencialRegistro; @@ -33,5 +38,28 @@ public class DetalheRetornoItau implements DetalheRetorno, Cloneable{ this.numeroSequencialRegistro = numeroSequencialRegistro; } + public String getCodigoOcorrencia() { + return codigoOcorrencia; + } + + public void setCodigoOcorrencia(String codigoOcorrencia) { + this.codigoOcorrencia = codigoOcorrencia; + } + + public BigDecimal getValorJuros() { + return valorJuros; + } + + public void setValorJuros(BigDecimal valorJuros) { + this.valorJuros = valorJuros; + } + + public String getDataBaixa() { + return dataBaixa; + } + + public void setDataBaixa(String dataBaixa) { + this.dataBaixa = dataBaixa; + } } diff --git a/src/com/rjconsultores/ventaboletos/layouts/BradescoProcessaRetorno.java b/src/com/rjconsultores/ventaboletos/layouts/BradescoProcessaRetorno.java index e703c1954..67fe8aaaa 100644 --- a/src/com/rjconsultores/ventaboletos/layouts/BradescoProcessaRetorno.java +++ b/src/com/rjconsultores/ventaboletos/layouts/BradescoProcessaRetorno.java @@ -110,6 +110,7 @@ public class BradescoProcessaRetorno extends AbstractFlatFile implements Retorno detalheRetorno.addMotivoOcorrencia(motivoOcorrencia); } + retornos.add(detalheRetorno); } From b6575392806bd16f33a03cc876cdde0b3c9937f1 Mon Sep 17 00:00:00 2001 From: Fabio Faria Date: Mon, 10 Oct 2022 14:05:41 -0300 Subject: [PATCH 16/17] =?UTF-8?q?altera=C3=A7ao=20do=20ignore?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + .settings/.gitignore | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 .settings/.gitignore diff --git a/.gitignore b/.gitignore index 0186c4e3c..324c01836 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ /.settings/org.eclipse.wst.common.project.facet.core.xml /.settings/org.eclipse.wst.validation.prefs target +.settings diff --git a/.settings/.gitignore b/.settings/.gitignore deleted file mode 100644 index b012ade25..000000000 --- a/.settings/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/org.eclipse.core.resources.prefs From b164f2e8ad1f9e4efa6c58cbd523d919a96eb93a Mon Sep 17 00:00:00 2001 From: Fabio Faria Date: Thu, 20 Oct 2022 15:25:16 -0300 Subject: [PATCH 17/17] teste --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c8b2ad9ef..744a7974b 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ br.com.rjconsultores GeneradorBoletosCNAB - 1.0.0 + 1.0.1 GeneradorBoletosCNAB