Skip to content

Instantly share code, notes, and snippets.

@voxsoftware
Created December 9, 2019 18:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save voxsoftware/587a8fd25908856e35c01a571943a1f5 to your computer and use it in GitHub Desktop.
Save voxsoftware/587a8fd25908856e35c01a571943a1f5 to your computer and use it in GitHub Desktop.

Instalar y usar

  1. Instalar @kawix/core
  2. Instalar shide. Ejecutar en el cmd (sin permisos de administrador):
kwcore gh+/voxsoftware/packages/shide/0.0.2.kwa
  1. Instalar sri.aut Library. Ejecutar en el cmd (sin permisos de administrador):
kwcore gh+/voxsoftware/packages/vfp.sri.aut/0.0.1.kwa

Listo! Ya puede usarse

Como usar

Esta librería tiene 2 métodos principales. validarComprobante, y autorizacionComprobante. Aquí está el ejemplo:

  1. autorizacionComprobante
DO (GETENV("userprofile") + "\Kawix\Shide\interop")

PUBLIC result 
LOCAL ComprobanteService, mensajes , aut
ComprobanteService  = _screen.nodeinterop.loadlibrary("sri.recepcion/autorizacionComprobante")
result = m.ComprobanteService .send("0912201901079182526100120010010000015511234567817", 1)

if(!ISNULL(m.result.autorizaciones))
	aut = m.result.autorizaciones.item[1]
	?"estado: " + m.aut.estado 
	?"fecha: " + m.aut.fechaautorizacion
ENDIF 


* READ THE INNER XML 
*?m.result.innerXml

* teniendo el xml, puede guardarlo en cualquier archivo que desee
* strtofile(m.result.innerXml)
  1. validarComprobante
DO (GETENV("userprofile") + "\Kawix\Shide\interop")

PUBLIC result 
LOCAL ComprobanteService, mensajes 
ComprobanteService  = _screen.nodeinterop.loadlibrary("sri.recepcion/validarComprobante")
result = m.ComprobanteService .send("C:\Users\Administrator\Kawix\Shide.lib\file.xml", 1)

if(VARTYPE(m.result.estado) == "C")
	?"ESTADO: " + m.result.estado 
ENDIF 


IF !ISNULL(m.result.comprobantes)
	if  m.result.comprobantes.count > 0
		mensajes = m.result.comprobantes.item[1].mensajes
		IF !ISNULL(m.mensajes)
			FOR i= 1 TO m.mensajes.count 
				?m.mensajes[i].mensaje 
				?m.mensajes[i].informacionAdicional
			ENDFOR 
		ENDIF 
	ENDIF 
ENDIF  

* Si se quiere obtener el XML directamente 
*? m.result.innerXml
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment