Class: Facturapi::Helpers::IdDoc
- Inherits:
-
Object
- Object
- Facturapi::Helpers::IdDoc
- Defined in:
- lib/facturapi/helpers/id_doc.rb
Overview
Corresponde a la Identificacion del Documento en el encabezado de una Boleta Electronica
Instance Attribute Summary collapse
-
#fch_emis ⇒ Object
Es la fecha de emision del documento en cuestion, el formato de la fecha es “AAAA-MM-DD’ (anio, mes, dia).
-
#fch_venc ⇒ Object
Corresponde a la Fecha de vencimiento y es obligatoria en el caso de una facturacion de servicios periodicos domiciliarios, el formato de la fecha es “AAAA-MM-DD’ (anio, mes, dia).
-
#folio ⇒ Object
Es el folio del documento de acuerdo con los correlativos autorizados por el SII y disponibles para el tipo de documento antes mencionado.
-
#ind_mnt_neto ⇒ Object
Este indicador se utiliza para expresar que el precio unitario y el valor de todas las lineas de detalles corresponden a Montos Netos, es decir, no incluyen el IVA.
-
#ind_servicio ⇒ Object
Corresponde al indicador que identifica el tipo de transaccion que se realiza con el documento de acuerdo a lo codificado por el SII.
-
#ind_traslado ⇒ Object
(Solo para Guias de despacho) Indica si el traslado de mercaderia es por Venta (valor 1) o por otros motivos que no corresponden a venta (valores mayores a 1).
-
#mnt_bruto ⇒ Object
Indica si las lineas de detalle, descuentos y recargos se expresan en montos brutos.
-
#periodo_desde ⇒ Object
Es el periodo desde de una facturacion de servicios periodicos y aplica solamente para estos casos, el formato de la fecha es “AAAA-MM-DD’ (anio, mes, dia).
-
#periodo_hasta ⇒ Object
Es el periodo hasta de una facturacion de servicios periodicos y aplica solamente para estos casos, el formato de la fecha es “AAAA-MM-DD’ (anio, mes, dia).
-
#tipo_despacho ⇒ Object
(Solo para Guias de despacho) Indica si el documento acompania bienes y el despacho es por cuenta del vendedor o del comprador.
-
#tipo_dte ⇒ Object
Corresponde al numero de Tipo de Documento codificado por el Servicio de Impuestos Internos (SII).
Instance Method Summary collapse
- #as_node ⇒ Object
- #boleta? ⇒ Boolean
- #format_date(date) ⇒ Object
- #guia_de_despacho? ⇒ Boolean
-
#initialize(params = {}) ⇒ IdDoc
constructor
A new instance of IdDoc.
- #monto_bruto? ⇒ Boolean
- #monto_neto? ⇒ Boolean
Constructor Details
#initialize(params = {}) ⇒ IdDoc
Returns a new instance of IdDoc.
103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 |
# File 'lib/facturapi/helpers/id_doc.rb', line 103 def initialize(params = {}) @tipo_dte = params[:tipo_dte].to_s if Facturapi::Utils::DteTypes::VALID_REGEXP =~ params[:tipo_dte].to_s @folio = params[:folio] || 0 @fch_emis = format_date(params[:fch_emis]) @fch_venc = format_date(params[:fch_venc]) if boleta? @ind_servicio = params[:ind_servicio].to_s if /^[1-4]$/ =~ params[:ind_servicio].to_s @ind_mnt_neto = params[:ind_mnt_neto].to_s if /^[02]$/ =~ params[:ind_mnt_neto].to_s @periodo_desde = format_date(params[:periodo_desde]) @periodo_hasta = format_date(params[:periodo_hasta]) end if guia_de_despacho? @tipo_despacho = params[:tipo_despacho].to_s if /^[0-3]$/ =~ params[:tipo_despacho].to_s @ind_traslado = params[:ind_traslado].to_s if /^[1-7]$/ =~ params[:ind_traslado].to_s end @mnt_bruto = 1 if params[:mnt_bruto] end |
Instance Attribute Details
#fch_emis ⇒ Object
Es la fecha de emision del documento en cuestion, el formato de la fecha es “AAAA-MM-DD’ (anio, mes, dia).
36 37 38 |
# File 'lib/facturapi/helpers/id_doc.rb', line 36 def fch_emis @fch_emis end |
#fch_venc ⇒ Object
Corresponde a la Fecha de vencimiento y es obligatoria en el caso de una facturacion de servicios periodicos domiciliarios, el formato de la fecha es “AAAA-MM-DD’ (anio, mes, dia)
41 42 43 |
# File 'lib/facturapi/helpers/id_doc.rb', line 41 def fch_venc @fch_venc end |
#folio ⇒ Object
Es el folio del documento de acuerdo con los correlativos autorizados por el SII y disponibles para el tipo de documento antes mencionado. En el caso que se requiera auto-asignacion de folio, entonces se debe indicar el valor 0 (cero) en este campo.
32 33 34 |
# File 'lib/facturapi/helpers/id_doc.rb', line 32 def folio @folio end |
#ind_mnt_neto ⇒ Object
Este indicador se utiliza para expresar que el precio unitario y el valor de todas las lineas de detalles corresponden a Montos Netos, es decir, no incluyen el IVA. Solo se aplica para empresas que tienen autorizacion para emitir las boletas desglosando el IVA. No aplica en Boleta Exenta.
-
0: Lineas de Detalle indicadas en Montos Brutos.
-
2: Lineas de Detalle indicadas en Montos Netos.
58 59 60 |
# File 'lib/facturapi/helpers/id_doc.rb', line 58 def ind_mnt_neto @ind_mnt_neto end |
#ind_servicio ⇒ Object
Corresponde al indicador que identifica el tipo de transaccion que se realiza con el documento de acuerdo a lo codificado por el SII.
-
1: Servicios Periodicos.
-
2: Servicios Periodicos Domiciliarios.
-
3: Ventas y Servicios.
-
4: Espectaculos emitida por cuenta de terceros.
49 50 51 |
# File 'lib/facturapi/helpers/id_doc.rb', line 49 def ind_servicio @ind_servicio end |
#ind_traslado ⇒ Object
(Solo para Guias de despacho) Indica si el traslado de mercaderia es por Venta (valor 1) o por otros motivos que no corresponden a venta (valores mayores a 1). Sus valores pueden ser:
-
1: Operacion constituye venta.
-
2: Ventas por efectuar.
-
3: Consignaciones.
-
4: Entrega gratuita.
-
5: Traslados internos.
-
6: Otros traslados no venta.
-
7: Guia de devolucion.
101 102 103 |
# File 'lib/facturapi/helpers/id_doc.rb', line 101 def ind_traslado @ind_traslado end |
#mnt_bruto ⇒ Object
Indica si las lineas de detalle, descuentos y recargos se expresan en montos brutos. (Solo para documentos sin impuestos adicionales). Solamente se acepta el valor 1 ( <MntBruto>1</MntBruto> ). Si no se indica, se asume los valores en montos Netos.
74 75 76 |
# File 'lib/facturapi/helpers/id_doc.rb', line 74 def mnt_bruto @mnt_bruto end |
#periodo_desde ⇒ Object
Es el periodo desde de una facturacion de servicios periodicos y aplica solamente para estos casos, el formato de la fecha es “AAAA-MM-DD’ (anio, mes, dia).
63 64 65 |
# File 'lib/facturapi/helpers/id_doc.rb', line 63 def periodo_desde @periodo_desde end |
#periodo_hasta ⇒ Object
Es el periodo hasta de una facturacion de servicios periodicos y aplica solamente para estos casos, el formato de la fecha es “AAAA-MM-DD’ (anio, mes, dia)
68 69 70 |
# File 'lib/facturapi/helpers/id_doc.rb', line 68 def periodo_hasta @periodo_hasta end |
#tipo_despacho ⇒ Object
(Solo para Guias de despacho) Indica si el documento acompania bienes y el despacho es por cuenta del vendedor o del comprador. No se incluye si el documento no acompania bienes o se trata de una Factura o Nota correspondiente a la prestacion de servicios. Sus valores pueden ser:
-
0: Sin Despacho.
-
1: Despacho por cuenta del receptor del documento (cliente o vendedor
en caso de Facturas de compra).
-
2: Despacho por cuenta del emisor a instalaciones del cliente.
-
3: Despacho por cuenta del emisor a otras instalaciones
(Ejemplo: entrega en Obra).
88 89 90 |
# File 'lib/facturapi/helpers/id_doc.rb', line 88 def tipo_despacho @tipo_despacho end |
#tipo_dte ⇒ Object
Corresponde al numero de Tipo de Documento codificado por el Servicio de Impuestos Internos (SII).
-
30: FACTURA
-
32: FACTURA EXENTA
-
33: FACTURA ELECTRONICA
-
34: FACTURA EXENTA ELECTRONICA
-
35: BOLETA
-
38: BOLETA EXENTA
-
39: BOLETA ELECTRONICA
-
40: LIQUIDACION FACTURA
-
41: BOLETA EXENTA ELECTRONICA
-
43: LIQUIDACION FACTURA ELECTRONICA
-
45: FACTURA DE COMPRA
-
46: FACTURA DE COMPRA ELECTRONICA
-
50: GUIA DE DESPACHO
-
52: GUIA DE DESPACHO ELECTRONICA
-
55: NOTA DE DEBITO
-
56: NOTA DE DEBITO ELECTRONICA
-
60: NOTA DE CREDITO
-
61: NOTA DE CREDITO ELECTRONICA
26 27 28 |
# File 'lib/facturapi/helpers/id_doc.rb', line 26 def tipo_dte @tipo_dte end |
Instance Method Details
#as_node ⇒ Object
124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 |
# File 'lib/facturapi/helpers/id_doc.rb', line 124 def as_node create_node('IdDoc') do |id_doc| id_doc << create_node('TipoDTE') { |n| n << tipo_dte } id_doc << create_node('Folio') { |n| n << folio } id_doc << create_node('FchEmis') { |n| n << fch_emis } id_doc << create_node('FchVenc') { |n| n << fch_venc } if boleta? id_doc << create_node('IndServicio') { |n| n << ind_servicio } id_doc << create_node('IndMntNeto') { |n| n << ind_mnt_neto } id_doc << create_node('PeriodoDesde') { |n| n << periodo_desde } id_doc << create_node('PeriodoHasta') { |n| n << periodo_hasta } end if guia_de_despacho? id_doc << create_node('TipoDespacho') { |n| n << tipo_despacho } id_doc << create_node('IndTraslado') { |n| n << ind_traslado } end id_doc << create_node('MntBruto') { |n| n << mnt_bruto } if mnt_bruto end end |
#boleta? ⇒ Boolean
156 157 158 |
# File 'lib/facturapi/helpers/id_doc.rb', line 156 def boleta? /^39|41$/ =~ tipo_dte end |
#format_date(date) ⇒ Object
144 145 146 |
# File 'lib/facturapi/helpers/id_doc.rb', line 144 def format_date(date) date.strftime('%Y-%m-%d') if date end |
#guia_de_despacho? ⇒ Boolean
160 161 162 |
# File 'lib/facturapi/helpers/id_doc.rb', line 160 def guia_de_despacho? /^50|52$/ =~ tipo_dte end |
#monto_bruto? ⇒ Boolean
148 149 150 |
# File 'lib/facturapi/helpers/id_doc.rb', line 148 def monto_bruto? ind_mnt_neto == '0' || mnt_bruto == 1 end |
#monto_neto? ⇒ Boolean
152 153 154 |
# File 'lib/facturapi/helpers/id_doc.rb', line 152 def monto_neto? ind_mnt_neto == '2' || mnt_bruto != 1 end |