facturapi 0.0.1 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Guardfile +14 -0
- data/README.md +113 -16
- data/config/locales/es.yml +21 -0
- data/facturapi.gemspec +4 -3
- data/lib/facturapi.rb +4 -2
- data/lib/facturapi/client.rb +30 -18
- data/lib/facturapi/helpers.rb +2 -0
- data/lib/facturapi/helpers/descuento_global.rb +10 -0
- data/lib/facturapi/helpers/detalle.rb +132 -13
- data/lib/facturapi/helpers/dsc_rcg_global.rb +47 -6
- data/lib/facturapi/helpers/dte.rb +52 -7
- data/lib/facturapi/helpers/emisor.rb +38 -7
- data/lib/facturapi/helpers/encabezado.rb +1 -1
- data/lib/facturapi/helpers/id_doc.rb +147 -14
- data/lib/facturapi/helpers/recargo_global.rb +10 -0
- data/lib/facturapi/helpers/receptor.rb +39 -4
- data/lib/facturapi/helpers/referencia.rb +62 -1
- data/lib/facturapi/helpers/totales.rb +119 -14
- data/lib/facturapi/services.rb +2 -0
- data/lib/facturapi/services/obtener_link.rb +50 -0
- data/lib/facturapi/services/procesar.rb +30 -0
- data/lib/facturapi/services/responses.rb +1 -0
- data/lib/facturapi/services/responses/obtener_link.rb +17 -0
- data/lib/facturapi/services/responses/procesar.rb +33 -0
- data/lib/facturapi/utils.rb +1 -0
- data/lib/facturapi/utils/dte_types.rb +38 -0
- data/lib/facturapi/version.rb +1 -1
- metadata +47 -12
- data/foo.xml +0 -119
- data/lala.html +0 -1
- data/lib/facturapi/service.rb +0 -1
- data/lib/facturapi/service/procesar.rb +0 -24
- data/todo.rb +0 -246
@@ -1,12 +1,70 @@
|
|
1
1
|
module Facturapi
|
2
2
|
module Helpers
|
3
|
+
# Corresponde a las lineas de referencia de una Boleta Electronica,
|
4
|
+
# etiqueta e informacion opcional con un maximo de 40
|
3
5
|
class Referencia
|
4
|
-
|
6
|
+
# Indica el numero secuencial de linea de referencia de la Boleta
|
7
|
+
# Electronica, el cual puede ser desde la linea 1 hasta la linea 40.
|
8
|
+
attr_accessor :nro_lin_ref
|
9
|
+
|
10
|
+
# Corresponde a un codigo que identifique el tipo de referencia que se
|
11
|
+
# presentara en el formato impreso de la Boleta Electronica, ya sea para
|
12
|
+
# control interno o para indicar algun dato al cliente que reciba el
|
13
|
+
# documento. El codigo es establecido por la empresa.
|
14
|
+
attr_accessor :cod_ref
|
15
|
+
|
16
|
+
# Corresponde al dato alfanumerico de un codigo de referencia.
|
17
|
+
attr_accessor :razon_ref
|
18
|
+
|
19
|
+
# Es el codigo de tipo de documento al que se hace referencia, con un
|
20
|
+
# maximo de 3 caracteres. Si corresponde a un documento tributario,
|
21
|
+
# corresponde a un valor numerico, el cual esta codificado por el
|
22
|
+
# Servicio de Impuestos Internos.
|
23
|
+
#
|
24
|
+
# - 29: FACTURA
|
25
|
+
# - 31: FACTURA EXENTA
|
26
|
+
# - 32: FACTURA ELECTRONICA
|
27
|
+
# - 33: FACTURA EXENTA ELECTRONICA
|
28
|
+
# - 34: BOLETA
|
29
|
+
# - 37: BOLETA EXENTA
|
30
|
+
# - 38: BOLETA ELECTRONICA
|
31
|
+
# - 39: LIQUIDACION FACTURA
|
32
|
+
# - 44: FACTURA DE COMPRA
|
33
|
+
# - 45: FACTURA DE COMPRA ELECTRONICA
|
34
|
+
# - 49: GUIA DE DESPACHO
|
35
|
+
# - 51: GUIA DE DESPACHO ELECTRONICA
|
36
|
+
# - 54: NOTA DE DEBITO
|
37
|
+
# - 55: NOTA DE DEBITO ELECTRONICA
|
38
|
+
# - 59: NOTA DE CREDITO
|
39
|
+
# - 60: NOTA DE CREDITO ELECTRONICA
|
40
|
+
# - 800: ORDEN DE COMPRA
|
41
|
+
# - 801: NOTA DE PEDIDO
|
42
|
+
# - 802: CONTRATO
|
43
|
+
# - 813: CERTIFICADO DE DEPOSITO BOLSA PROD. CHILE
|
44
|
+
# - 814: VALE DE PRENDA BOLSA PROD. CHILE
|
45
|
+
#
|
46
|
+
# Si es alfabetico, corresponde a documentos no tributarios, normalmente
|
47
|
+
# definidos por requerimiento de su cliente.
|
48
|
+
# - HES: HOJA DE ESTADO DE SERVICIO
|
49
|
+
# - HAS: HOJA DE ACEPTACION DE SERVICIO
|
50
|
+
# - HEM: RECEPCION DE MATERIAL
|
51
|
+
attr_accessor :tpo_doc_ref
|
52
|
+
|
53
|
+
# Es el folio del documento referenciado, indica el numero del documento
|
54
|
+
# que se alterara.
|
55
|
+
attr_accessor :folio_ref
|
56
|
+
|
57
|
+
# Es la fecha de emision del documento al que se hace referencia, el
|
58
|
+
# formato de la fecha es "AAAA-MM-DD" (anio, mes, dia)
|
59
|
+
attr_accessor :fecha_ref
|
5
60
|
|
6
61
|
def initialize(params = {})
|
7
62
|
@nro_lin_ref = params[:nro_lin_ref]
|
8
63
|
@cod_ref = params[:cod_ref]
|
9
64
|
@razon_ref = params[:razon_ref]
|
65
|
+
@tpo_doc_ref = params[:tpo_doc_ref]
|
66
|
+
@folio_ref = params[:folio_ref]
|
67
|
+
@fecha_ref = params[:fecha_ref]
|
10
68
|
end
|
11
69
|
|
12
70
|
def as_node
|
@@ -14,6 +72,9 @@ module Facturapi
|
|
14
72
|
referencia << create_node('NroLinRef') { |n| n << nro_lin_ref }
|
15
73
|
referencia << create_node('CodRef') { |n| n << cod_ref }
|
16
74
|
referencia << create_node('RazonRef') { |n| n << razon_ref }
|
75
|
+
referencia << create_node('TpoDocRef') { |n| n << tpo_doc_ref } if tpo_doc_ref
|
76
|
+
referencia << create_node('FolioRef') { |n| n << folio_ref } if folio_ref
|
77
|
+
referencia << create_node('FechaRef') { |n| n << fecha_ref } if fecha_ref
|
17
78
|
end
|
18
79
|
end
|
19
80
|
end
|
@@ -1,18 +1,97 @@
|
|
1
1
|
module Facturapi
|
2
2
|
module Helpers
|
3
|
+
# Corresponde a los valores totales de una Boleta Electronica.
|
3
4
|
class Totales
|
4
|
-
|
5
|
-
|
5
|
+
IVA = 0.19
|
6
|
+
|
7
|
+
# Corresponde al valor Neto de la boleta electronica, solamente se indica
|
8
|
+
# en el caso que el sea una boleta afecta y que IndMntNeto tenga el
|
9
|
+
# valor 2. Al ser un campo de monto, se debe indicar sin decimales y sin
|
10
|
+
# separadores de miles. Se calcula de la siguiente forma:
|
11
|
+
#
|
12
|
+
# MntNeto = Suma de MontoItem por linea de detalle - Descuentos + Recargos
|
13
|
+
# # Solamente MontoItem de los items que tienen IndExe = 0
|
14
|
+
# # Descuentos y Recargos basados en etiqueta <DscRcgGlobal>
|
15
|
+
attr_accessor :mnt_neto
|
16
|
+
|
17
|
+
# Corresponde al valor Exento de la boleta electronica. Al ser un campo de
|
18
|
+
# monto, se debe indicar sin decimales y sin separadores de miles.
|
19
|
+
# Se calcula de la siguiente forma:
|
20
|
+
#
|
21
|
+
# MntExe = Suma de ValorExento por linea de detalle
|
22
|
+
# # Solamente MontoItem de los items que tienen IndExe = 1
|
23
|
+
attr_accessor :mnt_exe
|
24
|
+
|
25
|
+
# Corresponde al valor IVA (Impuesto al Valor Agregado) de la boleta
|
26
|
+
# electronica, solamente se indica en el caso que el sea una boleta afecta
|
27
|
+
# y que IndMntNeto tenga el valor 2. Al ser un campo de monto, se debe
|
28
|
+
# indicar sin decimales y sin separadores de miles.
|
29
|
+
# Se calcula de la siguiente forma:
|
30
|
+
#
|
31
|
+
# IVA = MntNeto * 19%
|
32
|
+
attr_accessor :iva
|
33
|
+
|
34
|
+
# Corresponde al valor total de la boleta electronica y se puede calcular
|
35
|
+
# de dos maneras diferentes. Al ser un campo de monto, se debe indicar sin
|
36
|
+
# decimales y sin separadores de miles.
|
37
|
+
# Se calcula de la siguiente forma:
|
38
|
+
#
|
39
|
+
# # Para el caso que se indique una boleta afecta y que IndMntNeto tenga
|
40
|
+
# # el valor 2, se calcula:
|
41
|
+
# MntTotal = MntNeto + IVA + MntExe
|
42
|
+
# # Para el caso que no se indique IndMntNeto, o tenga el valor 0, se
|
43
|
+
# # calcula:
|
44
|
+
# MntTotal = Suma de MontoItem por linea de detalle - Descuentos + Recargos
|
45
|
+
# # Solamente MontoItem de los items que tienen IndExe = 0
|
46
|
+
# # Descuentos y Recargos basados en etiqueta <DscRcgGlobal>
|
47
|
+
attr_accessor :mnt_total
|
48
|
+
|
49
|
+
# Corresponde a la suma de los montos de bienes o servicios no facturables
|
50
|
+
# de la boleta electronica. Los montos no facturables pueden ser
|
51
|
+
# negativos. Al ser un campo de monto, se debe indicar sin decimales y sin
|
52
|
+
# separadores de miles. Se calcula de la siguiente forma:
|
53
|
+
#
|
54
|
+
# MontoNF = Suma de MontoItem por linea de detalle
|
55
|
+
# # Solamente MontoItem de los items que tienen IndExe igual a 2 y 6.
|
56
|
+
attr_accessor :monto_nf
|
57
|
+
|
58
|
+
# Corresponde a la suma final del documento, tomando el total y el monto
|
59
|
+
# no facturable en la boleta electronica. Al ser un campo de monto, se
|
60
|
+
# debe indicar sin decimales y sin separadores de miles.
|
61
|
+
# Se calcula de la siguiente forma:
|
62
|
+
#
|
63
|
+
# TotalPeriodo = MntTotal + MontoNF
|
64
|
+
attr_accessor :total_periodo
|
65
|
+
|
66
|
+
# Corresponde al saldo anterior de un periodo, esta es informacion
|
67
|
+
# ilustrativa en la boleta electronica, es decir, que se utiliza para el
|
68
|
+
# formato impreso del documento. Si no se desea usar, se debe asignar
|
69
|
+
# 0 (cero). Al ser un campo de monto, se debe indicar sin decimales y sin
|
70
|
+
# separadores de miles.
|
71
|
+
attr_accessor :saldo_anterior
|
72
|
+
|
73
|
+
# Es el valor cobrado de la transaccion realizada. Al ser un campo de
|
74
|
+
# monto, se debe indicar sin decimales y sin separadores de miles.
|
75
|
+
# Se calcula de la siguiente forma:
|
76
|
+
#
|
77
|
+
# VlrPagar = MntTotal + SaldoAnterior
|
78
|
+
attr_accessor :vlr_pagar
|
79
|
+
|
80
|
+
# Corresponde a la tasa de impuesto al valor agregado (IVA), este valor
|
81
|
+
# debe ser expresado en porcentaje
|
82
|
+
attr_accessor :tasa_iva
|
6
83
|
|
7
84
|
def initialize(params = {})
|
8
|
-
@mnt_neto = params[:mnt_neto]
|
9
|
-
@mnt_exe = params[:mnt_exe]
|
10
|
-
@iva = params[:iva]
|
11
|
-
@mnt_total = params[:mnt_total]
|
12
|
-
@monto_nf = params[:monto_nf]
|
13
|
-
@total_periodo = params[:total_periodo]
|
14
|
-
@saldo_anterior = params[:saldo_anterior]
|
15
|
-
@vlr_pagar = params[:vlr_pagar]
|
85
|
+
@mnt_neto = params[:mnt_neto].to_i if params[:mnt_neto]
|
86
|
+
@mnt_exe = params[:mnt_exe].to_i if params[:mnt_exe]
|
87
|
+
@iva = params[:iva].to_i if params[:iva]
|
88
|
+
@mnt_total = params[:mnt_total].to_i if params[:mnt_total]
|
89
|
+
@monto_nf = params[:monto_nf].to_i if params[:monto_nf]
|
90
|
+
@total_periodo = params[:total_periodo].to_i if params[:total_periodo]
|
91
|
+
@saldo_anterior = params[:saldo_anterior].to_i
|
92
|
+
@vlr_pagar = params[:vlr_pagar].to_i if params[:vlr_pagar]
|
93
|
+
@tasa_iva = params[:tasa_iva]
|
94
|
+
autocomplete! if params[:auto]
|
16
95
|
end
|
17
96
|
|
18
97
|
def as_node
|
@@ -21,11 +100,37 @@ module Facturapi
|
|
21
100
|
totales << create_node('MntExe') { |n| n << mnt_exe }
|
22
101
|
totales << create_node('IVA') { |n| n << iva }
|
23
102
|
totales << create_node('MntTotal') { |n| n << mnt_total }
|
24
|
-
totales << create_node('MontoNF') { |n| n << monto_nf }
|
25
|
-
totales << create_node('TotalPeriodo') { |n| n << total_periodo }
|
26
|
-
totales << create_node('SaldoAnterior') { |n| n << saldo_anterior }
|
27
|
-
totales << create_node('VlrPagar') { |n| n << vlr_pagar }
|
103
|
+
totales << create_node('MontoNF') { |n| n << monto_nf } if monto_nf
|
104
|
+
totales << create_node('TotalPeriodo') { |n| n << total_periodo } if total_periodo
|
105
|
+
totales << create_node('SaldoAnterior') { |n| n << saldo_anterior } if saldo_anterior
|
106
|
+
totales << create_node('VlrPagar') { |n| n << vlr_pagar } if vlr_pagar
|
107
|
+
totales << create_node('TasaIVA') { |n| n << tasa_iva } if tasa_iva
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
def autocomplete!(params = {})
|
112
|
+
is_monto_neto = params[:is_monto_neto]
|
113
|
+
mnt_neto = params[:mnt_neto]
|
114
|
+
mnt_exe = params[:mnt_exe]
|
115
|
+
monto_nf = params[:monto_nf]
|
116
|
+
is_boleta = params[:is_boleta]
|
117
|
+
self.tasa_iva = IVA * 100 if !is_boleta && tasa_iva.blank?
|
118
|
+
if is_monto_neto && mnt_neto
|
119
|
+
self.mnt_neto = mnt_neto if self.mnt_neto.blank?
|
120
|
+
self.iva = (mnt_neto * (tasa_iva || IVA * 100) / 100).to_i if iva.blank?
|
28
121
|
end
|
122
|
+
self.mnt_exe = mnt_exe || 0 if self.mnt_exe.blank?
|
123
|
+
self.monto_nf = monto_nf || 0 if self.monto_nf.blank?
|
124
|
+
|
125
|
+
if mnt_total.blank? && mnt_neto
|
126
|
+
self.mnt_total = is_monto_neto ? auto_mnt_total : mnt_neto
|
127
|
+
end
|
128
|
+
self.total_periodo = mnt_total + self.monto_nf if total_periodo.blank?
|
129
|
+
self.vlr_pagar = mnt_total + saldo_anterior if vlr_pagar.blank?
|
130
|
+
end
|
131
|
+
|
132
|
+
def auto_mnt_total
|
133
|
+
mnt_neto + iva + mnt_exe
|
29
134
|
end
|
30
135
|
end
|
31
136
|
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
require 'facturapi/services/responses/obtener_link'
|
2
|
+
|
3
|
+
module Facturapi
|
4
|
+
module Services
|
5
|
+
# Obtiene el Link de descarga del Documento Tributario una vez que este ha
|
6
|
+
# sido generado y enviado al SII.
|
7
|
+
# Se puede utilizar directamente el indicador "IncluyeLink" al procesar, en
|
8
|
+
# caso que se desee obtener los link de Impresion al emitir.
|
9
|
+
class ObtenerLink
|
10
|
+
# Corresponde al tipo de movimiento asociado al documento enviado:
|
11
|
+
# C = Compra
|
12
|
+
# V = Venta
|
13
|
+
# B = Boleta
|
14
|
+
attr_accessor :tpomov
|
15
|
+
|
16
|
+
# Corresponde al numero de Folio del Documento.
|
17
|
+
attr_accessor :folio
|
18
|
+
|
19
|
+
# Corresponde al Tipo de Documento (Tipo DTE)
|
20
|
+
attr_accessor :tipo
|
21
|
+
|
22
|
+
# Indica si se obtendra la copia cedible del PDF.
|
23
|
+
# True = Se obtiene copia Cedible.
|
24
|
+
# False = Se obtiene la copia Original.
|
25
|
+
attr_accessor :cedible
|
26
|
+
|
27
|
+
def initialize(params)
|
28
|
+
@tpomov = Base64.strict_encode64(params[:tpomov] || 'B')
|
29
|
+
@folio = Base64.strict_encode64(params[:folio].to_s)
|
30
|
+
@tipo = Base64.strict_encode64 (params[:tipo] || '39').to_s
|
31
|
+
@cedible = Base64.strict_encode64(params[:cedible] ? 'True' : 'False')
|
32
|
+
end
|
33
|
+
|
34
|
+
def send
|
35
|
+
response = Facturapi::Client.call(:obtener_link, params)
|
36
|
+
Facturapi::Services::Responses::ObtenerLink.new(
|
37
|
+
response.body[:obtener_link_response][:obtener_link_result]
|
38
|
+
)
|
39
|
+
end
|
40
|
+
|
41
|
+
def params
|
42
|
+
{ tpomov: tpomov, folio: folio, tipo: tipo, cedible: cedible }
|
43
|
+
end
|
44
|
+
|
45
|
+
def to_s
|
46
|
+
Facturapi::Client.xml(:obtener_link, params)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'facturapi/services/responses/procesar'
|
2
|
+
|
3
|
+
module Facturapi
|
4
|
+
module Services
|
5
|
+
# Permite procesar el archivo de Integracion y generar el DTE (Documento
|
6
|
+
# Tributario Electronico).
|
7
|
+
class Procesar
|
8
|
+
attr_accessor :dte
|
9
|
+
|
10
|
+
def initialize(dte)
|
11
|
+
@dte = dte
|
12
|
+
end
|
13
|
+
|
14
|
+
def send
|
15
|
+
response = Facturapi::Client.call(:procesar, params)
|
16
|
+
Facturapi::Services::Responses::Procesar.new(
|
17
|
+
response.body[:procesar_response][:procesar_result]
|
18
|
+
)
|
19
|
+
end
|
20
|
+
|
21
|
+
def params
|
22
|
+
{ file: Base64.strict_encode64(dte.as_node.to_s), formato: 2 }
|
23
|
+
end
|
24
|
+
|
25
|
+
def to_s
|
26
|
+
Facturapi::Client.xml(:procesar, params)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
require 'facturapi/services/responses/procesar'
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Facturapi
|
2
|
+
module Services
|
3
|
+
module Responses
|
4
|
+
class ObtenerLink
|
5
|
+
attr_reader :response
|
6
|
+
|
7
|
+
def initialize(response)
|
8
|
+
@response = Nokogiri::XML(response)
|
9
|
+
end
|
10
|
+
|
11
|
+
def url
|
12
|
+
Base64.strict_decode64 response.css('WSPLANO>Mensaje').text
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module Facturapi
|
2
|
+
module Services
|
3
|
+
module Responses
|
4
|
+
class Procesar
|
5
|
+
attr_reader :response
|
6
|
+
|
7
|
+
def initialize(response)
|
8
|
+
@response = Nokogiri::XML(response)
|
9
|
+
end
|
10
|
+
|
11
|
+
def valid?
|
12
|
+
response.css('WSPLANO>Resultado').text == 'True'
|
13
|
+
end
|
14
|
+
|
15
|
+
def error
|
16
|
+
response.css('Documento>Error').text
|
17
|
+
end
|
18
|
+
|
19
|
+
def folio
|
20
|
+
response.css('Documento>Folio').text.to_i
|
21
|
+
end
|
22
|
+
|
23
|
+
def tipo_dte
|
24
|
+
response.css('Documento>TipoDte').text.to_i
|
25
|
+
end
|
26
|
+
|
27
|
+
def fecha
|
28
|
+
Time.strptime(response.css('Documento>Fecha').text, '%FT%T')
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
require 'facturapi/utils/dte_types'
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require 'i18n'
|
2
|
+
|
3
|
+
module Facturapi
|
4
|
+
module Utils
|
5
|
+
module DteTypes
|
6
|
+
DOCUMENTS = {
|
7
|
+
30 => :factura,
|
8
|
+
32 => :factura_ex,
|
9
|
+
33 => :factura_elec,
|
10
|
+
34 => :factura_ex_elec,
|
11
|
+
35 => :boleta,
|
12
|
+
38 => :boleta_ex,
|
13
|
+
39 => :boleta_elec,
|
14
|
+
40 => :liq_factura,
|
15
|
+
41 => :boleta_ex_elec,
|
16
|
+
43 => :liq_factura_elec,
|
17
|
+
45 => :factura_compra,
|
18
|
+
46 => :factura_compra_elec,
|
19
|
+
50 => :guia_despacho,
|
20
|
+
52 => :guia_despacho_elec,
|
21
|
+
55 => :nota_deb,
|
22
|
+
56 => :nota_deb_elec,
|
23
|
+
60 => :nota_cred,
|
24
|
+
61 => :nota_cred_elec
|
25
|
+
}.freeze
|
26
|
+
|
27
|
+
VALID_REGEXP = Regexp.new("^#{DOCUMENTS.keys.join('|')}$")
|
28
|
+
|
29
|
+
def self.sym(dte_type)
|
30
|
+
DOCUMENTS[dte_type]
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.humanized(dte_type)
|
34
|
+
I18n.t "facturapi.dte_type.#{sym(dte_type)}"
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
data/lib/facturapi/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: facturapi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alter Lagos
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-02-
|
11
|
+
date: 2017-02-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: savon
|
@@ -59,19 +59,19 @@ dependencies:
|
|
59
59
|
- !ruby/object:Gem::Version
|
60
60
|
version: 1.4.0
|
61
61
|
- !ruby/object:Gem::Dependency
|
62
|
-
name:
|
62
|
+
name: i18n
|
63
63
|
requirement: !ruby/object:Gem::Requirement
|
64
64
|
requirements:
|
65
65
|
- - "~>"
|
66
66
|
- !ruby/object:Gem::Version
|
67
|
-
version: '
|
68
|
-
type: :
|
67
|
+
version: '0.6'
|
68
|
+
type: :runtime
|
69
69
|
prerelease: false
|
70
70
|
version_requirements: !ruby/object:Gem::Requirement
|
71
71
|
requirements:
|
72
72
|
- - "~>"
|
73
73
|
- !ruby/object:Gem::Version
|
74
|
-
version: '
|
74
|
+
version: '0.6'
|
75
75
|
- !ruby/object:Gem::Dependency
|
76
76
|
name: rake
|
77
77
|
requirement: !ruby/object:Gem::Requirement
|
@@ -100,6 +100,34 @@ dependencies:
|
|
100
100
|
- - "~>"
|
101
101
|
- !ruby/object:Gem::Version
|
102
102
|
version: '3.0'
|
103
|
+
- !ruby/object:Gem::Dependency
|
104
|
+
name: pry-byebug
|
105
|
+
requirement: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - "~>"
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: 3.4.0
|
110
|
+
type: :development
|
111
|
+
prerelease: false
|
112
|
+
version_requirements: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - "~>"
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: 3.4.0
|
117
|
+
- !ruby/object:Gem::Dependency
|
118
|
+
name: guard-rspec
|
119
|
+
requirement: !ruby/object:Gem::Requirement
|
120
|
+
requirements:
|
121
|
+
- - "~>"
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: 4.7.0
|
124
|
+
type: :development
|
125
|
+
prerelease: false
|
126
|
+
version_requirements: !ruby/object:Gem::Requirement
|
127
|
+
requirements:
|
128
|
+
- - "~>"
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
version: 4.7.0
|
103
131
|
description:
|
104
132
|
email:
|
105
133
|
- alter.strife@gmail.com
|
@@ -114,33 +142,40 @@ files:
|
|
114
142
|
- ".travis.yml"
|
115
143
|
- CODE_OF_CONDUCT.md
|
116
144
|
- Gemfile
|
145
|
+
- Guardfile
|
117
146
|
- LICENSE.txt
|
118
147
|
- README.md
|
119
148
|
- Rakefile
|
120
149
|
- bin/console
|
121
150
|
- bin/setup
|
151
|
+
- config/locales/es.yml
|
122
152
|
- facturapi.gemspec
|
123
|
-
- foo.xml
|
124
|
-
- lala.html
|
125
153
|
- lib/facturapi.rb
|
126
154
|
- lib/facturapi/client.rb
|
127
155
|
- lib/facturapi/config.rb
|
128
156
|
- lib/facturapi/helpers.rb
|
157
|
+
- lib/facturapi/helpers/descuento_global.rb
|
129
158
|
- lib/facturapi/helpers/detalle.rb
|
130
159
|
- lib/facturapi/helpers/dsc_rcg_global.rb
|
131
160
|
- lib/facturapi/helpers/dte.rb
|
132
161
|
- lib/facturapi/helpers/emisor.rb
|
133
162
|
- lib/facturapi/helpers/encabezado.rb
|
134
163
|
- lib/facturapi/helpers/id_doc.rb
|
164
|
+
- lib/facturapi/helpers/recargo_global.rb
|
135
165
|
- lib/facturapi/helpers/receptor.rb
|
136
166
|
- lib/facturapi/helpers/referencia.rb
|
137
167
|
- lib/facturapi/helpers/totales.rb
|
138
|
-
- lib/facturapi/
|
139
|
-
- lib/facturapi/
|
168
|
+
- lib/facturapi/services.rb
|
169
|
+
- lib/facturapi/services/obtener_link.rb
|
170
|
+
- lib/facturapi/services/procesar.rb
|
171
|
+
- lib/facturapi/services/responses.rb
|
172
|
+
- lib/facturapi/services/responses/obtener_link.rb
|
173
|
+
- lib/facturapi/services/responses/procesar.rb
|
174
|
+
- lib/facturapi/utils.rb
|
175
|
+
- lib/facturapi/utils/dte_types.rb
|
140
176
|
- lib/facturapi/version.rb
|
141
177
|
- lib/facturapi/xml.rb
|
142
|
-
|
143
|
-
homepage:
|
178
|
+
homepage: https://github.com/meloncargo/facturapi
|
144
179
|
licenses:
|
145
180
|
- MIT
|
146
181
|
metadata: {}
|