lib/kinabo/bradesco/retorno.rb in kinabo-0.1.0 vs lib/kinabo/bradesco/retorno.rb in kinabo-0.2.0
- old
+ new
@@ -1,8 +1,10 @@
module Kinabo
module Bradesco
class Retorno
+ include Kinabo::Utils
+
def initialize(path)
@path = path
end
def lines
@@ -11,24 +13,24 @@
def header
header_line = lines.first
{
- id_registro: pos(header_line, '1-1'),
- id_arquivo_retorno: pos(header_line, '2-2'),
- literal_retorno: pos(header_line, '3-9'),
- codigo_servico: pos(header_line, '10-11'),
- literal_servico: pos(header_line, '12-26'),
- codigo_empresa: pos(header_line, '27-46'),
- nome_empresa: pos(header_line, '47-76'),
- numero_bradesco_c3: pos(header_line, '77-79'),
- nome_banco: pos(header_line, '80-94'),
- data_gravacao_arquivo: pos(header_line, '95-100'),
- densidade_gravacao: pos(header_line, '101-108'),
- numero_aviso_bancario: pos(header_line, '109-113'),
- data_credito: pos(header_line, '380-385'),
- numero_sequencial: pos(header_line, '395-400')
+ id_registro: parse_number(pos(header_line, '1-1')),
+ id_arquivo_retorno: parse_number(pos(header_line, '2-2')),
+ literal_retorno: parse_string(pos(header_line, '3-9')),
+ codigo_servico: parse_number(pos(header_line, '10-11')),
+ literal_servico: parse_string(pos(header_line, '12-26')),
+ codigo_empresa: parse_number(pos(header_line, '27-46')),
+ nome_empresa: parse_string(pos(header_line, '47-76')),
+ numero_bradesco_c3: parse_number(pos(header_line, '77-79')),
+ nome_banco: parse_string(pos(header_line, '80-94')),
+ data_gravacao_arquivo: parse_date(pos(header_line, '95-100')),
+ densidade_gravacao: parse_number(pos(header_line, '101-108')),
+ numero_aviso_bancario: parse_number(pos(header_line, '109-113')),
+ data_credito: parse_date(pos(header_line, '380-385')),
+ numero_sequencial: parse_number(pos(header_line, '395-400'))
}
end
def trailler
trailler_line = @lines.last
@@ -47,42 +49,42 @@
def entries
entries_lines = lines[1...-1]
entries_lines.map do |entry_line|
{
- id_registro: pos(entry_line, '1-1'),
- tipo_empresa: pos(entry_line, '2-3'),
- numero_empresa: pos(entry_line, '4-17'),
- id_empresa: pos(entry_line, '21-37'),
- numero_controle: pos(entry_line, '38-62'),
- id_titulo: pos(entry_line, '71-82'),
+ id_registro: parse_number(pos(entry_line, '1-1')),
+ tipo_empresa: parse_number(pos(entry_line, '2-3')),
+ numero_empresa: parse_number(pos(entry_line, '4-17')),
+ id_empresa: parse_number(pos(entry_line, '21-37')),
+ numero_controle: parse_number(pos(entry_line, '38-62')),
+ nosso_numero: pos(entry_line, '71-82'),
indicador_rateio: pos(entry_line, '105-105'),
- carteira: pos(entry_line, '108-108'),
- id_ocorrencia: pos(entry_line, '109-110'),
- data_ocorrencia: pos(entry_line, '111-116'),
- numero_documento: pos(entry_line, '117-126'),
- data_vencimento: pos(entry_line, '147-152'),
- valor: pos(entry_line, '153-165'),
- banco_cobrador: pos(entry_line, '166-168'),
- agencia_cobradora: pos(entry_line, '169-173'),
- especie_titulo: pos(entry_line, '174-175'),
- despesas_cobranca: pos(entry_line, '176-188'),
- outras_despesas: pos(entry_line, '189-201'),
- juros_operacao: pos(entry_line, '202-214'),
- iof: pos(entry_line, '215-227'),
- abatimento: pos(entry_line, '228-240'),
- desconto: pos(entry_line, '241-253'),
- valor_pago: pos(entry_line, '254-266'),
- juros_mora: pos(entry_line, '267-279'),
- outros_creditos: pos(entry_line, '280-292'),
- motivo_ocorrencia: pos(entry_line, '295-295'),
- data_credito: pos(entry_line, '296-301'),
- origem_pagamento: pos(entry_line, '302-304'),
- cheque_bradesco: pos(entry_line, '315-318'),
- motivo_rejeicao: pos(entry_line, '319-328'),
- numero_cartorio: pos(entry_line, '369-370'),
- numero_protocolo: pos(entry_line, '371-380'),
- numero_sequencial: pos(entry_line, '395-400')
+ carteira: parse_number(pos(entry_line, '108-108')),
+ id_ocorrencia: parse_number(pos(entry_line, '109-110')),
+ data_ocorrencia: parse_date(pos(entry_line, '111-116')),
+ numero_documento: parse_string(pos(entry_line, '117-126')),
+ data_vencimento: parse_date(pos(entry_line, '147-152')),
+ valor: parse_decimal(pos(entry_line, '153-165')),
+ banco_cobrador: parse_number(pos(entry_line, '166-168')),
+ agencia_cobradora: parse_number(pos(entry_line, '169-173')),
+ especie_titulo: parse_string(pos(entry_line, '174-175')),
+ despesas_cobranca: parse_decimal(pos(entry_line, '176-188')),
+ outras_despesas: parse_decimal(pos(entry_line, '189-201')),
+ juros_operacao: parse_decimal(pos(entry_line, '202-214')),
+ iof: parse_decimal(pos(entry_line, '215-227')),
+ abatimento: parse_decimal(pos(entry_line, '228-240')),
+ desconto: parse_decimal(pos(entry_line, '241-253')),
+ valor_pago: parse_decimal(pos(entry_line, '254-266')),
+ juros_mora: parse_decimal(pos(entry_line, '267-279')),
+ outros_creditos: parse_decimal(pos(entry_line, '280-292')),
+ motivo_ocorrencia: parse_string(pos(entry_line, '295-295')),
+ data_credito: parse_date(pos(entry_line, '296-301')),
+ origem_pagamento: parse_number(pos(entry_line, '302-304')),
+ cheque_bradesco: parse_number(pos(entry_line, '315-318')),
+ motivo_rejeicao: parse_string(pos(entry_line, '319-328')),
+ numero_cartorio: parse_number(pos(entry_line, '369-370')),
+ numero_protocolo: parse_string(pos(entry_line, '371-380')),
+ numero_sequencial: parse_number(pos(entry_line, '395-400'))
}
end
end
private