timbradocfdi 0.0.1 → 0.0.2

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: fc7bb1cee842e2824dc247138a47f82b44ebb632
4
- data.tar.gz: 1e39127a751811f5c153cc17be225e6135de9306
3
+ metadata.gz: cbf330a989ab0ec4de3568dc9039ba8aa9768f4b
4
+ data.tar.gz: 3ebf54c733090691ac41c958fc3f0fb3ed8d62da
5
5
  SHA512:
6
- metadata.gz: 7309ddd34ce2083b8ee81c280070820ac0b25b900f0cbaae1a5b72ead16cbc52e1fe69b2cffa48712e876b6fd29ffbe5a2e4100ac1f4a27b8f78e84c0588f249
7
- data.tar.gz: 2439350e3740dbec81b690d052dcb5b3068c562247244abf8947037ec608f3bb974fa8df4e1474522046ad15aca581e335e42d2c940b32aeb17fe2721ad9e1e0
6
+ metadata.gz: d581eb2737f8a35570c37a2548a78c8dff656ef6b81878d6673ebd7dda3559cf670784940d74ddf77b466d06fb194edd491da8fc415c576ab7aa03dd5219ff2f
7
+ data.tar.gz: 4c3ebd8d2507f39f0080204e0d40d647edd9de485ceb5c7512f3e5529c030e67c66fcc28059f749eb428192ce81186662fb4c069ba2438ad14ccf14d4d17a976
@@ -1,10 +1,10 @@
1
1
  require 'savon'
2
2
  require "timbradocfdi/version"
3
- require "timbradocfdi/registroemisor"
4
- require "timbradocfdi/timbracfdi"
5
- require "timbradocfdi/obtienecfdi"
6
- require "timbradocfdi/cancelacfdi"
7
3
  require "timbradocfdi/results"
4
+ require "timbradocfdi/register_emisor"
5
+ require "timbradocfdi/stamping"
6
+ require "timbradocfdi/obtain"
7
+ require "timbradocfdi/cancel"
8
8
 
9
9
  module Timbradocfdi
10
10
  class Generator
@@ -39,3 +39,4 @@ module Timbradocfdi
39
39
 
40
40
  end
41
41
  end
42
+
@@ -0,0 +1,20 @@
1
+ module Timbradocfdi
2
+ class Generator
3
+
4
+
5
+ ##
6
+ # Cancela CFDI
7
+ def cancelaCFDI(rfcEmisor, folioUUID)
8
+
9
+ options = {
10
+ :usuarioIntegrador => @user,
11
+ :rfcEmisor => rfcEmisor,
12
+ :folioUUID => folioUUID,
13
+ }
14
+
15
+ response = request("cancela_cfdi", options)
16
+ parse_result_cancelaCFDI response.body
17
+ end
18
+
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ module Timbradocfdi
2
+ class Generator
3
+
4
+
5
+ ##
6
+ # Registro emisor
7
+ def obtieneCFDI(rfcEmisor, folioUUID)
8
+
9
+ options = {
10
+ :usuarioIntegrador => @user,
11
+ :rfcEmisor => rfcEmisor,
12
+ :folioUUID => folioUUID,
13
+ }
14
+
15
+ response = request("obtiene_cfdi", options)
16
+ parse_result_obtieneCFDI response.body
17
+ end
18
+
19
+ end
20
+ end
@@ -0,0 +1,22 @@
1
+ module Timbradocfdi
2
+ class Generator
3
+
4
+
5
+ ##
6
+ # Registro emisor
7
+ def registroEmisor(rfcEmisor, base64Cer, base64Key, contrasena)
8
+
9
+ options = {
10
+ :usuarioIntegrador => @user,
11
+ :rfcEmisor => rfcEmisor,
12
+ :base64Cer => file_reader(base64Cer),
13
+ :base64Key => file_reader(base64Key),
14
+ :contrasena => contrasena
15
+ }
16
+
17
+ response = request("registra_emisor", options)
18
+ parse_result_registro_emisor response.body
19
+ end
20
+
21
+ end
22
+ end
@@ -0,0 +1,74 @@
1
+ # coding: utf-8
2
+ module Timbradocfdi
3
+ class Generator
4
+
5
+ ##
6
+ # Parse result for registro emisor
7
+ def parse_result_registro_emisor(result)
8
+ object = result.to_hash
9
+ result_object = object[:registra_emisor_response][:registra_emisor_result][:any_type]
10
+
11
+ {
12
+ code: result_object[1],
13
+ message: (result_object[2].to_s).encode("utf-8")
14
+ }
15
+ end
16
+
17
+ ##
18
+ # Parse result for timbraCFDI
19
+ def parse_result_timbraCFDI(result)
20
+ object = result.to_hash
21
+ result_object = object[:timbra_cfdi_response][:timbra_cfdi_result][:any_type]
22
+
23
+ if result_object[1].to_i === 0
24
+ return_object = {
25
+ code: 0,
26
+ xml: result_object[3],
27
+ qr: result_object[4],
28
+ details: result_object[5]
29
+ }
30
+ else
31
+ return_object = {
32
+ code: result_object[1],
33
+ message: result_object[2]
34
+ }
35
+ end
36
+
37
+ return_object
38
+ end
39
+
40
+ ##
41
+ # Parse result for obtieneCFDI
42
+ def parse_result_obtieneCFDI(result)
43
+ object = result.to_hash
44
+ result_object = object[:obtiene_cfdi_response][:obtiene_cfdi_result][:any_type]
45
+
46
+ if result_object[1].to_i === 0
47
+ return_object = {
48
+ code: 0,
49
+ xml: result_object[3],
50
+ qr: result_object[4],
51
+ details: result_object[5]
52
+ }
53
+ else
54
+ return_object = {
55
+ code: result_object[1],
56
+ message: result_object[2]
57
+ }
58
+ end
59
+ end
60
+
61
+ ##
62
+ # Parse result for cancelaCFDI
63
+ def parse_result_cancelaCFDI(result)
64
+ object = result.to_hash
65
+ result_object = object[:cancela_cfdi_response][:cancela_cfdi_result][:any_type]
66
+
67
+ {
68
+ code: result_object[1],
69
+ message: (result_object[2].to_s).encode("utf-8")
70
+ }
71
+ end
72
+
73
+ end
74
+ end
@@ -0,0 +1,20 @@
1
+ module Timbradocfdi
2
+ class Generator
3
+
4
+
5
+ ##
6
+ # TimbraCFDI
7
+ def timbraCFDI(xmlComprobante, idComprobante)
8
+
9
+ options = {
10
+ :usuarioIntegrador => @user,
11
+ :xmlComprobanteBase64 => file_reader(xmlComprobante),
12
+ :idComprobante => idComprobante,
13
+ }
14
+
15
+ response = request("timbra_cfdi", options)
16
+ parse_result_timbraCFDI response.body
17
+ end
18
+
19
+ end
20
+ end
@@ -1,3 +1,3 @@
1
1
  module Timbradocfdi
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
Binary file
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <cfdi:Comprobante xmlns:cfdi="http://www.sat.gob.mx/cfd/3" xmlns:tfd="http://www.sat.gob.mx/TimbreFiscalDigital" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv32.xsd" version="3.2" folio="1" fecha="2014-10-14T11:57:00" formaDePago="Pago en una sola exhibicion" subTotal="100" Moneda="MXN" total="116" tipoDeComprobante="ingreso" metodoDePago="Efectivo" LugarExpedicion="MEXICO">
3
+ <cfdi:Emisor rfc="AAA010101AAA" nombre="PRUEBAS INTEGRACION S.A. DE C.V.">
4
+ <cfdi:DomicilioFiscal calle="CALLE EMISOR" noExterior="1" colonia="COL. EMISOR" localidad="MEXICO" municipio="MUN. EMISOR" estado="MEXICO" pais="MEXICO" codigoPostal="53125" />
5
+ <cfdi:RegimenFiscal Regimen="REGIMEN GENERAL" />
6
+ </cfdi:Emisor>
7
+ <cfdi:Receptor rfc="BBB010101BBB" nombre="CLIENTE PRUEBA S.A. DE C.V.">
8
+ <cfdi:Domicilio calle="CALLE RECEPTOR" noExterior="1" noInterior="B" colonia="COL. RECEPTOR" municipio="MUN. RECEPTOR" estado="MEXICO" pais="MEXICO" codigoPostal="53100" />
9
+ </cfdi:Receptor>
10
+ <cfdi:Conceptos>
11
+ <cfdi:Concepto cantidad="1" unidad="PZA" noIdentificacion="00001" descripcion="PRUEBA INTEGRACION" valorUnitario="100" importe="100" />
12
+ </cfdi:Conceptos>
13
+ <cfdi:Impuestos totalImpuestosTrasladados="16">
14
+ <cfdi:Traslados>
15
+ <cfdi:Traslado impuesto="IVA" tasa="16.0" importe="16" />
16
+ </cfdi:Traslados>
17
+ </cfdi:Impuestos>
18
+ </cfdi:Comprobante>
Binary file
@@ -0,0 +1,46 @@
1
+ # coding: utf-8
2
+ require 'timbradocfdi'
3
+
4
+ @user_key = "mvpNUXmQfK8="
5
+ @timbrado = Timbradocfdi::Generator.new(@user_key)
6
+ @rfcEmisor = "AAA010101AAA"
7
+
8
+ def self.registroEmisor
9
+ contrasena = "12345678a"
10
+ base64Cer = "./cer.cer"
11
+ base64Key = "./key.key"
12
+ puts @timbrado.registroEmisor(@rfcEmisor, base64Cer, base64Key, contrasena)
13
+ end
14
+
15
+ def self.timbraCFDI
16
+ comprobante = "./comprobanteSinTimbrar.xml"
17
+ puts @timbrado.timbraCFDI(comprobante, 1)
18
+ end
19
+
20
+ def self.obtieneCFDI
21
+ folioUUID = "E231C693-8871-4CEB-ADD4-DCCBE0BE5FDA"
22
+ puts @timbrado.obtieneCFDI(@rfcEmisor, folioUUID)
23
+ end
24
+
25
+ def self.cancelaCFDI
26
+ folioUUID = "E231C693-8871-4CEB-ADD4-DCCBE0BE5FDA"
27
+ puts @timbrado.cancelaCFDI(@rfcEmisor, folioUUID)
28
+ end
29
+
30
+
31
+ puts "Ejecutando prueba"
32
+ puts "Registrando emisor: \n"
33
+ self.registroEmisor
34
+ puts "------------------------------------\n\n"
35
+
36
+ puts "Timbrando CFDI"
37
+ self.timbraCFDI
38
+ puts "------------------------------------\n\n"
39
+
40
+ puts "Obteniendo CFDI"
41
+ self.obtieneCFDI
42
+ puts "------------------------------------\n\n"
43
+
44
+ puts "Cancelando CFDI"
45
+ self.cancelaCFDI
46
+ puts "------------------------------------\n\n"
@@ -13,11 +13,12 @@ Gem::Specification.new do |spec|
13
13
  spec.homepage = "http://kreattiewe.com"
14
14
  spec.license = "MIT"
15
15
 
16
- spec.files = `git ls-files -z`.split("\x0")
16
+ spec.files = [`git ls-files -z`.split("\x0")]
17
17
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
21
  spec.add_development_dependency "bundler", "~> 1.6"
22
- spec.add_development_dependency "rake",'~> 0'
22
+ spec.add_development_dependency "rspec", "~> 3.1"
23
+ spec.add_development_dependency "rake", "~> 0"
23
24
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: timbradocfdi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Angel Botto
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - ~>
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.6'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: '3.1'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: '3.1'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: rake
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -54,7 +68,16 @@ files:
54
68
  - README.md
55
69
  - Rakefile
56
70
  - lib/timbradocfdi.rb
71
+ - lib/timbradocfdi/cancel.rb
72
+ - lib/timbradocfdi/obtain.rb
73
+ - lib/timbradocfdi/register_emisor.rb
74
+ - lib/timbradocfdi/results.rb
75
+ - lib/timbradocfdi/stamping.rb
57
76
  - lib/timbradocfdi/version.rb
77
+ - prueba/cer.cer
78
+ - prueba/comprobanteSinTimbrar.xml
79
+ - prueba/key.key
80
+ - prueba/prueba.rb
58
81
  - timbradocfdi.gemspec
59
82
  homepage: http://kreattiewe.com
60
83
  licenses: