VERSION 5.00
Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCTL.OCX"
Begin VB.Form frmAdminCierres 
   Caption         =   "Administracion de Cierres - Usuario:"
   ClientHeight    =   7215
   ClientLeft      =   60
   ClientTop       =   345
   ClientWidth     =   11310
   Icon            =   "frmAdminCierres.frx":0000
   LinkTopic       =   "Form1"
   LockControls    =   -1  'True
   MaxButton       =   0   'False
   ScaleHeight     =   7215
   ScaleWidth      =   11310
   StartUpPosition =   2  'CenterScreen
   Begin VB.PictureBox Picture1 
      Height          =   6375
      Left            =   20
      ScaleHeight     =   6315
      ScaleWidth      =   11235
      TabIndex        =   2
      Top             =   540
      Width           =   11295
      Begin VB.Frame Frame3 
         Height          =   2775
         Left            =   3720
         TabIndex        =   23
         Top             =   3600
         Width           =   7530
         Begin MSComctlLib.ListView lstvMsgCierre 
            Height          =   2415
            Left            =   0
            TabIndex        =   24
            ToolTipText     =   "Muestra los mensajes del sistema al generar un cierre X o Z"
            Top             =   390
            Width           =   7480
            _ExtentX        =   13203
            _ExtentY        =   4260
            View            =   2
            LabelEdit       =   1
            LabelWrap       =   -1  'True
            HideSelection   =   -1  'True
            _Version        =   393217
            Icons           =   "imglstCierres"
            SmallIcons      =   "imglstCierres"
            ForeColor       =   -2147483640
            BackColor       =   -2147483643
            BorderStyle     =   1
            Appearance      =   1
            NumItems        =   1
            BeginProperty ColumnHeader(1) {BDD1F052-858B-11D1-B16A-00C0F0283628} 
               Text            =   "Mensages"
               Object.Width           =   12965
            EndProperty
         End
         Begin VB.Label Label6 
            BackColor       =   &H00800000&
            Caption         =   "Informe de Estado"
            ForeColor       =   &H0000FFFF&
            Height          =   285
            Left            =   60
            TabIndex        =   25
            Top             =   120
            Width           =   7530
         End
      End
      Begin VB.Frame Frame2 
         Height          =   4935
         Left            =   0
         TabIndex        =   20
         Top             =   1455
         Width           =   3615
         Begin MSComctlLib.TreeView trvCajas 
            Height          =   4470
            Left            =   0
            TabIndex        =   21
            ToolTipText     =   "Permite seleccionar un Punto de Venta, para efectuar su respectivo cierre"
            Top             =   420
            Width           =   3570
            _ExtentX        =   6297
            _ExtentY        =   7885
            _Version        =   393217
            Indentation     =   7
            LabelEdit       =   1
            Style           =   7
            ImageList       =   "imglstCierres"
            Appearance      =   1
         End
         Begin VB.Label Label1 
            Appearance      =   0  'Flat
            BackColor       =   &H00800000&
            BorderStyle     =   1  'Fixed Single
            Caption         =   "Seleccione un Punto de Venta"
            ForeColor       =   &H0000FFFF&
            Height          =   285
            Left            =   60
            TabIndex        =   22
            Top             =   120
            Width           =   3540
         End
      End
      Begin VB.Frame fraResultado 
         Height          =   1575
         Left            =   3720
         TabIndex        =   15
         Top             =   1920
         Width           =   7530
         Begin VB.OptionButton optImpresora 
            Caption         =   "En Impresora"
            Height          =   255
            Left            =   1440
            TabIndex        =   17
            ToolTipText     =   "Enviara el resultado de un cierre X o Z, a la Impresora"
            Top             =   1080
            Width           =   1335
         End
         Begin VB.OptionButton optPantalla 
            Caption         =   "En Pantalla"
            Height          =   255
            Left            =   1440
            TabIndex        =   16
            ToolTipText     =   "Enviara el resultado de un cierre X o Z, a visualizarce en pantalla"
            Top             =   600
            Value           =   -1  'True
            Width           =   1215
         End
         Begin VB.Label Label7 
            Appearance      =   0  'Flat
            BackColor       =   &H00800000&
            BorderStyle     =   1  'Fixed Single
            Caption         =   "Generar resultados en:"
            ForeColor       =   &H0000FFFF&
            Height          =   285
            Left            =   60
            TabIndex        =   18
            Top             =   130
            Width           =   7455
         End
         Begin VB.Image Image1 
            Height          =   480
            Left            =   600
            Picture         =   "frmAdminCierres.frx":0442
            Top             =   480
            Width           =   480
         End
         Begin VB.Image Image2 
            Height          =   480
            Left            =   600
            Picture         =   "frmAdminCierres.frx":074C
            Top             =   960
            Width           =   480
         End
      End
      Begin VB.Frame fraCierres 
         Height          =   1935
         Left            =   3720
         TabIndex        =   9
         Top             =   -100
         Width           =   7530
         Begin VB.ComboBox cboTurno 
            BeginProperty Font 
               Name            =   "Arial"
               Size            =   8.25
               Charset         =   0
               Weight          =   400
               Underline       =   0   'False
               Italic          =   0   'False
               Strikethrough   =   0   'False
            EndProperty
            Height          =   330
            ItemData        =   "frmAdminCierres.frx":0A56
            Left            =   1440
            List            =   "frmAdminCierres.frx":0A60
            Locked          =   -1  'True
            Style           =   2  'Dropdown List
            TabIndex        =   13
            ToolTipText     =   "Permite seleccionar un turno de ventas, por defecto muestra el ultimo turno programado"
            Top             =   960
            Width           =   1220
         End
         Begin VB.CheckBox chkGenX 
            Caption         =   "Generar Cierre X"
            Height          =   255
            Left            =   600
            TabIndex        =   12
            ToolTipText     =   "Si esta marcado se generara el cierre X"
            Top             =   600
            Width           =   1575
         End
         Begin VB.CheckBox chkGenZ 
            Caption         =   "Generar Cierre Z"
            Height          =   255
            Left            =   600
            TabIndex        =   11
            ToolTipText     =   "Si esta marcado se generara el cierre Z"
            Top             =   1440
            Width           =   1575
         End
         Begin VB.CheckBox chkActualizaXZ 
            Alignment       =   1  'Right Justify
            Caption         =   "Actualizar Registro de Cierres"
            Height          =   255
            Left            =   4680
            TabIndex        =   10
            ToolTipText     =   "Si esta marcado, la informacion de cierres se actualizara en la Base de Datos del Sistema"
            Top             =   1440
            Width           =   2415
         End
         Begin VB.Label Label8 
            Appearance      =   0  'Flat
            BackColor       =   &H00800000&
            BorderStyle     =   1  'Fixed Single
            Caption         =   "Opciones de Cierre"
            ForeColor       =   &H0000FFFF&
            Height          =   285
            Left            =   60
            TabIndex        =   19
            Top             =   130
            Width           =   7455
         End
         Begin VB.Label Label3 
            AutoSize        =   -1  'True
            Caption         =   "Turno"
            Height          =   195
            Left            =   870
            TabIndex        =   14
            Top             =   1020
            Width           =   420
         End
      End
      Begin VB.Frame Frame1 
         Height          =   1455
         Left            =   0
         TabIndex        =   3
         Top             =   -100
         Width           =   3615
         Begin VB.TextBox txtFecha 
            Alignment       =   2  'Center
            BeginProperty Font 
               Name            =   "Arial"
               Size            =   9
               Charset         =   0
               Weight          =   400
               Underline       =   0   'False
               Italic          =   0   'False
               Strikethrough   =   0   'False
            EndProperty
            Height          =   330
            Left            =   1080
            Locked          =   -1  'True
            TabIndex        =   4
            ToolTipText     =   "Muestra la Fecha de Proceso (venta)"
            Top             =   530
            Width           =   1095
         End
         Begin VB.Label Label4 
            Appearance      =   0  'Flat
            BackColor       =   &H00800000&
            BorderStyle     =   1  'Fixed Single
            Caption         =   "Fecha Proceso / Hora"
            ForeColor       =   &H0000FFFF&
            Height          =   280
            Left            =   60
            TabIndex        =   8
            Top             =   120
            Width           =   3540
         End
         Begin VB.Label lblHora 
            Alignment       =   2  'Center
            Appearance      =   0  'Flat
            BackColor       =   &H80000005&
            BorderStyle     =   1  'Fixed Single
            BeginProperty Font 
               Name            =   "Arial"
               Size            =   11.25
               Charset         =   0
               Weight          =   700
               Underline       =   0   'False
               Italic          =   0   'False
               Strikethrough   =   0   'False
            EndProperty
            ForeColor       =   &H8000000D&
            Height          =   300
            Left            =   1080
            TabIndex        =   7
            Top             =   990
            Width           =   1095
         End
         Begin VB.Label Label5 
            AutoSize        =   -1  'True
            Caption         =   "Hora:"
            Height          =   195
            Left            =   360
            TabIndex        =   6
            Top             =   1043
            Width           =   390
         End
         Begin VB.Label Label2 
            AutoSize        =   -1  'True
            Caption         =   "Fecha"
            Height          =   195
            Left            =   360
            TabIndex        =   5
            Top             =   598
            Width           =   450
         End
      End
   End
   Begin MSComctlLib.Toolbar tlbCierres 
      Align           =   1  'Align Top
      Height          =   540
      Left            =   0
      TabIndex        =   0
      Top             =   0
      Width           =   11310
      _ExtentX        =   19950
      _ExtentY        =   953
      ButtonWidth     =   1164
      ButtonHeight    =   953
      Style           =   1
      ImageList       =   "imglstCierres"
      _Version        =   393216
      BeginProperty Buttons {66833FE8-8583-11D1-B16A-00C0F0283628} 
         NumButtons      =   5
         BeginProperty Button1 {66833FEA-8583-11D1-B16A-00C0F0283628} 
            Caption         =   "Aceptar"
            Object.ToolTipText     =   "Inicia el proceso de generacion de cierres"
            ImageIndex      =   1
         EndProperty
         BeginProperty Button2 {66833FEA-8583-11D1-B16A-00C0F0283628} 
            Enabled         =   0   'False
            Caption         =   "Nuevo"
            Object.ToolTipText     =   "Reinicia la generacion de cierres"
            ImageIndex      =   11
         EndProperty
         BeginProperty Button3 {66833FEA-8583-11D1-B16A-00C0F0283628} 
            Style           =   3
         EndProperty
         BeginProperty Button4 {66833FEA-8583-11D1-B16A-00C0F0283628} 
            Caption         =   "Ayuda"
            Object.ToolTipText     =   "Ayuda sobre Administracion de Cierres"
            ImageIndex      =   9
         EndProperty
         BeginProperty Button5 {66833FEA-8583-11D1-B16A-00C0F0283628} 
            Caption         =   "Salir"
            Object.ToolTipText     =   "Permite salir de la aplicacion"
            ImageIndex      =   3
         EndProperty
      EndProperty
   End
   Begin VB.Timer tmrHora 
      Interval        =   500
      Left            =   3360
      Top             =   2640
   End
   Begin MSComctlLib.ImageList imglstCierres 
      Left            =   2760
      Top             =   2640
      _ExtentX        =   1005
      _ExtentY        =   1005
      BackColor       =   -2147483643
      ImageWidth      =   16
      ImageHeight     =   16
      MaskColor       =   12632256
      _Version        =   393216
      BeginProperty Images {2C247F25-8591-11D1-B16A-00C0F0283628} 
         NumListImages   =   11
         BeginProperty ListImage1 {2C247F27-8591-11D1-B16A-00C0F0283628} 
            Picture         =   "frmAdminCierres.frx":0A7E
            Key             =   ""
         EndProperty
         BeginProperty ListImage2 {2C247F27-8591-11D1-B16A-00C0F0283628} 
            Picture         =   "frmAdminCierres.frx":0D9A
            Key             =   ""
         EndProperty
         BeginProperty ListImage3 {2C247F27-8591-11D1-B16A-00C0F0283628} 
            Picture         =   "frmAdminCierres.frx":10B6
            Key             =   ""
         EndProperty
         BeginProperty ListImage4 {2C247F27-8591-11D1-B16A-00C0F0283628} 
            Picture         =   "frmAdminCierres.frx":13D2
            Key             =   ""
         EndProperty
         BeginProperty ListImage5 {2C247F27-8591-11D1-B16A-00C0F0283628} 
            Picture         =   "frmAdminCierres.frx":1826
            Key             =   ""
         EndProperty
         BeginProperty ListImage6 {2C247F27-8591-11D1-B16A-00C0F0283628} 
            Picture         =   "frmAdminCierres.frx":1C7A
            Key             =   ""
         EndProperty
         BeginProperty ListImage7 {2C247F27-8591-11D1-B16A-00C0F0283628} 
            Picture         =   "frmAdminCierres.frx":20CE
            Key             =   ""
         EndProperty
         BeginProperty ListImage8 {2C247F27-8591-11D1-B16A-00C0F0283628} 
            Picture         =   "frmAdminCierres.frx":2522
            Key             =   ""
         EndProperty
         BeginProperty ListImage9 {2C247F27-8591-11D1-B16A-00C0F0283628} 
            Picture         =   "frmAdminCierres.frx":2976
            Key             =   ""
         EndProperty
         BeginProperty ListImage10 {2C247F27-8591-11D1-B16A-00C0F0283628} 
            Picture         =   "frmAdminCierres.frx":2C92
            Key             =   ""
         EndProperty
         BeginProperty ListImage11 {2C247F27-8591-11D1-B16A-00C0F0283628} 
            Picture         =   "frmAdminCierres.frx":2FAE
            Key             =   ""
         EndProperty
      EndProperty
   End
   Begin MSComctlLib.StatusBar stbCierres 
      Align           =   2  'Align Bottom
      Height          =   255
      Left            =   0
      TabIndex        =   1
      Top             =   6960
      Width           =   11310
      _ExtentX        =   19950
      _ExtentY        =   450
      _Version        =   393216
      BeginProperty Panels {8E3867A5-8586-11D1-B16A-00C0F0283628} 
         NumPanels       =   3
         BeginProperty Panel1 {8E3867AB-8586-11D1-B16A-00C0F0283628} 
            Bevel           =   0
            Object.Width           =   7091
            MinWidth        =   7091
         EndProperty
         BeginProperty Panel2 {8E3867AB-8586-11D1-B16A-00C0F0283628} 
            Alignment       =   1
            Object.Width           =   6174
            MinWidth        =   6174
         EndProperty
         BeginProperty Panel3 {8E3867AB-8586-11D1-B16A-00C0F0283628} 
            Alignment       =   1
            Object.Width           =   6174
            MinWidth        =   6174
         EndProperty
      EndProperty
   End
End
Attribute VB_Name = "frmAdminCierres"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
'Cierre X
Private MobjSetup As UTIL_SETUP.C_SETUP
Private obj As DB_OP_FACTURACION.C_CIERRE
Private RS_CARAS_POR_PTOVTA As ADODB.Recordset
Private MobjVentaPlaya As DB_OP_FACTURACION.C_VENTASPLAYA

Private RS1 As ADODB.Recordset
Private RS2 As ADODB.Recordset
Private RS3 As ADODB.Recordset
Private RS4 As ADODB.Recordset
Private RS5 As ADODB.Recordset

'Variables de resumen de cierres
Private TotX As Integer
Private TotZ As Integer
Private cntErrX As Integer
Private cntErrZ As Integer

Sub CancelarCierre()
    'Permite cancelar los cambios y realizar un nuevo cierre
    'Variables de resumen de cierres
    TotX = 0
    TotZ = 0
    cntErrX = 0
    cntErrZ = 0
    
    For c = 1 To trvCajas.Nodes.Count
        trvCajas.Nodes(c).Checked = False
    Next
    chkGenX.Value = 1
    chkGenZ.Value = 0
    optPantalla.Value = True
    tmrHora.Enabled = True
    'Entorno Inicial
    txtFecha = Format(MobjSetup.ObtenerSetupVentas!DATEPROCESALES, "DD/MM/YYYY") 'Fecha
    cboTurno.ListIndex = MobjVentaPlaya.ObtenerTurnoActual - 1                   'Turno
    'Lista de Mensajes
    lstvMsgCierre.ListItems.Clear
    'Barra de estado de mensajes
    stbCierres.Panels(1).Text = ""
    Set stbCierres.Panels(1).Picture = Nothing
    stbCierres.Panels(2).Text = ""
    stbCierres.Panels(3).Text = ""
End Sub


Private Sub GeneraCierreZ(FechaProceso As Variant, _
                               PuntoDeVenta As String, Optional Resumen As Integer)
'Permite generar el cierre Z
'On Error GoTo TrataError

'-------------------VERIFICA TRANSACCIONES PENDIENTES---------------------
Dim intPendientes As Integer
Screen.MousePointer = 11
Set obj = New DB_OP_FACTURACION.C_CIERRE
Set RS_CARAS_POR_PTOVTA = New ADODB.Recordset
Set RS_CARAS_POR_PTOVTA = obj.ObtenerCarasdePtovta(PuntoDeVenta)

intPendientes = Ver_Transacciones_Pendientes(RS_CARAS_POR_PTOVTA)
If intPendientes = 0 Then
    Screen.MousePointer = 0
    MDestruye_Objetos
    Call MensajesEstado("Cierre Z", PuntoDeVenta, "No se ha Configurado Caras para el Punto de Venta", 6)
    Exit Sub
End If

If intPendientes = 1 Then
    Screen.MousePointer = 0
    MDestruye_Objetos
    Call MensajesEstado("Cierre Z", PuntoDeVenta, "Existen Transacciones pendientes", 6)
    Exit Sub
End If

If intPendientes = 3 Then
    Screen.MousePointer = 0
    MDestruye_Objetos
    Call MensajesEstado("Cierre Z", PuntoDeVenta, "Error Inesperedo", 7)
    Exit Sub
End If

'-----------------------------INICIA PROCESO------------------------------
'Resumenes
Set RS1 = _
    obj.OBTIENERESUMEN_PLAYA_CIERREZ(CDate(FechaProceso), PuntoDeVenta, 1)
Set RS2 = _
    obj.OBTIENERESUMEN_PLAYA_CIERREZ(CDate(FechaProceso), PuntoDeVenta, 2)
Set RS3 = _
    obj.OBTIENERESUMEN_PLAYA_CIERREZ(CDate(FechaProceso), PuntoDeVenta, 3)
Set RS4 = _
    obj.OBTIENERESUMEN_PLAYA_CIERREZ(CDate(FechaProceso), PuntoDeVenta, 4)

'Cabezera
Set RS5 = _
    obj.OBTIENECABECERA_PLAYA_CIERREZ(CDate(FechaProceso), PuntoDeVenta)

'Opciones de Visualizacion
If optPantalla.Value = True Then                    'PANTALLA
    If RS1.EOF Then
       Call MensajesEstado("Cierre Z", PuntoDeVenta, "No existen Ventas para la Fecha de Proceso " & CStr(FechaProceso), 6)
    Else
       'Este procedimiento fue mejorado para que envie resultado de estado
       Select Case GVerCierre(1, 0, Empty, GstrSimboloMonedaBase, GstrSimboloMonedaExt, 40, _
                                GintDecResultado, RS5, RS1, RS2, RS3, RS4)
            Case 94
                Call MensajesEstado("Cierre Z", PuntoDeVenta, "La Fecha de Proceso esta retrasada", 7)
            Case 0
                Call MensajesEstado("Cierre Z", PuntoDeVenta, "Cierre Z generado con éxito", 10)
            Case Else
                Call MensajesEstado("Cierre Z", PuntoDeVenta, "Error desconocido", 7)
       End Select
   End If
End If

If optImpresora.Value = True Then                   'IMPRESORA
    If RS1.EOF Then
        Call MensajesEstado("Cierre Z", PuntoDeVenta, "No existen Ventas para la Fecha de Proceso " & CStr(FechaProceso), 6)
    Else
        'Inicia Impresion
        Select Case GImprimeCierre(1, 0, Empty, GstrSimboloMonedaBase, GstrSimboloMonedaExt, _
                                40, GintDecResultado, RS5, RS1, RS2, RS3, RS4)
            Case 94
               Call MensajesEstado("Cierre Z", PuntoDeVenta, "La Fecha de Proceso esta retrasada", 7)
            Case 482
               Call MensajesEstado("Cierre Z", PuntoDeVenta, "Error de Impresora", 7)
            Case 0
               Call MensajesEstado("Cierre Z", PuntoDeVenta, "Cierre Z generado con éxito", 10)
            Case Else
               Call MensajesEstado("Cierre Z", PuntoDeVenta, "Error desconocido", 7)
        End Select
    End If
'       Call obj.Actualizar_Datos_LuegodeCierreZ(PuntoDeVenta, CDate(FechaProceso), RS5!TOTZETA, RS5!NBRZETA)
'       Call GImprimeCierre(1, 0, Empty, GstrSimboloMonedaBase, GstrSimboloMonedaExt, 40, GintDecResultado, RS5, RS1, RS2, RS3, RS4)
End If

'ACTUALIZACIN la Base de Datos con el registro de los cierres(X y Z)
If chkActualizaXZ.Value = 1 Then
   Call obj.Actualizar_Datos_LuegodeCierreZ(PuntoDeVenta, CDate(FechaProceso), RS5!TOTZETA, RS5!NBRZETA)
   stbCierres.Panels(1).Text = "Se guardo un registro de los cierres efectuados"
   stbCierres.Panels(1).Picture = imglstCierres.ListImages(8).Picture
Else
   stbCierres.Panels(1).Text = "No se guardo un registro de los cierres efectuados"
   stbCierres.Panels(1).Picture = imglstCierres.ListImages(6).Picture
End If
MDestruye_Objetos
Screen.MousePointer = 0

Exit Sub
TrataError:
    MDestruye_Objetos
    Screen.MousePointer = 0
'    Me.Hide
    MsgBox Err.Description, vbCritical, "Error Generando Cierre Z"
    Unload Me

End Sub


'Cierre Z


Private Sub MDestruye_Objetos()
    'Permite destruir los objetos creados en esta ventana
    Set RS1 = Nothing
    Set RS2 = Nothing
    Set RS3 = Nothing
    Set RS4 = Nothing
    Set RS5 = Nothing
    Set obj = Nothing
    
    Close #1
End Sub

Sub MensajesEstado(Cierre As String, PuntoVenta, _
                    MensajeEstado As String, Estado As Integer)
    'Modulo creado por Jorge Illescas 2005-04-13......................................
    '.................................................................................
    'Muestra todos los mensajes del estado de procesos
'    Dim QueGen As String
'    Dim Msge As String
'    If chkGenX.Value = 1 Then
'       QueGen = "Generando cierre X..."
'    End If
'    If chkGenZ.Value = 1 Then
'       QueGen = "Generando cierre Z..."
'    End If
'    If chkGenX.Value = 1 And chkGenZ.Value = 1 Then
'       QueGen = "Generando cierres X y Z..."
'    End If
'    stbCierres.Panels(1).Text = _
'    QueGen + " " + IIf(optImpresora, optImpresora.Caption, optPantalla.Caption)
    Dim elemento As ListItem
    Static Linea As Integer

    
    Linea = Linea + 1

    Set elemento = _
    lstvMsgCierre.ListItems.Add(, "L" & CStr(Linea), Cierre + " -- " + PuntoVenta + " -- " + MensajeEstado, , Estado)
    
    'Resumen de cierre x realizados: realizado en la barra de estado
    If Right(Trim(Cierre), 1) = "X" Then
       TotX = TotX + 1
       If Estado <> 10 Then 'Msg fallo proceso
          cntErrX = cntErrX + 1
       End If
       stbCierres.Panels(2).Text = CStr(TotX) & "   cierre(s) X generado(s)    :    " & CStr(cntErrX) & "   Truncados"
    End If
    If Right(Trim(Cierre), 1) = "Z" Then
       TotZ = TotZ + 1
       If Estado <> 10 Then 'Msg fallo proceso
          cntErrZ = cntErrZ + 1
       End If
       stbCierres.Panels(3).Text = CStr(TotZ) & "   cierre(s) Z generado(s)    :    " & CStr(cntErrZ) & "   Truncados"
    End If

    lstvMsgCierre.View = lvwReport
    lstvMsgCierre.HideColumnHeaders = True
    lstvMsgCierre.FullRowSelect = True
    

    
End Sub

Function ValidaCierres() As Boolean
    'Permite validar los cierres
    Dim X As Integer
    Dim NoCheck As Integer

    
    'Cajas
    For X = 2 To trvCajas.Nodes.Count
        If trvCajas.Nodes(X).Checked = False Then
            NoCheck = NoCheck + 1
            ValidaCierres = False
        End If
    Next
    If NoCheck = trvCajas.Nodes.Count - 1 Then
       MsgBox "Seleccione al menos un Punto de Venta.", _
                                vbExclamation, "Administracion de Cierres"
       Exit Function
    End If
    
    'Generacion
    If chkGenX.Value = 0 And chkGenZ.Value = 0 Then
       MsgBox "Seleccione al menos una Opcion de Cierre.", _
                                vbExclamation, "Administracion de Cierres"
       ValidaCierres = False
       Exit Function
    End If
    
    ValidaCierres = True
    
End Function

Private Function Ver_Transacciones_Pendientes(rsTrans As ADODB.Recordset) As Integer
 
Dim StrSql As String
Dim rs As ADODB.Recordset
    
'On Error GoTo errhandler

Ver_Transacciones_Pendientes = 2 ' se asume inicialmente todo bien

If GIntVentaAutoCombust = 0 Then ' Si la Venta es Manual
   Ver_Transacciones_Pendientes = 2 ' se asume inicialmente todo bien
'   Ver_Transacciones_Pendientes = 3 'AGREGADO POR JORGE
   Exit Function
End If


Exit Function
    
errhandler:
    Ver_Transacciones_Pendientes = 3
    MsgBox "Error - " & Err.Description, vbCritical, "Error"
End Function

Private Sub GeneraCierreX(TurnoDia As Integer, _
                FechaProceso As Variant, PuntoDeVenta As String, Optional Resumen As Integer)
'Permite generar el cierre X
'On Error GoTo TrataError
'-------------------VERIFICA TRANSACCIONES PENDIENTES---------------------
Dim intPendientes As Integer
Screen.MousePointer = 11
Set obj = New DB_OP_FACTURACION.C_CIERRE
Set RS_CARAS_POR_PTOVTA = New ADODB.Recordset
Set RS_CARAS_POR_PTOVTA = obj.ObtenerCarasdePtovta(PuntoDeVenta)

intPendientes = Ver_Transacciones_Pendientes(RS_CARAS_POR_PTOVTA)
If intPendientes = 0 Then
    Screen.MousePointer = 0
    MDestruye_Objetos
    Call MensajesEstado("Cierre X", PuntoDeVenta, "No se ha Configurado Caras para el Punto de Venta", 6)
    Exit Sub
End If

If intPendientes = 1 Then
    Screen.MousePointer = 0
    MDestruye_Objetos
    Call MensajesEstado("Cierre X", PuntoDeVenta, "Existen Transacciones pendientes", 6)
    Exit Sub
End If

If intPendientes = 3 Then
    Screen.MousePointer = 0
    MDestruye_Objetos
    Call MensajesEstado("Cierre X", PuntoDeVenta, "Error Inesperedo", 7)
    Exit Sub
End If

'-----------------------------INICIA PROCESO------------------------------
'Resumenes
Set RS1 = _
    obj.OBTIENERESUMEN_PLAYA_CIERREX(CInt(TurnoDia), CDate(FechaProceso), PuntoDeVenta, 1)
Set RS2 = _
    obj.OBTIENERESUMEN_PLAYA_CIERREX(CInt(TurnoDia), CDate(FechaProceso), PuntoDeVenta, 2)
Set RS3 = _
    obj.OBTIENERESUMEN_PLAYA_CIERREX(CInt(TurnoDia), CDate(FechaProceso), PuntoDeVenta, 3)
Set RS4 = _
    obj.OBTIENERESUMEN_PLAYA_CIERREX(CInt(TurnoDia), CDate(FechaProceso), PuntoDeVenta, 4)

'Cabezera
Set RS5 = _
    obj.OBTIENECABECERA_PLAYA_CIERREX(CInt(TurnoDia), CDate(FechaProceso), PuntoDeVenta)

'Opciones de Visualizacion
If optPantalla.Value = True Then                    'PANTALLA
    If RS1.EOF Then
       Call MensajesEstado("Cierre X", PuntoDeVenta, "No existen Ventas para el Turno " & CStr(cboTurno.ItemData(cboTurno.ListIndex)), 6)
    Else
        'Este procedimiento fue mejorado para que envie resultado de estado
    '    Call GVerCierre(0, 0, Empty, GstrSimboloMonedaBase, GstrSimboloMonedaExt, 40, GintDecResultado, RS5, RS1, RS2, RS3, RS4, CInt(TurnoDia))
        Select Case GVerCierre(0, 0, Empty, GstrSimboloMonedaBase, GstrSimboloMonedaExt, 40, _
                    GintDecResultado, RS5, RS1, RS2, RS3, RS4, CInt(TurnoDia))
           Case 94
                Call MensajesEstado("Cierre X", PuntoDeVenta, "Ya se realizo un cierre X para la fecha de proceso y turno seleccionado", 7)
           Case 0
                Call MensajesEstado("Cierre X", PuntoDeVenta, "Cierre X generado con éxito", 10)
           Case Else
                Call MensajesEstado("Cierre X", PuntoDeVenta, "Error desconocido", 7)
        End Select
    End If
End If

If optImpresora.Value = True Then                   'IMPRESORA
    Dim LrsSecuencia As ADODB.Recordset
    Dim LstrMensaje As String

    Set LrsSecuencia = obj.Auxiliar1(PuntoDeVenta)
    'Determinando quien no ha realizado cierre x
    If Not LrsSecuencia.EOF Then
         Screen.MousePointer = 0
         LstrMensaje = "Deben rezalizar Cierre X los Siguientes Puntos de Venta : " & Chr(13) & Chr(13)
         LrsSecuencia.MoveFirst
         Do While Not LrsSecuencia.EOF
            LstrMensaje = LstrMensaje & LrsSecuencia!salespoint & " [" & LrsSecuencia!TerminalName & "]" & Chr(13)
            LrsSecuencia.MoveNext
         Loop
         MsgBox LstrMensaje, vbDefaultButton1 + vbInformation, "Mensaje"
         Set LrsSecuencia = Nothing
'         Unload Me
         Exit Sub
    End If

    If RS1.EOF Then
       Call MensajesEstado("Cierre X", PuntoDeVenta, "No existen Ventas para el Turno " & CStr(cboTurno.ItemData(cboTurno.ListIndex)), 6)
    Else
        'Inicia Impresion
        Select Case GImprimeCierre(0, 0, Empty, GstrSimboloMonedaBase, GstrSimboloMonedaExt, _
                40, GintDecResultado, RS5, RS1, RS2, RS3, RS4, CInt(TurnoDia))
            Case 94
                Call MensajesEstado("Cierre X", PuntoDeVenta, "Ya se realizo un cierre X para la fecha de proceso y turno seleccionado", 7)
            Case 482
                Call MensajesEstado("Cierre X", PuntoDeVenta, "Error de Impresora", 7)
            Case 0
                Call MensajesEstado("Cierre X", PuntoDeVenta, "Cierre X generado con éxito", 10)
            Case Else
                Call MensajesEstado("Cierre X", PuntoDeVenta, "Error desconocido", 7)
        End Select
    End If
'   Call obj.Actualizar_Datos_LuegodeCierreX(lblcaja.Caption, 2, lblturno.Caption, lblfecha.Caption, Empty)
'   Call GImprimeCierre(0, 0, Empty, GstrSimboloMonedaBase, GstrSimboloMonedaExt, 40, GintDecResultado, RS5, RS1, RS2, RS3, RS4, CInt(TurnoDia))
End If

'ACTUALIZACIN la Base de Datos con el registro de los cierres(X y Z)
If chkActualizaXZ.Value = 1 Then
   Call obj.Actualizar_Datos_LuegodeCierreX(PuntoDeVenta, 2, TurnoDia, CDate(FechaProceso), Empty)
   stbCierres.Panels(1).Text = "Se guardo un registro de los cierres efectuados"
   stbCierres.Panels(1).Picture = imglstCierres.ListImages(8).Picture
Else
   stbCierres.Panels(1).Text = "No se guardo un registro de los cierres efectuados"
   stbCierres.Panels(1).Picture = imglstCierres.ListImages(6).Picture
End If
MDestruye_Objetos
Screen.MousePointer = 0

Exit Sub
TrataError:
    MDestruye_Objetos
    Screen.MousePointer = 0
'    Me.Hide
    MsgBox Err.Description, vbCritical, "Error Generando Cierre X"
    Unload Me

End Sub


Sub VerPuntoVenta()
    Dim elem As Node
    'Cargando cada punto de Venta
    Set elem = trvCajas.Nodes.Add(, tvwFirst, "Cajas", "Puntos de Venta", 4)
    Set elem = trvCajas.Nodes.Add("Cajas", tvwChild, "PTOVTA01", "Cajas 01 - 150530700395", 5)
    Set elem = trvCajas.Nodes.Add("Cajas", tvwChild, "PTOVTA02", "Cajas 02 - 150530700040", 5)
    Set elem = trvCajas.Nodes.Add("Cajas", tvwChild, "PTOVTA03", "Cajas 03 - 150530700396", 5)
    Set elem = trvCajas.Nodes.Add("Cajas", tvwChild, "PTOVTA04", "Cajas 04 - 922160500271", 5)
    
    'Colocando Checks
    trvCajas.Checkboxes = True
    'Expandiendo todos los elementos
    trvCajas.Nodes.Item(1).Expanded = True
End Sub


Private Sub chkActualizaXZ_Click()
    'Si esta desmarcado permite seleccionar entr los turnos, para ver cierres x
    'que no se hayan podido realizar exitosamente..
    
    'Asignar el ultimo turno establecido por el sistema, a la lista turno
    cboTurno.ListIndex = MobjVentaPlaya.ObtenerTurnoActual - 1
    
    cboTurno.Locked = chkActualizaXZ.Value
End Sub

Private Sub chkGenX_Click()
    cboTurno.Enabled = chkGenX.Value

End Sub

Private Sub chkGenZ_Click()
    cboTurno.Enabled = chkGenX.Value

End Sub

Private Sub Form_Load()
    'Cierre X
    Set MobjSetup = New UTIL_SETUP.C_SETUP
    Set MobjVentaPlaya = New DB_OP_FACTURACION.C_VENTASPLAYA
    Set obj = New DB_OP_FACTURACION.C_CIERRE
    'Cierre Z
    
    'Configuracion Inicial
    Call VerPuntoVenta
    'Entorno inicial
    txtFecha = Format(MobjSetup.ObtenerSetupVentas!DATEPROCESALES, "DD/MM/YYYY") 'Fecha
    cboTurno.ListIndex = MobjVentaPlaya.ObtenerTurnoActual - 1                   'Turno
    
    'Entorno Secundario
    txtFecha.Locked = True
    cboTurno.Locked = True
    chkGenX.Value = 1
    chkActualizaXZ.Value = 1 'Permitir registrar en la BD los cierres
    Me.Caption = Me.Caption & " " & fSeguridad.UsuarioCierresXZ   'Usuario que ingresa al sistema
End Sub






Private Sub tlbCierres_ButtonClick(ByVal Button As MSComctlLib.Button)
    'Segun sea hace cierre X ocierre Z
    Select Case Button.Index
        Case 1 'Aceptar
            'Validacion de cierres
            If ValidaCierres = False Then
               Exit Sub
            End If
            'Interfaz botones y controles
            tmrHora.Enabled = False
            tlbCierres.Buttons(1).Enabled = False
            tlbCierres.Buttons(2).Enabled = True
            'Generando Cierres X y/o Z
            lstvMsgCierre.ListItems.Clear 'Limpiando mensajes anteriores
            If chkGenX.Value = 1 Then
               For X = 2 To trvCajas.Nodes.Count
                   If trvCajas.Nodes(X).Checked = True Then
                      Call GeneraCierreX(cboTurno.ItemData(cboTurno.ListIndex), txtFecha, trvCajas.Nodes(X).Key)
                   End If
               Next
            End If
            If chkGenZ.Value = 1 Then
               For Z = 2 To trvCajas.Nodes.Count
                   If trvCajas.Nodes(Z).Checked = True Then
                      Call GeneraCierreZ(txtFecha, trvCajas.Nodes(Z).Key)
                   End If
               Next
            End If
        Case 2 'Cancelar
            'Interfaz botones
            tlbCierres.Buttons(1).Enabled = True
            tlbCierres.Buttons(2).Enabled = False
            Call CancelarCierre
        Case 4
            MsgBox "Para obtener ayuda sobre el uso de la aplicacion, situe el" & _
            " puntero del mouse sobre los controles de la ventana, espere 2 segundos " & _
            "y se mostrara una ayuda breve sobre el uso de cada control para realizar cierres X o Z." + Chr(13) + _
             "Para obtener mas ayuda consulte el manual del usuario en: " + Chr(13) + Chr(13) + _
             "C:\Sies\Ventas\AdminCierres.DOC.", _
             vbInformation, "Administracion de Cierres"
        Case 5 'Salr
            Unload Me
    End Select
End Sub

Private Sub tmrHora_Timer()
    'Permite visualizar la hora del sistema
    lblHora.Caption = Time
End Sub

Private Sub trvCajas_NodeCheck(ByVal Node As MSComctlLib.Node)
'Si se ACTIVA CHECK del primer item, entonces se muestran todos
'los items con el check activo, y tambien en sentido cobntrario

'trvCajas.Nodes(trvCajas.SelectedItem.Index).Selected = True
'Dim b As Node
'Set b = trvCajas.Nodes(trvCajas.SelectedItem.Index).EnsureVisible()

If trvCajas.Nodes(trvCajas.SelectedItem.Index).Key = "Cajas" Then 'Se selecciono el 1º Item
    For i = 2 To trvCajas.Nodes.Count
        trvCajas.Nodes(i).Checked = _
                     trvCajas.Nodes(trvCajas.SelectedItem.Index).Checked
    Next
    trvCajas.Nodes.Item(trvCajas.SelectedItem.Index).Expanded = True 'Expandiendo Tree
ElseIf trvCajas.Nodes(trvCajas.SelectedItem.Index).Key <> "Cajas" Then 'Seleccionando o deselec. 1º item
    Dim a As Boolean
    For i = 2 To trvCajas.Nodes.Count
        a = a + trvCajas.Nodes(i).Checked
    Next
    trvCajas.Nodes(1).Checked = a
End If

End Sub

