VERSION 5.00
Begin VB.Form frmTipoCambio 
   Caption         =   "Tipo de Cambio"
   ClientHeight    =   1740
   ClientLeft      =   60
   ClientTop       =   345
   ClientWidth     =   3015
   Icon            =   "frmTipoCambio.frx":0000
   LinkTopic       =   "Form1"
   ScaleHeight     =   1740
   ScaleWidth      =   3015
   StartUpPosition =   2  'CenterScreen
   Begin VB.Frame fraUsuario 
      Height          =   1095
      Left            =   180
      TabIndex        =   3
      Top             =   30
      Width           =   2670
      Begin VB.TextBox txtTC 
         Height          =   315
         IMEMode         =   3  'DISABLE
         Left            =   1170
         MaxLength       =   15
         TabIndex        =   1
         Top             =   600
         Width           =   1305
      End
      Begin VB.TextBox txtFecha 
         Height          =   315
         Left            =   1170
         MaxLength       =   15
         TabIndex        =   0
         Top             =   240
         Width           =   1305
      End
      Begin VB.Label lblLabels 
         AutoSize        =   -1  'True
         Caption         =   "Fecha"
         Height          =   195
         Index           =   0
         Left            =   195
         TabIndex        =   6
         Top             =   300
         Width           =   450
      End
      Begin VB.Label lblLabels 
         AutoSize        =   -1  'True
         Caption         =   "Tipo Cambio"
         Height          =   195
         Index           =   1
         Left            =   195
         TabIndex        =   5
         Top             =   660
         Width           =   885
      End
   End
   Begin VB.CommandButton cmdEstandar 
      Caption         =   "&Aceptar"
      Default         =   -1  'True
      Height          =   375
      Index           =   0
      Left            =   120
      TabIndex        =   2
      Top             =   1260
      Width           =   1335
   End
   Begin VB.CommandButton cmdEstandar 
      Cancel          =   -1  'True
      Caption         =   "&Cancelar"
      Height          =   375
      Index           =   1
      Left            =   1560
      TabIndex        =   4
      Top             =   1260
      Width           =   1335
   End
End
Attribute VB_Name = "frmTipoCambio"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit

Public iEditar As Integer

Private Sub Form_Load()

  'Cargar formulario
  
  On Error GoTo LineaError

  Screen.MousePointer = vbHourglass
  
  InicializarForm
  
  Screen.MousePointer = vbDefault
  
  Exit Sub
  
LineaError:
  MsgBox Err.Description, vbOKOnly + vbInformation
  Screen.MousePointer = vbDefault

End Sub

Private Sub InicializarForm()

  'Inicializa Form según opción

  On Error GoTo LineaError

  Select Case iEditar
  
  Case kCMD_NUEVO
    Me.Caption = "Nuevo Tipo Cambio"
   'SE OBTIENE FECHA DEL SISTEMA DE LA BASE DE DATOS DE SQL - version 2.0.5
   
   Dim sFecha As String
   Dim cnFECHASQL As ADODB.Connection
   Dim sqlFECHASIS As String
   Dim rsFEchaSis As ADODB.Recordset
      
   If oDBAdmin.AbrirBD(cnFECHASQL, psConnectString, False) = True Then
     
     sqlFECHASIS = "select convert(varchar,getdate(),120) as fechasis"
     If oDBAdmin.EjecutarConsulta(cnFECHASQL, sqlFECHASIS, rsFEchaSis) = True Then
         
         If rsFEchaSis!fechasis <> "" Then
             sFecha = rsFEchaSis!fechasis
         End If

     Else
         'no pudo abrir el rs: que consulte al access
         'MsgBox "No se pudo obtener la fecha, hay problemas de conexión de la red con la Base de Datos Principal", vbOKOnly + vbExclamation, "Aviso"
         sFecha = Format(Now(), "DD/MM/YYYY hh:mm")
         'Unload Me
     End If

     Set cnFECHASQL = Nothing

   Else
     'no pudo conectarse al sql: que consulte al access
      'MsgBox "No se pudo obtener la fecha, hay problemas de conexión de la red con la Base de Datos Principal", vbOKOnly + vbExclamation, "Aviso"
      sFecha = Format(Now(), "DD/MM/YYYY hh:mm")
      'Unload Me
   End If

    txtFecha.Text = Format(sFecha, "DD/MM/YYYY")
  
  Case kCMD_EDITAR
    Me.Caption = "Editar Tipo Cambio"
    TraerData
    DeshabilitarControles False
  
  Case kCMD_BORRAR
    Me.Caption = "Borrar Tipo Cambio"
    TraerData
    DeshabilitarControles True
    
  Case kCMD_VER
    Me.Caption = "Ver Tipo Cambio"
    TraerData
    DeshabilitarControles True
    
  End Select
  
  GoTo Salir
  
LineaError:
  MsgBox Err.Description, vbOKOnly + vbInformation
Salir:
End Sub

Private Sub TraerData()

  'Trae la data de la tabla Usuario
  
  On Error GoTo LineaError

  Dim sSQL As String
  Dim ADORS As ADODB.Recordset
  
  sSQL = " SELECT dTipoCambFech, nTipoCambMont FROM Tipo_Cambio" & _
         " WHERE FORMAT(dTipoCambFech, 'dd/mm/yyyy') = '$'"
  sSQL = VBsprintf(sSQL, frmTipoCambioLista.lvwTipoCambio.SelectedItem.Text)
  
  If oDBAdmin.EjecutarConsulta(ADOCnn, sSQL, ADORS) Then
  
    If Not ADORS.EOF Then
      txtFecha.Text = Format(CStr(LeerCampo(ADORS!dTipoCambFech)), "DD/MM/YYYY")
      txtTC.Text = Format(CStr(LeerCampo(ADORS!nTipoCambMont)), "###,###,##0.00")
    End If
    
  End If
  
  Exit Sub
  
LineaError:
  MsgBox Err.Description, vbOKOnly + vbInformation
  
End Sub

Private Sub DeshabilitarControles(bTodoFlag As Boolean)

  'Deshabilita controles
  
  On Error GoTo LineaError

  Call DeshabilitarControl(txtFecha, True)
  
  If bTodoFlag Then
    Call DeshabilitarControl(txtTC, True)
  End If
  
  Exit Sub
  
LineaError:
  MsgBox Err.Description, vbOKOnly + vbInformation
  
End Sub

Private Sub txtTC_KeyPress(KeyAscii As Integer)
  
  'Convierte cada caracter digitado a mayúsculas
  
  On Error GoTo LineaError
  
  Call ValidKeyPress(KeyAscii, kVKP_NUMERIC_ONLY)
  
  Exit Sub
  
LineaError:
  MsgBox Err.Description, vbOKOnly + vbInformation
  
End Sub

Private Sub cmdEstandar_Click(Index As Integer)

  'Permite descargar el formulario, previamente haciendo cambios o no en
  'la tabla Usuario
  
  On Error GoTo LineaError

  Screen.MousePointer = vbHourglass
  
  Select Case Index
  
  Case kCMD_ACEPTAR
        
    If iEditar = kCMD_VER Then
      Unload Me
      GoTo Salir
    End If
  
    If ValidarData Then
    
      If ActualizarTabla Then
          ActualizarLista
          frmTipoCambioLista.ManejarControles
          Unload Me
        
      End If
    
    End If
  
  Case kCMD_CANCELAR
  
    Unload Me
    
  End Select
  
  GoTo Salir
  
LineaError:
  MsgBox Err.Description, vbOKOnly + vbInformation
  
Salir:
  Screen.MousePointer = vbDefault

End Sub

Private Function ValidarData() As Boolean

  'Valida que la información ingresada sea correcta y completa
  
  On Error GoTo LineaError

  ValidarData = False
  
  If Not IsDate(txtFecha.Text) Then
    MsgBox "Ingrese un tipo de fecha válido."
    Exit Function
  End If
  
  If Trim(txtTC.Text) = "" Then
    MsgBox "Ingrese el tipo de cambio."
    Exit Function
  End If
    
  ValidarData = True
  
  Exit Function
  
LineaError:
  MsgBox Err.Description, vbOKOnly + vbInformation

End Function

Private Function ActualizarTabla() As Boolean

  'Inserta/Actualiza/Elimina el registro de Usuario
  
  On Error GoTo LineaError

  Dim sSQL As String
     
  ActualizarTabla = False
  
  Select Case iEditar
  
  Case kCMD_NUEVO
  
    sSQL = "INSERT INTO Tipo_Cambio (dTipoCambFech, nTipoCambMont) " + _
           "VALUES ('$', '$')"
    sSQL = VBsprintf(sSQL, Trim(txtFecha.Text), _
           Format(Trim(txtTC.Text), "########0.00"))
  
  Case kCMD_EDITAR
  
    sSQL = "UPDATE Tipo_Cambio SET nTipoCambMont = '$' " + _
           "WHERE FORMAT(dTipoCambFech,'dd/mm/yyyy') = '$'"
    sSQL = VBsprintf(sSQL, Format(Trim(txtTC.Text), "########0.00"), _
           Trim(txtFecha.Text))
  
  Case kCMD_BORRAR
  
    sSQL = "DELETE * FROM Tipo_Cambio " + _
           "WHERE format(dTipoCambFech,'dd/mm/yyyy') = '$'"
    sSQL = VBsprintf(sSQL, Trim(txtFecha.Text))
  
  End Select
  
  If oDBAdmin.EjecutarSentencia(ADOCnn, sSQL) Then ActualizarTabla = True
  
  Exit Function
  
LineaError:
  MsgBox Err.Description, vbOKOnly + vbInformation
  
End Function

Private Sub ActualizarLista()

  'Actualiza la lista de frmusuarioLista

  On Error GoTo LineaError
  
  Dim itemX As ListItem
  
  Select Case iEditar
  
  Case kCMD_NUEVO, kCMD_EDITAR
  
    If iEditar = kCMD_NUEVO Then
      Set itemX = frmTipoCambioLista.lvwTipoCambio.ListItems.Add(, , Trim(txtFecha.Text))
    Else
      Set itemX = frmTipoCambioLista.lvwTipoCambio.SelectedItem
      itemX.Text = Trim(txtFecha.Text)
    End If
    
    itemX.SubItems(1) = txtTC.Text
    
    itemX.Selected = True
    
  Case kCMD_BORRAR
  
    frmTipoCambioLista.lvwTipoCambio.ListItems.Remove (frmTipoCambioLista.lvwTipoCambio.SelectedItem.Index)
    
  End Select
      
  Exit Sub
  
LineaError:
  MsgBox Err.Description, vbOKOnly + vbInformation
  
End Sub


Private Sub txtTC_LostFocus()
  txtTC.Text = Format(CStr(txtTC.Text), "###,###,###,##0.00")
End Sub
