Afip 1.4.8 → 1.5.6
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/.DS_Store +0 -0
- data/.gitignore +8 -0
- data/Afip-1.4.9.gem +0 -0
- data/Afip-1.5.gem +0 -0
- data/Afip.gemspec +2 -2
- data/Gemfile.lock +6 -6
- data/lib/.DS_Store +0 -0
- data/lib/Afip/.DS_Store +0 -0
- data/lib/Afip/bill.rb +42 -28
- data/lib/Afip/version.rb +1 -1
- metadata +16 -12
- data/Afip-1.4.gem +0 -0
- data/pkg/Afip-1.4.7.gem +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ad4975819120b21f08173fa96621aa9374044c8a4dc11984a6857daa1ad3e2e8
|
4
|
+
data.tar.gz: 5b02b04486f20e479b75aaac2cc9a65929246232dabdd4c5d616eaab7e8cf445
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 22a2ccc56c83aa604d9f9c893ef644a4a23f6f8736143b17f3cd0d8fd4291607e59d1f7fc29c56ce3c98f0593869683e5f164adf4d721c7c99e77d7cc64ecc54
|
7
|
+
data.tar.gz: b5026aecc8b36cd95d9569682fa78969c2a941e5cecb5e993eedb6c2a86194c6218f7f2565fd0c6bbe0fbb306526901854e6eaa8f0fadc0d51a82ba8ef6e8bfb
|
data/.DS_Store
ADDED
Binary file
|
data/.gitignore
ADDED
data/Afip-1.4.9.gem
ADDED
Binary file
|
data/Afip-1.5.gem
ADDED
Binary file
|
data/Afip.gemspec
CHANGED
@@ -36,6 +36,6 @@ Gem::Specification.new do |spec|
|
|
36
36
|
spec.add_dependency "savon"
|
37
37
|
spec.add_dependency "httpi"
|
38
38
|
spec.add_dependency "nokogiri", ">= 1.10.4"
|
39
|
-
spec.add_development_dependency "bundler"
|
40
|
-
spec.add_development_dependency "rake"
|
39
|
+
spec.add_development_dependency "bundler", "~> 1.16"
|
40
|
+
spec.add_development_dependency "rake", "~> 12.3.3"
|
41
41
|
end
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
Afip (1.
|
4
|
+
Afip (1.5.5)
|
5
5
|
httpi
|
6
6
|
nokogiri (>= 1.10.4)
|
7
7
|
savon
|
@@ -22,8 +22,8 @@ GEM
|
|
22
22
|
nokogiri (1.10.9)
|
23
23
|
mini_portile2 (~> 2.4.0)
|
24
24
|
nori (2.6.0)
|
25
|
-
rack (2.2.
|
26
|
-
rake (
|
25
|
+
rack (2.2.3)
|
26
|
+
rake (12.3.3)
|
27
27
|
savon (2.12.0)
|
28
28
|
akami (~> 1.2)
|
29
29
|
builder (>= 2.1.2)
|
@@ -42,8 +42,8 @@ PLATFORMS
|
|
42
42
|
|
43
43
|
DEPENDENCIES
|
44
44
|
Afip!
|
45
|
-
bundler
|
46
|
-
rake
|
45
|
+
bundler (~> 1.16)
|
46
|
+
rake (~> 12.3.3)
|
47
47
|
|
48
48
|
BUNDLED WITH
|
49
|
-
|
49
|
+
1.17.3
|
data/lib/.DS_Store
ADDED
Binary file
|
data/lib/Afip/.DS_Store
ADDED
Binary file
|
data/lib/Afip/bill.rb
CHANGED
@@ -2,19 +2,19 @@ module Afip
|
|
2
2
|
class Bill
|
3
3
|
attr_reader :cbte_type, :body, :response, :fecha_emision, :total, :client
|
4
4
|
attr_accessor :net, :doc_num, :iva_cond, :documento, :concepto, :moneda, :cbte_type,
|
5
|
-
:due_date, :fch_serv_desde, :fch_serv_hasta, :fch_emision,
|
5
|
+
:due_date, :fch_serv_desde, :fch_serv_hasta, :fch_emision, :cbte_asoc,
|
6
6
|
:ivas, :sale_point, :cant_reg, :no_gravado, :gravado, :exento, :otros_imp, :tributos, :opcionales
|
7
7
|
|
8
8
|
def initialize(attrs={})
|
9
9
|
@client = Bill.set_client
|
10
|
-
@sale_point
|
11
|
-
@body
|
12
|
-
@net
|
10
|
+
@sale_point = attrs[:sale_point]
|
11
|
+
@body = { "Auth" => Afip.auth_hash }
|
12
|
+
@net = attrs[:net] || 0.0
|
13
13
|
@documento = attrs[:documento] || Afip.default_documento
|
14
|
-
@moneda
|
14
|
+
@moneda = attrs[:moneda] || Afip.default_moneda
|
15
15
|
@iva_cond = attrs[:iva_cond]
|
16
16
|
@concepto = attrs[:concepto] || Afip.default_concepto
|
17
|
-
@ivas
|
17
|
+
@ivas = attrs[:ivas] || Array.new # [ 1, 100.00, 10.50 ], [ 2, 100.00, 21.00 ]
|
18
18
|
@fecha_emision = attrs[:fch_emision] || Time.new
|
19
19
|
@fch_serv_hasta = attrs[:fch_serv_hasta]
|
20
20
|
@fch_serv_desde = attrs[:fch_serv_desde]
|
@@ -22,12 +22,13 @@ module Afip
|
|
22
22
|
@cbte_type = attrs[:cbte_type]
|
23
23
|
@cant_reg = attrs[:cant_reg] || 1
|
24
24
|
@no_gravado = attrs[:no_gravado] || 0.0
|
25
|
-
@gravado
|
26
|
-
@exento
|
25
|
+
@gravado = attrs[:gravado] || 0.0
|
26
|
+
@exento = attrs[:exento] || 0.0
|
27
27
|
@otros_imp = attrs[:otros_imp] || 0.0
|
28
|
-
@total
|
28
|
+
@total = net.to_f + iva_sum.to_f + exento.to_f + no_gravado.to_f + otros_imp.to_f
|
29
29
|
@tributos = attrs[:tributos] || []
|
30
|
-
|
30
|
+
@opcionales = attrs[:opcionales] || []
|
31
|
+
@cbte_asoc = attrs[:cbte_asoc] || []
|
31
32
|
end
|
32
33
|
|
33
34
|
def self.get_ptos_vta
|
@@ -86,35 +87,44 @@ module Afip
|
|
86
87
|
|
87
88
|
def setup_bill
|
88
89
|
array_ivas = {}
|
89
|
-
array_ivas["AlicIva"] = ivas.map{ |i| { "Id" => i[0], "BaseImp" => i[1].round(
|
90
|
+
array_ivas["AlicIva"] = ivas.map{ |i| { "Id" => i[0], "BaseImp" => i[1].round(2), "Importe" => i[2].round(2)} unless ["01", "02"].include?(i[0])}.compact
|
90
91
|
|
91
92
|
array_tributos = {}
|
92
93
|
array_tributos["Tributo"] = tributos.map{ |t|
|
93
94
|
if t[1].blank?
|
94
95
|
{
|
95
96
|
"Id" => t[0],
|
96
|
-
"BaseImp" => t[2].to_f.round(
|
97
|
-
"Alic" => t[3].to_f.round(
|
98
|
-
"Importe" => t[4].to_f.round(
|
97
|
+
"BaseImp" => t[2].to_f.round(2),
|
98
|
+
"Alic" => t[3].to_f.round(2),
|
99
|
+
"Importe" => t[4].to_f.round(2)
|
99
100
|
}
|
100
101
|
else
|
101
102
|
{
|
102
103
|
"Id" => t[0],
|
103
104
|
"Desc" => t[1],
|
104
|
-
"BaseImp" => t[2].to_f.round(
|
105
|
-
"Alic" => t[3].to_f.round(
|
106
|
-
"Importe" => t[4].to_f.round(
|
105
|
+
"BaseImp" => t[2].to_f.round(2),
|
106
|
+
"Alic" => t[3].to_f.round(2),
|
107
|
+
"Importe" => t[4].to_f.round(2)
|
107
108
|
}
|
108
109
|
end
|
109
110
|
}
|
110
111
|
|
111
112
|
array_opcionales = {}
|
112
113
|
array_opcionales["Opcional"] = opcionales.map{ |t|
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
114
|
+
{
|
115
|
+
"Id" => t[:id],
|
116
|
+
"Valor" => t[:valor]
|
117
|
+
}
|
118
|
+
}
|
119
|
+
|
120
|
+
array_associados = {}
|
121
|
+
array_associados["CbteAsoc"] = cbte_asoc.map{ |b|
|
122
|
+
{
|
123
|
+
"Tipo" => b[:cbte_tipo],
|
124
|
+
"PtoVta" => b[:sale_point],
|
125
|
+
"Nro" => b[:cbte_num]
|
126
|
+
}
|
127
|
+
}
|
118
128
|
|
119
129
|
|
120
130
|
fecaereq = {
|
@@ -124,14 +134,14 @@ module Afip
|
|
124
134
|
"FECAEDetRequest" => {
|
125
135
|
"Concepto" => Afip::CONCEPTOS[concepto],
|
126
136
|
"DocTipo" => Afip::DOCUMENTOS[documento],
|
127
|
-
"DocNro"
|
137
|
+
"DocNro" => doc_num,
|
128
138
|
"CbteFch" => fecha_emision.strftime('%Y%m%d'),
|
129
139
|
"ImpTotConc" => no_gravado,
|
130
|
-
"ImpNeto"
|
140
|
+
"ImpNeto" => net.to_f,
|
131
141
|
"MonId" => Afip::MONEDAS[moneda][:codigo],
|
132
142
|
"MonCotiz" => exchange_rate,
|
133
143
|
"ImpOpEx" => exento,
|
134
|
-
"ImpTotal" => (Afip.own_iva_cond == :responsable_monotributo ? net : total).to_f.round(
|
144
|
+
"ImpTotal" => (Afip.own_iva_cond == :responsable_monotributo ? net : total).to_f.round(2),
|
135
145
|
"CbteDesde" => next_bill_number,
|
136
146
|
"CbteHasta" => next_bill_number
|
137
147
|
}
|
@@ -153,7 +163,11 @@ module Afip
|
|
153
163
|
|
154
164
|
if !opcionales.empty?
|
155
165
|
detail["Opcionales"] = array_opcionales
|
156
|
-
|
166
|
+
end
|
167
|
+
|
168
|
+
if !cbte_asoc.empty?
|
169
|
+
detail["CbtesAsoc"] = array_associados
|
170
|
+
end
|
157
171
|
|
158
172
|
unless concepto == "Productos" # En "Productos" ("01"), si se mandan estos parámetros la afip rechaza.
|
159
173
|
detail.merge!({"FchServDesde" => fch_serv_desde.strftime("%Y%m%d"),
|
@@ -186,7 +200,7 @@ module Afip
|
|
186
200
|
self.ivas.each{ |i|
|
187
201
|
iva_sum += i[2]
|
188
202
|
}
|
189
|
-
return iva_sum.round(
|
203
|
+
return iva_sum.round(2)
|
190
204
|
end
|
191
205
|
|
192
206
|
def next_bill_number
|
@@ -200,7 +214,7 @@ module Afip
|
|
200
214
|
|
201
215
|
def setup_response(response)
|
202
216
|
# TODO: turn this into an all-purpose Response class
|
203
|
-
|
217
|
+
pp response
|
204
218
|
result = response[:fecae_solicitar_response][:fecae_solicitar_result]
|
205
219
|
|
206
220
|
if not result[:fe_det_resp] or not result[:fe_cab_resp] then
|
data/lib/Afip/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: Afip
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Facundo A. Díaz Martínez
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-06-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: savon
|
@@ -56,30 +56,30 @@ dependencies:
|
|
56
56
|
name: bundler
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '1.16'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - "
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
68
|
+
version: '1.16'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rake
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- - "
|
73
|
+
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
75
|
+
version: 12.3.3
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- - "
|
80
|
+
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
82
|
+
version: 12.3.3
|
83
83
|
description: Gema para la comunicacion con los Web Services de AFIP.
|
84
84
|
email:
|
85
85
|
- facundo_diaz_martinez@hotmail.com
|
@@ -87,8 +87,11 @@ executables: []
|
|
87
87
|
extensions: []
|
88
88
|
extra_rdoc_files: []
|
89
89
|
files:
|
90
|
+
- ".DS_Store"
|
91
|
+
- ".gitignore"
|
90
92
|
- Afip-1.2.1.gem
|
91
|
-
- Afip-1.4.gem
|
93
|
+
- Afip-1.4.9.gem
|
94
|
+
- Afip-1.5.gem
|
92
95
|
- Afip.gemspec
|
93
96
|
- Gemfile
|
94
97
|
- Gemfile.lock
|
@@ -97,7 +100,9 @@ files:
|
|
97
100
|
- Rakefile
|
98
101
|
- bin/console
|
99
102
|
- bin/setup
|
103
|
+
- lib/.DS_Store
|
100
104
|
- lib/Afip.rb
|
105
|
+
- lib/Afip/.DS_Store
|
101
106
|
- lib/Afip/auth_data.rb
|
102
107
|
- lib/Afip/authorizer.rb
|
103
108
|
- lib/Afip/bill.rb
|
@@ -109,7 +114,6 @@ files:
|
|
109
114
|
- lib/Afip/padron.rb
|
110
115
|
- lib/Afip/version.rb
|
111
116
|
- lib/Afip/wsaa.rb
|
112
|
-
- pkg/Afip-1.4.7.gem
|
113
117
|
homepage: http://litecode.com.ar/
|
114
118
|
licenses:
|
115
119
|
- MIT
|
data/Afip-1.4.gem
DELETED
Binary file
|
data/pkg/Afip-1.4.7.gem
DELETED
Binary file
|