class Facturapi::Helpers::Detalle

Corresponde a las lineas de detalle de una Boleta Electronica, con un minimo de 1 linea de detalle y un maximo de 1.000 lineas

Attributes

descuento_monto[RW]

Es el valor de descuento del item (cuando corresponda), si el item no posee descuento se debe asignar 0 (cero) o no incluir el campo en el documento.

descuento_pct[RW]

Es el porcentaje de descuento del item (cuando corresponda), si el item no posee descuento se debe asignar 0 (cero) o no incluir el campo en el documento.

dsc_item[RW]

Es la descripcion adicional del producto o servicio antes indicado, con un maximo de 1.000 caracteres, en este campo se puede indicar mas informacion del producto o incluso una observacion en la linea de detalle.

ind_exe[RW]

Indica si el producto o servicio del item es afecto, exento o es no facturable, los indicadores son:

  • 0: afecto a IVA

  • 1: exento de IVA

  • 2: no facturable

  • 6: no facturable (negativo)

En caso que sea una factura, solo es necesario si se desea indicar que la linea es exenta de IVA. Los valores son:

  • 1: No afecto o exento de IVA

  • 2: Producto o servicio no es facturable

  • 3: Garantia de deposito por envases (Cervezas, Jugos, Aguas Minerales,

    Bebidas Analcoholicas u otros autorizados por Resolucion especial)
  • 4: item No Venta. (Para facturas y guias de despacho (esta ultima con

    Indicador Tipo de Traslado de Bienes igual a 1) y este item no
    sera facturado.
  • 5: item a rebajar. Para guias de despacho NO VENTA que rebajan guia

    anterior. En el area de referencias se debe indicar la guia
    anterior.
  • 6: Producto o servicio no facturable negativo

monto_item[RW]

Indica el valor del item, es decir, el valor final de la linea de detalle. Este valor es bruto (con IVA), excepto cuando el campo IndMntNeto tenga el valor 2. Al ser un campo de monto, se debe indicar sin decimales y sin separadores de miles. Se calcula de la siguiente forma:

MontoItem = PrcItem * QtyItem
nmb_item[RW]

Es la descripcion del producto o servicio, es decir, corresponde al nombre del producto o descripcion del servicio.

nro_lin_det[RW]

Indica el numero secuencial de linea de detalle de la Boleta Electronica, el cual puede ser desde la linea 1 hasta la linea 1.000.

prc_item[RW]

Es el precio unitario del item, su valor debe ser hasta 16 digitos y 2 decimales.

qty_item[RW]

Es la cantidad del item, su valor debe ser hasta 12 digitos y 6 decimales.

recargo_monto[RW]

Es el valor de recargo del item (cuando corresponda), si el item no posee recargo se debe asignar 0 (cero) o no incluir el campo en el documento.

recargo_pct[RW]

Es el porcentaje de recargo del item (cuando corresponda), si el item no posee recargo se debe asignar 0 (cero) o no incluir el campo en el documento.

rut_mandante[RW]

Corresponde al RUT del Mandante si la venta o servicio es por cuenta de otro, el cual es responsable del IVA devengado en el periodo. Debe contener valor desde 100.000 hasta 99 millones, guion y digito verificador (sin separador de miles).

tpo_codigo[RW]

Es el tipo de codigo que la empresa utiliza en el producto que se esta indicando en la linea de detalle; si no se tiene un tipo de codigo definido, se puede utilizar por defecto el tipo INT1.

unmd_item[RW]

Es la unidad de medida que se utiliza en el producto que se esta indicando en la linea de detalle; si no se tiene una unidad de medida definida, se puede utilizar por defecto la unidad de medida UN

vlr_codigo[RW]

Es el codigo del producto, con un maximo de 35 caracteres.

Public Class Methods

new(params = {}) click to toggle source
# File lib/facturapi/helpers/detalle.rb, line 99
def initialize(params = {})
  @nro_lin_det = params[:nro_lin_det]
  @tpo_codigo = params[:tpo_codigo] || 'INT1'
  @vlr_codigo = params[:vlr_codigo]
  @ind_exe = /^[0126]$/ =~ params[:ind_exe].to_s ? params[:ind_exe].to_s : '0'
  @nmb_item = params[:nmb_item]
  @qty_item = params[:qty_item].to_f.round(6)
  @prc_item = params[:prc_item].to_f.round(2)
  @monto_item = params[:monto_item]
  @rut_mandante = params[:rut_mandante]
  @dsc_item = params[:dsc_item]
  @unmd_item = params[:unmd_item] || 'UN'
  @descuento_pct = params[:descuento_pct]
  @descuento_monto = params[:descuento_monto]
  @recargo_pct = params[:recargo_pct]
  @recargo_monto = params[:recargo_monto]
end

Public Instance Methods

afecto_iva?() click to toggle source
# File lib/facturapi/helpers/detalle.rb, line 141
def afecto_iva?
  ind_exe == '0'
end
as_node() click to toggle source
# File lib/facturapi/helpers/detalle.rb, line 117
def as_node
  create_node('Detalle') do |detalle|
    detalle << create_node('NroLinDet') { |n| n << nro_lin_det }
    detalle << create_node('TpoCodigo') { |n| n << tpo_codigo }
    detalle << create_node('VlrCodigo') { |n| n << vlr_codigo }
    detalle << create_node('IndExe') { |n| n << ind_exe }
    detalle << create_node('NmbItem') { |n| n << nmb_item }
    detalle << create_node('QtyItem') { |n| n << qty_item }
    detalle << create_node('PrcItem') { |n| n << prc_item }
    detalle << create_node('MontoItem') { |n| n << monto_item }
    detalle << create_node('RUTMandante') { |n| n << rut_mandante } if rut_mandante
    detalle << create_node('DscItem') { |n| n << dsc_item } if dsc_item
    detalle << create_node('UnmdItem') { |n| n << unmd_item } if unmd_item
    detalle << create_node('DescuentoPct') { |n| n << descuento_pct } if descuento_pct
    detalle << create_node('DescuentoMonto') { |n| n << descuento_monto } if descuento_monto
    detalle << create_node('RecargoPct') { |n| n << recargo_pct } if recargo_pct
    detalle << create_node('RecargoMonto') { |n| n << recargo_monto } if recargo_monto
  end
end
autocomplete!() click to toggle source
# File lib/facturapi/helpers/detalle.rb, line 137
def autocomplete!
  self.monto_item = (prc_item * qty_item).to_i if monto_item.blank?
end
exento_iva?() click to toggle source
# File lib/facturapi/helpers/detalle.rb, line 145
def exento_iva?
  ind_exe == '1'
end
no_fact?() click to toggle source
# File lib/facturapi/helpers/detalle.rb, line 149
def no_fact?
  ind_exe == '2'
end
no_fact_neg?() click to toggle source
# File lib/facturapi/helpers/detalle.rb, line 153
def no_fact_neg?
  ind_exe == '6'
end