jueves, septiembre 15, 2022

Función para hacer ping en foxpro

 FUNCTION Ping(tcIp)
IF EMPTY(tcIp)
RETURN .F.
ENDIF 
loShell = CreateObject("WScript.Shell")
IF VARTYPE(loShell)<>'O'
RETURN .F.
ENDIF 
loScriptExec = loShell.Exec("ping -n 1 -w 2 -4 "+tcIp)
lcResp = loScriptExec.StdOut.ReadAll()
llRet = [TTL=]$lcResp
loScriptExec = null
loShell = null 
RETURN llRet
ENDFUNC 


Ejemplo de uso:

ip = "172.16.10.210"
? IP + " - " + TRANSFORM(ping(ip))

miércoles, diciembre 18, 2019

Clase Windev para Sellar, Timbrar y Cancelar CFDI


A considerar:

  • Te igualo el costo de timbre que vienen manejando.
  • Los timbres con nosotros NO caducan.
  • Las cancelaciones NO cuestan timbre, siempre y cuando el CFDI que quieras cancelar los timbraste con nosotros, si lo timbraste con otro proveedor, te cuesta 1 timbre.
  • No hay minino de compra, se les da acceso a mi.disxii.com para la administración de sus emisores; puedes ver parte del funcionamiento del panel en: https://www.youtube.com/watch?v=ydAZUguqqGU


Código para sellar:
sXML is ANSI string = "C:\Ruta\archivo.xml"
sCer is ANSI string = "C:\Ruta\CSD_Sucursal_1_EKU9003173C9_20230517_223850.cer"
sKey is ANSI string = "C:\Ruta\CSD_Sucursal_1_EKU9003173C9_20230517_223850.key"
sPassKey is ANSI string = "12345678a"
oTimbrar.Sellar(sXML, sCer, sKey, sPassKey)
IF oTimbrar.nEstatus <> 0 THEN
    Error(oTimbrar.sError)
ELSE
    Info("Sellado")
END



Código para Timbrar:
oTimbrar.Timbrar(sXML)
IF oTimbrar.nEstatus <> 0 THEN
    Error(oTimbrar.sError)
ELSE
    Info("Timbrado", oTimbrar.oTimbre.nStatus, oTimbrar.oTimbre.nStatusPAC,oTimbrar.oTimbre.sMensaje,oTimbrar.oTimbre.sUUID)
END
Código para cancelar:

sAcuse is ANSI string = "C:\Ruta\acuseCancelacion.xml"
sMotivoCancelacion is ANSI string = "02"
sFolioSustitucion is ANSI string = ""
oTimbrar.Cancelar(sXML , sCer, sKey, sPassKey ,sAcuse,sMotivoCancelacion,sFolioSustitucion)
IF oTimbrar.nEstatus <> 0 THEN
    Error(oTimbrar.sError)
ELSE
     Info("Cancelado",oTimbrar.oTimbre.nStatus,oTimbrar.oTimbre.sMensaje)
END


La clase la pueden descarar desde: https://www.dis12.com/Clases/WinDev/

Nota. Es necesaria la carpeta SSL a un lado del exe.

La clase es 100% funcional para testing (adelante con tus pruebas), para productivo hay que dar de alta al emisor en el panel para obtener el usr/pass de timbrado de cada emisor.

lunes, septiembre 02, 2019

Mientras tú creías que yo no estaba mirando

Mientras tú creías que yo no estaba mirando, yo vi que:

Pegaste con un imán mi dibujo al refrigerador, por eso de inmediato quise hacer otro.

Le diste de comer a un gatito sin hogar, entonces entendí que a los animales hay que tratarlos con amor y respeto.

Preparaste mi pastel favorito especialmente para mi, así me dí cuenta que los pequeños detalles ocultan mucho sentido.

Fuiste a visitar a tu amigo enfermo, y entonces entendí que las personas deben cuidarse mutuamente.

No niegas la ayuda a los necesitados, y comprendí que si tienes tiempo y dinero, hay que ayudar a aquellos que no lo tienen.

Tratas con mucho cuidado nuestra casa y a todos los que vivimos aquí, y entendí que cada persona debe cuidar lo que tiene y lo que quiere.

Incluso cuando te sientes mal, continúas cumpliendo con tus obligaciones, y me di cuenta de lo que significa la responsabilidad.

A veces no pudiste contener las lágrimas, y entendí que en la vida hay tristeza y dolor, y llorar es normal.
Nunca dejas de cuidar de mí, y yo quise cumplir todas tus expectativas y hacer todo lo posible para que te sientas orgulloso de mí.

Mientras tú creías que yo no estaba mirando, aprendía de ti la vida. Tomé tu ejemplo y traté de ser como tú.

En lo más profundo de mi alma estaba un pequeño adulto que se decía a sí mismo:

Queridos padres gracias por todo lo que he visto mientras creían que yo no estaba mirando.

Autor Desconocido

martes, junio 13, 2017

Validar RFC en Windev

PROCEDURE ValidaRFC(tcRfc is ANSI string):boolean
IF MatchRegularExpression(tcRfc, "[A-ZÑ&]{3,4}[0-9]{2}[0-1][0-9][0-3][0-9][A-Z,0-9][A-Z,0-9][0-9A]") = True THEN
RESULT DateValid(StringToDate(Middle(tcRfc,Length(tcRfc)-8,6),"YYMMDD"))
END
RESULT False 

miércoles, septiembre 14, 2016

Movimiento de Rotación y Traslación


Sabemos que durante el día el Sol nos ilumina y por la noche no, que en verano hace calor y en invierno hace frío. Estos fenómenos se producen porque la Tierra se mueve de dos formas: una sobre sí misma, es decir, sobre un eje imaginario que pasa por su centro en cuyos extremos se encuentran los polos, originando así un movimiento que se llama de rotación.
Hay otro movimiento llamado de traslación, en éste la Tierra gira alrededor del Sol.
El movimiento de rotación se produce de izquierda a derecha y tarda 23 horas, 56 minutos y 4 segundos aproximadamente en hacer un giro completo.
Consecuencia de este movimiento son los días y las noches, ya que en la parte de la Tierra que queda iluminada por los rayos del Sol, es de día, y en la que queda a la sombra es de noche.
Al mismo tiempo que la Tierra gira sobre sí misma, hace un viaje alrededor del Sol que ya conocemos con el nombre de movimiento de traslación; para hacerlo tarda 365 días, 6 horas y 9 minutos, es decir, un año.
Las horas que quedan sueltas suman un día más, por eso cada cuatro años, es de 366 días y es conocido como año bisiesto.
La inclinación del eje terrestre se mantiene durante el movimiento de traslación y esto hace que los rayos solares lleguen a la Tierra más inclinados en unas épocas que en otras.
La iluminación y el calentamiento del planeta durante el día y la noche varían.
En el día los rayos del Sol inciden en forma variable sobre la superficie de la Tierra.
En la mañana y en la tarde, los rayos solares caen en forma oblicua y menos intensos, es por eso que hay poco calor. Al mediodía, los rayos caen verticalmente y con mayor intensidad, produciendo más calor y mayor iluminación.
Durante la noche, la luna refleja los rayos del Sol, dando poca iluminación y menos calor a la superficie.
En los polos debido a la inclinación del eje terrestre, la situación cambia, pues mientras un polo está seis meses en oscuridad, el otro permanece iluminado.

Debido a la inclinación de la Tierra, se suceden las estaciones: primavera, verano, otoño e invierno. Cuando llega el invierno suele hacer frío e incluso cae nieve en muchos lugares. Cuando hace calor, es verano. Si se caen las hojas de los árboles, llueve y hace viento, es otoño. Y, cuando el campo y las plantas se llenan de flores es primavera. Todas las estaciones ocurren durante un año y cambian con los solsticios que son los días más cortos del año y los equinoccios, que corresponden a los días más largos.


Hay dos solsticios, uno de verano, que comienza cada 21 de junio y otro de invierno cada 21 de diciembre. Por su parte los equinoccios de primavera y otoño, las estaciones intermedias, empiezan cada 21 de marzo y 23 de septiembre respectivamente.