fm_timbrado_cfdi 0.0.5 → 0.0.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 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