class Facturapi::Helpers::Dte

Attributes

detalle[RW]
dsc_rcg_global[RW]
encabezado[RW]
id[RW]
referencia[RW]

Public Class Methods

new(params = {}) click to toggle source
# File lib/facturapi/helpers/dte.rb, line 6
def initialize(params = {})
  @encabezado = params[:encabezado]
  self.detalle = params[:detalle]
  self.dsc_rcg_global = params[:dsc_rcg_global]
  self.referencia = params[:referencia]
end

Public Instance Methods

as_node() click to toggle source
# File lib/facturapi/helpers/dte.rb, line 47
def as_node
  doc = XML::Document.new
  param = { 'ID' => id } unless id.blank?
  doc.root = create_node('DTE', version: '1.0') do |dte|
    dte << create_node('Documento', param) do |documento|
      documento << encabezado.as_node
      detalle.each { |d| documento << d.as_node }
      dsc_rcg_global.each { |d| documento << d.as_node } if dsc_rcg_global && dsc_rcg_global.any?
      referencia.each { |r| documento << r.as_node } if referencia && referencia.any?
    end
  end
  doc
end
autocomplete!() click to toggle source
# File lib/facturapi/helpers/dte.rb, line 61
def autocomplete!
  mnt_neto = 0
  mnt_exe = 0
  monto_nf = 0
  detalle.each_with_index do |det, idx|
    det.nro_lin_det = idx + 1 if det.nro_lin_det.blank?
    det.autocomplete!
    mnt_neto += det.monto_item if det.afecto_iva?
    mnt_exe += det.monto_item if det.exento_iva?
    monto_nf += det.monto_item if det.no_fact? || det.no_fact_neg?
  end
  if dsc_rcg_global && dsc_rcg_global.any?
    dsc_rcg_global.each_with_index do |drg, idx|
      drg.nro_lin_dr = idx + 1 if drg.nro_lin_dr.blank?
      if drg.descuento?
        mnt_neto -= drg.valor_dr
      else
        mnt_neto += drg.valor_dr
      end
    end
  end
  if referencia && referencia.any?
    referencia.each_with_index do |ref, idx|
      ref.nro_lin_ref = idx + 1 if ref.nro_lin_ref.blank?
    end
  end
  totales.autocomplete!(
    is_monto_neto: encabezado.id_doc.monto_neto?,
    is_boleta: encabezado.id_doc.boleta?,
    mnt_neto: mnt_neto,
    mnt_exe: mnt_exe,
    monto_nf: monto_nf
  )
  self
end
detalle=(detalle) click to toggle source
# File lib/facturapi/helpers/dte.rb, line 13
def detalle=(detalle)
  @detalle = @detalle.nil? ? [] : @detalle
  @detalle =
    if detalle.is_a?(Array)
      @detalle.push(*detalle)
    else
      @detalle.push(detalle)
    end
end
dsc_rcg_global=(dsc_rcg_global) click to toggle source
# File lib/facturapi/helpers/dte.rb, line 23
def dsc_rcg_global=(dsc_rcg_global)
  @dsc_rcg_global = @dsc_rcg_global.nil? ? [] : @dsc_rcg_global
  @dsc_rcg_global =
    if dsc_rcg_global.is_a?(Array)
      @dsc_rcg_global.push(*dsc_rcg_global)
    else
      @dsc_rcg_global.push(dsc_rcg_global)
    end
end
referencia=(referencia) click to toggle source
# File lib/facturapi/helpers/dte.rb, line 33
def referencia=(referencia)
  @referencia = @referencia.nil? ? [] : @referencia
  @referencia =
    if referencia.is_a?(Array)
      @referencia.push(*referencia)
    else
      @referencia.push(referencia)
    end
end
to_s() click to toggle source
# File lib/facturapi/helpers/dte.rb, line 97
def to_s
  as_node.to_s
end
totales() click to toggle source
# File lib/facturapi/helpers/dte.rb, line 43
def totales
  encabezado.totales
end