fm_timbrado_cfdi 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fbc2bf017ec4bad2e4f98767fe8d7bb7063acc6b
4
- data.tar.gz: ade15dfa5710859dc6ab817ac561089e335a4c44
3
+ metadata.gz: 9b9fa77ba426f4a50bb3b55a91a4d21e8def90f6
4
+ data.tar.gz: 41013f05b6e0e999ac42dbbea0357d2e775aacb8
5
5
  SHA512:
6
- metadata.gz: ca8bf36f2093873b44884c355e234bb75116834e7fc8903df498c22d29a1c3e65f88536e6370d8fed4df1394c2750fee57aacfdd239b5cd830fcfd98eb232484
7
- data.tar.gz: d4496d0559a34de15bc6e153065b0d4bd9e6ff3bb719e35cde583321f5f3d14819a21a3890c47646488938c662f9e28820318e001e3c59a1d52b06f03c4b1a56
6
+ metadata.gz: 1879d848bea0827593a81548900243710c745444a7765ce6c22e4d88eafea1e6f8c3150cd4933c5f3aa2d90f85352b4596f56318d3e68c05aa51fe50d998c674
7
+ data.tar.gz: b202365825142f3fa9308df54b9527b205bc11926558f3241728178b763e31448ee59c4c4efe778008e886fd7cd3f9d4751c94a47f75fdcf54253d186570c77c
@@ -0,0 +1,30 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require 'nokogiri'
3
+
4
+ module FmTimbradoCfdi
5
+ class FmCfdiParser
6
+ def initialize ( nodo_timbre )
7
+ parse( nodo_timbre )
8
+ end
9
+
10
+ private
11
+ def parse ( nodo_timbre )
12
+ xml = Nokogiri::XML(nodo_timbre)
13
+ ns = generar_namespaces(xml)
14
+ atributos.each do |variable|
15
+ instance_variable_set("@#{variable}", send("obtener_#{variable}", xml, ns))
16
+ end
17
+ end
18
+
19
+
20
+ def generar_namespaces(xml)
21
+ namespaces = xml.collect_namespaces
22
+ ns = {}
23
+ namespaces.each_pair do |key, value|
24
+ ns[key.sub(/^xmlns:/, '')] = value
25
+ end
26
+ ns
27
+ end
28
+ end
29
+ end
30
+
@@ -54,13 +54,15 @@ module FmTimbradoCfdi
54
54
  end
55
55
 
56
56
  def configurar_cliente
57
- @client = Savon.client(
57
+ @client = Savon.client(
58
58
  ssl_verify_mode: ssl_verify_mode,
59
59
  wsdl: fm_wsdl,
60
60
  endpoint: endpoint,
61
61
  raise_errors: false,
62
62
  log_level: log_level,
63
- log: log
63
+ log: log,
64
+ open_timeout: 15,
65
+ read_timeout: 15
64
66
  )
65
67
  end
66
68
 
@@ -1,23 +1,12 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
  require 'nokogiri'
3
+ require 'fm_timbrado_cfdi/fm_cfdi_parser'
3
4
 
4
5
  module FmTimbradoCfdi
5
- class FmInformacionCfdi
6
+ class FmInformacionCfdi < FmCfdiParser
6
7
  attr_reader :total, :subtotal, :descuento
7
8
 
8
- def initialize ( nodo_timbre )
9
- parse( nodo_timbre )
10
- end
11
-
12
9
  private
13
- def parse ( nodo_timbre )
14
- xml = Nokogiri::XML(nodo_timbre)
15
- ns = generar_namespaces(xml)
16
- atributos.each do |variable|
17
- instance_variable_set("@#{variable}", send("obtener_#{variable}", xml, ns))
18
- end
19
- end
20
-
21
10
  def atributos
22
11
  [ 'total',
23
12
  'subtotal',
@@ -37,14 +26,6 @@ private
37
26
  xml.xpath("//cfdi:Comprobante",ns).attribute('descuento').value rescue nil
38
27
  end
39
28
 
40
- def generar_namespaces(xml)
41
- namespaces = xml.collect_namespaces
42
- ns = {}
43
- namespaces.each_pair do |key, value|
44
- ns[key.sub(/^xmlns:/, '')] = value
45
- end
46
- ns
47
- end
48
29
 
49
30
  end
50
31
  end
@@ -4,12 +4,12 @@ require 'savon'
4
4
 
5
5
  module FmTimbradoCfdi
6
6
  class FmRespuestaCancelacion
7
- attr_reader :error
7
+ attr_reader :error, :xml
8
8
  def initialize(savon_response)
9
9
  @respuesta = savon_response
10
10
  unless valid?
11
- #@error = @respuesta.http_error.to_s if @respuesta.http_error?
12
11
  @error = @respuesta.to_s if @respuesta.soap_fault?
12
+ @xml = @respuesta.to_xml
13
13
  end
14
14
  end
15
15
 
@@ -1,21 +1,11 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
  require 'nokogiri'
3
+ require 'fm_timbrado_cfdi/fm_cfdi_parser'
3
4
 
4
5
  module FmTimbradoCfdi
5
- class FmTimbre
6
+ class FmTimbre < FmCfdiParser
6
7
  attr_reader :no_certificado_sat, :no_certificado, :fecha_timbrado, :uuid, :sello_sat, :sello_cfd, :fecha_comprobante, :serie, :folio, :trans_id, :version
7
8
 
8
- def initialize ( nodo_timbre )
9
- parse( nodo_timbre )
10
- end
11
-
12
- def parse ( nodo_timbre )
13
- xml = Nokogiri::XML(nodo_timbre)
14
- ns = generar_namespaces(xml)
15
- atributos.each do |variable|
16
- instance_variable_set("@#{variable}", send("obtener_#{variable}", xml, ns))
17
- end
18
- end
19
9
 
20
10
  def cadena_original
21
11
  "||#{version}|#{uuid}|#{fecha_timbrado}|#{sello_cfd}|#{no_certificado_sat}||"
@@ -23,15 +13,6 @@ module FmTimbradoCfdi
23
13
 
24
14
  private
25
15
 
26
- def generar_namespaces(xml)
27
- namespaces = xml.collect_namespaces
28
- ns = {}
29
- namespaces.each_pair do |key, value|
30
- ns[key.sub(/^xmlns:/, '')] = value
31
- end
32
- ns
33
- end
34
-
35
16
  def atributos
36
17
  [ 'trans_id',
37
18
  'version',
@@ -1,3 +1,3 @@
1
1
  module FmTimbradoCfdi
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  end
@@ -26,7 +26,7 @@ module FmTimbradoCfdi
26
26
  #procesar rfc del emisor
27
27
  emisor = factura_xml.xpath("//cfdi:Emisor")
28
28
  rfc = emisor[0]['rfc']
29
- respuesta = cliente.timbrar rfc, factura_xml.to_s, 'generarCBB' => generar_cbb
29
+ cliente.timbrar rfc, factura_xml.to_s, 'generarCBB' => generar_cbb
30
30
  end
31
31
 
32
32
  # Public: Envía un archivo al PAC para ser timbrado en formato layout
@@ -37,7 +37,7 @@ module FmTimbradoCfdi
37
37
  #
38
38
  # Regresa un objeto tipo FMRespuesta que contiene el xml certificado, el timbre y la representación en pdf o el cbb en png
39
39
  def timbra_cfdi_layout (rfc, layout, generar_cbb = false)
40
- respuesta = cliente.timbrar rfc, layout, 'generarCBB' => generar_cbb
40
+ cliente.timbrar rfc, layout, 'generarCBB' => generar_cbb
41
41
  end
42
42
 
43
43
  # Public: Envía un archivo al PAC para ser timbrado tanto en formato layout como en formato XML
@@ -48,7 +48,7 @@ module FmTimbradoCfdi
48
48
  #
49
49
  # Regresa un objeto tipo FMRespuesta que contiene el xml certificado, el timbre y la representación en pdf o el cbb en png
50
50
  def timbrar (rfc, archivo, opciones= {})
51
- respuesta = cliente.timbrar rfc, archivo, opciones
51
+ cliente.timbrar rfc, archivo, opciones
52
52
  end
53
53
 
54
54
  # Public: Envía CSD para que lo almacene el PAC
@@ -60,7 +60,7 @@ module FmTimbradoCfdi
60
60
  #
61
61
  # Regresa un objeto de tipo FmRespuestaCancelacion
62
62
  def activar_cancelacion(rfc, certificado, llave, password)
63
- respuesta = cliente.subir_certificado rfc, certificado, llave, password
63
+ cliente.subir_certificado rfc, certificado, llave, password
64
64
  end
65
65
  alias :subir_certificado :activar_cancelacion
66
66
 
@@ -71,7 +71,7 @@ module FmTimbradoCfdi
71
71
  #
72
72
  # Regresa una respuesta SOAP
73
73
  def cancelar(rfc, uuid)
74
- respuesta = cliente.cancelar(rfc, uuid)
74
+ cliente.cancelar(rfc, uuid)
75
75
  end
76
76
 
77
77
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fm_timbrado_cfdi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Carlos García
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2014-01-18 00:00:00.000000000 Z
13
+ date: 2015-06-30 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: nokogiri
@@ -72,6 +72,7 @@ files:
72
72
  - Rakefile
73
73
  - fm_timbrado_cfdi.gemspec
74
74
  - lib/fm_timbrado_cfdi.rb
75
+ - lib/fm_timbrado_cfdi/fm_cfdi_parser.rb
75
76
  - lib/fm_timbrado_cfdi/fm_cliente.rb
76
77
  - lib/fm_timbrado_cfdi/fm_informacion_cfdi.rb
77
78
  - lib/fm_timbrado_cfdi/fm_respuesta.rb
@@ -112,7 +113,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
112
113
  version: '0'
113
114
  requirements: []
114
115
  rubyforge_project:
115
- rubygems_version: 2.1.11
116
+ rubygems_version: 2.4.6
116
117
  signing_key:
117
118
  specification_version: 4
118
119
  summary: Implementación en ruby de la conexión con el servicio de timbrado de cfdi