afipws 0.1.3 → 0.1.4
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.
- data/Gemfile.lock +1 -1
- data/lib/afipws/version.rb +1 -1
- data/lib/afipws/wsfe.rb +10 -13
- data/spec/afipws/wsfe_spec.rb +7 -2
- data/spec/manual/test.rb +2 -5
- metadata +6 -28
data/Gemfile.lock
CHANGED
data/lib/afipws/version.rb
CHANGED
data/lib/afipws/wsfe.rb
CHANGED
|
@@ -60,13 +60,7 @@ module Afipws
|
|
|
60
60
|
comprobantes = opciones[:comprobantes]
|
|
61
61
|
request = { 'FeCAEReq' => {
|
|
62
62
|
'FeCabReq' => opciones.select_keys(:cbte_tipo, :pto_vta).merge(:cant_reg => comprobantes.size),
|
|
63
|
-
'FeDetReq' => {
|
|
64
|
-
'FECAEDetRequest' => comprobantes.map do |comprobante|
|
|
65
|
-
comprobante.merge(:cbte_desde => comprobante[:cbte_nro], :cbte_hasta => comprobante[:cbte_nro]).
|
|
66
|
-
select_keys(:concepto, :doc_tipo, :doc_nro, :cbte_desde,
|
|
67
|
-
:cbte_hasta, :cbte_fch, :imp_total, :imp_tot_conc, :imp_neto, :imp_op_ex, :imp_trib,
|
|
68
|
-
:mon_id, :mon_cotiz, :iva).merge({ 'ImpIVA' => comprobante[:imp_iva] })
|
|
69
|
-
end
|
|
63
|
+
'FeDetReq' => { 'FECAEDetRequest' => comprobantes.map { |comprobante| comprobante_to_request comprobante }
|
|
70
64
|
}}}
|
|
71
65
|
r = @client.fecae_solicitar auth.merge r2x(request, :cbte_fch => :date)
|
|
72
66
|
r = Array.wrap(r[:fe_det_resp][:fecae_det_response]).map do |h|
|
|
@@ -76,6 +70,13 @@ module Afipws
|
|
|
76
70
|
x2r r, :cae_fch_vto => :date, :cbte_nro => :integer, :code => :integer
|
|
77
71
|
end
|
|
78
72
|
|
|
73
|
+
def comprobante_to_request comprobante
|
|
74
|
+
comprobante.merge(:cbte_desde => comprobante[:cbte_nro], :cbte_hasta => comprobante[:cbte_nro]).
|
|
75
|
+
select_keys(:concepto, :doc_tipo, :doc_nro, :cbte_desde,
|
|
76
|
+
:cbte_hasta, :cbte_fch, :imp_total, :imp_tot_conc, :imp_neto, :imp_op_ex, :imp_trib,
|
|
77
|
+
:mon_id, :mon_cotiz, :iva, :tributos).merge({ 'ImpIVA' => comprobante[:imp_iva] })
|
|
78
|
+
end
|
|
79
|
+
|
|
79
80
|
def solicitar_caea
|
|
80
81
|
convertir_rta_caea @client.fecaea_solicitar auth.merge(periodo_para_solicitud_caea)
|
|
81
82
|
rescue Afipws::WSError => e
|
|
@@ -94,12 +95,8 @@ module Afipws
|
|
|
94
95
|
comprobantes = opciones[:comprobantes]
|
|
95
96
|
request = { 'FeCAEARegInfReq' => {
|
|
96
97
|
'FeCabReq' => opciones.select_keys(:cbte_tipo, :pto_vta).merge(:cant_reg => comprobantes.size),
|
|
97
|
-
'FeDetReq' => {
|
|
98
|
-
|
|
99
|
-
comprobante.merge(:cbte_desde => comprobante[:cbte_nro], :cbte_hasta => comprobante[:cbte_nro]).
|
|
100
|
-
select_keys(:concepto, :doc_tipo, :doc_nro, :cbte_desde,
|
|
101
|
-
:cbte_hasta, :cbte_fch, :imp_total, :imp_tot_conc, :imp_neto, :imp_op_ex, :imp_trib,
|
|
102
|
-
:mon_id, :mon_cotiz, :iva).merge({ 'ImpIVA' => comprobante[:imp_iva], 'CAEA' => comprobante[:caea] })
|
|
98
|
+
'FeDetReq' => { 'FECAEADetRequest' => comprobantes.map do |comprobante|
|
|
99
|
+
comprobante_to_request(comprobante).merge('CAEA' => comprobante[:caea])
|
|
103
100
|
end
|
|
104
101
|
}}}
|
|
105
102
|
r = @client.fecaea_reg_informativo auth.merge r2x(request, :cbte_fch => :date)
|
data/spec/afipws/wsfe_spec.rb
CHANGED
|
@@ -80,12 +80,17 @@ describe Afipws::WSFE do
|
|
|
80
80
|
'/FeCAEReq/FeDetReq/FECAEDetRequest[0]/ImpTotal' => 1270.48,
|
|
81
81
|
'/FeCAEReq/FeDetReq/FECAEDetRequest[0]/ImpIVA' => 220.5,
|
|
82
82
|
'/FeCAEReq/FeDetReq/FECAEDetRequest[0]/Iva/AlicIva[0]/Id' => 5,
|
|
83
|
-
'/FeCAEReq/FeDetReq/FECAEDetRequest[0]/Iva/AlicIva[0]/Importe' => 220.5
|
|
83
|
+
'/FeCAEReq/FeDetReq/FECAEDetRequest[0]/Iva/AlicIva[0]/Importe' => 220.5,
|
|
84
|
+
'/FeCAEReq/FeDetReq/FECAEDetRequest[0]/Tributos/Tributo[0]/Id' => 0,
|
|
85
|
+
'/FeCAEReq/FeDetReq/FECAEDetRequest[0]/Tributos/Tributo[0]/BaseImp' => 150,
|
|
86
|
+
'/FeCAEReq/FeDetReq/FECAEDetRequest[0]/Tributos/Tributo[0]/Alic' => 5.2,
|
|
87
|
+
'/FeCAEReq/FeDetReq/FECAEDetRequest[0]/Tributos/Tributo[0]/Importe' => 7.8
|
|
84
88
|
).returns(:autorizacion_1_cbte)
|
|
85
89
|
rta = ws.autorizar_comprobantes(:cbte_tipo => 1, :pto_vta => 2, :comprobantes => [{:cbte_nro => 1, :concepto => 1,
|
|
86
90
|
:doc_nro => 30521189203, :doc_tipo => 80, :cbte_fch => Date.new(2011,01,13),
|
|
87
91
|
:imp_total => 1270.48, :imp_neto => 1049.98, :imp_iva => 220.50, :mon_id => 'PES', :mon_cotiz => 1,
|
|
88
|
-
:iva => { :alic_iva => [{ :id => 5, :base_imp => 1049.98, :importe => 220.50 }]}
|
|
92
|
+
:iva => { :alic_iva => [{ :id => 5, :base_imp => 1049.98, :importe => 220.50 }]},
|
|
93
|
+
:tributos => { :tributo => [{ :id => 0, :base_imp => 150, :alic => 5.2, :importe => 7.8 }] }
|
|
89
94
|
}])
|
|
90
95
|
rta[0].should have_entries :cae => '61023008595705', :cae_fch_vto => Date.new(2011,01,23), :cbte_nro => 1,
|
|
91
96
|
:resultado => 'A', :observaciones => []
|
data/spec/manual/test.rb
CHANGED
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
$LOAD_PATH.unshift(File.expand_path(
|
|
2
|
-
require 'afipws'
|
|
1
|
+
$LOAD_PATH.unshift(File.expand_path('lib')); require 'afipws'
|
|
3
2
|
|
|
4
3
|
Savon.configure { |config| config.log = true }
|
|
5
4
|
|
|
6
|
-
ws = Afipws::WSFE.new :env => :development, :cuit => '20300032673',
|
|
7
|
-
:cert => File.read(File.dirname(__FILE__) + '/test.crt'),
|
|
8
|
-
:key => File.read(File.dirname(__FILE__) + '/test.key')
|
|
5
|
+
ws = Afipws::WSFE.new :env => :development, :cuit => '20300032673', :cert => File.read('spec/manual/test.crt'), :key => File.read('spec/manual/test.key')
|
|
9
6
|
|
|
10
7
|
def obtener_ta ws
|
|
11
8
|
ws.cotizacion 'DOL'
|
metadata
CHANGED
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: afipws
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
prerelease:
|
|
5
|
-
|
|
6
|
-
- 0
|
|
7
|
-
- 1
|
|
8
|
-
- 3
|
|
9
|
-
version: 0.1.3
|
|
4
|
+
prerelease:
|
|
5
|
+
version: 0.1.4
|
|
10
6
|
platform: ruby
|
|
11
7
|
authors:
|
|
12
8
|
- Emmanuel Nicolau
|
|
@@ -14,7 +10,7 @@ autorequire:
|
|
|
14
10
|
bindir: bin
|
|
15
11
|
cert_chain: []
|
|
16
12
|
|
|
17
|
-
date: 2011-02-
|
|
13
|
+
date: 2011-02-04 00:00:00 -03:00
|
|
18
14
|
default_executable:
|
|
19
15
|
dependencies:
|
|
20
16
|
- !ruby/object:Gem::Dependency
|
|
@@ -24,8 +20,6 @@ dependencies:
|
|
|
24
20
|
requirements:
|
|
25
21
|
- - ">="
|
|
26
22
|
- !ruby/object:Gem::Version
|
|
27
|
-
segments:
|
|
28
|
-
- 0
|
|
29
23
|
version: "0"
|
|
30
24
|
type: :development
|
|
31
25
|
prerelease: false
|
|
@@ -37,8 +31,6 @@ dependencies:
|
|
|
37
31
|
requirements:
|
|
38
32
|
- - ">="
|
|
39
33
|
- !ruby/object:Gem::Version
|
|
40
|
-
segments:
|
|
41
|
-
- 0
|
|
42
34
|
version: "0"
|
|
43
35
|
type: :development
|
|
44
36
|
prerelease: false
|
|
@@ -50,8 +42,6 @@ dependencies:
|
|
|
50
42
|
requirements:
|
|
51
43
|
- - ">="
|
|
52
44
|
- !ruby/object:Gem::Version
|
|
53
|
-
segments:
|
|
54
|
-
- 0
|
|
55
45
|
version: "0"
|
|
56
46
|
type: :development
|
|
57
47
|
prerelease: false
|
|
@@ -63,8 +53,6 @@ dependencies:
|
|
|
63
53
|
requirements:
|
|
64
54
|
- - ">="
|
|
65
55
|
- !ruby/object:Gem::Version
|
|
66
|
-
segments:
|
|
67
|
-
- 0
|
|
68
56
|
version: "0"
|
|
69
57
|
type: :runtime
|
|
70
58
|
prerelease: false
|
|
@@ -76,8 +64,6 @@ dependencies:
|
|
|
76
64
|
requirements:
|
|
77
65
|
- - ">="
|
|
78
66
|
- !ruby/object:Gem::Version
|
|
79
|
-
segments:
|
|
80
|
-
- 0
|
|
81
67
|
version: "0"
|
|
82
68
|
type: :runtime
|
|
83
69
|
prerelease: false
|
|
@@ -89,8 +75,6 @@ dependencies:
|
|
|
89
75
|
requirements:
|
|
90
76
|
- - ">="
|
|
91
77
|
- !ruby/object:Gem::Version
|
|
92
|
-
segments:
|
|
93
|
-
- 0
|
|
94
78
|
version: "0"
|
|
95
79
|
type: :runtime
|
|
96
80
|
prerelease: false
|
|
@@ -102,8 +86,6 @@ dependencies:
|
|
|
102
86
|
requirements:
|
|
103
87
|
- - ">="
|
|
104
88
|
- !ruby/object:Gem::Version
|
|
105
|
-
segments:
|
|
106
|
-
- 0
|
|
107
89
|
version: "0"
|
|
108
90
|
type: :runtime
|
|
109
91
|
prerelease: false
|
|
@@ -115,8 +97,6 @@ dependencies:
|
|
|
115
97
|
requirements:
|
|
116
98
|
- - ">="
|
|
117
99
|
- !ruby/object:Gem::Version
|
|
118
|
-
segments:
|
|
119
|
-
- 0
|
|
120
100
|
version: "0"
|
|
121
101
|
type: :runtime
|
|
122
102
|
prerelease: false
|
|
@@ -128,8 +108,6 @@ dependencies:
|
|
|
128
108
|
requirements:
|
|
129
109
|
- - ">="
|
|
130
110
|
- !ruby/object:Gem::Version
|
|
131
|
-
segments:
|
|
132
|
-
- 0
|
|
133
111
|
version: "0"
|
|
134
112
|
type: :runtime
|
|
135
113
|
prerelease: false
|
|
@@ -215,7 +193,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
215
193
|
requirements:
|
|
216
194
|
- - ">="
|
|
217
195
|
- !ruby/object:Gem::Version
|
|
218
|
-
hash:
|
|
196
|
+
hash: 1641972703349920218
|
|
219
197
|
segments:
|
|
220
198
|
- 0
|
|
221
199
|
version: "0"
|
|
@@ -224,14 +202,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
224
202
|
requirements:
|
|
225
203
|
- - ">="
|
|
226
204
|
- !ruby/object:Gem::Version
|
|
227
|
-
hash:
|
|
205
|
+
hash: 1641972703349920218
|
|
228
206
|
segments:
|
|
229
207
|
- 0
|
|
230
208
|
version: "0"
|
|
231
209
|
requirements: []
|
|
232
210
|
|
|
233
211
|
rubyforge_project: afipws
|
|
234
|
-
rubygems_version: 1.
|
|
212
|
+
rubygems_version: 1.5.0
|
|
235
213
|
signing_key:
|
|
236
214
|
specification_version: 3
|
|
237
215
|
summary: Ruby wrapper para los servicios web de la AFIP
|