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 FControlCombustibleCredito 
   BorderStyle     =   1  'Fixed Single
   Caption         =   "Control de Combustible Crédito (05.080.00)"
   ClientHeight    =   7275
   ClientLeft      =   45
   ClientTop       =   435
   ClientWidth     =   9135
   LinkTopic       =   "Form1"
   MaxButton       =   0   'False
   MDIChild        =   -1  'True
   ScaleHeight     =   7275
   ScaleWidth      =   9135
   Begin VB.CheckBox chkSerafin 
      Caption         =   "Incluir Ajuste por Serafin"
      Enabled         =   0   'False
      Height          =   495
      Left            =   4560
      TabIndex        =   15
      Top             =   720
      Width           =   1335
   End
   Begin VB.CommandButton cmdRecalcular 
      Caption         =   "<<Refrescar"
      Enabled         =   0   'False
      Height          =   375
      Left            =   7440
      TabIndex        =   14
      Top             =   4560
      Width           =   1335
   End
   Begin VB.CommandButton cmdRegistros 
      Caption         =   "Ver Ajuste >>"
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   8.25
         Charset         =   0
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   855
      Left            =   7500
      Picture         =   "FControlCombustibleCredito.frx":0000
      Style           =   1  'Graphical
      TabIndex        =   12
      ToolTipText     =   "Habilitado solo en Venta Automática"
      Top             =   6120
      Width           =   1455
   End
   Begin VB.CommandButton cmdBusAlmacen 
      Enabled         =   0   'False
      Height          =   375
      Left            =   5055
      MouseIcon       =   "FControlCombustibleCredito.frx":0442
      MousePointer    =   99  'Custom
      Picture         =   "FControlCombustibleCredito.frx":0594
      Style           =   1  'Graphical
      TabIndex        =   5
      ToolTipText     =   "Buscar Almacén"
      Top             =   300
      Width           =   375
   End
   Begin VB.CommandButton cmdBuscar 
      Height          =   465
      Left            =   6195
      MouseIcon       =   "FControlCombustibleCredito.frx":0AC6
      MousePointer    =   99  'Custom
      Picture         =   "FControlCombustibleCredito.frx":0C18
      Style           =   1  'Graphical
      TabIndex        =   4
      ToolTipText     =   "Buscar Registro de Control de Combustible"
      Top             =   120
      Width           =   645
   End
   Begin VB.CommandButton cmdConfirmar 
      Caption         =   "Confirmar"
      Enabled         =   0   'False
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   12
         Charset         =   0
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   375
      Left            =   2700
      TabIndex        =   3
      Top             =   750
      Width           =   1545
   End
   Begin VB.CommandButton cmdEliminar 
      Caption         =   "&Eliminar"
      Enabled         =   0   'False
      Height          =   780
      Left            =   7440
      Picture         =   "FControlCombustibleCredito.frx":114A
      Style           =   1  'Graphical
      TabIndex        =   2
      Top             =   2280
      Width           =   1365
   End
   Begin VB.CommandButton cmdAgregar 
      Caption         =   "Agregar"
      Enabled         =   0   'False
      Height          =   780
      Left            =   7440
      Picture         =   "FControlCombustibleCredito.frx":1454
      Style           =   1  'Graphical
      TabIndex        =   1
      Top             =   3240
      Width           =   1365
   End
   Begin MSDataGridLib.DataGrid dbVentas 
      Height          =   2715
      Left            =   120
      TabIndex        =   0
      Top             =   4410
      Width           =   7185
      _ExtentX        =   12674
      _ExtentY        =   4789
      _Version        =   393216
      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         =   "Ventas por Artículo según SIES"
      ColumnCount     =   2
      BeginProperty Column00 
         DataField       =   ""
         Caption         =   ""
         BeginProperty DataFormat {6D835690-900B-11D0-9484-00A0C91110ED} 
            Type            =   0
            Format          =   ""
            HaveTrueFalseNull=   0
            FirstDayOfWeek  =   0
            FirstWeekOfYear =   0
            LCID            =   3082
            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            =   3082
            SubFormatType   =   0
         EndProperty
      EndProperty
      SplitCount      =   1
      BeginProperty Split0 
         BeginProperty Column00 
         EndProperty
         BeginProperty Column01 
         EndProperty
      EndProperty
   End
   Begin Crystal.CrystalReport crControlCombust 
      Left            =   7020
      Top             =   120
      _ExtentX        =   741
      _ExtentY        =   741
      _Version        =   348160
      PrintFileLinesPerPage=   60
   End
   Begin MSDataGridLib.DataGrid DBDetalle 
      Height          =   2835
      Left            =   120
      TabIndex        =   6
      Top             =   1470
      Width           =   7185
      _ExtentX        =   12674
      _ExtentY        =   5001
      _Version        =   393216
      BackColor       =   16777152
      ForeColor       =   0
      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         =   "Seleccione y presione Enter para editar un 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            =   1215
      TabIndex        =   7
      Top             =   315
      Width           =   3735
      _ExtentX        =   6588
      _ExtentY        =   556
      _Version        =   393216
      Enabled         =   0   'False
      Style           =   2
      Text            =   ""
   End
   Begin MSComCtl2.DTPicker dtpFechaProc 
      Height          =   315
      Left            =   1215
      TabIndex        =   8
      Top             =   750
      Width           =   1335
      _ExtentX        =   2355
      _ExtentY        =   556
      _Version        =   393216
      Enabled         =   0   'False
      CalendarBackColor=   16777152
      Format          =   24641537
      CurrentDate     =   37567
   End
   Begin VB.Shape Shape2 
      Height          =   1935
      Left            =   7440
      Top             =   5160
      Width           =   1575
   End
   Begin VB.Label Label1 
      Caption         =   "Solo habran ajustes cuando existan ventas con TPC "
      Height          =   855
      Left            =   7560
      TabIndex        =   13
      Top             =   5280
      Width           =   1215
   End
   Begin VB.Image Image1 
      Height          =   465
      Left            =   8280
      Picture         =   "FControlCombustibleCredito.frx":175E
      Stretch         =   -1  'True
      Top             =   120
      Width           =   465
   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            =   6240
      TabIndex        =   11
      Top             =   1110
      Width           =   75
   End
   Begin VB.Shape Shape1 
      Height          =   1230
      Left            =   135
      Top             =   120
      Width           =   5880
   End
   Begin VB.Label lblFechaInicio 
      Caption         =   "Fecha Proceso"
      Height          =   435
      Left            =   360
      TabIndex        =   10
      Top             =   720
      Width           =   720
   End
   Begin VB.Label lblAlmacen 
      AutoSize        =   -1  'True
      Caption         =   "Almacen"
      Height          =   195
      Left            =   375
      TabIndex        =   9
      Top             =   315
      Width           =   615
   End
End
Attribute VB_Name = "FControlCombustibleCredito"
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 Control de Combustible

Option Explicit

'*************************************
'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 ObjCtrlFuel As DB_OP_MANTENIMIENTOS.C_CTRLFUEL
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
Dim MstrFechaProc As String
Public Mlbnautorizado As Boolean

Public Sub actualizar_registro()
End Sub

Private Sub cmdAgregar_Click()
    If pb_editar Then ' si se esta editando
        If Not cmdConfirmar.Enabled Then
            If (DBDetalle.Bookmark <> 0 Or Not IsNull(DBDetalle.Bookmark)) And CDbl(DBDetalle.Columns(4).Text) > 0 Then
                If Not cmdConfirmar.Enabled Then
                    FEditarCtrlFuel.MlngCorrelativo = lngCorrelativo
                    FEditarCtrlFuel.MblnAgregando = True
                    FEditarCtrlFuel.MstrCodAlmacen = DBDetalle.Columns(0).Text
                    FEditarCtrlFuel.MdatFecha = Format(dtpFechaProc.Value, "DD/MM/YYYY")
                    FEditarCtrlFuel.MstrCodArticulo = DBDetalle.Columns(1).Text
                    FEditarCtrlFuel.MstrDesArticulo = DBDetalle.Columns(2).Text
                    FEditarCtrlFuel.MdblVenta = CDbl(DBDetalle.Columns(3).Text)
                    FEditarCtrlFuel.MdblPrecio = CDbl(DBDetalle.Columns(4).Text)
                    FEditarCtrlFuel.MdblTotal = CDbl(DBDetalle.Columns(5).Text)
                    FEditarCtrlFuel.MintSerafin = chkSerafin.Value
                    FEditarCtrlFuel.Show vbModal
                    CargaGrid lngCorrelativo
                    FEditarCtrlFuel.MblnAgregando = False
                    Exit Sub
                Else
                    MsgBox "Confirme antes de editar", vbExclamation, "Mensaje"
                    Exit Sub
                End If
            End If
       Else
            MsgBox "Confirme antes de Agregar un registro", vbDefaultButton1 + vbExclamation, "Advertencia"
            Exit Sub
       End If
       
    End If
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()
    FBuscarCtrlFuel.Show vbModal
End Sub

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

End Sub

Private Sub cmdImprimir_Click()
On Error GoTo trataerror

    If GVDATO(dtcAlmacen.BoundText) = Empty Then
        MsgBox "Seleccione algún registro que desee Imprimir", vbExclamation, "Imprimir"
        Exit Sub
    End If
    
    Screen.MousePointer = 11
    MstrFechaProc = CStr(Format(dtpFechaProc.Value, "YYYYMMdd"))
    crControlCombust.ReportFileName = GstrReportesVta + "rpt_CombustiblePrecios.rpt"
    crControlCombust.WindowTitle = "Reporte de Control de Precios de Combustibles"
    crControlCombust.Formulas(1) = "formAlmacen= stringvar DescrAlmacen; DescrAlmacen:='" & dtcAlmacen.Text & "'"
    crControlCombust.Formulas(2) = "formusuario=stringvar strusuario; strusuario:='" & GCUSERID & "'"
    crControlCombust.Formulas(3) = "formscreen=stringvar strscreen; strscreen:='05.080.00'"
    crControlCombust.Formulas(4) = "formFecha= datevar FechaProce; FechaProce:=date(" & Format(dtpFechaProc.Value, "YYYY,MM,dd") & ")"
    crControlCombust.Formulas(5) = "formNDStock=" & GintDecStock
    crControlCombust.Formulas(6) = "formNDCosto=" & GintDecCosto
    crControlCombust.Formulas(7) = "formNDMonto=" & GintDecResultado
    crControlCombust.Formulas(8) = "formNDPrecio=" & GintDecPrecio
    crControlCombust.Formulas(9) = "formEstado='" & lblEstado.Caption & "'"
    crControlCombust.Formulas(10) = "formSerafin='" & IIf(chkSerafin.Value = 1, "SI", "NO") & "'"
    
    crControlCombust.StoredProcParam(0) = MstrFechaProc
    crControlCombust.StoredProcParam(1) = dtcAlmacen.BoundText
    
    crControlCombust.WindowState = crptMaximized
    crControlCombust.WindowShowPrintSetupBtn = True
    crControlCombust.Action = 1
    crControlCombust.Reset
        
    Screen.MousePointer = 0
    Exit Sub

trataerror:
    Screen.MousePointer = 0
    MsgBox "Error Generando reporte", vbExclamation, "Error"
    
End Sub

Private Sub Nuevo_Registro()
    blnEditando = True
        
    Call HabilitaCampos(True)
    Call HabilitaBotones(False)
    Call Limpiar
    

    'dtcAlmacen.SetFocus
End Sub


Private Sub Salir()
    Unload Me
End Sub

Public Sub CargaDatos(strSITEID As String, datFECHA As Date, StrEstado As String)

On Error GoTo trataerror
    Call Limpiar
    
    dtcAlmacen.BoundText = strSITEID
    dtpFechaProc.Value = datFECHA
    lblEstado.Caption = StrEstado
    chkSerafin.Value = ObjCtrlFuel.AjusteSerafin(strSITEID, datFECHA)
 
    Set DBDetalle.DataSource = ObjCtrlFuel.SeleccionaRegistros(strSITEID, datFECHA, GintDecResultado)
    Call FormatoGrilla
    DBDetalle.Refresh
    
    Set dbVentas.DataSource = ObjCtrlFuel.SeleccionaRegistrosVenta(strSITEID, datFECHA)
    Call FormatoGrilla2
    dbVentas.Refresh
      
    Exit Sub
    
trataerror:
    Call Limpiar
    MsgBox "Nro de Ingreso no Registrado en Almacen Seleccionado", vbExclamation, "Error en Consulta"
End Sub

Private Sub cmdConfirmar_Click()
On Error GoTo trataerror
   
    If ObjCtrlFuel.RegistroCerrado(dtcAlmacen.BoundText, dtpFechaProc.Value) Then
        MsgBox "Parte Diario ya fue Cerrado ", vbExclamation, "Confirmar"
        dtpFechaProc.SetFocus
        Exit Sub
    End If
    
    Screen.MousePointer = 11
    lngCorrelativo = objCorrelativo.ObtenerCorrelativo(GCUSERID)
        
    If GStrTipoControlCombustible = "0" Then  ' Está en Manual
       ObjCtrlFuel.AgregaAlTemporal lngCorrelativo, dtcAlmacen.BoundText, dtpFechaProc.Value
       CargaGrid lngCorrelativo
       'cmdEliminar.Enabled = True
       'cmdAgregar.Enabled = True
       cmdRegistros.Enabled = False
    Else                                      ' Está en Automática
       ObjCtrlFuel.AgregaAlTemporalAutomatico lngCorrelativo, dtcAlmacen.BoundText, dtpFechaProc.Value
       'INSERTO EN LA TABLA DE AJUSTES
       ObjCtrlFuel.INSERTA_AJUSTES lngCorrelativo, dtcAlmacen.BoundText, dtpFechaProc.Value, chkSerafin.Value

       CargaGrid lngCorrelativo
       'cmdEliminar.Enabled = False
       'cmdAgregar.Enabled = False
       cmdRegistros.Enabled = True
    End If
    

    cmdConfirmar.Enabled = False
    chkSerafin.Enabled = False
    dtcAlmacen.Enabled = False
    cmdBusAlmacen.Enabled = False
    dtpFechaProc.Enabled = False
        
    Screen.MousePointer = 0
    Exit Sub
trataerror:
    Screen.MousePointer = 0
End Sub

Private Sub cmdEliminar_Click()
On Error GoTo trataerror
    If pb_editar Then ' si se esta editando
        If Not cmdConfirmar.Enabled Then
            If DBDetalle.Bookmark <> 0 Or Not IsNull(DBDetalle.Bookmark) Then
                If Not cmdConfirmar.Enabled Then
                    If GStrTipoControlCombustible = "1" Then
                        If ObjCtrlFuel.ValidaEliminacion(DBDetalle.Columns(1).Text) Then
                            If MsgBox("Seguro que desea eliminar? ", vbQuestion + vbYesNo, "Eliminación") = vbNo Then
                                Exit Sub
                            End If
                            Screen.MousePointer = 11
                            ObjCtrlFuel.EliminaEnTemporal lngCorrelativo, dtcAlmacen.BoundText, dtpFechaProc.Value, DBDetalle.Columns(1).Text, CDbl(DBDetalle.Columns(4).Text)
                            'INSERTO EN LA TABLA DE AJUSTES
                            ObjCtrlFuel.INSERTA_AJUSTES lngCorrelativo, dtcAlmacen.BoundText, dtpFechaProc.Value, chkSerafin.Value
                            CargaGrid lngCorrelativo
                            Screen.MousePointer = 0
                            MsgBox "Registro Eliminado con éxito", vbInformation, "Eliminación"
                            Exit Sub
                        Else
                           If Mlbnautorizado = False Then
                              MsgBox "No se puede eliminar o agregar este producto en Venta automática", vbExclamation, "Eliminación"
                              Exit Sub
                           Else
                             Screen.MousePointer = 11
                             ObjCtrlFuel.EliminaEnTemporal lngCorrelativo, dtcAlmacen.BoundText, dtpFechaProc.Value, DBDetalle.Columns(1).Text, CDbl(DBDetalle.Columns(4).Text)
                             'INSERTO EN LA TABLA DE AJUSTES
                             ObjCtrlFuel.INSERTA_AJUSTES lngCorrelativo, dtcAlmacen.BoundText, dtpFechaProc.Value, chkSerafin.Value
                             CargaGrid lngCorrelativo
                             Screen.MousePointer = 0
                             MsgBox "Registro Eliminado con éxito", vbInformation, "Eliminación"
                             Exit Sub
                           End If
                        End If
                   Else
                           If MsgBox("Seguro que desea eliminar? ", vbQuestion + vbYesNo, "Eliminación") = vbNo Then
                                Exit Sub
                            End If
                            Screen.MousePointer = 11
                            ObjCtrlFuel.EliminaEnTemporal lngCorrelativo, dtcAlmacen.BoundText, dtpFechaProc.Value, DBDetalle.Columns(1).Text, CDbl(DBDetalle.Columns(4).Text)
                            'INSERTO EN LA TABLA DE AJUSTES
                            'ObjCtrlFuel.INSERTA_AJUSTES lngCorrelativo, dtcAlmacen.BoundText, dtpFechaProc.Value
                            CargaGrid lngCorrelativo
                            Screen.MousePointer = 0
                            MsgBox "Registro Eliminado con éxito", vbInformation, "Eliminación"
                            Exit Sub
                   
                   End If
                Else
                    MsgBox "Confirme antes de editar o eliminar", vbExclamation, "Mensaje"
                    Exit Sub
                End If
            End If
       Else
            MsgBox "Confirme antes de Eliminar un registro", vbDefaultButton1 + vbExclamation, "Advertencia"
            Exit Sub
       End If
    End If
    Screen.MousePointer = 0
Exit Sub
trataerror:
    Screen.MousePointer = 0
    MsgBox "Error Eliminando Registro", vbExclamation, "Eliminación"

End Sub

Private Sub cmdRecalcular_Click()
On Error Resume Next
Screen.MousePointer = 11
    Call CargaGrid(lngCorrelativo)
Screen.MousePointer = 0
End Sub

Private Sub cmdRegistros_Click()

If pb_editar Then ' si se esta editando
    If Not cmdConfirmar.Enabled Then

        FControlCombustibleAjuste.MlngCorrelativo = lngCorrelativo
        FControlCombustibleAjuste.MblnAgregando = True
        FControlCombustibleAjuste.MstrCodAlmacen = dtcAlmacen.BoundText
        FControlCombustibleAjuste.MdatFecha = Format(dtpFechaProc.Value, "DD/MM/YYYY")
        FControlCombustibleAjuste.Show vbModal
    Else
        MsgBox "Confirme antes de Agregar un registro", vbDefaultButton1 + vbExclamation, "Advertencia"
        Exit Sub
    End If
Else
        FControlCombustibleAjuste.MlngCorrelativo = lngCorrelativo
        FControlCombustibleAjuste.MblnAgregando = False
        FControlCombustibleAjuste.MstrCodAlmacen = dtcAlmacen.BoundText
        FControlCombustibleAjuste.MdatFecha = Format(dtpFechaProc.Value, "DD/MM/YYYY")
        FControlCombustibleAjuste.Show vbModal
End If

End Sub

Private Sub DBDetalle_DblClick()
    DBDETALLE_KeyDown 13, 0
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 GStrTipoControlCombustible = "1" Then
               If Mlbnautorizado = False Then
                  MsgBox "No se puede Modificar , Control de Combustible está en forma Automática", vbDefaultButton1 + vbExclamation, "Advertencia"
                  Exit Sub
                End If
            End If
        
            If (DBDetalle.Bookmark <> 0 Or Not IsNull(DBDetalle.Bookmark)) And CDbl(DBDetalle.Columns(4).Text) > 0 Then
                If Not cmdConfirmar.Enabled Then
                    FEditarCtrlFuel.MlngCorrelativo = lngCorrelativo
                    FEditarCtrlFuel.MstrCodAlmacen = DBDetalle.Columns(0).Text
                    FEditarCtrlFuel.MdatFecha = Format(dtpFechaProc.Value, "DD/MM/YYYY")
                    FEditarCtrlFuel.MstrCodArticulo = DBDetalle.Columns(1).Text
                    FEditarCtrlFuel.MstrDesArticulo = DBDetalle.Columns(2).Text
                    FEditarCtrlFuel.MdblVenta = CDbl(DBDetalle.Columns(3).Text)
                    FEditarCtrlFuel.MdblPrecio = CDbl(DBDetalle.Columns(4).Text)
                    FEditarCtrlFuel.MdblTotal = CDbl(DBDetalle.Columns(5).Text)
                    FEditarCtrlFuel.Show vbModal
                    CargaGrid lngCorrelativo
                    Exit Sub
                Else
                    MsgBox "Confirme antes de editar", vbExclamation, "Mensaje"
                    Exit Sub
                End If
            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 Form_Activate()

    Call gactualizaopcion(pbderecho_agregar, pbderecho_editar, pbderecho_borrar, pbderecho_imprimir)
    Call gactualiza_barra(Me)
    dtpFechaProc.Value = GDatFechaProceso
    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
         dtpFechaProc.Value = GDatFechaProceso
         Call InstanciaObjetos
         Call CargaGrid(-1)

         Call HabilitaCampos(False)
         Call HabilitaBotones(True)
         Call LlenaDataCombos
         intErr = 0
                 
         ' Verificar si está autorizado a cuadrar Parte Gasboy
        
        Dim Lutilsetup As UTIL_SETUP.C_SETUP
        Dim strsql As String
        Dim rstmpcd As ADODB.Recordset
        Set Lutilsetup = New UTIL_SETUP.C_SETUP
        Set rstmpcd = New ADODB.Recordset
        
        strsql = "UT_Verificar_UsuarioProc '" & GCUSERID & "'"
        Set rstmpcd = Lutilsetup.Auxiliar3(strsql)
        
        If rstmpcd.EOF Then
          Mlbnautorizado = False
        Else
          Mlbnautorizado = True
        End If
        
        ' Fin de Verifcacion
        
  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
    
    If GStrTipoControlCombustible = "1" Then
        cmdRegistros.Enabled = True
    Else
        cmdRegistros.Enabled = False
    End If
      
      
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

' Procedimiento para cargar DataCombos
Public Sub CargaDataCombo(objDataCombo As DataCombo, rsSource As Recordset, istrCampo1 As String, istrCampo2 As String)

    Set objDataCombo.DataSource = rsSource
    objDataCombo.DataField = istrCampo2
    Set objDataCombo.RowSource = rsSource
    objDataCombo.ListField = istrCampo2
    objDataCombo.BoundColumn = istrCampo1
    
    If Not rsSource.EOF Then
        objDataCombo.BoundText = rsSource.Fields(istrCampo2)
    End If

End Sub

' Procedimiento de carga de los DataCombos del formulario
Private Sub LlenaDataCombos()
    Call CargaDataCombo(dtcAlmacen, objAlmacen.ListarAlmacenesPorStatus(1), "SiteId", "Name")
End Sub

Private Sub InstanciaObjetos()
    
    Set ObjCtrlFuel = New DB_OP_MANTENIMIENTOS.C_CTRLFUEL
    Set objAlmacen = New DB_INV_MANTENIMIENTOS.C_ALMACEN
    Set objCorrelativo = New DB_CORRELATIVO.C_Correlativos
    Set MobjVentasGeneral = New DB_OP_FACTURACION.C_VENTASGENERAL
    
End Sub

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

Private Sub HabilitaCampos(blnValor As Boolean)
    'cmdBuscar.Enabled = Not blnValor
End Sub

Private Sub HabilitaBotones(blnValor As Boolean)
'    If blnValor Then
'
'        cmdImprimir.Enabled = pbderecho_imprimir
'
'    Else
'
'        cmdImprimir.Enabled = blnValor
'
'    End If
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 CargaGrid(-1)
    Call LlenaDataCombos
    
End Sub

Private Sub CargaGrid(lngId As Long)
    
    If GStrTipoControlCombustible = "0" Then
       Set DBDetalle.DataSource = ObjCtrlFuel.SeleccionaEnTemporal(lngId, GintDecResultado)
    Else
       Set DBDetalle.DataSource = ObjCtrlFuel.SeleccionaEnTemporalAutomatico(lngId, GintDecResultado)
    End If
    'Set dbVentas.DataSource = ObjCtrlFuel.VentasCombustible(lngId, dtcAlmacen.BoundText, dtpFechaProc.Value)
    
    If lngId <> -1 Then
        Set dbVentas.DataSource = ObjCtrlFuel.VentasCombustible(lngId, GstrSiteProce, dtpFechaProc.Value)
    Else
        Set dbVentas.DataSource = ObjCtrlFuel.SeleccionaEnTemporal(lngId, GintDecResultado)
    End If
    
    Call FormatoGrilla
    Call FormatoGrilla2
    DBDetalle.Refresh
    
End Sub
Private Sub FormatoGrilla()
On Error Resume Next
With DBDetalle
    .Columns(0).Width = 500
    .Columns(0).Visible = False
    .Columns(1).Width = 800
    .Columns(1).Visible = False
    .Columns(2).Width = 2700
    .Columns(3).Width = 1200
    .Columns(3).Alignment = dbgRight
    .Columns(3).NumberFormat = GMascara(GintDecStock)
    .Columns(4).Width = 1200
    .Columns(4).Alignment = dbgRight
    .Columns(4).NumberFormat = GMascara(GintDecPrecio)
    .Columns(5).Width = 1200
    .Columns(5).Alignment = dbgRight
    .Columns(5).NumberFormat = GMascara(GintDecResultado)
End With
End Sub

Private Sub FormatoGrilla2()
With dbVentas
    .Columns(0).Width = 500
    .Columns(0).Visible = False
    .Columns(1).Width = 800
    .Columns(1).Visible = False
    .Columns(2).Width = 2700
    .Columns(3).Width = 1200
    .Columns(3).Alignment = dbgRight
    .Columns(3).NumberFormat = GMascara(GintDecStock)
    .Columns(4).Width = 1200
    .Columns(4).Alignment = dbgRight
    .Columns(4).NumberFormat = GMascara(GintDecPrecio)
    .Columns(5).Width = 1200
    .Columns(5).Alignment = dbgRight
    .Columns(5).NumberFormat = GMascara(GintDecResultado)
End With

End Sub

Private Sub GrabaRegistros()
On Error GoTo errhandler

    Dim dblDiferencia As Double
    dblDiferencia = 0
        
    Screen.MousePointer = 11
        
    If ValidaDatos = True Then 'si los datos se ingresaron correctamente
    
        If MsgBox("Desea Grabar datos de Control de combustible? ", vbQuestion + vbYesNo, "Confirmar Grabación") = vbNo Then
            Call cancelarIngreso
            Exit Sub
        End If
        
        If blnEditando Then 'SI SE ESTA AGREGANDO
            ObjCtrlFuel.AgregaRegistros lngCorrelativo, GCUSERID, dtcAlmacen.BoundText, dtpFechaProc.Value, chkSerafin.Value
            lblEstado.Caption = "NO CERRADO"
        Else
            'ObjCtrlFuel.ModificarRegistros DtcAlmacen.BoundText, dtpFechaProc.Value, lngCorrelativo, GCUSERID
            
            ObjCtrlFuel.INSERTA_AJUSTES lngCorrelativo, dtcAlmacen.BoundText, dtpFechaProc.Value, chkSerafin.Value
            
            Dim DBUTMANTe As DB_UT_MANTENIMIENTOS.C_PROCESOS
            Dim LstrModificar As String
            Set DBUTMANTe = New DB_UT_MANTENIMIENTOS.C_PROCESOS
                        
            LstrModificar = "OP_CTRLFUELPRICEALLUpdProc '" & dtcAlmacen.BoundText & "','" & Format(dtpFechaProc.Value, "yyyymmdd") & "'," & lngCorrelativo & ",'" & GCUSERID & "'," & chkSerafin.Value & ""
            DBUTMANTe.Auxiliar1 LstrModificar

        End If
        
        blnEditando = False
        dblDiferencia = ObjCtrlFuel.ObtieneDiferenciaGalonaje(dtcAlmacen.BoundText, dtpFechaProc.Value)
        If dblDiferencia > 0 Then
            If GStrTipoControlCombustible = "1" Then
                MsgBox "Se detecto una diferencia de " & dblDiferencia & " galones vendidos entre GASBOY/CEN44 y TITANIUM. " & Chr(13) & _
                "Los datos se guardaran de todas maneras, pero recuerde que posiblemente no pueda cerrar su parte diario ", vbInformation, "Guardando datos"
            Else
                MsgBox "Se detecto una diferencia de " & dblDiferencia & " galones vendidos entre su Registro Manual y TITANIUM. " & Chr(13) & _
                "Los datos se guardaran de todas maneras, pero recuerde que posiblemente no pueda cerrar su parte diario ", vbInformation, "Guardando datos"
            End If
        End If
        
        cmdEliminar.Enabled = False
        cmdAgregar.Enabled = False
        
        If MsgBox("Registro de Control de Combustible grabado Correctamente.Desea Imprimir? ", vbQuestion + vbYesNo, "Mensaje") = vbNo Then
           GoTo SALTO
        Else
           Call cmdImprimir_Click
        End If
        
SALTO:

        Call HabilitaCampos(False)
        Call HabilitaBotones(True)
        Screen.MousePointer = 0
        
    End If

Exit Sub

errhandler:
    MsgBox MensajedeError(Err.Number, Err.Description), vbDefaultButton1 + vbCritical, "Advertencia"
    intErr = 1
    Screen.MousePointer = 0
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
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()

    Call Nuevo_Registro
    pb_agregar = True
    pb_editar = True
    Call gagregar_registro(Me, dtcAlmacen)
    cmdConfirmar.Enabled = True
    dtcAlmacen.BoundText = GstrSiteProce
    cmdBusAlmacen.Enabled = True
    dtpFechaProc.Enabled = True
    
    If GStrTipoControlCombustible = "1" Then
        'cmdAgregar.Enabled = False
        'cmdEliminar.Enabled = False
        cmdRegistros.Enabled = True
    
    Else
        'cmdAgregar.Enabled = True
        'cmdEliminar.Enabled = True
        cmdRegistros.Enabled = False
    End If
    
    
End Sub

Public Sub descartar_registro()
    ' Revertir cambios
    cancelarIngreso
    Call gdescartar_registro(Me)
    cmdBuscar.Enabled = True
    cmdConfirmar.Enabled = False
    dtcAlmacen.Enabled = False
    cmdBusAlmacen.Enabled = False
    dtpFechaProc.Enabled = False
    
    If GStrTipoControlCombustible = "1" Then
        'cmdAgregar.Enabled = False
        'cmdEliminar.Enabled = False
        cmdRegistros.Enabled = True
    
    Else
        'cmdAgregar.Enabled = True
        'cmdEliminar.Enabled = True
        cmdRegistros.Enabled = False
    End If
    
End Sub

Public Sub modificar_registro()
                                   
    If GStrTipoControlCombustible = "1" Then
      If Mlbnautorizado = False Then
         MsgBox "No se puede Modificar Control de Combustibles está en Automático ", vbDefaultButton1 + vbExclamation, "Advertencia"
         Exit Sub
      Else
        cmdEliminar.Enabled = True
      End If
    End If
    
    If lblEstado.Caption <> Empty Then
        If lblEstado.Caption = "CERRADO" Then
            MsgBox "Parte Diario ya fue Cerrado ", vbExclamation, "Contómetros Manuales"
            Exit Sub
        End If
        
        'blnEditando = True

        Call HabilitaBotones(False)
        Call DesabilitaCabecera
        
        lngCorrelativo = objCorrelativo.ObtenerCorrelativo(GCUSERID)
        Call ObjCtrlFuel.CopiarOriginalAlTemporal(dtcAlmacen.BoundText, dtpFechaProc.Value, lngCorrelativo)
        Call CargaGrid(lngCorrelativo)
    
        pb_agregar = True
        pb_editar = True
        Call gactualiza_barra(Me)
        
        cmdAgregar.Enabled = True
    Else
        MsgBox "Seleccione un Registros que desee Modificar", vbExclamation, "Contómetros Manuales"
    End If
    
Exit Sub

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

Public Sub grabar_registro()
    
    Call GrabaRegistros
    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
            cmdRegistros.Enabled = True
            cmdRecalcular.Enabled = False
        End If
    Else
        intErr = 0
    End If
    
End Sub


Public Sub salir_formulario()
    Salir
End Sub

Private Sub DesabilitaCabecera()
    
    dtcAlmacen.Enabled = False
    cmdBusAlmacen.Enabled = False
    dtpFechaProc.Enabled = False
    cmdConfirmar.Enabled = False
    
End Sub

Public Sub imprimir()
    cmdImprimir_Click
End Sub

Public Sub borrar_registro()
   
    Dim cmd As ADODB.Command
    Dim con As ADODB.Connection
    Dim strsql As String

    On Error GoTo trataerror
    
    If GVDATO(dtcAlmacen.BoundText) = "" Then
        MsgBox "Seleccione algún registro que desee eliminar", vbExclamation, "Eliminación"
        Exit Sub
    End If
    
    If lblEstado.Caption <> Empty Then
        If lblEstado.Caption = "CERRADO" Then
            MsgBox "No se puede Eliminar, Parte Diario ya fue Cerrado ", vbExclamation, "Eliminación"
            Exit Sub
        End If
    End If
    
    If MsgBox("Seguro que desea eliminar todos los registros", vbYesNo + vbQuestion, "Eliminación") = vbNo Then
       Screen.MousePointer = 0
       Exit Sub
    End If
                   
    Screen.MousePointer = 11
                   
    ObjCtrlFuel.EliminarControlCombustible dtcAlmacen.BoundText, dtpFechaProc.Value
    Call CargaGrid(0)
    MsgBox "Registro Eliminados con exito", vbInformation, "Eliminación"
    Screen.MousePointer = 0
Exit Sub
trataerror:
    Screen.MousePointer = 0
    MsgBox Err.Description, vbDefaultButton1 + vbExclamation, "Advertencia"
End Sub















