Class: CFDI::ElementoComprobante

Inherits:
Object
  • Object
show all
Defined in:
lib/comun.rb

Overview

Un elemento del comprobante con métodos mágicos y especiales

Direct Known Subclasses

Complemento, Concepto, Domicilio, Entidad

Class Method Summary (collapse)

Instance Method Summary (collapse)

Constructor Details

- (CFDI::ElementoComprobante) initialize(data = {})

Crear este elemento y settear lo que le pasemos como hash en un tipo de dato adecuado

Parameters:

  • data (Hash) (defaults to: {})

    Los datos para este elemento



24
25
26
27
28
29
30
31
# File 'lib/comun.rb', line 24

def initialize data={}
  #puts self.class
  data.each do |k,v|
    method = "#{k}=".to_sym
    next if !self.respond_to? method
    self.send method, v
  end
end

Class Method Details

+ (Array) data

Los elementos para generar la cadena original de este comprobante

Returns:

  • (Array)

    idem



37
38
39
# File 'lib/comun.rb', line 37

def self.data
  @cadenaOriginal
end

Instance Method Details

- (Array) cadena_original

Un array con los datos de la cadena original para este elemento

Returns:

  • (Array)

    idem



45
46
47
48
49
50
51
52
53
# File 'lib/comun.rb', line 45

def cadena_original
  params = []
  data = {}
  data = self.class.data
 # puts self.class.cadenaOriginal
  
  data.each {|key| params.push instance_variable_get('@'+key.to_s) }
  return params
end

- (Hash) to_h

Los datos xmleables de este elemento

Returns:

  • (Hash)

    idem



59
60
61
62
63
64
65
66
67
68
# File 'lib/comun.rb', line 59

def to_h
  h = {}
  self.class.data.each do |v|
    value = self.send(v)
    value = value.to_h if value.is_a? ElementoComprobante
    h[v] = value
  end
  
  h
end