Class: SwFac::Tools

Inherits:
Config show all
Defined in:
lib/sw_fac/tools.rb

Direct Known Subclasses

Facturacion

Instance Attribute Summary

Attributes inherited from Config

#cadena, #dev_token, #doc_cer_path, #doc_key_path, #key_pass, #pem, #pem_cadena, #production_token, #serial

Instance Method Summary collapse

Methods inherited from Config

#cer_cadena, #initialize, #key_to_pem, #serial_number

Constructor Details

This class inherits a constructor from SwFac::Config

Instance Method Details

#consulta_no_certificado(no_certificado) ⇒ Object



69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
# File 'lib/sw_fac/tools.rb', line 69

def consulta_no_certificado(no_certificado)
	# Servicio para validar el numero de certificado 
	#
	# Parameters:
	#   no_certificado: (String)

	url = URI("#{SwFac::UrlProduction}lco/#{no_certificado}")
	http = Net::HTTP.new(url.host, url.port)
	request = Net::HTTP::Get.new(url)
	request["Authorization"] = "bearer #{@production_token}"
	request.content_type = "application/json"
	request["Cache-Control"] = 'no-cache'
	request["Postman-Token"] = 'e17ee551-7f7a-32a7-8fd8-6b53ea70e3c9'

	pet = http.request(request)
	parsed = JSON.parse(pet.body)
	response = {}

	if pet.code == '200'
		response[:status] = parsed['status']
		response[:certificado_consultado] = parsed['data']['noCertificado']
		response[:rfc] = parsed['data']['rfc']
		response[:valides_obligaciones] = parsed['data']['validezObligaciones']
		response[:status_certificado] = parsed['data']['estatusCertificado']
		response[:fecha_inicio] = parsed['data']['fechaInicio']
		response[:fecha_final] = parsed['data']['fechaFinal']
	else
		response[:status] = 'Error'
		response[:message] = parsed['message']
		response[:message_detail] = parsed['messageDetail']
	end

	return response
end

#consulta_saldoObject



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/sw_fac/tools.rb', line 4

def consulta_saldo
	# Servicio utilizado para consultar los timbres disponibles en el entorno productivo

	url_prod = URI("#{SwFac::UrlProduction}account/balance")
	http = Net::HTTP.new(url_prod.host, url_prod.port)
	request = Net::HTTP::Get.new(url_prod)
	request["Authorization"] = "bearer #{@production_token}"
	request.content_type = "application/json"
	request["Cache-Control"] = 'no-cache'

	response_1 = http.request(request)
	res = JSON.parse(response_1.body)
	response = {}

	if response_1.code == '200'
		response[:status] = '200'
		response[:saldo] = res['data']['saldoTimbres']
	else
		response[:status] = '401'
		response[:saldo] = ''
		# response[:error] = ""
	end

	return response

rescue => e
	puts "Error: #{e}"
end

#valida_rfc(rfc) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/sw_fac/tools.rb', line 33

def valida_rfc(rfc)
	# Servicio para identificar que los RFC (emisores y receptores) que intervienen en el proceso sean válidos, 
	# es decir que estén en la LCO (Lista de Contribuyentes con Obligación ante el SAT).
	#
	# Parameters:
	#   rfc: (String)

	url = URI("#{SwFac::UrlProduction}lrfc/#{rfc}")
	http = Net::HTTP.new(url.host, url.port)
	request = Net::HTTP::Get.new(url)
	request["Authorization"] = "bearer #{@production_token}"
   	request.content_type = "application/json"
	request["Cache-Control"] = 'no-cache'
	request["Postman-Token"] = 'a663ff71-f97d-57c9-be0b-1b1cdc06871e'

	pet = http.request(request)
	parsed = JSON.parse(pet.body)
	response = {}

	if pet.code == '200'
		response[:status] = parsed['status']
		response[:rfc_consultado] = parsed['data']['contribuyenteRFC']
		response[:sncf] = parsed['data']['sncf']
		response[:subcontratacion] = parsed['data']['subcontratacion']
	else
		response[:status] = 'Error'
		response[:message] = parsed['message']
		response[:message_detail] = parsed['messageDetail']
	end

	return response

rescue => e
	puts "Error: #{e}"
end