STATIC FUNCTION Chk_Pass()
*---------------
LOCAL oDlg, Sigue:=.F., n:=0, nSer, kt
LOCAL cCve:=Space(10), oCve, oPas, oFnt,oFnt1
LOCAL cPas:=Space(10), cIni
Local oBmp,oBmp1,oSay1,oSay2,oBmp2,oFondo,oCuadr1,cAgencias
LOCAL aGets := Array( 30 )
LOCAL oBtns := Array( 3 )
Local aAGencia:={}
Local xAGencia:={}
Local cAge:=0 //Space(10)
cAgencias:=xServer:Query("SELECT * FROM agencia")
cAgencias:GoTop()
if cAgencias:LastRec() > 0
Do While !cAgencias:Eof()
AADD(aAgencia,AllTrim(cAgencias:ciudad )) //nombreagencia)) ciudad
AADD(xAgencia,{AllTrim(cAgencias:agencia),cAgencias:turno,cAgencias:Fecha,cAgencias:impresora})
cAgencias:Skip(1)
ENDDO
Endif
cAgencias:End()
DEFINE FONT oFnt NAME "MS Sans Serif" SIZE 0,15 BOLD
DEFINE FONT oFnt1 NAME "TAHOMA" SIZE 0,-18 BOLD
DEFINE BRUSH oFondo FILE ".\ima\aa.BMP"
DEFINE DIALOG oDlg RESOURCE "accexo" TRANSPARENT BRUSH oFondo FONT oFnt1
REDEFINE IMAGE oBmp ID 100 OF odlg Resource "accexo" UPDATE
oBmp:lTransparent:=.T.
REDEFINE SAY aGets[1] PROMPT "Usuario" ID 17 OF oDlg FONT oFnt1
REDEFINE SAY aGets[2] PROMPT "Contraseña" ID 18 OF oDlg FONT oFnt1
REDEFINE SAY aGets[3] PROMPT "Agencia" ID 13 OF oDlg FONT oFnt1
REDEFINE COMBOBOX aGets[ 5] VAR cAge ITEMS aAgencia ID 101 OF oDlg
REDEFINE GET oCve VAR cCve ID 11 OF oDlg PICTURE "@K!" VALID Val_User(cCve,cAge,xAgencia)
REDEFINE GET oPas VAR cPas ID 12 OF oDlg PICTURE "@K!" VALID Val_Pass(cCve,cPas,cAge,@Sigue,@n,xAgencia) FONT oFnt1
REDEFINE BUTTONBMP oBtns[1] ID 501 OF oDlg PROMPT "&Iniciar Sesion";
WHEN Sigue .and. cAge#" " ;
ACTION ( oDlg:End() ) BITMAP "bar_ace" TEXTRIGHT CANCEL
REDEFINE BUTTONBMP oBtns[2] ID 502 OF oDlg PROMPT " &Cancelar";
ACTION (Sigue:=.F., oDlg:End() ) BITMAP "Cancelar" TEXTRIGHT CANCEL
ACTIVATE DIALOG oDlg CENTERED
agencia :=aAgencia[cAge] //cAge
codagencia :=xAgencia[cAge,1] // cAge
aTurnoVenta:=xAgencia[cAge,2]
aFechaVenta:=xAgencia[cAge,3]
cImpresora :=AllTrim(xAgencia[cAge,4]) //Impresoras
RETURN (Sigue)
STAT FUNC Val_User(cCve,cAge,xAgencia)
*------------------
LOCAL lRet:=.T.
Local cUsuarios
cUsuarios:=xServer:Query("SELECT * FROM usuarios Where usuario = '"+AllTrim(cCve)+"' AND agencia='"+ Alltrim(xAgencia[cAge,1])+"' ORDER BY usuario")
cUsuarios:GoTop()
if cUsuarios:LastRec()= 0
MsgInfo("¡El usuario no existe, Verifique!","Precaución!")
MsgBeep()
lRet:=.F.
Else
If Alltrim(xAgencia[cAge,1])==Alltrim(cUsuarios:agencia)
aNomUsuario:=cUsuarios:Nombre
Else
MsgInfo("¡El usuario no pertenece a esta agencia!","Precaución!")
lRet:=.F.
endif
ENDIF
cUsuarios:End()
RETURN (lRet)
STAT FUNC Val_Pass(cCve,cPas,cAge,Sigue,n,xAgencia)
*-----------------
LOCAL lRet:=.F., cPasw,oPrn
Local cPassword
Local cUsuarioS
Local cpx,sSyst
local fila:=1
IF !Empty(cPas)
cUsuarios:=xServer:Query("SELECT * FROM usuarios Where usuario = '"+AllTrim(cCve)+"' AND agencia='"+ Alltrim(xAgencia[cAge,1])+"' ORDER BY usuario")
cUsuarios:GoTop()
If cUsuarios:LastRec()> 0
cPasw:=AllTrim(Decrypt(cUsuarios:password))
oMenu:=cUsuarios:sistema
ENDIF
cUsuarios:End()
cPas :=Alltrim(cPas)
usuario:=cCve
agencia:=cAge
IF cPasw==Alltrim(cPas)
lRet:=Sigue:=.T.
Else
Tone(100,5)
MsgInfo("Verifique la contraseña...","Precaución!")
ENDIF
n++
ELSE
MsgBeep()
ENDIF
*alert(alltrim(Agencia))
RETURN (lRet)