VERSION 5.00
Begin VB.Form frmPassword 
   BorderStyle     =   1  'Fixed Single
   Caption         =   "Nombre y Password de Usuario"
   ClientHeight    =   2040
   ClientLeft      =   45
   ClientTop       =   330
   ClientWidth     =   4710
   Icon            =   "frmPassword.frx":0000
   LinkTopic       =   "Form1"
   MaxButton       =   0   'False
   MinButton       =   0   'False
   ScaleHeight     =   2040
   ScaleWidth      =   4710
   StartUpPosition =   2  'CenterScreen
   Begin VB.Frame fraPassword 
      Height          =   1335
      Left            =   120
      TabIndex        =   6
      Top             =   120
      Width           =   4455
      Begin VB.TextBox txtPassword 
         Height          =   315
         IMEMode         =   3  'DISABLE
         Left            =   1440
         MaxLength       =   15
         PasswordChar    =   "*"
         TabIndex        =   3
         Top             =   720
         Width           =   2775
      End
      Begin VB.TextBox txtUsuario 
         Height          =   315
         Left            =   1440
         MaxLength       =   15
         TabIndex        =   1
         Top             =   360
         Width           =   2775
      End
      Begin VB.Label lblLabels 
         Caption         =   "&Password"
         Height          =   255
         Index           =   1
         Left            =   240
         TabIndex        =   2
         Top             =   720
         Width           =   1095
      End
      Begin VB.Label lblLabels 
         Caption         =   "&Usuario"
         Height          =   255
         Index           =   0
         Left            =   240
         TabIndex        =   0
         Top             =   360
         Width           =   975
      End
   End
   Begin VB.CommandButton cmdEstandar 
      Cancel          =   -1  'True
      Caption         =   "&Cancelar"
      Height          =   375
      Index           =   1
      Left            =   3240
      TabIndex        =   5
      Top             =   1560
      Width           =   1335
   End
   Begin VB.CommandButton cmdEstandar 
      Caption         =   "&Aceptar"
      Default         =   -1  'True
      Height          =   375
      Index           =   0
      Left            =   1800
      TabIndex        =   4
      Top             =   1560
      Width           =   1335
   End
End
Attribute VB_Name = "frmPassword"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit

Dim bOkFlag As Boolean 'Flag Usuario Ok (1) sino (0)
Dim iOportunidades As Integer 'Número de oportunidades

Const kMAX_OPORTUNIDADES = 3 'Cantidad máxima de oportunidades

Private Sub Form_KeyPress(KeyAscii As Integer)
  MsgBox KeyAscii
End Sub

Private Sub Form_Load()

  'Carga el Formulario
  
  On Error GoTo LineaError
  
  Screen.MousePointer = vbHourglass
  
  InicializarVariables
  TraerUltimoUsuario
  
  Screen.MousePointer = vbDefault
  
  Exit Sub
  
LineaError:
  MsgBox Err.Description, vbOKOnly + vbInformation
  Screen.MousePointer = vbDefault
End Sub

Private Sub Form_Unload(Cancel As Integer)

  'Cierra la conexión y la aplicación o invoca al formulario principal
  
  On Error GoTo LineaError

  If Not bOkFlag Then
    Call oDBAdmin.CerrarBD(ADOCnn)
    End
  Else
      frmPrincipal.Show
    
    Dim cnSQL As ADODB.Connection
    If oDBAdmin.AbrirBD(cnSQL, psConnectString, False) = True Then
    
      Dim ADORS As ADODB.Recordset
      Dim sSQL As String
      sSQL = " SELECT cCodAlmac, vDscAlmac FROM Almacen where cCodAlmac='" & kPAR_ALMACEN & "'"
      
      
      Call oDBAdmin.EjecutarConsulta(cnSQL, sSQL, ADORS)
      MsgBox "El almacen seteado por defecto para esta caja es: " & ADORS!vDscAlmac
    Else
        Set cnSQL = Nothing
        MsgBox "El codigo de almacen seteado por defecto para esta caja es: " & kPAR_ALMACEN
        
    End If
     
    'SINCRONIZA
    'sw Sincronizar 'sw No estaba Comentada
  End If
    
  Exit Sub
  
LineaError:
  Set cnSQL = Nothing
  MsgBox Err.Description, vbOKOnly + vbInformation
End Sub

Private Sub InicializarVariables()

  'Inicializa variables
  
  On Error GoTo LineaError
  
  bOkFlag = False
  iOportunidades = 0
  
  Exit Sub
  
LineaError:
  MsgBox Err.Description, vbOKOnly + vbInformation
End Sub

Private Sub TraerUltimoUsuario()

  'Trae el nombre del último usuario en ingresar al sistema
  
  On Error GoTo LineaError

  Dim sSQL As String
  Dim ADORS As ADODB.Recordset
  
  sSQL = "SELECT sUserDesc FROM Usuario WHERE cUserFlag = $"
  sSQL = VBsprintf(sSQL, kSI)
  
  If oDBAdmin.EjecutarConsulta(ADOCnn, sSQL, ADORS) Then
    
    If Not ADORS.EOF Then
    
      txtUsuario.Text = LeerCampo(ADORS!sUserDesc)
      txtUsuario.SelLength = Len(txtUsuario.Text)
      
    End If
    
  End If
  
  Set ADORS = Nothing
  
  Exit Sub
  
LineaError:
  MsgBox Err.Description, vbOKOnly + vbInformation
End Sub

Private Sub cmdEstandar_Click(Index As Integer)

  'Permite descargar el formulario ingresando o no los valores del usuario
  
  On Error GoTo LineaError

  Screen.MousePointer = vbHourglass
  
  Select Case Index
  
  Case kCMD_ACEPTAR
  
    If ValidarData Then
    
      If ValidarUsuario Then
            
        bOkFlag = True
  
  
      End If
      
      If bOkFlag Or (Not bOkFlag And iOportunidades = kMAX_OPORTUNIDADES) Then Unload Me
        
    End If
    
  Case kCMD_CANCELAR
  
    Unload Me
    
  End Select
  
  Screen.MousePointer = vbDefault
  
  Exit Sub
  
LineaError:
  MsgBox Err.Description, vbOKOnly + vbInformation
  Screen.MousePointer = vbDefault
End Sub

Private Function ValidarData() As Boolean

  'Valida que los campos de texto obligatorios tengan data
  
  On Error GoTo LineaError

  ValidarData = False
  
  If Trim(txtUsuario.Text) = "" Then
    MsgBox "Ingresar Usuario", vbOKOnly + vbInformation
    txtUsuario.SetFocus
    Exit Function
  End If
  
  ValidarData = True
  
  Exit Function
  
LineaError:
  MsgBox Err.Description, vbOKOnly + vbInformation
End Function

Private Function ValidarUsuario()

  'Valida que el usuario ingresado exista y q este activo
  
  On Error GoTo LineaError

  Dim sSQL As String
  Dim ADORS As ADODB.Recordset
  
  ValidarUsuario = False

  sSQL = "SELECT * FROM Usuario WHERE TRIM(sUserDesc) = '$'"
  sSQL = VBsprintf(sSQL, ReemplazarComilla(Trim(txtUsuario.Text)))
      
  If oDBAdmin.EjecutarConsulta(ADOCnn, sSQL, ADORS) Then
      
    iOportunidades = iOportunidades + 1
      
    If Not ADORS.EOF Then
    
      If LeerCampo(ADORS!cUserActi) <> kSI Then
        MsgBox "Usuario no activo. Contactar al supervisor.", vbOKOnly + vbInformation
        txtpassword.SetFocus
        Exit Function
      End If
      
      If Not Trim(txtpassword.Text) = Trim(LeerCampo(ADORS!suserPass)) Then
          
        MsgBox "Password no válido", vbOKOnly + vbInformation
        txtpassword.SetFocus
        Exit Function
      
      End If
          
      piPerfil_Codigo = LeerCampo(ADORS!cPerfCode)
      psUsuario_Descripcion = Trim(txtUsuario.Text)
      psUsuario_Password = Trim(txtpassword.Text)


      Call RegistrarSeguimiento(ADORS!sUserDesc, ADORS!suserapel, ADORS!susername, kPAR_CAJA)
      
      Call ActualizarUltimoUsuario
            
      ValidarUsuario = True
        

    Else
      
      MsgBox "Usuario no válido", vbOKOnly + vbInformation
      txtUsuario.SetFocus
      
    End If
    
  End If
        
  Set ADORS = Nothing
  
  Exit Function
  
LineaError:
  MsgBox Err.Description, vbOKOnly + vbInformation
End Function

Private Sub ActualizarUltimoUsuario()

  'Actualiza el flag del usuario ingresado
  
  On Error GoTo LineaError

  Dim sSQL As String
  
  sSQL = "UPDATE Usuario SET cUserFlag = $"
  sSQL = VBsprintf(sSQL, kNO)
  
  If oDBAdmin.EjecutarSentencia(ADOCnn, sSQL) Then
  
    sSQL = "UPDATE Usuario SET cUserFlag = $ WHERE TRIM(sUserDesc) = '$'"
    sSQL = VBsprintf(sSQL, kSI, ReemplazarComilla(Trim(txtUsuario.Text)))
    Call oDBAdmin.EjecutarSentencia(ADOCnn, sSQL)
    
  End If
  
  Exit Sub
  
LineaError:
  MsgBox Err.Description, vbOKOnly + vbInformation
End Sub

Private Sub RegistrarSeguimiento(Vcodusuario As String, Vapelusuario As String, Vnomusuario As String, Vcaja As String)

  'registra el ingreso de cada usuario en la bd de sql
  
  On Error GoTo LineaError
  Dim sSQLInsert As String
   
  sSQLInsert = "execute sp_inserta_seguimiento '" & Vcodusuario & "','" & Vapelusuario & "','" & Vnomusuario & "','" & Vcaja & "'"

  Call oDBAdmin.EjecutarSentencia(ADOCnnSQL, sSQLInsert)
  
  Exit Sub
  
LineaError:
  MsgBox Err.Description, vbOKOnly + vbInformation
End Sub


