bravo 0.3.0 → 0.3.5
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +8 -0
- data/VERSION +1 -1
- data/bravo.gemspec +2 -2
- data/lib/bravo/auth_data.rb +8 -1
- data/lib/bravo/bill.rb +3 -3
- data/lib/bravo/constants.rb +2 -5
- data/lib/bravo/version.rb +1 -1
- data/lib/bravo.rb +3 -1
- data/spec/bravo/bill_spec.rb +17 -15
- data/spec/spec_helper.rb +0 -2
- metadata +4 -4
data/CHANGELOG
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
*Bravo 0.4.0 (March 11, 2011)*
|
2
|
+
|
3
|
+
* Errors will be raised if CERT or PKEY are not present [miloops]
|
4
|
+
* Removed various hardcoded options [leanucci]
|
5
|
+
* Added support for more iva conditions [miloops]
|
6
|
+
* Log verbosity switch [leanucci]
|
7
|
+
* Better spec coverage
|
8
|
+
|
1
9
|
*Bravo 0.3.0 (March 07, 2011)*
|
2
10
|
|
3
11
|
* Bill#response returns the full list of parameters passed and returned by FECAESolicitar [leanucci]
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.5
|
data/bravo.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{bravo}
|
8
|
-
s.version = "0.3.
|
8
|
+
s.version = "0.3.5"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Leandro Marcucci"]
|
12
|
-
s.date = %q{2011-03-
|
12
|
+
s.date = %q{2011-03-11}
|
13
13
|
s.description = %q{Adaptador para el Web Service de Facturacion Electronica de AFIP}
|
14
14
|
s.email = %q{leanucci@vurbia.com}
|
15
15
|
s.extra_rdoc_files = [
|
data/lib/bravo/auth_data.rb
CHANGED
@@ -3,9 +3,16 @@ module Bravo
|
|
3
3
|
|
4
4
|
class << self
|
5
5
|
def fetch
|
6
|
+
unless File.exists?(Bravo.pkey)
|
7
|
+
raise "Archivo de llave privada no encontrado en #{Bravo.pkey}"
|
8
|
+
end
|
9
|
+
|
10
|
+
unless File.exists?(Bravo.cert)
|
11
|
+
raise "Archivo certificado no encontrado en #{Bravo.cert}"
|
12
|
+
end
|
13
|
+
|
6
14
|
todays_datafile = "/tmp/bravo_#{Time.new.strftime('%d_%m_%Y')}.yml"
|
7
15
|
opts = "-u https://wsaahomo.afip.gov.ar/ws/services/LoginCms"
|
8
|
-
keys_root = "/Users/leanucci/Xephstratus/afip/claves/"
|
9
16
|
opts += " -k #{Bravo.pkey}"
|
10
17
|
opts += " -c #{Bravo.cert}"
|
11
18
|
|
data/lib/bravo/bill.rb
CHANGED
@@ -91,7 +91,7 @@ module Bravo
|
|
91
91
|
def next_bill_number
|
92
92
|
resp = client.fe_comp_ultimo_autorizado do |s|
|
93
93
|
s.namespaces["xmlns"] = "http://ar.gov.afip.dif.FEV1/"
|
94
|
-
s.body = {"Auth" => Bravo.auth_hash, "PtoVta" => Bravo.sale_point, "CbteTipo" =>
|
94
|
+
s.body = {"Auth" => Bravo.auth_hash, "PtoVta" => Bravo.sale_point, "CbteTipo" => cbte_type}
|
95
95
|
end
|
96
96
|
|
97
97
|
resp.to_hash[:fe_comp_ultimo_autorizado_response][:fe_comp_ultimo_autorizado_result][:cbte_nro].to_i + 1
|
@@ -105,7 +105,7 @@ module Bravo
|
|
105
105
|
|
106
106
|
class << self
|
107
107
|
def header(cbte_type)#todo sacado de la factura
|
108
|
-
{"CantReg" => "1", "CbteTipo" => cbte_type, "PtoVta" =>
|
108
|
+
{"CantReg" => "1", "CbteTipo" => cbte_type, "PtoVta" => Bravo.sale_point}
|
109
109
|
end
|
110
110
|
end
|
111
111
|
|
@@ -138,7 +138,7 @@ module Bravo
|
|
138
138
|
}.merge!(request_header).merge!(request_detail)
|
139
139
|
|
140
140
|
keys, values = response_hash.to_a.transpose
|
141
|
-
self.response = Struct.new("Response", *keys).new(*values)
|
141
|
+
self.response = (defined?(Struct::Response) ? Struct::Response : Struct.new("Response", *keys)).new(*values)
|
142
142
|
end
|
143
143
|
end
|
144
144
|
end
|
data/lib/bravo/constants.rb
CHANGED
@@ -33,10 +33,7 @@ module Bravo
|
|
33
33
|
:oro => {:codigo => "049", :nombre =>"Gramos de Oro Fino"}
|
34
34
|
}
|
35
35
|
|
36
|
-
ALIC_IVA = [["03", 0],
|
37
|
-
["04", 0.105],
|
38
|
-
["05", 0.21],
|
39
|
-
["06", 0.27]]
|
36
|
+
ALIC_IVA = [["03", 0], ["04", 0.105], ["05", 0.21], ["06", 0.27]]
|
40
37
|
|
41
|
-
BILL_TYPE = {:responsable_inscripto => {:responsable_inscripto => "01", :consumidor_final => "06"}}
|
38
|
+
BILL_TYPE = {:responsable_inscripto => {:responsable_inscripto => "01", :consumidor_final => "06", :exento => "06", :responsable_monotributo => "06"}}
|
42
39
|
end
|
data/lib/bravo/version.rb
CHANGED
data/lib/bravo.rb
CHANGED
@@ -17,9 +17,11 @@ module Bravo
|
|
17
17
|
|
18
18
|
extend self
|
19
19
|
attr_accessor :cuit, :sale_point, :service_url, :default_documento, :pkey, :cert,
|
20
|
-
:default_concepto, :default_moneda, :own_iva_cond
|
20
|
+
:default_concepto, :default_moneda, :own_iva_cond, :verbose
|
21
21
|
|
22
22
|
def auth_hash
|
23
23
|
{"Token" => Bravo::TOKEN, "Sign" => Bravo::SIGN, "Cuit" => Bravo.cuit}
|
24
24
|
end
|
25
|
+
|
26
|
+
Savon::Request.log = false unless (Bravo.verbose == "true") || (ENV["VERBOSE"] == true)
|
25
27
|
end
|
data/spec/bravo/bill_spec.rb
CHANGED
@@ -84,21 +84,23 @@ describe "Bill" do
|
|
84
84
|
detail["FchVtoPago"].should == "20111210"
|
85
85
|
end
|
86
86
|
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
87
|
+
Bravo::BILL_TYPE[Bravo.own_iva_cond].keys.each do |target_iva_cond|
|
88
|
+
it "should authorize a valid bill for #{target_iva_cond.to_s}" do
|
89
|
+
@bill.net = 1000000
|
90
|
+
@bill.aliciva_id = 2
|
91
|
+
@bill.doc_num = "30710151543"
|
92
|
+
@bill.iva_cond = target_iva_cond
|
93
|
+
@bill.concepto = "Servicios"
|
94
|
+
|
95
|
+
@bill.authorized?.should == false
|
96
|
+
@bill.authorize.should == true
|
97
|
+
@bill.authorized?.should == true
|
98
|
+
|
99
|
+
response = @bill.response
|
100
|
+
|
101
|
+
response.length.should == 28
|
102
|
+
response.cae.length.should == 14
|
103
|
+
end
|
102
104
|
end
|
103
105
|
end
|
104
106
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -11,8 +11,6 @@ end
|
|
11
11
|
# in ./support/ and its subdirectories.
|
12
12
|
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
|
13
13
|
|
14
|
-
Savon::Request.log = false unless ENV["VERBOSE"] == "true"
|
15
|
-
|
16
14
|
Bravo.pkey = "spec/fixtures/pkey"
|
17
15
|
Bravo.cert = "spec/fixtures/cert.crt"
|
18
16
|
Bravo.cuit = ENV["CUIT"] || raise(Bravo::NullOrInvalidAttribute.new, "Please set CUIT env variable.")
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bravo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 25
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 3
|
9
|
-
-
|
10
|
-
version: 0.3.
|
9
|
+
- 5
|
10
|
+
version: 0.3.5
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Leandro Marcucci
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-03-
|
18
|
+
date: 2011-03-11 00:00:00 -03:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|