' ============================================
' frmLogin - تسجيل الدخول
' ============================================

Option Explicit

Private Sub UserForm_Initialize()
    ' ضبط خاصية كلمة المرور لإظهارها كـ ******
    txtPassword.PasswordChar = "*"
    txtusername.SetFocus
End Sub

' تسجيل الدخول
Private Sub cmdLogin_Click()
    Dim userName As String
    Dim password As String
    Dim tbl As ListObject
    Dim i As Long
    Dim found As Boolean
    
    userName = Trim(txtusername.Value)
    password = Trim(txtPassword.Value)
    
    ' التحقق من إدخال البيانات
    If userName = "" Then
        MsgBox "يرجى إدخال اسم المستخدم", vbExclamation, "تسجيل الدخول"
        txtusername.SetFocus
        Exit Sub
    End If
    
    If password = "" Then
        MsgBox "يرجى إدخال كلمة المرور", vbExclamation, "تسجيل الدخول"
        txtPassword.SetFocus
        Exit Sub
    End If
    
    ' البحث عن المستخدم في جدول tlbUsers
    Set tbl = GetTableByName("tlbUsers")
    If tbl Is Nothing Then
        MsgBox "خطأ في قاعدة البيانات", vbCritical, "خطأ"
        Exit Sub
    End If
    
    found = False
    For i = 1 To tbl.ListRows.count
        If UCase(Trim(tbl.ListRows(i).Range(1).Value)) = UCase(userName) Then
            If Trim(tbl.ListRows(i).Range(2).Value) = password Then
                found = True
                Exit For
            End If
        End If
    Next i
    
    If found Then
        ' تسجيل الدخول ناجح
        Me.Hide
        frmHome.Show
    Else
        MsgBox "اسم المستخدم أو كلمة المرور غير صحيحة", vbExclamation, "فشل تسجيل الدخول"
        txtPassword.Value = ""
        txtPassword.SetFocus
    End If
End Sub

' إغلاق
Private Sub cmdOut_Click()
    Dim response As VbMsgBoxResult
    
    ' تأكيد الخروج
    response = MsgBox("هل أنت متأكد من الخروج؟", vbYesNo + vbQuestion, "تسجيل الخروج")
    If response = vbNo Then Exit Sub
    
    ' حفظ الملف
    ThisWorkbook.Save
    
    ' إغلاق الفورم
    Me.Hide
    Unload Me
    
    ' إغلاق Excel نهائياً
    Application.Quit
End Sub

' عند الضغط على Enter في txtUsername
Private Sub txtUsername_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = vbKeyReturn Then
        txtPassword.SetFocus
    End If
End Sub

' عند الضغط على Enter في txtPassword
Private Sub txtPassword_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = vbKeyReturn Then
        cmdLogin_Click
    End If
End Sub


