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