From 87f392e2547254f0accc6c01750cdd313940bcb0 Mon Sep 17 00:00:00 2001 From: Adalberto Teixeira Jr Date: Mon, 23 Oct 2017 00:51:44 -0200 Subject: [PATCH 1/7] Update BMG.java MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Retirado o dígito verificador do nosso número para o BMG --- .../main/java/br/com/caelum/stella/boleto/bancos/BMG.java | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/BMG.java b/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/BMG.java index 3e5c093cd..b7641f644 100644 --- a/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/BMG.java +++ b/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/BMG.java @@ -58,11 +58,7 @@ public String getCodigoBeneficiarioFormatado(Beneficiario beneficiario) { @Override public String getNossoNumeroFormatado(Beneficiario beneficiario) { - String nossoNumero = beneficiario.getNossoNumero(); - if (beneficiario.getDigitoNossoNumero() != null) { - return leftPadWithZeros(nossoNumero+beneficiario.getDigitoNossoNumero(), 10); - } - return leftPadWithZeros(nossoNumero+getGeradorDeDigito().calculaDVNossoNumero(nossoNumero), 10); + return leftPadWithZeros(beneficiario.getNossoNumero(), 10); } @Override @@ -99,4 +95,4 @@ public GeradorDeDigitoSantander getGeradorDeDigito() { public String getNumeroConvenioFormatado(Beneficiario beneficiario) { return leftPadWithZeros(beneficiario.getNumeroConvenio(), 7); } -} \ No newline at end of file +} From cfa1becad5c5157b4cc922e120c05f9600d2da9f Mon Sep 17 00:00:00 2001 From: Magdiel Ildefonso Date: Wed, 1 Nov 2017 19:23:10 -0300 Subject: [PATCH 2/7] Update HSBC.java Setando data juliano para 0000 --- .../com/caelum/stella/boleto/bancos/HSBC.java | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/HSBC.java b/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/HSBC.java index bfef3da77..af8f5df19 100755 --- a/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/HSBC.java +++ b/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/HSBC.java @@ -36,19 +36,19 @@ public String geraCodigoDeBarrasPara(Boleto boleto) { } public String getDataFormatoJuliano(Calendar vencimento, int tipo) { - String result; - Calendar dataLimite = Calendar.getInstance(); - dataLimite.set(Calendar.DAY_OF_MONTH, 1); - dataLimite.set(Calendar.MONTH, 7 - 1); - dataLimite.set(Calendar.YEAR, 1997); - if (vencimento.before(dataLimite)) { - result = "0000"; - } else { - int diaDoAno = vencimento.get(Calendar.DAY_OF_YEAR); - int digitoDoAno = vencimento.get(Calendar.YEAR) % 10; - result = String.format("%03d%d", diaDoAno, digitoDoAno); - } - return result; + //String result; + //Calendar dataLimite = Calendar.getInstance(); + //dataLimite.set(Calendar.DAY_OF_MONTH, 1); + //dataLimite.set(Calendar.MONTH, 7 - 1); + //dataLimite.set(Calendar.YEAR, 1997); + //if (vencimento.before(dataLimite)) { + // result = "0000"; + //} else { + // int diaDoAno = vencimento.get(Calendar.DAY_OF_YEAR); + // int digitoDoAno = vencimento.get(Calendar.YEAR) % 10; + // result = String.format("%03d%d", diaDoAno, digitoDoAno); + //} + return "0000"; } @Override @@ -115,4 +115,4 @@ private DigitoPara getModuloNossoNumero(String nossoNumero) { .mod(11); } -} \ No newline at end of file +} From 86bed851288f20940a5cad06edfc1c826205a5c7 Mon Sep 17 00:00:00 2001 From: Everson Teixeira Date: Tue, 14 Nov 2017 11:11:27 -0300 Subject: [PATCH 3/7] =?UTF-8?q?Adicionado=20m=C3=A9todo=20para=20calcular?= =?UTF-8?q?=20o=20DV=20do=20Nosso=20N=C3=BAmero?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../caelum/stella/boleto/bancos/Bradesco.java | 73 ++++++++++++++++++- 1 file changed, 72 insertions(+), 1 deletion(-) diff --git a/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/Bradesco.java b/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/Bradesco.java index f5c5d9832..ce85bcdef 100755 --- a/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/Bradesco.java +++ b/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/Bradesco.java @@ -1,9 +1,12 @@ package br.com.caelum.stella.boleto.bancos; +import static br.com.caelum.stella.boleto.utils.StellaStringUtils.leftPadWithZeros; + +import java.math.BigDecimal; + import br.com.caelum.stella.boleto.Banco; import br.com.caelum.stella.boleto.Beneficiario; import br.com.caelum.stella.boleto.Boleto; -import static br.com.caelum.stella.boleto.utils.StellaStringUtils.leftPadWithZeros; /** * Gera dados de um boleto relativos ao Banco Bradesco. @@ -83,4 +86,72 @@ private String getDigitoNossoNumero(Beneficiario beneficiario) { ? "-" + beneficiario.getDigitoNossoNumero() : ""; } + /** + * Método para cálculo do dígito verificador do campo Nosso Número + * + * @param beneficiario + * @return String + */ + public String nossoNumeroComDigitoVerificador(Beneficiario beneficiario) { + + String carteiraFormatada = leftPadWithZeros(beneficiario.getCarteira(), 3); + + String numeroDocumentoFormatada = leftPadWithZeros(beneficiario.getNossoNumero(), 11); + + String campo = carteiraFormatada + numeroDocumentoFormatada; + + String bytResult = "0"; + + Integer intSoma = 0; + + Integer bytMultiplicador = 2; + + Integer bytTamanho = campo.length(); + + Integer bytCont = 0; + + Integer bytResultado = 0; + + while (bytCont < bytTamanho - 1) { + + if (bytMultiplicador < 7) { + + bytResultado = new BigDecimal(campo.substring(bytTamanho - (bytCont + 1), bytTamanho - bytCont)).multiply(new BigDecimal(bytMultiplicador)).intValue(); + + bytMultiplicador += 1; + + } else { + + bytResultado = new BigDecimal(campo.substring(bytTamanho - (bytCont + 1), bytTamanho - bytCont)).multiply(new BigDecimal(bytMultiplicador)).intValue(); + + bytMultiplicador = 2; + + } + + intSoma += bytResultado; + + bytCont += 1; + } + + bytResultado = intSoma % 11; + + if (bytResultado != 0) { + + bytResultado = 11 - bytResultado; + + if (bytResultado == 10) { + + bytResult = "P"; + + } else { + + bytResult = String.valueOf(bytResultado); + + } + } + + return numeroDocumentoFormatada + bytResult; + + } + } \ No newline at end of file From ff2ee9c9ce79fd0549908d3a574766c2d3dcbada Mon Sep 17 00:00:00 2001 From: Everson Teixeira Date: Tue, 14 Nov 2017 14:55:54 -0300 Subject: [PATCH 4/7] =?UTF-8?q?M=C3=A9todo=20calcular=20DV=20do=20nosso=20?= =?UTF-8?q?n=C3=BAmero=20adicionado=20na=20interface?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/br/com/caelum/stella/boleto/Banco.java | 2 ++ .../br/com/caelum/stella/boleto/bancos/BMG.java | 13 +++++++++++++ .../caelum/stella/boleto/bancos/BancoDoBrasil.java | 14 ++++++++++++++ .../com/caelum/stella/boleto/bancos/Bradesco.java | 3 ++- .../br/com/caelum/stella/boleto/bancos/Caixa.java | 13 +++++++++++++ .../br/com/caelum/stella/boleto/bancos/HSBC.java | 13 +++++++++++++ .../br/com/caelum/stella/boleto/bancos/Itau.java | 13 +++++++++++++ .../com/caelum/stella/boleto/bancos/Santander.java | 14 ++++++++++++++ 8 files changed, 84 insertions(+), 1 deletion(-) diff --git a/stella-boleto/src/main/java/br/com/caelum/stella/boleto/Banco.java b/stella-boleto/src/main/java/br/com/caelum/stella/boleto/Banco.java index 7269e32f7..d628bac87 100755 --- a/stella-boleto/src/main/java/br/com/caelum/stella/boleto/Banco.java +++ b/stella-boleto/src/main/java/br/com/caelum/stella/boleto/Banco.java @@ -65,5 +65,7 @@ public interface Banco extends Serializable { GeradorDeDigito getGeradorDeDigito(); String getNossoNumeroECodigoDocumento(Boleto boleto); + + String getNossoNumeroComDigitoVerificador(Beneficiario beneficiario); } diff --git a/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/BMG.java b/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/BMG.java index b7641f644..0b523e93c 100644 --- a/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/BMG.java +++ b/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/BMG.java @@ -95,4 +95,17 @@ public GeradorDeDigitoSantander getGeradorDeDigito() { public String getNumeroConvenioFormatado(Beneficiario beneficiario) { return leftPadWithZeros(beneficiario.getNumeroConvenio(), 7); } + + /** + * Método para cálculo do dígito verificador do campo Nosso Número. + * + * @param beneficiario + * @return String + */ + @Override + public String getNossoNumeroComDigitoVerificador(Beneficiario beneficiario) { + + return beneficiario.getNossoNumero(); + + } } diff --git a/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/BancoDoBrasil.java b/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/BancoDoBrasil.java index 7c45e756d..1e6c277af 100755 --- a/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/BancoDoBrasil.java +++ b/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/BancoDoBrasil.java @@ -117,5 +117,19 @@ public String getNossoNumeroECodigoDocumento(Boleto boleto) { return getNossoNumeroParaCarteiras17e18(beneficiario); } } + + + /** + * Método para cálculo do dígito verificador do campo Nosso Número. + * + * @param beneficiario + * @return String + */ + @Override + public String getNossoNumeroComDigitoVerificador(Beneficiario beneficiario) { + + return beneficiario.getNossoNumero(); + + } } diff --git a/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/Bradesco.java b/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/Bradesco.java index ce85bcdef..5112c1553 100755 --- a/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/Bradesco.java +++ b/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/Bradesco.java @@ -92,7 +92,8 @@ private String getDigitoNossoNumero(Beneficiario beneficiario) { * @param beneficiario * @return String */ - public String nossoNumeroComDigitoVerificador(Beneficiario beneficiario) { + @Override + public String getNossoNumeroComDigitoVerificador(Beneficiario beneficiario) { String carteiraFormatada = leftPadWithZeros(beneficiario.getCarteira(), 3); diff --git a/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/Caixa.java b/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/Caixa.java index 5aecf2b6d..f6dd2e06f 100755 --- a/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/Caixa.java +++ b/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/Caixa.java @@ -100,4 +100,17 @@ public String getNossoNumeroECodigoDocumento(Boleto boleto) { } return builder.toString(); } + + /** + * Método para cálculo do dígito verificador do campo Nosso Número. + * + * @param beneficiario + * @return String + */ + @Override + public String getNossoNumeroComDigitoVerificador(Beneficiario beneficiario) { + + return beneficiario.getNossoNumero(); + + } } diff --git a/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/HSBC.java b/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/HSBC.java index af8f5df19..6ee59a5ea 100755 --- a/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/HSBC.java +++ b/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/HSBC.java @@ -115,4 +115,17 @@ private DigitoPara getModuloNossoNumero(String nossoNumero) { .mod(11); } + + /** + * Método para cálculo do dígito verificador do campo Nosso Número. + * + * @param beneficiario + * @return String + */ + @Override + public String getNossoNumeroComDigitoVerificador(Beneficiario beneficiario) { + + return beneficiario.getNossoNumero(); + + } } diff --git a/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/Itau.java b/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/Itau.java index 4d7ce3190..633e565e0 100755 --- a/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/Itau.java +++ b/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/Itau.java @@ -81,4 +81,17 @@ public String getAgenciaECodigoBeneficiario(Beneficiario beneficiario) { return builder.toString(); } + + /** + * Método para cálculo do dígito verificador do campo Nosso Número. + * + * @param beneficiario + * @return String + */ + @Override + public String getNossoNumeroComDigitoVerificador(Beneficiario beneficiario) { + + return beneficiario.getNossoNumero(); + + } } diff --git a/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/Santander.java b/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/Santander.java index 9fda5c2aa..9ee9b0613 100755 --- a/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/Santander.java +++ b/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/Santander.java @@ -95,4 +95,18 @@ public GeradorDeDigitoSantander getGeradorDeDigito() { public String getNumeroConvenioFormatado(Beneficiario beneficiario) { return leftPadWithZeros(beneficiario.getNumeroConvenio(), 7); } + + /** + * Método para cálculo do dígito verificador do campo Nosso Número. + * + * @param beneficiario + * @return String + */ + @Override + public String getNossoNumeroComDigitoVerificador(Beneficiario beneficiario) { + + return beneficiario.getNossoNumero(); + + } + } \ No newline at end of file From fbd3496cc27122703b206ff3a05dbda2364de147 Mon Sep 17 00:00:00 2001 From: "marcio.gomes" Date: Wed, 6 Dec 2017 17:54:29 -0300 Subject: [PATCH 5/7] =?UTF-8?q?#11481=20-=20Altera=C3=A7=C3=A3o=20do=20Rec?= =?UTF-8?q?urso=20de=20Consulta=20para=20Dados=20de=20Pagamento=20da=20Fat?= =?UTF-8?q?ura=20(Elaborar=20testes)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../stella/boleto/bancos/BancoAgiplan.java | 75 ++++++++++++++++++ .../caelum/stella/boleto/bancos/Bancos.java | 6 ++ .../gerador/GeradorDeDigitoBancoAgiplan.java | 64 +++++++++++++++ .../br/com/caelum/stella/boleto/img/121.png | Bin 0 -> 8300 bytes .../boleto/bancos/BancoAgiplanTest.java | 50 ++++++++++++ 5 files changed, 195 insertions(+) create mode 100644 stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/BancoAgiplan.java create mode 100644 stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/gerador/GeradorDeDigitoBancoAgiplan.java create mode 100644 stella-boleto/src/main/resources/br/com/caelum/stella/boleto/img/121.png create mode 100644 stella-boleto/src/test/java/br/com/caelum/stella/boleto/bancos/BancoAgiplanTest.java diff --git a/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/BancoAgiplan.java b/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/BancoAgiplan.java new file mode 100644 index 000000000..27ec5dbcf --- /dev/null +++ b/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/BancoAgiplan.java @@ -0,0 +1,75 @@ +package br.com.caelum.stella.boleto.bancos; + +import static br.com.caelum.stella.boleto.utils.StellaStringUtils.leftPadWithZeros; + +import java.net.URL; + +import br.com.caelum.stella.boleto.Beneficiario; +import br.com.caelum.stella.boleto.Boleto; +import br.com.caelum.stella.boleto.bancos.gerador.GeradorDeDigitoBancoAgiplan; +import br.com.caelum.stella.boleto.bancos.gerador.GeradorDeDigitoSantander; + +public class BancoAgiplan extends AbstractBanco{ + + + private static final long serialVersionUID = 1L; + private static final String NUMERO_BANCO_AGIPLAN = "121"; + private static final String DIGITO_NUMERO_BANCO_AGIPLAN = "1"; + private GeradorDeDigitoBancoAgiplan gdivBancoAgiplan = new GeradorDeDigitoBancoAgiplan(); + + @Override + public String getNumeroFormatado() { + return NUMERO_BANCO_AGIPLAN; + } + + @Override + public URL getImage() { + String pathDoArquivo = "/br/com/caelum/stella/boleto/img/%s.png"; + String imagem = String.format(pathDoArquivo, NUMERO_BANCO_AGIPLAN); + return getClass().getResource(imagem); + } + + @Override + public String geraCodigoDeBarrasPara(Boleto boleto) { + Beneficiario beneficiario = boleto.getBeneficiario(); + StringBuilder campoLivre = new StringBuilder(""); + campoLivre.append(beneficiario.getAgenciaFormatada()); + campoLivre.append(leftPadWithZeros(beneficiario.getCodigoBeneficiario(), 10)); + campoLivre.append("0"); + campoLivre.append(getNossoNumeroComDigitoVerificador(beneficiario)); + return new CodigoDeBarrasBuilder(boleto).comCampoLivre(campoLivre); + } + + @Override + public String getCodigoBeneficiarioFormatado(Beneficiario beneficiario) { + return leftPadWithZeros(beneficiario.getCodigoBeneficiario(), 7); + } + + @Override + public String getCarteiraFormatado(Beneficiario beneficiario) { + return leftPadWithZeros(beneficiario.getCarteira(), 2); + } + + @Override + public String getNossoNumeroFormatado(Beneficiario beneficiario) { + return leftPadWithZeros(beneficiario.getNossoNumero(), 10); + } + + @Override + public String getNumeroFormatadoComDigito() { + StringBuilder builder = new StringBuilder(); + builder.append(NUMERO_BANCO_AGIPLAN).append("-"); + return builder.append(DIGITO_NUMERO_BANCO_AGIPLAN).toString(); + } + + @Override + public String getNossoNumeroComDigitoVerificador(Beneficiario beneficiario) { + return getGeradorDeDigito().calculaDVNossoNumero(getCarteiraFormatado(beneficiario)+beneficiario.getNossoNumero()); + } + + @Override + public GeradorDeDigitoBancoAgiplan getGeradorDeDigito() { + return gdivBancoAgiplan; + } + +} diff --git a/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/Bancos.java b/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/Bancos.java index eb687b568..a026d0f6f 100644 --- a/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/Bancos.java +++ b/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/Bancos.java @@ -53,6 +53,12 @@ public Banco getBanco() { public Banco getBanco() { return new BMG(); } + }, + BANCO_AGIPLAN("121", "Banco Agiplan"){ + @Override + public Banco getBanco() { + return new BancoAgiplan(); + } }; private final String numeroDoBanco; diff --git a/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/gerador/GeradorDeDigitoBancoAgiplan.java b/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/gerador/GeradorDeDigitoBancoAgiplan.java new file mode 100644 index 000000000..666ce5885 --- /dev/null +++ b/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/gerador/GeradorDeDigitoBancoAgiplan.java @@ -0,0 +1,64 @@ +package br.com.caelum.stella.boleto.bancos.gerador; + +import br.com.caelum.stella.DigitoPara; +import static br.com.caelum.stella.boleto.utils.StellaStringUtils.leftPadWithZeros; + +public class GeradorDeDigitoBancoAgiplan extends GeradorDeDigitoPadrao { + + private static final long serialVersionUID = 1L; + + @Override + public int geraDigitoBloco1(String bloco) { + return calculaDVBloco(bloco); + } + + @Override + public int geraDigitoBloco2(String bloco) { + return calculaDVBloco(bloco); + } + + @Override + public int geraDigitoBloco3(String bloco) { + return calculaDVBloco(bloco); + } + + public int calculaDVBloco(String bloco) { + int soma = 0; + for (int i = bloco.length() - 1, multiplicador = 2; i >= 0; i--, multiplicador--) { + if (multiplicador == 0) { + multiplicador = 2; + } + int parcial = Integer.parseInt(String.valueOf(bloco.charAt(i))) * multiplicador; + + if (parcial > 9) { + parcial = parcial - 9; + } + + soma += parcial; + } + + int resto = soma % 10; + if (resto == 0) { + return 0; + } else { + return 10 - resto; + } + } + + public String calculaDVNossoNumero(String nossoNumero) { + if (nossoNumero == null || nossoNumero.length() > 12) { + throw new IllegalArgumentException("Nosso Número inválido: " + nossoNumero); + } + DigitoPara digitoPara = new DigitoPara(leftPadWithZeros(nossoNumero, 12)); + int digito = Integer.parseInt(digitoPara.comMultiplicadoresDeAte(2,7) + .mod(11) + .calcula()); + + if (digito > 1) { + digito = 11-digito; + } + + return String.valueOf(digito); + } + +} diff --git a/stella-boleto/src/main/resources/br/com/caelum/stella/boleto/img/121.png b/stella-boleto/src/main/resources/br/com/caelum/stella/boleto/img/121.png new file mode 100644 index 0000000000000000000000000000000000000000..62bfc8ddad2a1d4c8e6624c82bb2ec1b68a2eca1 GIT binary patch literal 8300 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

7e@{d5O;(=>M5g0f>g8Y$T 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 Date: Thu, 7 Dec 2017 10:49:46 -0300 Subject: [PATCH 6/7] =?UTF-8?q?#11482=20-=20Elaborar=20Codifica=C3=A7?= =?UTF-8?q?=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../caelum/stella/boleto/bancos/BancoAgiplan.java | 13 +++++++------ .../stella/boleto/bancos/BancoAgiplanTest.java | 15 ++++++++------- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/BancoAgiplan.java b/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/BancoAgiplan.java index 27ec5dbcf..f29712308 100644 --- a/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/BancoAgiplan.java +++ b/stella-boleto/src/main/java/br/com/caelum/stella/boleto/bancos/BancoAgiplan.java @@ -7,14 +7,15 @@ import br.com.caelum.stella.boleto.Beneficiario; import br.com.caelum.stella.boleto.Boleto; import br.com.caelum.stella.boleto.bancos.gerador.GeradorDeDigitoBancoAgiplan; -import br.com.caelum.stella.boleto.bancos.gerador.GeradorDeDigitoSantander; -public class BancoAgiplan extends AbstractBanco{ +public class BancoAgiplan extends AbstractBanco { private static final long serialVersionUID = 1L; private static final String NUMERO_BANCO_AGIPLAN = "121"; private static final String DIGITO_NUMERO_BANCO_AGIPLAN = "1"; + private static final String COD_CEDENTE = "000000000001"; + private static final String LAYOUT = "4"; private GeradorDeDigitoBancoAgiplan gdivBancoAgiplan = new GeradorDeDigitoBancoAgiplan(); @Override @@ -33,10 +34,10 @@ public URL getImage() { public String geraCodigoDeBarrasPara(Boleto boleto) { Beneficiario beneficiario = boleto.getBeneficiario(); StringBuilder campoLivre = new StringBuilder(""); - campoLivre.append(beneficiario.getAgenciaFormatada()); - campoLivre.append(leftPadWithZeros(beneficiario.getCodigoBeneficiario(), 10)); - campoLivre.append("0"); - campoLivre.append(getNossoNumeroComDigitoVerificador(beneficiario)); + campoLivre.append(COD_CEDENTE); + campoLivre.append(boleto.getBanco().getNossoNumeroFormatado(beneficiario)); + campoLivre.append(boleto.getBanco().getCarteiraFormatado(beneficiario)); + campoLivre.append(LAYOUT); return new CodigoDeBarrasBuilder(boleto).comCampoLivre(campoLivre); } diff --git a/stella-boleto/src/test/java/br/com/caelum/stella/boleto/bancos/BancoAgiplanTest.java b/stella-boleto/src/test/java/br/com/caelum/stella/boleto/bancos/BancoAgiplanTest.java index 0d17617e7..61d75bb47 100644 --- a/stella-boleto/src/test/java/br/com/caelum/stella/boleto/bancos/BancoAgiplanTest.java +++ b/stella-boleto/src/test/java/br/com/caelum/stella/boleto/bancos/BancoAgiplanTest.java @@ -22,27 +22,28 @@ public void testLinhaDoBancoAgiplan() { Datas datas = Datas.novasDatas().comDocumento(20, 03, 2014) .comProcessamento(20, 03, 2014).comVencimento(10, 04, 2014); - this.beneficiario = Beneficiario.novoBeneficiario().comNomeBeneficiario("BANCO AGIPLAN S.A.") + this.beneficiario = Beneficiario.novoBeneficiario().comNomeBeneficiario("BANCO DO TESTE.") .comAgencia("1").comCarteira("11").comCodigoBeneficiario("1") - .comNossoNumero("1102497019").comDigitoNossoNumero("6") - .comDocumento("10664513000150").comNumeroConvenio("1"); + .comNossoNumero("0000097019").comDigitoNossoNumero("6") + .comDocumento("10004513000000").comNumeroConvenio("1"); - Pagador pagador = Pagador.novoPagador().comNome("GUSTAVO DA COSTA E SILVA JERONIMO") - .comDocumento("01891388070"); + Pagador pagador = Pagador.novoPagador().comNome("HOMEM DO TESTE") + .comDocumento("01891300000"); this.boleto = Boleto.novoBoleto().comDatas(datas).comBeneficiario(beneficiario) .comBanco(banco).comPagador(pagador).comValorBoleto(5472.9400) .comNumeroDoDocumento("1102497019").comEspecieDocumento("DS") .comAceite(false).comCodigoEspecieMoeda(9) - .comInstrucoes("SR(a) CAIXA: Receber somente em dinheiro. Preencher os campos VALOR DO DOCUMENTO e VALOR COBRADO com o valor a ser pago (valor máximo a ser pago = total desta fatura). Os encargos moratórios decorrentes do pagamento realizado após o vencimento serão cobrados na próxima fatura."); + .comInstrucoes("TESTE"); this.boleto = this.boleto.comBanco(this.banco); GeradorDeLinhaDigitavel gerador = new GeradorDeLinhaDigitavel(); String codigoDeBarras = boleto.getBanco().geraCodigoDeBarrasPara(this.boleto); - String linha = "12190.00104 00000.000109 11024.970193 2 60290000547294"; + String linha = "12190.00005 00000.010009 00970.191144 7 60290000547294"; assertEquals(linha, gerador.geraLinhaDigitavelPara(codigoDeBarras,this.banco)); } + @Test public void testGetImage() { assertNotNull(this.banco.getImage()); From 72a74f2e7cc076f034ba8fcb4d314b3233920ddd Mon Sep 17 00:00:00 2001 From: "marcio.gomes" Date: Thu, 7 Dec 2017 15:29:47 -0300 Subject: [PATCH 7/7] =?UTF-8?q?Ajustando=20teste=20para=20validar=20boleto?= =?UTF-8?q?s=20registrados=20e=20n=C3=A3o=20registrados.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../boleto/bancos/BancoAgiplanTest.java | 29 ++++++++++++++----- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/stella-boleto/src/test/java/br/com/caelum/stella/boleto/bancos/BancoAgiplanTest.java b/stella-boleto/src/test/java/br/com/caelum/stella/boleto/bancos/BancoAgiplanTest.java index 61d75bb47..49035f8a3 100644 --- a/stella-boleto/src/test/java/br/com/caelum/stella/boleto/bancos/BancoAgiplanTest.java +++ b/stella-boleto/src/test/java/br/com/caelum/stella/boleto/bancos/BancoAgiplanTest.java @@ -3,6 +3,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; +import org.junit.Before; import org.junit.Test; import br.com.caelum.stella.boleto.Beneficiario; @@ -15,11 +16,12 @@ public class BancoAgiplanTest { private Boleto boleto; private BancoAgiplan banco = new BancoAgiplan(); private Beneficiario beneficiario; + private Datas datas; + private Pagador pagador; - - @Test - public void testLinhaDoBancoAgiplan() { - Datas datas = Datas.novasDatas().comDocumento(20, 03, 2014) + @Before + public void setUp() { + this.datas = Datas.novasDatas().comDocumento(20, 03, 2014) .comProcessamento(20, 03, 2014).comVencimento(10, 04, 2014); this.beneficiario = Beneficiario.novoBeneficiario().comNomeBeneficiario("BANCO DO TESTE.") @@ -27,7 +29,7 @@ public void testLinhaDoBancoAgiplan() { .comNossoNumero("0000097019").comDigitoNossoNumero("6") .comDocumento("10004513000000").comNumeroConvenio("1"); - Pagador pagador = Pagador.novoPagador().comNome("HOMEM DO TESTE") + this.pagador = Pagador.novoPagador().comNome("HOMEM DO TESTE") .comDocumento("01891300000"); this.boleto = Boleto.novoBoleto().comDatas(datas).comBeneficiario(beneficiario) @@ -35,13 +37,26 @@ public void testLinhaDoBancoAgiplan() { .comNumeroDoDocumento("1102497019").comEspecieDocumento("DS") .comAceite(false).comCodigoEspecieMoeda(9) .comInstrucoes("TESTE"); - - this.boleto = this.boleto.comBanco(this.banco); + this.boleto = this.boleto.comBanco(this.banco); + } + + + @Test + public void testLinhaDigitavelDoBancoAgiplanBoletoRegistrado() { GeradorDeLinhaDigitavel gerador = new GeradorDeLinhaDigitavel(); String codigoDeBarras = boleto.getBanco().geraCodigoDeBarrasPara(this.boleto); String linha = "12190.00005 00000.010009 00970.191144 7 60290000547294"; assertEquals(linha, gerador.geraLinhaDigitavelPara(codigoDeBarras,this.banco)); } + + @Test + public void testLinhaDigitavelDoBancoAgiplanBoletoNaoRegistrado() { + this.boleto.comRegistrado(false); + GeradorDeLinhaDigitavel gerador = new GeradorDeLinhaDigitavel(); + String codigoDeBarras = boleto.getBanco().geraCodigoDeBarrasPara(this.boleto); + String linha = "12190.00005 00000.010009 00970.191144 5 00000000000000"; + assertEquals(linha, gerador.geraLinhaDigitavelPara(codigoDeBarras,this.banco)); + } @Test