Skip to content

Commit

Permalink
Atualização do readme e TagLayout
Browse files Browse the repository at this point in the history
  • Loading branch information
braully committed May 5, 2021
1 parent d9cfccd commit e8cbca3
Show file tree
Hide file tree
Showing 2 changed files with 70 additions and 26 deletions.
74 changes: 56 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
# JRimum: BOPEPO
> Fork por Braully Rocha
# JRimum: BOPEPO -- Fork por Braully Rocha


## Objetivos desse fork
Expand All @@ -22,23 +21,23 @@

### Suporte para remessa de boletos CNAB 240

- Febraban 240 versão 5.0 (https://portal.febraban.org.br/pagina/3053/33/pt-br/layout-240)
- Banco do Brasil 240 - 2019 (https://www.bb.com.br/docs/pub/emp/empl/dwn/CNAB240SegPQRSTY.pdf)
- Bradesco
- Caixa
- Itau
- Santander
- Sicredi
- Febraban Cnab 240 - versão 5.0 (https://portal.febraban.org.br/pagina/3053/33/pt-br/layout-240)
- Banco do Brasil Cnab 240 - 2019 (https://www.bb.com.br/docs/pub/emp/empl/dwn/CNAB240SegPQRSTY.pdf)
- Bradesco Cnab 400 - versão 15 por @EdsonIsaac (https://banco.bradesco/assets/pessoajuridica/pdf/4008-524-0121-layout-cobranca-versao-portugues.pdf)
- Caixa Cnag 240 - por @EdsonIsaac http://www.caixa.gov.br/Downloads/cobranca-caixa/Manual_de_Leiaute_de_Arquivo_Eletronico_CNAB_240.pdf
- Itaiu - Febraban Cnab 240 (necessário fazer personalizações especificas do banco)
- Santander - Febraban Cnab 240 (necessário fazer personalizações especificas do banco)
- Sicredi - Febraban Cnab 240 (necessário fazer personalizações especificas do banco)

### Suporte para retorno de boletos CNAB 240

- Febraban 240 versão 5.0 (https://portal.febraban.org.br/pagina/3053/33/pt-br/layout-240)
- Banco do Brasil 240 - 2019 (https://www.bb.com.br/docs/pub/emp/empl/dwn/CNAB240SegPQRSTY.pdf)
- Bradesco
- Caixa
- Itau
- Santander
- Sicredi
- Febraban Cnab 240 - versão 5.0 (https://portal.febraban.org.br/pagina/3053/33/pt-br/layout-240)
- Banco do Brasil Cnab 240 - 2019 (https://www.bb.com.br/docs/pub/emp/empl/dwn/CNAB240SegPQRSTY.pdf)
- Bradesco Cnab 400 - versão 15 by @EdsonIsaac (https://banco.bradesco/assets/pessoajuridica/pdf/4008-524-0121-layout-cobranca-versao-portugues.pdf)
- Caixa Cnag 240 - by @EdsonIsaac http://www.caixa.gov.br/Downloads/cobranca-caixa/Manual_de_Leiaute_de_Arquivo_Eletronico_CNAB_240.pdf
- Itau - Febraban Cnab 240 (necessário fazer personalizações especificas do banco)
- Santander - Febraban Cnab 240 (necessário fazer personalizações especificas do banco)
- Sicredi - Febraban Cnab 240 (necessário fazer personalizações especificas do banco)

### Fusão das branches

Expand Down Expand Up @@ -220,6 +219,45 @@ Saída:
```


### Criar um novo layout de remessa ou de retorno:
TODO: Documentar
### Criar um novo layout de remessa ou de retorno

```
import com.github.braully.boleto.TagLayout;
import static com.github.braully.boleto.TagLayout.TagCreator.*;
import java.text.SimpleDateFormat;
public class ExemploLayoutSimples {
/*
* Ver exemplo mais detalhado em:
* com.github.braully.boleto.LayoutsSuportados._LAYOUT_FEBRABAN_CNAB240
*/
public static void main(String... args) {
TagLayout arquivo = tag("arquivo");
arquivo.with(
tag("cabecalho").with(
//a linha de cabeçalho será ignorada
tag("branco").length(240)
),
tag("detalhe").with(
tag("codigoBanco").length(3),
//Val é usado para setar um campo literal fixo: espaçoes em branco, codigos, literais e etc
tag("branco").val(" "),
tag("codigoMoeda").val("09"),
//As tags com id são importantes pra determinar o tipo da linha no layout de retorno
tag("codigoRegistro").length(1).id(true),
tag("segmento").id(true).value("D"),
//Alguns campos podemo precisar de formatação ou parser personalizado, exemplo data
tag("dataVencimento").length(8).format(new SimpleDateFormat("ddMMyyyy"))
),
tag("rodape").with(
//a linha de rodape será ignorada
tag("branco").length(240)
)
);
//
System.out.println(arquivo);
}
}
```
22 changes: 14 additions & 8 deletions src/main/java/com/github/braully/boleto/TagLayout.java
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,7 @@ public static TagLayout fmovimentoCodigo() {
.padding(Fillers.ZERO_LEFT)
.length(2);
}

/**
* Na maioria das vezes o sacado ou o pagador é uma pessoa fisica, por
* tanto esse metodo de alias.
Expand Down Expand Up @@ -504,11 +504,11 @@ public static TagLayout flote() {
public static TagLayout fcodigoCarteira() {
return field("codigoCarteira").length(1).type(Number.class);
}

public static TagLayout fcarteira() {
return field("carteira").length(3).type(Number.class).filler(Fillers.ZERO_LEFT);
}

public static TagLayout fvalor() {
return field("valor").length(15).type(Number.class).filler(Fillers.ZERO_LEFT);
}
Expand Down Expand Up @@ -610,19 +610,19 @@ public static TagLayout fcodigoProtesto() {
public static TagLayout fcodigoBaixa() {
return field("codigoBaixa").length(1).value(2);
}

public static TagLayout fliteralRemessa() {
return field("literalRemessa").length(7).truncate(true).padding(Fillers.WHITE_SPACE_RIGHT).value("REMESSA");
}

public static TagLayout fliteralRetorno() {
return field("literalRetorno").length(7).truncate(true).padding(Fillers.WHITE_SPACE_RIGHT).value("RETORNO");
}

public static TagLayout fliteralServico() {
return field("literalServico").length(15).truncate(true).padding(Fillers.WHITE_SPACE_RIGHT).value("COBRANCA");
}

public static TagLayout fnumeroDocumento() {
return field("numeroDocumento").type(Number.class).padding(Fillers.ZERO_LEFT);
}
Expand Down Expand Up @@ -978,7 +978,7 @@ public static TagLayout detalheSegmentoR(TagLayout... filhos) {
public static TagLayout detalhe(TagLayout... filhos) {
return tagin().with(filhos);
}

public static TagLayout rodape(TagLayout... filhos) {
return tagin().with(filhos);
}
Expand Down Expand Up @@ -1145,6 +1145,12 @@ public TagLayout valLen(String val) {
return this;
}

public TagLayout val(String val) {
this.value(val);
this.length(val.length());
return this;
}

public TagLayout id(boolean bol) {
return setAttr(bol);
}
Expand Down

0 comments on commit e8cbca3

Please sign in to comment.