class CFDI::Impuestos
Public Class Methods
new(data={})
click to toggle source
# File lib/impuestos.rb, line 9 def initialize data={} self.traslados = data[:traslados] || [] self.retenciones = data[:retenciones] || [] self.totalImpuestosTrasladados = data[:totalImpuestosTrasladados] if data[:totalImpuestosTrasladados] self.totalImpuestosRetenidos = data[:totalImpuestosRetenidos] if data[:totalImpuestosRetenidos] end
Public Instance Methods
count()
click to toggle source
@return [Integer] La cantidad de impuestos que tiene.
# File lib/impuestos.rb, line 52 def count traslados.count + retenciones.count end
retenciones=(value)
click to toggle source
# File lib/impuestos.rb, line 27 def retenciones= value @retenciones = value.map { |t| t.is_a?(ImpuestoGenerico) ? t : Impuestos::Retencion.new({ tasa: t[:tasa], impuesto: t[:impuesto] || 'IVA', importe: t[:importe] }) } @totalImpuestosRetenidos = suma(:retenciones) if @retenciones.count > 0 end
suma(tipo_impuestos)
click to toggle source
# File lib/impuestos.rb, line 56 def suma tipo_impuestos instance_variable_get("@#{tipo_impuestos}").map(&:importe).reduce(0.0, &:+) end
total()
click to toggle source
@return [Float] la suma de traslados menos retenciones
# File lib/impuestos.rb, line 61 def total suma(:traslados) - suma(:retenciones) end
totalImpuestosRetenidos=(valor)
click to toggle source
Asigna el total de impuestos retenidos @param valor [String, Float, to_f] Cualquier objeto que responda a to_f
# File lib/impuestos.rb, line 47 def totalImpuestosRetenidos= valor @totalImpuestosRetenidos = valor.to_f end
totalImpuestosTrasladados=(valor)
click to toggle source
Asigna el total de impuestos trasladados @param valor [String, Float, to_f] Cualquier objeto que responda a to_f
# File lib/impuestos.rb, line 41 def totalImpuestosTrasladados= valor @totalImpuestosTrasladados = valor.to_f end
traslados=(value)
click to toggle source
# File lib/impuestos.rb, line 16 def traslados= value @traslados = value.map { |t| t.is_a?(ImpuestoGenerico) ? t : Impuestos::Traslado.new({ tasa: t[:tasa], impuesto: t[:impuesto] || 'IVA', importe: t[:importe] }) } @totalImpuestosTrasladados = suma(:traslados) if @traslados.count > 0 end