VERSION 5.00
Object = "{86CF1D34-0C5F-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCT2.OCX"
Object = "{F0D2F211-CCB0-11D0-A316-00AA00688B10}#1.0#0"; "MSDATLST.OCX"
Object = "{CDE57A40-8B86-11D0-B3C6-00A0C90AEA82}#1.0#0"; "MSDATGRD.OCX"
Object = "{00025600-0000-0000-C000-000000000046}#5.2#0"; "crystl32.ocx"
Begin VB.Form FFaltantesSobrantes 
   BorderStyle     =   1  'Fixed Single
   Caption         =   "Faltantes - Sobrantes (05.100.00)"
   ClientHeight    =   5940
   ClientLeft      =   45
   ClientTop       =   330
   ClientWidth     =   9480
   LinkTopic       =   "Form1"
   MaxButton       =   0   'False
   MDIChild        =   -1  'True
   ScaleHeight     =   5940
   ScaleWidth      =   9480
   Begin VB.CommandButton cmdModificarItem 
      Caption         =   "Modificar"
      Enabled         =   0   'False
      Height          =   495
      Left            =   7440
      Picture         =   "0510000.frx":0000
      Style           =   1  'Graphical
      TabIndex        =   13
      ToolTipText     =   "Modificar Crédito"
      Top             =   5175
      Width           =   1215
   End
   Begin VB.CommandButton cmdAgregarItem 
      Caption         =   "Agregar"
      Enabled         =   0   'False
      Height          =   495
      Left            =   6165
      Picture         =   "0510000.frx":0532
      Style           =   1  'Graphical
      TabIndex        =   12
      ToolTipText     =   "Agregar Crédito"
      Top             =   5175
      Width           =   1215
   End
   Begin VB.CommandButton cmdBusMoneda 
      Enabled         =   0   'False
      Height          =   375
      Left            =   5025
      MouseIcon       =   "0510000.frx":0A64
      MousePointer    =   99  'Custom
      Picture         =   "0510000.frx":0BB6
      Style           =   1  'Graphical
      TabIndex        =   9
      ToolTipText     =   "Buscar Tipo de Moneda"
      Top             =   1125
      Width           =   375
   End
   Begin VB.CommandButton cmdBuscar 
      Height          =   420
      Left            =   7335
      MouseIcon       =   "0510000.frx":10E8
      MousePointer    =   99  'Custom
      Picture         =   "0510000.frx":123A
      Style           =   1  'Graphical
      TabIndex        =   1
      ToolTipText     =   "Buscar Registro Fantante-Sobrante"
      Top             =   540
      Width           =   645
   End
   Begin VB.CommandButton cmdBusAlmacen 
      Enabled         =   0   'False
      Height          =   375
      Left            =   5040
      MouseIcon       =   "0510000.frx":176C
      MousePointer    =   99  'Custom
      Picture         =   "0510000.frx":18BE
      Style           =   1  'Graphical
      TabIndex        =   0
      ToolTipText     =   "Buscar Almacén"
      Top             =   645
      Width           =   375
   End
   Begin Crystal.CrystalReport crReporte 
      Left            =   7335
      Top             =   90
      _ExtentX        =   741
      _ExtentY        =   741
      _Version        =   348160
      PrintFileLinesPerPage=   60
   End
   Begin MSDataGridLib.DataGrid DBDetalle 
      Height          =   2760
      Left            =   360
      TabIndex        =   2
      Top             =   2340
      Width           =   8670
      _ExtentX        =   15293
      _ExtentY        =   4868
      _Version        =   393216
      BackColor       =   16777152
      HeadLines       =   1
      RowHeight       =   15
      BeginProperty HeadFont {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
         Name            =   "MS Sans Serif"
         Size            =   8.25
         Charset         =   0
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
         Name            =   "MS Sans Serif"
         Size            =   8.25
         Charset         =   0
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Caption         =   "[Enter] Editar Registro, [F3] Eliminar Registro"
      ColumnCount     =   2
      BeginProperty Column00 
         DataField       =   ""
         Caption         =   ""
         BeginProperty DataFormat {6D835690-900B-11D0-9484-00A0C91110ED} 
            Type            =   0
            Format          =   ""
            HaveTrueFalseNull=   0
            FirstDayOfWeek  =   0
            FirstWeekOfYear =   0
            LCID            =   10250
            SubFormatType   =   0
         EndProperty
      EndProperty
      BeginProperty Column01 
         DataField       =   ""
         Caption         =   ""
         BeginProperty DataFormat {6D835690-900B-11D0-9484-00A0C91110ED} 
            Type            =   0
            Format          =   ""
            HaveTrueFalseNull=   0
            FirstDayOfWeek  =   0
            FirstWeekOfYear =   0
            LCID            =   10250
            SubFormatType   =   0
         EndProperty
      EndProperty
      SplitCount      =   1
      BeginProperty Split0 
         BeginProperty Column00 
         EndProperty
         BeginProperty Column01 
         EndProperty
      EndProperty
   End
   Begin MSDataListLib.DataCombo dtcAlmacen 
      Height          =   315
      Left            =   1200
      TabIndex        =   3
      Top             =   615
      Width           =   3735
      _ExtentX        =   6588
      _ExtentY        =   556
      _Version        =   393216
      Enabled         =   0   'False
      Style           =   2
      Text            =   ""
   End
   Begin MSComCtl2.DTPicker dtpFechaProc 
      Height          =   315
      Left            =   1215
      TabIndex        =   4
      Top             =   1575
      Width           =   1335
      _ExtentX        =   2355
      _ExtentY        =   556
      _Version        =   393216
      Enabled         =   0   'False
      CalendarBackColor=   16777215
      Format          =   48889857
      CurrentDate     =   37567
   End
   Begin MSDataListLib.DataCombo dtcMoneda 
      Height          =   315
      Left            =   1215
      TabIndex        =   10
      Top             =   1080
      Width           =   3720
      _ExtentX        =   6562
      _ExtentY        =   556
      _Version        =   393216
      Enabled         =   0   'False
      Style           =   2
      Text            =   ""
   End
   Begin VB.Image Image1 
      Height          =   465
      Left            =   7290
      Picture         =   "0510000.frx":1DF0
      Stretch         =   -1  'True
      Top             =   1530
      Width           =   510
   End
   Begin VB.Shape Shape2 
      Height          =   3570
      Left            =   90
      Top             =   2160
      Width           =   9240
   End
   Begin VB.Label lblMoneda 
      AutoSize        =   -1  'True
      Caption         =   "Moneda"
      Height          =   195
      Left            =   360
      TabIndex        =   11
      Top             =   1125
      Width           =   585
   End
   Begin VB.Label lblEtiqueta 
      AutoSize        =   -1  'True
      Caption         =   "NUEVO REGISTRO DE FALTANTES SOBRANTES"
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   9.75
         Charset         =   0
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      ForeColor       =   &H8000000D&
      Height          =   240
      Left            =   960
      TabIndex        =   8
      Top             =   135
      Width           =   5250
   End
   Begin VB.Label lblAlmacen 
      AutoSize        =   -1  'True
      Caption         =   "Almacen"
      Height          =   195
      Left            =   360
      TabIndex        =   7
      Top             =   615
      Width           =   615
   End
   Begin VB.Label lblFechaInicio 
      Caption         =   "Fecha Proceso"
      Height          =   435
      Left            =   360
      TabIndex        =   6
      Top             =   1530
      Width           =   720
   End
   Begin VB.Shape Shape1 
      Height          =   1545
      Left            =   120
      Top             =   495
      Width           =   7050
   End
   Begin VB.Label lblEstado 
      Appearance      =   0  'Flat
      AutoSize        =   -1  'True
      BackColor       =   &H80000004&
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   9.75
         Charset         =   0
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      ForeColor       =   &H80000002&
      Height          =   120
      Left            =   7380
      TabIndex        =   5
      Top             =   1125
      Width           =   75
   End
End
Attribute VB_Name = "FFaltantesSobrantes"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
' Programador: Edgar Cancho Ruiz
' Empresa Texaco
' Modulo de Registro de Faltantes-Sobrantes

Option Explicit

'************************************
' Variables que almacenan la ubicacion
' de los Items en los Datacombos cuando
' se cambia de Screen

'Dim MstrTipoMovimiento As String
'Dim MstrAlmacen As String
'Dim MstrProveedor As String
'Dim MstrTipoDoc As String
'Dim MstrMoneda As String
'Dim MstrArticulo As String

'*************************************
'Variables para el Control de la Barra General
 Public pb_editar As Boolean
 Public pb_agregar As Boolean
 Public pb_primerregistro As Boolean
 Public pb_ultimoregistro As Boolean
 Public pbderecho_agregar As Boolean
 Public pbderecho_consultar As Boolean
 Public pbderecho_editar As Boolean
 Public pbderecho_borrar As Boolean
 Public pbderecho_imprimir As Boolean
 Public pbderecho_anular As Boolean
 Public pbderecho_emitir As Boolean
 Public pb_tiposcreen As String
'*******************************************************************************************************************
' Variables para las ayudas
Public GrecibeUbicacion As BookmarkEnum
Public GrecibeColumnaID As String
Public GrecibeColumnaOpcional As String
Public GrecibeColumnaOpcional2 As String
Public GrecibeColumnaOpcional3 As String
'*************************************
' Objetos para cargar las ayudas

Private objAlmacen As DB_INV_MANTENIMIENTOS.C_ALMACEN
Private ObjFaltaSobra As DB_OP_MANTENIMIENTOS.C_FALTA_SOBRA
Private objMoneda As DB_MA_MANTENIMIENTOS.C_MONEDA
Private MobjVentasGeneral As DB_OP_FACTURACION.C_VENTASGENERAL
'*******************************************************************************

Dim objCorrelativo As DB_CORRELATIVO.C_Correlativos

Dim lngCorrelativo As Long 'correlativo por usuario, que se almacenara en cada insert en temporal
Dim lngNumeroContometro As Long  'almacenara el correlativo del contómetro de precio obtenido de In_Setup
Dim lngSecuencia As Long ' guardara el número de Item del detalle


Dim blnModificando As Boolean ' flag para controlar la modificación de un registro
Dim blnEditando As Boolean ' flag para controlar si se esta editando un registro
Dim intCancelar As Integer
Dim blnDatosOK As Boolean

Dim intErr As Integer

Public Sub actualizar_registro()
End Sub

Private Sub cmdAgregarItem_Click()
    FFaltantesSobrantesItem.MlngCorrelativo = lngCorrelativo
    FFaltantesSobrantesItem.MstrCodAlmacen = DtcAlmacen.BoundText
    FFaltantesSobrantesItem.MstrCodMoneda = dtcMoneda.BoundText
    FFaltantesSobrantesItem.MdatFecha = dtpFechaProc.Value
    FFaltantesSobrantesItem.MblnModificando = False
    FFaltantesSobrantesItem.Caption = "Agregando en Detalle"
    FFaltantesSobrantesItem.Show vbModal
    CargaGrid lngCorrelativo
End Sub

Private Sub cmdBusAlmacen_Click()
    'Lineas que llaman al Formulario de Búsqueda
    
    Dim ArrayBusqueda(1 To 2, 1 To 3) As Variant
    ArrayBusqueda(1, 1) = "siteid"
    ArrayBusqueda(1, 2) = "Código "
    ArrayBusqueda(1, 3) = 1000
    ArrayBusqueda(2, 1) = "name"
    ArrayBusqueda(2, 2) = "Descripción "
    ArrayBusqueda(2, 3) = 4000
      
    FBusquedasVta.GObtenerRegistros objAlmacen.ListarAlmacenesPorStatus(1), ArrayBusqueda, 2, 2
    FBusquedasVta.Show vbModal
    
    If GrecibeUbicacion <> 0 Then
        DtcAlmacen.BoundText = GrecibeColumnaID
    End If
End Sub

Private Sub cmdBuscar_Click()
    FBuscarFaltanteSobrante.Show vbModal
End Sub

Private Sub cancelarIngreso()
        blnEditando = False
        
        Call Limpiar
        Call HabilitaCampos(False)

End Sub

Private Sub cmdImprimir_Click()
   FReporteFaltanteSobrante.Show
End Sub

Private Sub Nuevo_Registro()
    blnEditando = True
        
    Call HabilitaCampos(True)
    Call Limpiar
    
    ' SE OBTIENE EL NUMERO DE CORRELATIVO INDENTIFICADOR POR USUARIO
    lngCorrelativo = objCorrelativo.ObtenerCorrelativo(GCUSERID)
   
    'dtcAlmacen.SetFocus
End Sub


Private Sub Salir()
    Unload Me
End Sub

Public Sub CargaDatos(strSITEID As String, datFechaProceso As Date)
On Error GoTo trataerror
    Call Limpiar
    Dim rsTemporal As ADODB.Recordset
    Set rsTemporal = ObjFaltaSobra.SeleccionaEnCabecera(strSITEID, datFechaProceso)
    
    ' CARGO LA CABECERA
    'lblNumero.Caption = rsTemporal!BATNBRTURN

    
    DtcAlmacen.BoundText = rsTemporal!SITEID
    dtpFechaProc.Value = rsTemporal!DATEPROCE
    dtcMoneda.BoundText = rsTemporal!curyid

    If rsTemporal!Status Then
        lblEstado.Caption = "CERRADO"
    Else
        lblEstado.Caption = "NO CERRADO"
    End If
 

    ' CARGO EL DETALLE
    Set DBDetalle.DataSource = ObjFaltaSobra.SeleccionaEnDetalle(strSITEID, datFechaProceso)
    Call FormatoGrilla
    DBDetalle.Refresh
    
    Set rsTemporal = Nothing
    
    
    Exit Sub
    
trataerror:
    Call Limpiar
    MsgBox "Error Cargando Datos", vbExclamation, "Error en Consulta"
End Sub

Private Sub cmdBusMoneda_Click()
    'Lineas que llaman al Formulario de Búsqueda
     
     Dim ArrayBusqueda(1 To 2, 1 To 3) As Variant
     ArrayBusqueda(1, 1) = "CuryId"
     ArrayBusqueda(1, 2) = "Código "
     ArrayBusqueda(1, 3) = 1000
     ArrayBusqueda(2, 1) = "Descr"
     ArrayBusqueda(2, 2) = "Descripción "
     ArrayBusqueda(2, 3) = 4000
       
     FBusquedasVta.GObtenerRegistros objMoneda.ListarMonedas, ArrayBusqueda, 2, 2
     FBusquedasVta.Show vbModal
     
     If GrecibeUbicacion <> 0 Then
         dtcMoneda.BoundText = GrecibeColumnaID
     End If
End Sub

Private Sub cmdModificarItem_Click()
If DBDetalle.Bookmark <> 0 Or Not IsNull(DBDetalle.Bookmark) Then
    FFaltantesSobrantesItem.MlngCorrelativo = lngCorrelativo
    FFaltantesSobrantesItem.MstrCodAlmacen = DtcAlmacen.BoundText
    FFaltantesSobrantesItem.MstrCodMoneda = dtcMoneda.BoundText
    FFaltantesSobrantesItem.MdatFecha = dtpFechaProc.Value
    FFaltantesSobrantesItem.MstrCodVendedor = DBDetalle.Columns(0).Text
    FFaltantesSobrantesItem.MstrCodFaltaSobra = DBDetalle.Columns(1).Text
    If dtcMoneda.BoundText = GstrCodMonedaBase Then
        FFaltantesSobrantesItem.MdblMonto = CDbl(DBDetalle.Columns(2).Text)
    Else
        FFaltantesSobrantesItem.MdblMonto = CDbl(DBDetalle.Columns(3).Text)
    End If
    FFaltantesSobrantesItem.MstrObservacion = DBDetalle.Columns(4).Text
    FFaltantesSobrantesItem.MblnModificando = True
    FFaltantesSobrantesItem.Caption = "Modificando en Detalle"
    FFaltantesSobrantesItem.Show vbModal
    CargaGrid lngCorrelativo
End If
End Sub

Private Sub DBDETALLE_KeyDown(KeyCode As Integer, Shift As Integer)

    If pb_editar Then ' si se esta editando
        If KeyCode = 13 Then
            If DBDetalle.Bookmark <> 0 Or Not IsNull(DBDetalle.Bookmark) Then
                cmdModificarItem_Click
            End If
        End If
        If KeyCode = vbKeyF3 Then
            If DBDetalle.Bookmark <> 0 Or Not IsNull(DBDetalle.Bookmark) Then
                EliminarItem
                Exit Sub
            End If
        End If
    End If
End Sub

Private Sub dtcAlmacen_GotFocus()
DtcAlmacen.BackColor = GC_ColorEnfoque
End Sub

Private Sub dtcAlmacen_LostFocus()
DtcAlmacen.BackColor = GC_ColorDefecto
End Sub

Private Sub dtcMoneda_GotFocus()
    dtcMoneda.BackColor = GC_ColorEnfoque
End Sub

Private Sub dtcMoneda_LostFocus()
    dtcMoneda.BackColor = GC_ColorDefecto
End Sub

Private Sub Form_Activate()

    Call gactualizaopcion(pbderecho_agregar, pbderecho_editar, pbderecho_borrar, pbderecho_imprimir)
    Call gactualiza_barra(Me)
    If pbderecho_consultar = False Then
       Unload Me
    End If
 '********************************************************************************

End Sub

Private Sub Form_Load()
Screen.MousePointer = 11
 '********************************************************************************
 'Código que se Tiene que Copiar para Invocar a la Rutina de Seguridad para poder
  Call gseguridad(Me)
  If pbderecho_consultar Then
         Call InstanciaObjetos
         Call CargaGrid(-1)

         dtpFechaProc.Value = GDatFechaProceso

         Call HabilitaCampos(False)
         Call LlenaDataCombos
         intErr = 0
       
       
  
  
  Else
     MsgBox ("No tiene Derechos de Consultar en este formulario"), vbCritical + vbDefaultButton1, "Mensaje"
     Screen.MousePointer = 0
     Exit Sub
  End If
 '********************************************************************************
        Me.Top = 100
        Me.Left = (Screen.Width - Me.Width) / 2
    
      
Screen.MousePointer = 0
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    If blnEditando Then
        If MsgBox("Desea Salir y Cancelar el registro de Contómetro actual? ", vbQuestion + vbYesNo, "Salir") = vbNo Then
            Cancel = 1
        Else
            Cancel = 0
            blnEditando = False
            pb_agregar = False
            pb_editar = False
            Call gdesactiva_barra
        End If
    Else
        pb_editar = False
        Call gdesactiva_barra
    End If
End Sub

Private Sub Form_Unload(Cancel As Integer)
    Call DestruyeObjetos
End Sub

Private Sub LlenaDataCombos()
    Call CargaDataCombo(dtcMoneda, objMoneda.ListarMonedas, "CuryId", "Descr")
    Call CargaDataCombo(DtcAlmacen, objAlmacen.ListarAlmacenesPorStatus(1), "SiteId", "Name")
End Sub

Private Sub InstanciaObjetos()
    Set ObjFaltaSobra = New DB_OP_MANTENIMIENTOS.C_FALTA_SOBRA
    Set objAlmacen = New DB_INV_MANTENIMIENTOS.C_ALMACEN
    Set objCorrelativo = New DB_CORRELATIVO.C_Correlativos
    Set objMoneda = New DB_MA_MANTENIMIENTOS.C_MONEDA
    Set MobjVentasGeneral = New DB_OP_FACTURACION.C_VENTASGENERAL
End Sub

Private Sub DestruyeObjetos()
    Set ObjFaltaSobra = Nothing
    Set objAlmacen = Nothing
    Set objCorrelativo = Nothing
    Set objMoneda = Nothing
    Set MobjVentasGeneral = Nothing
End Sub

Private Sub HabilitaCampos(blnValor As Boolean)
    cmdBuscar.Visible = Not blnValor
    lblEtiqueta.Visible = blnValor
End Sub


Private Sub Limpiar()
'funcionabilidad    : pone en blanco todos los controles de un formulario

Dim curcontrol As Control
    With Me
    For Each curcontrol In .Controls
        If TypeOf curcontrol Is TextBox Then
                curcontrol.Text = ""
        End If
         If TypeOf curcontrol Is DataCombo Then
                 curcontrol.Text = ""
        End If
         If TypeOf curcontrol Is ComboBox Then
            If curcontrol.Style <> 2 Then
                curcontrol.Text = ""
            End If
        End If
        If TypeOf curcontrol Is CtrlNumber Then
              curcontrol.ValorPorDefecto
        End If
        If TypeOf curcontrol Is CheckBox Then
              curcontrol.Value = 0
        End If
        
        If TypeOf curcontrol Is DTPicker Then
              curcontrol.Value = GDatFechaProceso
        End If
    
    Next
    End With
    
    'dtpFechaProceso.Value = GDatFechaProceso
    
    lblEstado.Caption = Empty
    
    Call LlenaDataCombos
    Call CargaGrid(-1)

    
End Sub

Private Sub CargaGrid(lngId As Long)
    
    Set DBDetalle.DataSource = ObjFaltaSobra.SeleccionaEnTemporalDetFaltaSobra(lngId)
    Call FormatoGrilla
    DBDetalle.Refresh
    
End Sub
Private Sub FormatoGrilla()
    DBDetalle.Columns(0).Width = 1200
    DBDetalle.Columns(1).Width = 1000
    DBDetalle.Columns(2).Width = 1200
    DBDetalle.Columns(2).Alignment = dbgRight
    DBDetalle.Columns(2).NumberFormat = GMascara(GintDecResultado)
    DBDetalle.Columns(3).Width = 1200
    DBDetalle.Columns(3).Alignment = dbgRight
    DBDetalle.Columns(3).NumberFormat = GMascara(GintDecResultado)
    DBDetalle.Columns(4).Width = 3500
  
End Sub

Private Sub GrabaFantanteSobrantes()
On Error GoTo errhandler
    
    
    If ValidaDatos = True Then 'si los datos se ingresaron correctamente
        If MsgBox("Desea Grabar datos de Faltantes-Sobrantes? ", vbQuestion + vbYesNo, "Confirmar Grabación") = vbNo Then
            Call cancelarIngreso
            Exit Sub
        End If

        
        If blnEditando Then 'SI SE ESTA AGREGANDO
            ObjFaltaSobra.AgregarFaltaSobra DtcAlmacen.BoundText, dtpFechaProc.Value, dtcMoneda.BoundText, GCUSERID, lngCorrelativo
            lblEstado.Caption = "NO CERRADO"
        Else
            ObjFaltaSobra.ModificarFaltanteSobrante DtcAlmacen.BoundText, dtpFechaProc.Value, lngCorrelativo
        End If
        
        blnEditando = False
        If MsgBox("Registro de Faltantes-Sobrantes grabado Correctamente.Desea Imprimir? ", vbQuestion + vbYesNo, "Mensaje") = vbNo Then
           GoTo SALTO
        Else
             'Call cmdImprimir_Click
        End If
        
SALTO:

        Call HabilitaCampos(False)
        
        
    End If

Exit Sub

errhandler:
    MsgBox MensajedeError(Err.Number, Err.Description), vbDefaultButton1 + vbCritical, "Advertencia"
    intErr = 1
End Sub

Private Function ValidaDatos() As Boolean
ValidaDatos = True
blnDatosOK = True
    If Not (ValidaDatosCab) Then
        ValidaDatos = False
        blnDatosOK = False
        Exit Function
    End If
    If Not (ValidaDatosDet) Then
        ValidaDatos = False
        blnDatosOK = False
        Exit Function
    End If
End Function

Private Function ValidaDatosCab() As Boolean
ValidaDatosCab = True

If DBDetalle.Bookmark = 0 Or IsNull(DBDetalle.Bookmark) Then
    If GVDATO(DtcAlmacen.Text) = Empty Then
        MsgBox "Ingrese Almacen", vbExclamation, "Mensaje"
        DtcAlmacen.SetFocus
        GoTo Final
    End If

    If GVDATO(dtcMoneda.Text) = Empty Then
        MsgBox "Seleccione Moneda", vbExclamation, "Mensaje"
        dtcMoneda.SetFocus
        GoTo Final
    End If
    
End If
    Exit Function
    
Final:
    ValidaDatosCab = False
        
End Function

Private Function ValidaDatosDet() As Boolean
ValidaDatosDet = True

    If IsNull(DBDetalle.Bookmark) Then
        MsgBox "Debe existir al menos un registro en detalle de documento", vbExclamation, "Mensaje"
        ValidaDatosDet = False
    End If
    
End Function

Public Sub agregar_registro()
    If MobjVentasGeneral.MostrarStatusParteDiario(GstrSiteProce) = True Then
       MsgBox "Parte Diario ya fue cerrado", vbDefaultButton1 + vbExclamation, "Advertencia"
       Screen.MousePointer = 0
       Exit Sub
    End If

    Call Nuevo_Registro
    pb_agregar = True
    pb_editar = True
    Call gagregar_registro(Me, DtcAlmacen)
    DtcAlmacen.BoundText = GstrSiteProce
    dtcMoneda.BoundText = GstrCodMonedaBase
End Sub

Public Sub descartar_registro()
    ' Revertir cambios
    cancelarIngreso
    Call gdescartar_registro(Me)
    cmdBuscar.Enabled = True
    Call DesabilitaCabecera(False)
End Sub

Public Sub borrar_registro()

On Error GoTo errhandler

    ObjFaltaSobra.EliminarFaltanteSobrantes DtcAlmacen.BoundText, dtpFechaProc.Value
    Limpiar
    
Exit Sub

errhandler:
    MsgBox MensajedeError(Err.Number, Err.Description), vbDefaultButton1 + vbCritical, "Error"

End Sub

Public Sub modificar_registro()
        If lblEstado.Caption = "CERRADO" Then
            MsgBox "No se puede Modificar una Registro de Faltante-Sobrante que esta Cerrado", vbExclamation, "Contómetros Manuales"
            Exit Sub
        End If
        
        'blnEditando = True

        Call DesabilitaCabecera(False)
        
    
        lngCorrelativo = objCorrelativo.ObtenerCorrelativo(GCUSERID)
        Call ObjFaltaSobra.CopiarOriginalAlTemporal(DtcAlmacen.BoundText, dtpFechaProc.Value, lngCorrelativo)
        Call CargaGrid(lngCorrelativo)
    
        pb_agregar = True
        pb_editar = True
        Call gactualiza_barra(Me)

        HabilitaBotones True
Exit Sub

errhandler:
    MsgBox MensajedeError(Err.Number, Err.Description), vbDefaultButton1 + vbCritical, "Advertencia"
               
End Sub

Public Sub grabar_registro()
    Call GrabaFantanteSobrantes
    If intErr = 0 Then
    If blnDatosOK Then
        pb_agregar = False
        pb_editar = False
        Call gactualizaopcion(pbderecho_agregar, pbderecho_editar, pbderecho_borrar, pbderecho_imprimir)
        Call gactualiza_barra(Me)
        cmdBuscar.Enabled = True
        HabilitaBotones False
    End If
    Else
        intErr = 0
    End If
End Sub


Public Sub salir_formulario()
    Salir
End Sub

Private Sub DesabilitaCabecera(valor As Boolean)
    DtcAlmacen.Enabled = valor
    cmdBusAlmacen.Enabled = valor
    dtpFechaProc.Enabled = valor
    cmdBusMoneda.Enabled = valor
    dtcMoneda.Enabled = valor
End Sub

Public Sub imprimir()
    cmdImprimir_Click
End Sub

Private Sub EliminarItem()
    If MsgBox("Está seguro de Eliminar. ", vbQuestion + vbYesNo, "Eliminar") = vbNo Then
        Exit Sub
    Else
        
        Call ObjFaltaSobra.EliminarEnTemporal(lngCorrelativo, DtcAlmacen.BoundText, dtpFechaProc.Value, DBDetalle.Columns(0).Text, DBDetalle.Columns(1).Text)
        Call CargaGrid(lngCorrelativo)
        
        If DBDetalle.Bookmark = 0 Or IsNull(DBDetalle.Bookmark) Then
            DesabilitaCabecera True
        Else
            DesabilitaCabecera False
        End If
        
    End If
End Sub

Private Sub HabilitaBotones(blnValor As Boolean)
        cmdAgregarItem.Enabled = blnValor
        cmdModificarItem.Enabled = blnValor
End Sub
