class SPED2SQL::Layout::Mapa
Public Class Methods
arquivo_template(tipo)
click to toggle source
# File lib/sped2sql/layout/mapa.rb, line 38 def self.arquivo_template(tipo) case tipo when :efd_icms_ipi File.join(TEMPLATE_PATH, 'efd_icms_ipi.txt') else fail(ArgumentError, "Template inexistente: #{tipo}") end end
carrega!(fonte)
click to toggle source
Carrega um mapa (arquivo csv) para um hash
Esse mapa define o tipo de dado em cada campo de um registro do SPED e eh utilizado para fazer a normalizacao do dado vindo do arquivo SPED na hora de inserir no banco de dados
Exemplo de um mapa:
-
Para um arquivo SPED: |0001|Dados aleatorios|Dados aleatorios| |0001|Dados do Fornecedor|01012014|1150,00|
-
O mapa deveria ser: |0001|string|string|string| |0175|string|string|date|decimal|
O hash final sera: { “0001” => [:string, :string], “0175” => [:string, :date, :decimal] }
# File lib/sped2sql/layout/mapa.rb, line 27 def self.carrega!(fonte) mapa = {} CSV.foreach(fonte, col_sep: '|') do |row| linha = row.clone.compact mapa[linha[0]] = linha[1..-1].map(&:to_sym) end mapa end