class FmLayout::FmLayout

Public Class Methods

new() click to toggle source
# File lib/fm_layout/fm_layout.rb, line 15
def initialize
  @encabezado = Encabezado.new
  @datos_adicionales = DatosAdicionales.new
  @emisor = Emisor.new
  @receptor= Receptor.new
  @conceptos = []
  @impuestos_trasladados =  []
  @impuestos_trasladados_locales =  []
  @impuestos_retenidos =  []
  @impuestos_retenidos_locales = []
end

Public Instance Methods

concepto() { |concepto| ... } click to toggle source
# File lib/fm_layout/fm_layout.rb, line 86
def concepto
  concepto = Concepto.new
  if block_given?
    yield(concepto)
    @conceptos << concepto
  else
    concepto
  end
end
datos_adicionales() { |datos_adicionales| ... } click to toggle source
# File lib/fm_layout/fm_layout.rb, line 35
def datos_adicionales
  if block_given?
    yield(@datos_adicionales)
  else
    @datos_adicionales
  end
end
domicilio() { |domicilio| ... } click to toggle source
# File lib/fm_layout/fm_layout.rb, line 68
def domicilio
  @domicilio ||= Domicilio.new
  if block_given?
    yield(@domicilio)
  else
    @domicilio
  end
end
domicilio_fiscal() { |domicilio_fiscal| ... } click to toggle source
# File lib/fm_layout/fm_layout.rb, line 59
def domicilio_fiscal
  @domicilio_fiscal ||= Domicilio.new('DomicilioFiscal')
  if block_given?
    yield(@domicilio_fiscal)
  else
    @domicilio_fiscal
  end
end
emisor() { |emisor| ... } click to toggle source
# File lib/fm_layout/fm_layout.rb, line 43
def emisor
  if block_given?
    yield(@emisor)
  else
    @emisor
  end
end
encabezado() { |encabezado| ... } click to toggle source
# File lib/fm_layout/fm_layout.rb, line 27
def encabezado
  if block_given?
    yield(@encabezado)
  else
    @encabezado
  end
end
expedido_en() { |expedido_en| ... } click to toggle source
# File lib/fm_layout/fm_layout.rb, line 77
def expedido_en
  @expedido_en ||= Domicilio.new('ExpedidoEn')
  if block_given?
    yield(@expedido_en)
  else
    @expedido_en
  end
end
impuesto_retenido() { |impuesto| ... } click to toggle source
# File lib/fm_layout/fm_layout.rb, line 116
def impuesto_retenido
  impuesto = ImpuestoRetenido.new
  if block_given?
    yield(impuesto)
    @impuestos_retenidos << impuesto
  else
   impuesto
  end
end
impuesto_retenido_local() { |impuesto| ... } click to toggle source
# File lib/fm_layout/fm_layout.rb, line 126
def impuesto_retenido_local 
  impuesto = ImpuestoRetenidoLocal.new
  if block_given?
    yield(impuesto)
    @impuestos_retenidos_locales << impuesto
  else
    impuesto
  end
end
impuesto_trasladado() { |impuesto| ... } click to toggle source
# File lib/fm_layout/fm_layout.rb, line 96
def impuesto_trasladado
  impuesto = ImpuestoTrasladado.new
  if block_given?
    yield(impuesto)
    @impuestos_trasladados << impuesto
  else
   impuesto
  end
end
impuesto_trasladado_local() { |impuesto| ... } click to toggle source
# File lib/fm_layout/fm_layout.rb, line 106
def impuesto_trasladado_local
  impuesto = ImpuestoTrasladadoLocal.new
  if block_given?
    yield(impuesto)
    @impuestos_trasladados_locales << impuesto
  else
   impuesto
  end
end
nomina() { |nomina| ... } click to toggle source
# File lib/fm_layout/fm_layout.rb, line 136
def nomina
  @nomina = Nomina::Nomina.new
  if block_given?
    yield(@nomina)
  else
    @nomina
  end
end
receptor() { |receptor| ... } click to toggle source
# File lib/fm_layout/fm_layout.rb, line 51
def receptor
  if block_given?
    yield(@receptor)
  else
    @receptor
  end
end
to_h() click to toggle source
# File lib/fm_layout/fm_layout.rb, line 156
def to_h
  encabezado.to_h
    .merge(@datos_adicionales.to_h)
    .merge(@emisor.to_h)
    .merge(@domicilio_fiscal.to_h)
    .merge(@expedido_en.to_h)
    .merge(@receptor.to_h)
    .merge(@domicilio.to_h)
    .merge(obtener_hash_conceptos)
    .merge(obtener_hash_traslados)
    .merge(obtener_hash_retenciones)
    .merge(@nomina.to_h)
    .merge(obtener_hash_traslados_locales)
    .merge(obtener_hash_retenciones_locales)
end
to_s() click to toggle source
# File lib/fm_layout/fm_layout.rb, line 145
def to_s
  salida = @encabezado.to_s + @datos_adicionales.to_s + @emisor.to_s + @domicilio_fiscal.to_s + @expedido_en.to_s + @receptor.to_s + @domicilio.to_s
  salida += @conceptos.map(&:to_s).reduce(:+).to_s
  salida += @impuestos_trasladados.map(&:to_s).reduce(:+).to_s
  salida += @impuestos_retenidos.map(&:to_s).reduce(:+).to_s
  salida += @impuestos_trasladados_locales.map(&:to_s).reduce(:+).to_s
  salida += @impuestos_retenidos_locales.map(&:to_s).reduce(:+).to_s
  salida += @nomina.to_s
  salida
end

Private Instance Methods

obtener_hash_conceptos() click to toggle source
# File lib/fm_layout/fm_layout.rb, line 174
def obtener_hash_conceptos
  { 'Conceptos' => @conceptos.map(&:to_h) }
end
obtener_hash_retenciones() click to toggle source
# File lib/fm_layout/fm_layout.rb, line 178
def obtener_hash_retenciones
  {'ImpuestosRetenidos' => @impuestos_retenidos.map(&:to_h) }
end
obtener_hash_retenciones_locales() click to toggle source
# File lib/fm_layout/fm_layout.rb, line 190
def obtener_hash_retenciones_locales
  { 'ImpuestosRetenidosLocales' => @impuestos_retenidos_locales.map(&:to_h) }
end
obtener_hash_traslados() click to toggle source
# File lib/fm_layout/fm_layout.rb, line 182
def obtener_hash_traslados
  { 'ImpuestosTrasladados' => @impuestos_trasladados.map(&:to_h) }
end
obtener_hash_traslados_locales() click to toggle source
# File lib/fm_layout/fm_layout.rb, line 186
def obtener_hash_traslados_locales
  { 'ImpuestosTrasladadosLocales' => @impuestos_trasladados_locales.map(&:to_h) }
end