timbradocfdi 0.0.1 → 0.0.2

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: 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: