cnab240 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +2 -2
- data/cnab240.gemspec +10 -12
- data/lib/cnab240.rb +108 -91
- data/lib/cnab240/arquivo/arquivo.rb +6 -9
- data/lib/cnab240/arquivo/builder.rb +111 -90
- data/lib/cnab240/arquivo/estrutura.rb +161 -99
- data/lib/cnab240/arquivo/v40/header.rb +27 -29
- data/lib/cnab240/arquivo/v40/trailer.rb +8 -10
- data/lib/cnab240/arquivo/v60/header.rb +38 -0
- data/lib/cnab240/arquivo/v60/trailer.rb +17 -0
- data/lib/cnab240/arquivo/v80/header.rb +23 -26
- data/lib/cnab240/arquivo/v80/trailer.rb +8 -9
- data/lib/cnab240/arquivo/v81/header.rb +37 -0
- data/lib/cnab240/arquivo/v81/trailer.rb +17 -0
- data/lib/cnab240/arquivo/v83/header.rb +25 -26
- data/lib/cnab240/arquivo/v83/trailer.rb +9 -9
- data/lib/cnab240/arquivo/v86/header.rb +25 -26
- data/lib/cnab240/arquivo/v86/trailer.rb +9 -10
- data/lib/cnab240/arquivo/v87/header.rb +25 -26
- data/lib/cnab240/arquivo/v87/trailer.rb +9 -10
- data/lib/cnab240/ext/attribute_accessors.rb +4 -4
- data/lib/cnab240/ext/bindata.rb +4 -4
- data/lib/cnab240/ext/default_mixin.rb +2 -4
- data/lib/cnab240/ext/filler.rb +1 -3
- data/lib/cnab240/ext/lstring.rb +9 -10
- data/lib/cnab240/ext/segmento_mixin.rb +1 -3
- data/lib/cnab240/helper/boleto_bancoob.rb +60 -0
- data/lib/cnab240/helper/helper.rb +1 -1
- data/lib/cnab240/helper/pagamento_bb.rb +7 -9
- data/lib/cnab240/helper/pagamento_bradesco.rb +6 -8
- data/lib/cnab240/helper/pagamento_itau.rb +6 -8
- data/lib/cnab240/helper/transferencia_citibank.rb +56 -0
- data/lib/cnab240/helper/{pagamento_sicoob.rb → transferencia_sicoob.rb} +8 -15
- data/lib/cnab240/{arquivo/lote.rb → lote.rb} +29 -14
- data/lib/cnab240/lote/v40/boletos/header.rb +46 -0
- data/lib/cnab240/lote/v40/boletos/trailer.rb +29 -0
- data/lib/cnab240/pagamentos/v40/header.rb +30 -32
- data/lib/cnab240/pagamentos/v40/trailer.rb +10 -11
- data/lib/cnab240/pagamentos/v60/header.rb +43 -0
- data/lib/cnab240/pagamentos/v60/trailer.rb +17 -0
- data/lib/cnab240/pagamentos/v80/header.rb +35 -37
- data/lib/cnab240/pagamentos/v80/trailer.rb +10 -11
- data/lib/cnab240/pagamentos/v83/header.rb +33 -35
- data/lib/cnab240/pagamentos/v83/trailer.rb +11 -12
- data/lib/cnab240/pagamentos/v86/header.rb +34 -36
- data/lib/cnab240/pagamentos/v86/titulos/header.rb +28 -30
- data/lib/cnab240/pagamentos/v86/titulos/trailer.rb +11 -12
- data/lib/cnab240/pagamentos/v86/trailer.rb +11 -12
- data/lib/cnab240/pagamentos/v86/tributos/header.rb +35 -37
- data/lib/cnab240/pagamentos/v86/tributos/trailer.rb +9 -10
- data/lib/cnab240/pagamentos/v87/header.rb +34 -36
- data/lib/cnab240/pagamentos/v87/titulos/header.rb +28 -30
- data/lib/cnab240/pagamentos/v87/titulos/trailer.rb +11 -12
- data/lib/cnab240/pagamentos/v87/trailer.rb +11 -12
- data/lib/cnab240/pagamentos/v87/tributos/header.rb +35 -37
- data/lib/cnab240/pagamentos/v87/tributos/trailer.rb +9 -10
- data/lib/cnab240/segmentos/v40/segmento_a.rb +40 -41
- data/lib/cnab240/segmentos/v60/segmento_a.rb +43 -0
- data/lib/cnab240/segmentos/v60/segmento_b.rb +38 -0
- data/lib/cnab240/segmentos/v60/segmento_j.rb +32 -0
- data/lib/cnab240/segmentos/v80/agencia_itau.rb +8 -9
- data/lib/cnab240/segmentos/v80/agencia_outros.rb +6 -7
- data/lib/cnab240/segmentos/v80/segmento_a.rb +30 -32
- data/lib/cnab240/segmentos/v81/segmento_p.rb +79 -0
- data/lib/cnab240/segmentos/v81/segmento_q.rb +36 -0
- data/lib/cnab240/segmentos/v81/segmento_r.rb +49 -0
- data/lib/cnab240/segmentos/v81/segmento_s.rb +37 -0
- data/lib/cnab240/segmentos/v83/segmento_a.rb +35 -36
- data/lib/cnab240/segmentos/v83/segmento_b.rb +33 -34
- data/lib/cnab240/segmentos/v83/segmento_j.rb +22 -23
- data/lib/cnab240/segmentos/v83/segmento_z.rb +10 -11
- data/lib/cnab240/segmentos/v86/segmento_a.rb +37 -38
- data/lib/cnab240/segmentos/v86/segmento_b.rb +33 -34
- data/lib/cnab240/segmentos/v86/segmento_c.rb +19 -20
- data/lib/cnab240/segmentos/v86/segmento_j.rb +22 -23
- data/lib/cnab240/segmentos/v86/segmento_j52.rb +19 -20
- data/lib/cnab240/segmentos/v86/segmento_n.rb +17 -18
- data/lib/cnab240/segmentos/v86/segmento_n1.rb +10 -11
- data/lib/cnab240/segmentos/v86/segmento_n2.rb +12 -13
- data/lib/cnab240/segmentos/v86/segmento_n3.rb +12 -13
- data/lib/cnab240/segmentos/v86/segmento_n4.rb +14 -15
- data/lib/cnab240/segmentos/v86/segmento_n5.rb +12 -13
- data/lib/cnab240/segmentos/v86/segmento_n6.rb +12 -13
- data/lib/cnab240/segmentos/v86/segmento_n7.rb +13 -14
- data/lib/cnab240/segmentos/v86/segmento_n8.rb +12 -14
- data/lib/cnab240/segmentos/v86/segmento_o.rb +17 -18
- data/lib/cnab240/segmentos/v86/segmento_w.rb +12 -13
- data/lib/cnab240/segmentos/v86/segmento_w1.rb +9 -10
- data/lib/cnab240/segmentos/v86/segmento_z.rb +10 -11
- data/lib/cnab240/segmentos/v87/segmento_a.rb +37 -38
- data/lib/cnab240/segmentos/v87/segmento_b.rb +33 -34
- data/lib/cnab240/segmentos/v87/segmento_c.rb +19 -20
- data/lib/cnab240/segmentos/v87/segmento_j.rb +22 -23
- data/lib/cnab240/segmentos/v87/segmento_j52.rb +19 -20
- data/lib/cnab240/segmentos/v87/segmento_n.rb +17 -18
- data/lib/cnab240/segmentos/v87/segmento_n1.rb +10 -11
- data/lib/cnab240/segmentos/v87/segmento_n2.rb +12 -13
- data/lib/cnab240/segmentos/v87/segmento_n3.rb +12 -13
- data/lib/cnab240/segmentos/v87/segmento_n4.rb +14 -15
- data/lib/cnab240/segmentos/v87/segmento_n5.rb +12 -13
- data/lib/cnab240/segmentos/v87/segmento_n6.rb +12 -13
- data/lib/cnab240/segmentos/v87/segmento_n7.rb +13 -14
- data/lib/cnab240/segmentos/v87/segmento_n8.rb +12 -14
- data/lib/cnab240/segmentos/v87/segmento_o.rb +17 -18
- data/lib/cnab240/segmentos/v87/segmento_w.rb +12 -13
- data/lib/cnab240/segmentos/v87/segmento_w1.rb +9 -10
- data/lib/cnab240/segmentos/v87/segmento_z.rb +10 -11
- data/lib/cnab240/version.rb +1 -1
- metadata +30 -40
@@ -1,15 +1,14 @@
|
|
1
1
|
module Cnab240::V80
|
2
2
|
class AgenciaItau < BinData::Record
|
3
|
-
|
4
3
|
include Cnab240::DefaultMixin
|
5
4
|
include Cnab240::SegmentoMixin
|
6
5
|
|
7
|
-
lstring :zeros_1, :
|
8
|
-
lstring :favorecido_agencia, :
|
9
|
-
string :brancos_1, :
|
10
|
-
lstring :zeros_2, :
|
11
|
-
lstring :favorecido_conta, :
|
12
|
-
string :brancos_2, :
|
13
|
-
lstring :favorecido_agencia_conta_dv, :
|
6
|
+
lstring :zeros_1, length: 1, pad_byte: '0'
|
7
|
+
lstring :favorecido_agencia, length: 4, pad_byte: '0'
|
8
|
+
string :brancos_1, length: 1, pad_byte: ' '
|
9
|
+
lstring :zeros_2, length: 6, pad_byte: '0'
|
10
|
+
lstring :favorecido_conta, length: 6, pad_byte: '0'
|
11
|
+
string :brancos_2, length: 1, pad_byte: ' '
|
12
|
+
lstring :favorecido_agencia_conta_dv, length: 1, pad_byte: '0'
|
14
13
|
end
|
15
|
-
end
|
14
|
+
end
|
@@ -1,13 +1,12 @@
|
|
1
1
|
module Cnab240::V80
|
2
2
|
class AgenciaOutros < BinData::Record
|
3
|
-
|
4
3
|
include Cnab240::DefaultMixin
|
5
4
|
include Cnab240::SegmentoMixin
|
6
5
|
|
7
|
-
lstring :favorecido_agencia, :
|
8
|
-
string :brancos_1, :
|
9
|
-
lstring :favorecido_conta, :
|
10
|
-
string :agencia_conta_complemento, :
|
11
|
-
lstring :favorecido_agencia_conta_dv, :
|
6
|
+
lstring :favorecido_agencia, length: 5, pad_byte: '0'
|
7
|
+
string :brancos_1, length: 1, pad_byte: ' '
|
8
|
+
lstring :favorecido_conta, length: 12, pad_byte: '0'
|
9
|
+
string :agencia_conta_complemento, length: 1, pad_byte: ' '
|
10
|
+
lstring :favorecido_agencia_conta_dv, length: 1, pad_byte: '0'
|
12
11
|
end
|
13
|
-
end
|
12
|
+
end
|
@@ -1,50 +1,49 @@
|
|
1
1
|
module Cnab240::V80
|
2
2
|
class SegmentoA < BinData::Record
|
3
|
-
|
4
3
|
include Cnab240::DefaultMixin
|
5
4
|
include Cnab240::SegmentoMixin
|
6
5
|
|
7
|
-
lstring :controle_banco, :
|
8
|
-
lstring :controle_lote, :
|
9
|
-
string :controle_registro, :
|
6
|
+
lstring :controle_banco, length: 3, pad_byte: '0'
|
7
|
+
lstring :controle_lote, length: 4, pad_byte: '0'
|
8
|
+
string :controle_registro, length: 1, initial_value: '3', pad_byte: '0'
|
10
9
|
|
11
|
-
lstring :servico_numero_registro, :
|
12
|
-
string :servico_codigo_segmento, :
|
13
|
-
lstring :servico_tipo_movimento, :
|
14
|
-
lstring :zeros_1, :
|
10
|
+
lstring :servico_numero_registro, length: 5, pad_byte: '0'
|
11
|
+
string :servico_codigo_segmento, length: 1, initial_value: 'A', pad_byte: ' '
|
12
|
+
lstring :servico_tipo_movimento, length: 3, pad_byte: '0'
|
13
|
+
lstring :zeros_1, length: 3, pad_byte: '0'
|
15
14
|
|
16
|
-
lstring :favorecido_banco, :
|
15
|
+
lstring :favorecido_banco, length: 3, pad_byte: '0'
|
17
16
|
|
18
|
-
choice :favorecido_agencia_conta, :
|
19
|
-
string 0, :
|
17
|
+
choice :favorecido_agencia_conta, selection: :get_favorecido_agencia_conta do
|
18
|
+
string 0, length: 20, pad_byte: ' '
|
20
19
|
agencia_itau 1
|
21
20
|
agencia_outros 2
|
22
21
|
end
|
23
22
|
|
24
|
-
string :favorecido_nome, :
|
25
|
-
string :credito_seu_numero, :
|
26
|
-
lstring :credito_data_pagamento, :
|
23
|
+
string :favorecido_nome, length: 30, pad_byte: ' '
|
24
|
+
string :credito_seu_numero, length: 20, pad_byte: ' '
|
25
|
+
lstring :credito_data_pagamento, length: 8, pad_byte: '0'
|
27
26
|
|
28
|
-
string :credito_moeda_tipo, :
|
27
|
+
string :credito_moeda_tipo, length: 3, pad_byte: ' '
|
29
28
|
|
30
|
-
lstring :zeros_2, :
|
31
|
-
lstring :credito_valor_pagamento, :
|
32
|
-
string :credito_nosso_numero, :
|
33
|
-
string :brancos_1, :
|
29
|
+
lstring :zeros_2, length: 15, pad_byte: '0'
|
30
|
+
lstring :credito_valor_pagamento, length: 15, pad_byte: '0'
|
31
|
+
string :credito_nosso_numero, length: 15, pad_byte: ' '
|
32
|
+
string :brancos_1, length: 5, pad_byte: ' '
|
34
33
|
|
35
|
-
lstring :credito_data_real, :
|
36
|
-
lstring :credito_valor_real, :
|
34
|
+
lstring :credito_data_real, length: 8, pad_byte: '0'
|
35
|
+
lstring :credito_valor_real, length: 15, pad_byte: '0'
|
37
36
|
|
38
|
-
string :finalidade_detalhe, :
|
39
|
-
string :brancos_2, :
|
37
|
+
string :finalidade_detalhe, length: 18, pad_byte: ' '
|
38
|
+
string :brancos_2, length: 2, pad_byte: ' '
|
40
39
|
|
41
|
-
lstring :numero_documento, :
|
42
|
-
string :numero_inscricao, :
|
43
|
-
string :codigo_finalidade_complementar, :
|
44
|
-
string :finalidade_ted, :
|
45
|
-
string :brancos_3, :
|
46
|
-
lstring :aviso, :
|
47
|
-
string :ocorrencias, :
|
40
|
+
lstring :numero_documento, length: 6, pad_byte: '0'
|
41
|
+
string :numero_inscricao, length: 14, pad_byte: ' '
|
42
|
+
string :codigo_finalidade_complementar, length: 2, pad_byte: ' '
|
43
|
+
string :finalidade_ted, length: 5, pad_byte: ' '
|
44
|
+
string :brancos_3, length: 5, pad_byte: ' '
|
45
|
+
lstring :aviso, length: 1, pad_byte: ' '
|
46
|
+
string :ocorrencias, length: 10, pad_byte: ' '
|
48
47
|
|
49
48
|
def get_favorecido_agencia_conta
|
50
49
|
case favorecido_banco
|
@@ -56,6 +55,5 @@ module Cnab240::V80
|
|
56
55
|
return 2
|
57
56
|
end
|
58
57
|
end
|
59
|
-
|
60
58
|
end
|
61
|
-
end
|
59
|
+
end
|
@@ -0,0 +1,79 @@
|
|
1
|
+
module Cnab240
|
2
|
+
module V81
|
3
|
+
class SegmentoP < BinData::Record
|
4
|
+
include Cnab240::DefaultMixin
|
5
|
+
include Cnab240::SegmentoMixin
|
6
|
+
|
7
|
+
lstring :controle_banco, length: 3, pad_byte: '0'
|
8
|
+
lstring :controle_lote, length: 4, pad_byte: '0'
|
9
|
+
string :controle_registro, length: 1, initial_value: '3', pad_byte: '0'
|
10
|
+
|
11
|
+
lstring :servico_numero_registro, length: 5, pad_byte: '0'
|
12
|
+
string :servico_codigo_segmento, length: 1, initial_value: 'P', pad_byte: ' '
|
13
|
+
lstring :servico_tipo_movimento, length: 1, pad_byte: ' '
|
14
|
+
lstring :servico_codigo_movimento, length: 2, pad_byte: '0'
|
15
|
+
|
16
|
+
lstring :beneficiario_agencia_codigo, length: 5, pad_byte: '0'
|
17
|
+
string :beneficiario_agencia_dv, length: 1, pad_byte: ' '
|
18
|
+
lstring :beneficiario_conta_numero, length: 12, pad_byte: '0'
|
19
|
+
string :beneficiario_conta_dv, length: 1, pad_byte: ' '
|
20
|
+
string :beneficiario_agencia_conta_dv, length: 1, pad_byte: ' '
|
21
|
+
|
22
|
+
# Nosso Número:
|
23
|
+
# - Se emissão a cargo do Sicoob: Brancos
|
24
|
+
# lstring :nosso_numero, length: 20, pad_byte: ' '
|
25
|
+
|
26
|
+
# - Se emissão a cargo do Cedente:
|
27
|
+
# NumTitulo - 10 posições (1 a 10)
|
28
|
+
# Parcela - 02 posições (11 a 12) - "01" se parcela única
|
29
|
+
# Modalidade - 02 posições (13 a 14) - vide planilha "Capa" deste arquivo
|
30
|
+
# Tipo Formulário - 01 posição (15 a 15):
|
31
|
+
# "1" -auto-copiativo
|
32
|
+
# "3" -auto-envelopável
|
33
|
+
# "4" -A4 sem envelopamento
|
34
|
+
# "6" -A4 sem envelopamento 3 vias
|
35
|
+
# Em branco - 05 posições (16 a 20)
|
36
|
+
lstring :nosso_numero, length: 10, pad_byte: '0'
|
37
|
+
lstring :parcela, length: 2, pad_byte: '0'
|
38
|
+
lstring :modalidade, length: 2, pad_byte: '0'
|
39
|
+
lstring :tipo_formulario, length: 1, pad_byte: '0'
|
40
|
+
lstring :brancos, length: 5, pad_byte: ' '
|
41
|
+
|
42
|
+
lstring :codigo_carteira, length: 1, pad_byte: '0'
|
43
|
+
lstring :forma_cadastro, length: 1, initial_value: '0', pad_byte: '0'
|
44
|
+
string :tipo_documento, length: 1, pad_byte: ' '
|
45
|
+
string :emissao_boleto, length: 1, initial_value: '2', pad_byte: '0' #'1'= Sicoob Emite, '2' = Cedente Emite
|
46
|
+
string :distribuicao_boleto, length: 1, initial_value: '2', pad_byte: '0' #'1' = Sicoob Distribui, '2' = Cedente Distribui
|
47
|
+
string :numero_documento, length: 15, pad_byte: ' '
|
48
|
+
lstring :data_vencimento, length: 8, pad_byte: '0'
|
49
|
+
lstring :valor, length: 15, pad_byte: '0'
|
50
|
+
lstring :agencia_cobradora, length: 5, pad_byte: '0'
|
51
|
+
string :agencia_cobradora_dv, length: 1, pad_byte: ' '
|
52
|
+
lstring :especie_titulo, length: 2, pad_byte: '0'
|
53
|
+
string :aceite, length: 1, initial_value: 'N' #'A' = Aceite, 'N' = Não Aceite
|
54
|
+
lstring :data_emissao, length: 8, pad_byte: '0'
|
55
|
+
|
56
|
+
lstring :juros_mora, length: 1, pad_byte: '0' #'1'= Valor por Dia, '2' = Taxa Mensal, '3' = Isento
|
57
|
+
lstring :data_juros_mora, length: 8, pad_byte: '0'
|
58
|
+
lstring :valor_juros_mora, length: 15, pad_byte: '0'
|
59
|
+
|
60
|
+
lstring :codigo_desconto_1, length: 1, pad_byte: '0' #'1'= Valor Fixo Até a Data Informada, '2'= Percentual Até a Data Informada
|
61
|
+
lstring :data_desconto_1, length: 8, pad_byte: '0'
|
62
|
+
lstring :valor_desconto_1, length: 15, pad_byte: '0'
|
63
|
+
|
64
|
+
lstring :valor_iof, length: 15, pad_byte: '0'
|
65
|
+
lstring :valor_abatimento, length: 15, pad_byte: '0'
|
66
|
+
|
67
|
+
lstring :identificacao_beneficiario, length: 25, pad_byte: ' '
|
68
|
+
|
69
|
+
lstring :codigo_protesto, length: 1, initial_value: '1', pad_byte: '0'
|
70
|
+
lstring :dias_protesto, length: 2, pad_byte: '0'
|
71
|
+
lstring :codigo_baixa, length: 1, initial_value: '0', pad_byte: '0'
|
72
|
+
lstring :dias_baixa, length: 3, pad_byte: ' '
|
73
|
+
|
74
|
+
lstring :moeda, length: 2, initial_value: '09', pad_byte: '0' #'02' = Dólar, '09' = Real
|
75
|
+
lstring :contrato_operacao_credito, length: 10, pad_byte: '0'
|
76
|
+
string :cnab_g004_1, length: 1, pad_byte: ' '
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
module Cnab240
|
2
|
+
module V81
|
3
|
+
class SegmentoQ < BinData::Record
|
4
|
+
include Cnab240::DefaultMixin
|
5
|
+
include Cnab240::SegmentoMixin
|
6
|
+
|
7
|
+
lstring :controle_banco, length: 3, pad_byte: '0'
|
8
|
+
lstring :controle_lote, length: 4, pad_byte: '0'
|
9
|
+
string :controle_registro, length: 1, initial_value: '3', pad_byte: '0'
|
10
|
+
|
11
|
+
lstring :servico_numero_registro, length: 5, pad_byte: '0'
|
12
|
+
string :servico_codigo_segmento, length: 1, initial_value: 'Q', pad_byte: ' '
|
13
|
+
lstring :servico_tipo_movimento, length: 1, pad_byte: ' '
|
14
|
+
lstring :servico_codigo_movimento, length: 2, pad_byte: '0'
|
15
|
+
|
16
|
+
lstring :pagador_inscricao_tipo, length: 1, pad_byte: '0' #'1'= CPF, '2'= CGC/CNPJ
|
17
|
+
lstring :pagador_inscricao_numero, length: 15, pad_byte: '0'
|
18
|
+
string :pagador_nome, length: 40, pad_byte: ' '
|
19
|
+
string :pagador_endereco_logradouro, length: 40, pad_byte: ' '
|
20
|
+
string :pagador_endereco_bairro, length: 15, pad_byte: ' '
|
21
|
+
lstring :pagador_endereco_cep, length: 5, pad_byte: '0'
|
22
|
+
string :pagador_endereco_cep_complemento, length: 3, pad_byte: '0'
|
23
|
+
string :pagador_endereco_cidade, length: 15, pad_byte: ' '
|
24
|
+
string :pagador_endereco_estado, length: 2, pad_byte: ' '
|
25
|
+
|
26
|
+
lstring :avalista_inscricao_tipo, length: 1, pad_byte: '0' #'1'= CPF, '2'= CGC/CNPJ
|
27
|
+
lstring :avalista_inscricao_numero, length: 15, pad_byte: '0'
|
28
|
+
string :avalista_nome, length: 40, pad_byte: ' '
|
29
|
+
|
30
|
+
string :banco_correspondente, length: 3, pad_byte: '0'
|
31
|
+
string :banco_correspondente_nosso_numero, length: 20, pad_byte: ' '
|
32
|
+
|
33
|
+
string :cnab_g004_1, length: 8, pad_byte: ' '
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
module Cnab240
|
2
|
+
module V81
|
3
|
+
class SegmentoR < BinData::Record
|
4
|
+
include Cnab240::DefaultMixin
|
5
|
+
include Cnab240::SegmentoMixin
|
6
|
+
|
7
|
+
lstring :controle_banco, length: 3, pad_byte: '0'
|
8
|
+
lstring :controle_lote, length: 4, pad_byte: '0'
|
9
|
+
string :controle_registro, length: 1, initial_value: '3', pad_byte: '0'
|
10
|
+
|
11
|
+
lstring :servico_numero_registro, length: 5, pad_byte: '0'
|
12
|
+
string :servico_codigo_segmento, length: 1, initial_value: 'R', pad_byte: ' '
|
13
|
+
lstring :servico_tipo_movimento, length: 1, pad_byte: ' '
|
14
|
+
lstring :servico_codigo_movimento, length: 2, pad_byte: '0'
|
15
|
+
|
16
|
+
lstring :codigo_desconto_2, length: 1, pad_byte: '0' #'1'= Valor Fixo Até a Data Informada, '2'= Percentual Até a Data Informada
|
17
|
+
lstring :data_desconto_2, length: 8, pad_byte: '0'
|
18
|
+
lstring :valor_desconto_2, length: 15, pad_byte: '0'
|
19
|
+
lstring :codigo_desconto_3, length: 1, pad_byte: '0' #'1'= Valor Fixo Até a Data Informada, '2'= Percentual Até a Data Informada
|
20
|
+
lstring :data_desconto_3, length: 8, pad_byte: '0'
|
21
|
+
lstring :valor_desconto_3, length: 15, pad_byte: '0'
|
22
|
+
lstring :codigo_multa, length: 1, pad_byte: '0' #'1'= Valor Fixo, '2'= Percentual
|
23
|
+
lstring :data_multa, length: 8, pad_byte: '0'
|
24
|
+
lstring :valor_multa, length: 15, pad_byte: '0'
|
25
|
+
string :informacao_pagador, length: 10, pad_byte: ' '
|
26
|
+
|
27
|
+
# Mensagem 3 e 4: Texto de observações destinado ao envio de mensagens livres,
|
28
|
+
# a serem impressas no campo de instruções da ficha de compensação do bloqueto.
|
29
|
+
# As Mensagens 3 e 4 prevalecem sobre as mensagens 1 e 2.
|
30
|
+
string :informacao_3, length: 40, pad_byte: ' '
|
31
|
+
string :informacao_4, length: 40, pad_byte: ' '
|
32
|
+
|
33
|
+
string :cnab_g004_1, length: 20, pad_byte: ' '
|
34
|
+
lstring :codigo_ocorrencia_pagador, length: 8, pad_byte: '0'
|
35
|
+
|
36
|
+
lstring :banco_codigo_debito, length: 3, pad_byte: '0'
|
37
|
+
|
38
|
+
lstring :agencia_codigo_debito, length: 5, pad_byte: '0'
|
39
|
+
string :agencia_dv_debito, length: 1, pad_byte: ' '
|
40
|
+
lstring :conta_numero_debito, length: 12, pad_byte: '0'
|
41
|
+
string :conta_dv_debito, length: 1, pad_byte: ' '
|
42
|
+
string :agencia_conta_dv_debito, length: 1, pad_byte: ' '
|
43
|
+
|
44
|
+
string :aviso_debito_automatico, length: 1, pad_byte: '0'
|
45
|
+
|
46
|
+
string :cnab_g004_2, length: 9, pad_byte: ' '
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module Cnab240
|
2
|
+
module V81
|
3
|
+
class SegmentoS < BinData::Record
|
4
|
+
include Cnab240::DefaultMixin
|
5
|
+
include Cnab240::SegmentoMixin
|
6
|
+
|
7
|
+
lstring :controle_banco, length: 3, pad_byte: '0'
|
8
|
+
lstring :controle_lote, length: 4, pad_byte: '0'
|
9
|
+
string :controle_registro, length: 1, initial_value: '3', pad_byte: '0'
|
10
|
+
|
11
|
+
lstring :servico_numero_registro, length: 5, pad_byte: '0'
|
12
|
+
string :servico_codigo_segmento, length: 1, initial_value: 'S', pad_byte: ' '
|
13
|
+
lstring :servico_tipo_movimento, length: 1, pad_byte: ' '
|
14
|
+
lstring :servico_codigo_movimento, length: 2, pad_byte: '0'
|
15
|
+
|
16
|
+
# '1' = Frente do Bloqueto, '2' = Verso do Bloqueto, '3' = Corpo de Instruções da Ficha de Compensação do Boleto
|
17
|
+
lstring :tipo_impressao, length: 1, pad_byte: '0'
|
18
|
+
|
19
|
+
# Tipo 1 ou 2
|
20
|
+
# lstring :numero_linha, length: 2, pad_byte: '0'
|
21
|
+
# string :mensagem, length: 40, pad_byte: ' '
|
22
|
+
# lstring :tipo_caracter, length: 2, pad_byte: '0'
|
23
|
+
# string :cnab_g004_1, length: 78, pad_byte: ' '
|
24
|
+
|
25
|
+
# Tipo 3
|
26
|
+
# Texto de observações destinado ao envio de mensagens livres,
|
27
|
+
# a serem impressas no campo de instruções da ficha de compensação do bloqueto.
|
28
|
+
# As mensagens 5 à 9 prevalecem sobre as anteriores
|
29
|
+
string :informacao_5, length: 40, pad_byte: ' '
|
30
|
+
string :informacao_6, length: 40, pad_byte: ' '
|
31
|
+
string :informacao_7, length: 40, pad_byte: ' '
|
32
|
+
string :informacao_8, length: 40, pad_byte: ' '
|
33
|
+
string :informacao_9, length: 40, pad_byte: ' '
|
34
|
+
string :cnab_g004_1, length: 22, pad_byte: ' '
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -1,42 +1,41 @@
|
|
1
1
|
module Cnab240::V83
|
2
2
|
class SegmentoA < BinData::Record
|
3
|
-
|
4
3
|
include Cnab240::DefaultMixin
|
5
4
|
include Cnab240::SegmentoMixin
|
6
5
|
|
7
|
-
lstring :controle_banco, :
|
8
|
-
lstring :controle_lote, :
|
9
|
-
string :controle_registro, :
|
10
|
-
|
11
|
-
lstring :servico_numero_registro, :
|
12
|
-
string :servico_codigo_segmento, :
|
13
|
-
lstring :servico_tipo_movimento, :
|
14
|
-
lstring :servico_codigo_movimento, :
|
15
|
-
|
16
|
-
lstring :favorecido_camara, :
|
17
|
-
lstring :favorecido_banco, :
|
18
|
-
lstring :favorecido_agencia_codigo, :
|
19
|
-
string :favorecido_agencia_dv, :
|
20
|
-
lstring :favorecido_conta_numero, :
|
21
|
-
string :favorecido_conta_dv, :
|
22
|
-
string :favorecido_agencia_conta_dv, :
|
23
|
-
string :favorecido_nome, :
|
24
|
-
|
25
|
-
string :credito_seu_numero, :
|
26
|
-
lstring :credito_data_pagamento, :
|
27
|
-
string :credito_moeda_tipo, :
|
28
|
-
lstring :credito_moeda_quantidade, :
|
29
|
-
lstring :credito_valor_pagamento, :
|
30
|
-
string :credito_nosso_numero, :
|
31
|
-
lstring :credito_data_real, :
|
32
|
-
lstring :credito_valor_real, :
|
33
|
-
|
34
|
-
string :informacao_2, :
|
35
|
-
|
36
|
-
string :codigo_finalidade_doc, :
|
37
|
-
|
38
|
-
string :cnab_g004_1, :
|
39
|
-
lstring :aviso, :
|
40
|
-
string :ocorrencias, :
|
6
|
+
lstring :controle_banco, length: 3, pad_byte: '0'
|
7
|
+
lstring :controle_lote, length: 4, pad_byte: '0'
|
8
|
+
string :controle_registro, length: 1, initial_value: '3', pad_byte: '0'
|
9
|
+
|
10
|
+
lstring :servico_numero_registro, length: 5, pad_byte: '0'
|
11
|
+
string :servico_codigo_segmento, length: 1, initial_value: 'A', pad_byte: ' '
|
12
|
+
lstring :servico_tipo_movimento, length: 1, pad_byte: '0'
|
13
|
+
lstring :servico_codigo_movimento, length: 2, pad_byte: '0'
|
14
|
+
|
15
|
+
lstring :favorecido_camara, length: 3, pad_byte: '0'
|
16
|
+
lstring :favorecido_banco, length: 3, pad_byte: '0'
|
17
|
+
lstring :favorecido_agencia_codigo, length: 5, pad_byte: '0'
|
18
|
+
string :favorecido_agencia_dv, length: 1, pad_byte: ' '
|
19
|
+
lstring :favorecido_conta_numero, length: 12, pad_byte: '0'
|
20
|
+
string :favorecido_conta_dv, length: 1, pad_byte: ' '
|
21
|
+
string :favorecido_agencia_conta_dv, length: 1, pad_byte: ' '
|
22
|
+
string :favorecido_nome, length: 30, pad_byte: ' '
|
23
|
+
|
24
|
+
string :credito_seu_numero, length: 20, pad_byte: ' '
|
25
|
+
lstring :credito_data_pagamento, length: 8, pad_byte: '0'
|
26
|
+
string :credito_moeda_tipo, length: 3, pad_byte: ' '
|
27
|
+
lstring :credito_moeda_quantidade, length: 15, pad_byte: '0'
|
28
|
+
lstring :credito_valor_pagamento, length: 15, pad_byte: '0'
|
29
|
+
string :credito_nosso_numero, length: 20, pad_byte: ' '
|
30
|
+
lstring :credito_data_real, length: 8, pad_byte: '0'
|
31
|
+
lstring :credito_valor_real, length: 15, pad_byte: '0'
|
32
|
+
|
33
|
+
string :informacao_2, length: 40, pad_byte: ' '
|
34
|
+
|
35
|
+
string :codigo_finalidade_doc, length: 2, pad_byte: ' '
|
36
|
+
|
37
|
+
string :cnab_g004_1, length: 10, pad_byte: ' '
|
38
|
+
lstring :aviso, length: 1, pad_byte: ' '
|
39
|
+
string :ocorrencias, length: 10, pad_byte: ' '
|
41
40
|
end
|
42
|
-
end
|
41
|
+
end
|
@@ -1,40 +1,39 @@
|
|
1
1
|
module Cnab240::V83
|
2
2
|
class SegmentoB < BinData::Record
|
3
|
-
|
4
3
|
include Cnab240::DefaultMixin
|
5
4
|
include Cnab240::SegmentoMixin
|
6
5
|
|
7
|
-
lstring :controle_banco, :
|
8
|
-
lstring :controle_lote, :
|
9
|
-
lstring :controle_registro, :
|
10
|
-
|
11
|
-
lstring :servico_numero_registro, :
|
12
|
-
string :servico_codigo_segmento, :
|
13
|
-
|
14
|
-
string :cnab240_g004_1, :
|
15
|
-
|
16
|
-
lstring :favorecido_inscricao_tipo, :
|
17
|
-
lstring :favorecido_inscricao_numero, :
|
18
|
-
string :favorecido_endereco_logradouro, :
|
19
|
-
lstring :favorecido_endereco_numero, :
|
20
|
-
string :favorecido_endereco_complemento, :
|
21
|
-
string :favorecido_endereco_bairro, :
|
22
|
-
string :favorecido_endereco_cidade, :
|
23
|
-
lstring :favorecido_endereco_cep, :
|
24
|
-
string :favorecido_endereco_estado, :
|
25
|
-
|
26
|
-
lstring :pagamento_data_vencimento, :
|
27
|
-
lstring :pagamento_valor_documento, :
|
28
|
-
lstring :pagamento_valor_abatimento, :
|
29
|
-
lstring :pagamento_valor_desconto, :
|
30
|
-
lstring :pagamento_valor_mora, :
|
31
|
-
lstring :pagamento_valor_multa, :
|
32
|
-
|
33
|
-
string :time_of_ted_remittence, :
|
34
|
-
string :filler, :
|
35
|
-
string :historic_code, :
|
36
|
-
|
37
|
-
lstring :aviso, :
|
38
|
-
lstring :accurence_of_return, :
|
6
|
+
lstring :controle_banco, length: 3, pad_byte: '0'
|
7
|
+
lstring :controle_lote, length: 4, pad_byte: '0'
|
8
|
+
lstring :controle_registro, length: 1, initial_value: '3', pad_byte: '0'
|
9
|
+
|
10
|
+
lstring :servico_numero_registro, length: 5, pad_byte: '0'
|
11
|
+
string :servico_codigo_segmento, length: 1, initial_value: 'B', pad_byte: ' '
|
12
|
+
|
13
|
+
string :cnab240_g004_1, length: 3, pad_byte: ' '
|
14
|
+
|
15
|
+
lstring :favorecido_inscricao_tipo, length: 1, pad_byte: '0'
|
16
|
+
lstring :favorecido_inscricao_numero, length: 14, pad_byte: '0'
|
17
|
+
string :favorecido_endereco_logradouro, length: 30, pad_byte: ' '
|
18
|
+
lstring :favorecido_endereco_numero, length: 5, pad_byte: '0'
|
19
|
+
string :favorecido_endereco_complemento, length: 15, pad_byte: ' '
|
20
|
+
string :favorecido_endereco_bairro, length: 15, pad_byte: ' '
|
21
|
+
string :favorecido_endereco_cidade, length: 20, pad_byte: ' '
|
22
|
+
lstring :favorecido_endereco_cep, length: 8, pad_byte: '0'
|
23
|
+
string :favorecido_endereco_estado, length: 2, pad_byte: ' '
|
24
|
+
|
25
|
+
lstring :pagamento_data_vencimento, length: 8, pad_byte: '0'
|
26
|
+
lstring :pagamento_valor_documento, length: 15, pad_byte: '0'
|
27
|
+
lstring :pagamento_valor_abatimento, length: 15, pad_byte: '0'
|
28
|
+
lstring :pagamento_valor_desconto, length: 15, pad_byte: '0'
|
29
|
+
lstring :pagamento_valor_mora, length: 15, pad_byte: '0'
|
30
|
+
lstring :pagamento_valor_multa, length: 15, pad_byte: '0'
|
31
|
+
|
32
|
+
string :time_of_ted_remittence, length: 4, pad_byte: '0'
|
33
|
+
string :filler, length: 11, pad_byte: ' '
|
34
|
+
string :historic_code, length: 4, pad_byte: '0'
|
35
|
+
|
36
|
+
lstring :aviso, length: 1, pad_byte: '0'
|
37
|
+
lstring :accurence_of_return, length: 10, pad_byte: ' '
|
39
38
|
end
|
40
|
-
end
|
39
|
+
end
|