Class: CFDI::Impuestos
- Inherits:
-
ElementoComprobante
- Object
- ElementoComprobante
- CFDI::Impuestos
- Defined in:
- lib/impuestos.rb
Defined Under Namespace
Classes: ImpuestoGenerico, Retencion, Traslado
Instance Method Summary collapse
-
#count ⇒ Integer
La cantidad de impuestos que tiene.
-
#initialize(data = {}) ⇒ Impuestos
constructor
A new instance of Impuestos.
- #retenciones=(value) ⇒ Object
- #suma(tipo_impuestos) ⇒ Object
-
#total ⇒ Float
La suma de traslados menos retenciones.
-
#totalImpuestosRetenidos=(valor) ⇒ Object
Asigna el total de impuestos retenidos.
-
#totalImpuestosTrasladados=(valor) ⇒ Object
Asigna el total de impuestos trasladados.
- #traslados=(value) ⇒ Object
Methods inherited from ElementoComprobante
Constructor Details
#initialize(data = {}) ⇒ Impuestos
Returns a new instance of Impuestos.
9 10 11 12 13 14 |
# 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 |
Instance Method Details
#count ⇒ Integer
Returns La cantidad de impuestos que tiene.
52 53 54 |
# File 'lib/impuestos.rb', line 52 def count traslados.count + retenciones.count end |
#retenciones=(value) ⇒ Object
27 28 29 30 31 32 33 34 35 36 |
# 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) ⇒ Object
56 57 58 |
# File 'lib/impuestos.rb', line 56 def suma tipo_impuestos instance_variable_get("@#{tipo_impuestos}").map(&:importe).reduce(0.0, &:+) end |
#total ⇒ Float
Returns la suma de traslados menos retenciones.
61 62 63 |
# File 'lib/impuestos.rb', line 61 def total suma(:traslados) - suma(:retenciones) end |
#totalImpuestosRetenidos=(valor) ⇒ Object
Asigna el total de impuestos retenidos
47 48 49 |
# File 'lib/impuestos.rb', line 47 def totalImpuestosRetenidos= valor @totalImpuestosRetenidos = valor.to_f end |
#totalImpuestosTrasladados=(valor) ⇒ Object
Asigna el total de impuestos trasladados
41 42 43 |
# File 'lib/impuestos.rb', line 41 def totalImpuestosTrasladados= valor @totalImpuestosTrasladados = valor.to_f end |
#traslados=(value) ⇒ Object
16 17 18 19 20 21 22 23 24 25 |
# 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 |