kinabo 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/config/kinabo.yml +2 -2
- data/lib/kinabo/bradesco/remessa/header.rb +1 -1
- data/lib/kinabo/bradesco/retorno.rb +48 -46
- data/lib/kinabo/utils.rb +20 -0
- data/lib/kinabo/version.rb +1 -1
- data/lib/kinabo.rb +6 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ff3fdceddfc8ec976d52be2281dd132e77c2ade0
|
4
|
+
data.tar.gz: 05e68d628c28cba67f8bfc3bc24cf091385b39e7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3da858382b078ac39ad30e8269662597f9fe304852d5a795e2436a49785716b6ccb178c7332fccf570ac0e9548d5187ca71f1dcfc631c5faad6f9f15c16e6321
|
7
|
+
data.tar.gz: fffb9f458e41ee7c3b0c2a4ebffa0aa6aa314203137be1882e44883763c3f40ac795a342ddd380717610e2e29fa2c421696983f7cf85bbd20a33c005caf7b5ae
|
data/config/kinabo.yml
CHANGED
@@ -2,7 +2,7 @@ test:
|
|
2
2
|
bradesco:
|
3
3
|
carteira: 09
|
4
4
|
nome_empresa: FIDC TESTE
|
5
|
-
|
5
|
+
convenio: 4359923
|
6
6
|
conta_corrente: 0147792-2
|
7
7
|
agencia: 00289
|
8
8
|
|
@@ -10,6 +10,6 @@ development:
|
|
10
10
|
bradesco:
|
11
11
|
carteira: 09
|
12
12
|
nome_empresa: FIDC TESTE
|
13
|
-
|
13
|
+
convenio: 4359923
|
14
14
|
conta_corrente: 0147792-2
|
15
15
|
agencia: 00289
|
@@ -4,7 +4,7 @@ module Kinabo
|
|
4
4
|
class Header < Hashie::Dash
|
5
5
|
include Kinabo::Utils
|
6
6
|
|
7
|
-
property :codigo_empresa, required: true, default: Kinabo.config.bradesco&.dig(:
|
7
|
+
property :codigo_empresa, required: true, default: Kinabo.config.bradesco&.dig(:convenio)
|
8
8
|
property :nome_empresa, required: true, default: Kinabo.config.bradesco&.dig(:nome_empresa)
|
9
9
|
property :data_gravacao, required: true
|
10
10
|
property :sequencial, required: true
|
@@ -1,6 +1,8 @@
|
|
1
1
|
module Kinabo
|
2
2
|
module Bradesco
|
3
3
|
class Retorno
|
4
|
+
include Kinabo::Utils
|
5
|
+
|
4
6
|
def initialize(path)
|
5
7
|
@path = path
|
6
8
|
end
|
@@ -13,20 +15,20 @@ module Kinabo
|
|
13
15
|
header_line = lines.first
|
14
16
|
|
15
17
|
{
|
16
|
-
id_registro: pos(header_line, '1-1'),
|
17
|
-
id_arquivo_retorno: pos(header_line, '2-2'),
|
18
|
-
literal_retorno: pos(header_line, '3-9'),
|
19
|
-
codigo_servico: pos(header_line, '10-11'),
|
20
|
-
literal_servico: pos(header_line, '12-26'),
|
21
|
-
codigo_empresa: pos(header_line, '27-46'),
|
22
|
-
nome_empresa: pos(header_line, '47-76'),
|
23
|
-
numero_bradesco_c3: pos(header_line, '77-79'),
|
24
|
-
nome_banco: pos(header_line, '80-94'),
|
25
|
-
data_gravacao_arquivo: pos(header_line, '95-100'),
|
26
|
-
densidade_gravacao: pos(header_line, '101-108'),
|
27
|
-
numero_aviso_bancario: pos(header_line, '109-113'),
|
28
|
-
data_credito: pos(header_line, '380-385'),
|
29
|
-
numero_sequencial: pos(header_line, '395-400')
|
18
|
+
id_registro: parse_number(pos(header_line, '1-1')),
|
19
|
+
id_arquivo_retorno: parse_number(pos(header_line, '2-2')),
|
20
|
+
literal_retorno: parse_string(pos(header_line, '3-9')),
|
21
|
+
codigo_servico: parse_number(pos(header_line, '10-11')),
|
22
|
+
literal_servico: parse_string(pos(header_line, '12-26')),
|
23
|
+
codigo_empresa: parse_number(pos(header_line, '27-46')),
|
24
|
+
nome_empresa: parse_string(pos(header_line, '47-76')),
|
25
|
+
numero_bradesco_c3: parse_number(pos(header_line, '77-79')),
|
26
|
+
nome_banco: parse_string(pos(header_line, '80-94')),
|
27
|
+
data_gravacao_arquivo: parse_date(pos(header_line, '95-100')),
|
28
|
+
densidade_gravacao: parse_number(pos(header_line, '101-108')),
|
29
|
+
numero_aviso_bancario: parse_number(pos(header_line, '109-113')),
|
30
|
+
data_credito: parse_date(pos(header_line, '380-385')),
|
31
|
+
numero_sequencial: parse_number(pos(header_line, '395-400'))
|
30
32
|
}
|
31
33
|
end
|
32
34
|
|
@@ -49,39 +51,39 @@ module Kinabo
|
|
49
51
|
|
50
52
|
entries_lines.map do |entry_line|
|
51
53
|
{
|
52
|
-
id_registro: pos(entry_line, '1-1'),
|
53
|
-
tipo_empresa: pos(entry_line, '2-3'),
|
54
|
-
numero_empresa: pos(entry_line, '4-17'),
|
55
|
-
id_empresa: pos(entry_line, '21-37'),
|
56
|
-
numero_controle: pos(entry_line, '38-62'),
|
57
|
-
|
54
|
+
id_registro: parse_number(pos(entry_line, '1-1')),
|
55
|
+
tipo_empresa: parse_number(pos(entry_line, '2-3')),
|
56
|
+
numero_empresa: parse_number(pos(entry_line, '4-17')),
|
57
|
+
id_empresa: parse_number(pos(entry_line, '21-37')),
|
58
|
+
numero_controle: parse_number(pos(entry_line, '38-62')),
|
59
|
+
nosso_numero: pos(entry_line, '71-82'),
|
58
60
|
indicador_rateio: pos(entry_line, '105-105'),
|
59
|
-
carteira: pos(entry_line, '108-108'),
|
60
|
-
id_ocorrencia: pos(entry_line, '109-110'),
|
61
|
-
data_ocorrencia: pos(entry_line, '111-116'),
|
62
|
-
numero_documento: pos(entry_line, '117-126'),
|
63
|
-
data_vencimento: pos(entry_line, '147-152'),
|
64
|
-
valor: pos(entry_line, '153-165'),
|
65
|
-
banco_cobrador: pos(entry_line, '166-168'),
|
66
|
-
agencia_cobradora: pos(entry_line, '169-173'),
|
67
|
-
especie_titulo: pos(entry_line, '174-175'),
|
68
|
-
despesas_cobranca: pos(entry_line, '176-188'),
|
69
|
-
outras_despesas: pos(entry_line, '189-201'),
|
70
|
-
juros_operacao: pos(entry_line, '202-214'),
|
71
|
-
iof: pos(entry_line, '215-227'),
|
72
|
-
abatimento: pos(entry_line, '228-240'),
|
73
|
-
desconto: pos(entry_line, '241-253'),
|
74
|
-
valor_pago: pos(entry_line, '254-266'),
|
75
|
-
juros_mora: pos(entry_line, '267-279'),
|
76
|
-
outros_creditos: pos(entry_line, '280-292'),
|
77
|
-
motivo_ocorrencia: pos(entry_line, '295-295'),
|
78
|
-
data_credito: pos(entry_line, '296-301'),
|
79
|
-
origem_pagamento: pos(entry_line, '302-304'),
|
80
|
-
cheque_bradesco: pos(entry_line, '315-318'),
|
81
|
-
motivo_rejeicao: pos(entry_line, '319-328'),
|
82
|
-
numero_cartorio: pos(entry_line, '369-370'),
|
83
|
-
numero_protocolo: pos(entry_line, '371-380'),
|
84
|
-
numero_sequencial: pos(entry_line, '395-400')
|
61
|
+
carteira: parse_number(pos(entry_line, '108-108')),
|
62
|
+
id_ocorrencia: parse_number(pos(entry_line, '109-110')),
|
63
|
+
data_ocorrencia: parse_date(pos(entry_line, '111-116')),
|
64
|
+
numero_documento: parse_string(pos(entry_line, '117-126')),
|
65
|
+
data_vencimento: parse_date(pos(entry_line, '147-152')),
|
66
|
+
valor: parse_decimal(pos(entry_line, '153-165')),
|
67
|
+
banco_cobrador: parse_number(pos(entry_line, '166-168')),
|
68
|
+
agencia_cobradora: parse_number(pos(entry_line, '169-173')),
|
69
|
+
especie_titulo: parse_string(pos(entry_line, '174-175')),
|
70
|
+
despesas_cobranca: parse_decimal(pos(entry_line, '176-188')),
|
71
|
+
outras_despesas: parse_decimal(pos(entry_line, '189-201')),
|
72
|
+
juros_operacao: parse_decimal(pos(entry_line, '202-214')),
|
73
|
+
iof: parse_decimal(pos(entry_line, '215-227')),
|
74
|
+
abatimento: parse_decimal(pos(entry_line, '228-240')),
|
75
|
+
desconto: parse_decimal(pos(entry_line, '241-253')),
|
76
|
+
valor_pago: parse_decimal(pos(entry_line, '254-266')),
|
77
|
+
juros_mora: parse_decimal(pos(entry_line, '267-279')),
|
78
|
+
outros_creditos: parse_decimal(pos(entry_line, '280-292')),
|
79
|
+
motivo_ocorrencia: parse_string(pos(entry_line, '295-295')),
|
80
|
+
data_credito: parse_date(pos(entry_line, '296-301')),
|
81
|
+
origem_pagamento: parse_number(pos(entry_line, '302-304')),
|
82
|
+
cheque_bradesco: parse_number(pos(entry_line, '315-318')),
|
83
|
+
motivo_rejeicao: parse_string(pos(entry_line, '319-328')),
|
84
|
+
numero_cartorio: parse_number(pos(entry_line, '369-370')),
|
85
|
+
numero_protocolo: parse_string(pos(entry_line, '371-380')),
|
86
|
+
numero_sequencial: parse_number(pos(entry_line, '395-400'))
|
85
87
|
}
|
86
88
|
end
|
87
89
|
end
|
data/lib/kinabo/utils.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'date'
|
2
|
+
|
1
3
|
module Kinabo
|
2
4
|
module Utils
|
3
5
|
def justify_string(string, length)
|
@@ -12,6 +14,24 @@ module Kinabo
|
|
12
14
|
("%.#{decimal_places}f" % (value || 0)).gsub(/[.,]/, '').rjust(length, '0')
|
13
15
|
end
|
14
16
|
|
17
|
+
def parse_decimal(string)
|
18
|
+
string.to_f / 100.0
|
19
|
+
end
|
20
|
+
|
21
|
+
def parse_date(string)
|
22
|
+
return nil if string.to_i.zero?
|
23
|
+
|
24
|
+
DateTime.strptime(string, "%d%m%y")
|
25
|
+
end
|
26
|
+
|
27
|
+
def parse_string(string)
|
28
|
+
string.strip
|
29
|
+
end
|
30
|
+
|
31
|
+
def parse_number(string)
|
32
|
+
string.to_i
|
33
|
+
end
|
34
|
+
|
15
35
|
def fill_sequencial(lines)
|
16
36
|
lines.map.with_index(1) { |line, index| line + justify_number(index, 6) }.join("\r\n") + "\r\n"
|
17
37
|
end
|
data/lib/kinabo/version.rb
CHANGED
data/lib/kinabo.rb
CHANGED
@@ -8,7 +8,12 @@ module Kinabo
|
|
8
8
|
end
|
9
9
|
end
|
10
10
|
|
11
|
-
|
11
|
+
# work around logger spam from hashie
|
12
|
+
# https://github.com/intridea/hashie/issues/394
|
13
|
+
require "hashie"
|
14
|
+
require "hashie/logger"
|
15
|
+
Hashie.logger = Logger.new(nil)
|
16
|
+
|
12
17
|
require "kinabo/version"
|
13
18
|
require 'kinabo/utils'
|
14
19
|
require 'kinabo/configuration'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kinabo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Noverde Team
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date: 2017-
|
12
|
+
date: 2017-03-20 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: hashie
|