Class: SPED2SQL::Layout::Mapa
- Inherits:
-
Object
- Object
- SPED2SQL::Layout::Mapa
- Defined in:
- lib/sped2sql/layout/mapa.rb
Class Method Summary collapse
- .arquivo_template(tipo) ⇒ Object
-
.carrega!(fonte) ⇒ Object
Carrega um mapa (arquivo csv) para um hash.
Class Method Details
.arquivo_template(tipo) ⇒ Object
39 40 41 42 43 44 45 46 |
# File 'lib/sped2sql/layout/mapa.rb', line 39 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) ⇒ Object
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] }
28 29 30 31 32 33 34 35 36 37 |
# File 'lib/sped2sql/layout/mapa.rb', line 28 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 |