VERSION 5.00
Begin VB.Form FVentaCombustible 
   BackColor       =   &H00FFFFFF&
   BorderStyle     =   1  'Fixed Single
   Caption         =   "Facturación Combustible (05.010.00)"
   ClientHeight    =   8460
   ClientLeft      =   1335
   ClientTop       =   495
   ClientWidth     =   11790
   Icon            =   "0501000.frx":0000
   LinkTopic       =   "Form1"
   MaxButton       =   0   'False
   MinButton       =   0   'False
   Moveable        =   0   'False
   ScaleHeight     =   8460
   ScaleWidth      =   11790
   StartUpPosition =   2  'CenterScreen
   Begin VB.CommandButton cmdcierrez 
      Caption         =   "        [F12]                CierreZ            "
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   9.75
         Charset         =   0
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   1095
      Left            =   8280
      TabIndex        =   8
      TabStop         =   0   'False
      Top             =   6840
      Visible         =   0   'False
      Width           =   1710
   End
   Begin VB.CommandButton cmdcierrex 
      Caption         =   "        [F11]                Cierrex            "
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   9.75
         Charset         =   0
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   1095
      Left            =   6600
      TabIndex        =   7
      TabStop         =   0   'False
      Top             =   6840
      Visible         =   0   'False
      Width           =   1710
   End
   Begin VB.CommandButton cmdcambioturno 
      Caption         =   "        [F5]               Cambio de            Turno"
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   9.75
         Charset         =   0
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   1095
      Left            =   4920
      TabIndex        =   6
      TabStop         =   0   'False
      Top             =   6840
      Visible         =   0   'False
      Width           =   1710
   End
   Begin VB.CommandButton cmdTransaccionesPend 
      Caption         =   "        [F4] Transacciones    Pendientes"
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   9.75
         Charset         =   0
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   1095
      Left            =   3240
      TabIndex        =   5
      TabStop         =   0   'False
      Top             =   6840
      Visible         =   0   'False
      Width           =   1740
   End
   Begin VB.CommandButton cmddatosadicionales 
      Caption         =   $"0501000.frx":08CA
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   9.75
         Charset         =   0
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   1095
      Left            =   1560
      TabIndex        =   4
      TabStop         =   0   'False
      Top             =   6840
      Visible         =   0   'False
      Width           =   1710
   End
   Begin VB.ListBox lstmensajesvisibles 
      Appearance      =   0  'Flat
      BackColor       =   &H00FFFFFF&
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   13.5
         Charset         =   0
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      ForeColor       =   &H00C00000&
      Height          =   390
      Left            =   60
      TabIndex        =   2
      Top             =   7440
      Visible         =   0   'False
      Width           =   11610
   End
   Begin VB.CommandButton cmdcashdrop 
      Caption         =   "         [F6]               CashDrop        "
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   9.75
         Charset         =   0
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   1095
      Left            =   5760
      TabIndex        =   1
      TabStop         =   0   'False
      Top             =   7320
      Visible         =   0   'False
      Width           =   1710
   End
   Begin VB.Timer Timer1 
      Interval        =   1000
      Left            =   600
      Top             =   2640
   End
   Begin VB.ListBox Lstmensajes 
      BackColor       =   &H00FFFFFF&
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   8.25
         Charset         =   0
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      ForeColor       =   &H00800000&
      Height          =   3180
      ItemData        =   "0501000.frx":0968
      Left            =   120
      List            =   "0501000.frx":096A
      TabIndex        =   3
      Top             =   840
      Visible         =   0   'False
      Width           =   3855
   End
   Begin VB.Label lbltimer 
      BackColor       =   &H00FFFFFF&
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   13.5
         Charset         =   0
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      ForeColor       =   &H8000000D&
      Height          =   375
      Left            =   360
      TabIndex        =   0
      Top             =   240
      Width           =   3735
   End
   Begin VB.Label Label1 
      Alignment       =   2  'Center
      BackColor       =   &H00FFFFFF&
      Caption         =   "Venta en Playa"
      BeginProperty Font 
         Name            =   "Arial Black"
         Size            =   48
         Charset         =   0
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      ForeColor       =   &H000000FF&
      Height          =   1215
      Left            =   1088
      TabIndex        =   10
      Top             =   5400
      Width           =   9615
   End
   Begin VB.Label lblversion 
      Alignment       =   2  'Center
      BackColor       =   &H00FFFFFF&
      Caption         =   "SIE Versión 1.5"
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   9.75
         Charset         =   0
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      ForeColor       =   &H00C00000&
      Height          =   255
      Left            =   3848
      TabIndex        =   9
      Top             =   6720
      Width           =   4095
   End
   Begin VB.Image Image1 
      Appearance      =   0  'Flat
      Height          =   6375
      Left            =   240
      Picture         =   "0501000.frx":096C
      Stretch         =   -1  'True
      Top             =   -480
      Width           =   11535
   End
   Begin VB.Menu MnuOperaciones 
      Caption         =   "Operaciones"
      Visible         =   0   'False
      Begin VB.Menu MnuConfigVendTurn 
         Caption         =   "Cambio Turno Vendedores"
      End
      Begin VB.Menu mnuraya1 
         Caption         =   "-"
      End
      Begin VB.Menu MnuCierrex 
         Caption         =   "Cierre X"
      End
      Begin VB.Menu mnucierrez 
         Caption         =   "Cierre Z"
      End
   End
End
Attribute VB_Name = "FVentaCombustible"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
' Se retiraron los Fuentes de la red el 24/04/2003
'******************************************************************************************
' Variables para el control de Seguridad
'******************************************************************************************
  
  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
  
'******************************************************************************************
  'Private MCEM As proyecto_cemm.CEMM44
  
  Private Mcmd As ADODB.Command
  Private Mcon As ADODB.Connection
  Private MobjVentasGeneral As DB_OP_FACTURACION.C_VENTASGENERAL
  Private MobjVentaPlaya As DB_OP_FACTURACION.C_VENTASPLAYA
  Private MobjDispensador As DB_UT_MANTENIMIENTOS.C_DISPENSADORES
  Private MobjCorrelativo As DB_CORRELATIVO.C_Correlativos
  Private MrsDispensador As ADODB.Recordset
  Private Mrstranspend As ADODB.Recordset
  Private MrsTransPendTemp As ADODB.Recordset
  Private MDblStock As Double
  Private MDblCorrelativo As Double
  Private MStrMonedaRelacionada As String
  Private MblnAfecto As Boolean

  Private MStrCodigoCliente As String
  Private MStrTipoCambio As String
  Private MdblPrecioDatMonCaja As Double
  Private MdblPrecioMonCaja  As Double
  Private MStrTipoPago As String

'******************************************************************************************
' Variables para almacenar los datos del Producto
'******************************************************************************************

  Private MrsDatosProducto As ADODB.Recordset
  Private MStrProductoSKU As String
  Private MStrUnidadMedida As String
  Private MdblImpuestoIgv As Double
  Private MintInventFisico As Integer
  Private MintInventariable As Integer
  Private MStrMonedaPrecioTPC As String
  Private MDblPrecioProd As Double
  Private MdblPrecioDat As Double
  Private MdblCostoBase As Double
  Private MdblCostoExt As Double
  Private MStrCodigoAlternativo As String
  Private Mstrdescripcion As String
  
'******************************************************************************************
' Variables para almacenar los datos del TRAN
'******************************************************************************************
    
  Private MStrNumero As String
  Private MDblSoles As Double
  Private MDblSolesTita As Double
  Private MStrProductoTran As String
  Private MDblPrecioTran As Double
  Private MdblGalones As Double
  Private MStrCara As String
  Private MStrTurno As String
  Private MStrMonedaTran As String
  Private MStrFecha As String
  Private MStrHora As String
  Private MintTPC As String
    
'******************************************************************************************
' Variables para Recalcular los Totales
'******************************************************************************************
  Private MdblMontoTipoCambio As Double
  Private MdblImpuesto As Double
  Private MdblTotalBase As Double
  Private MdblTotalExt As Double
  Private MDblIGVBase As Double
  Private MDblIGVExt As Double
  Private MDblSubAfectoBase As Double
  Private MDblSubAfectoExt As Double
  Private MDblNoAfectoBase As Double
  Private MDblNoAfectoExt As Double
  
'******************************************************************************************
' Variables para el Manejo de Impresion
'******************************************************************************************
  
  Private MrsDatosVendedor As ADODB.Recordset
  Private MstrVendedordecara As String
  Private MstrVendedorDescr As String
  Private MstrUsuariodecara As String
  Private LrsImprimir As ADODB.Recordset
  Private MrsEmision As ADODB.Recordset
  Private MstrNumeroDocumento As String
  Private MstrNomCliente As String
  Private MstrRUCCliente As String
  Private MsrtDireccion As String
  Private lrsimprimirVales As ADODB.Recordset
  
  Private MDatosTran(1, 11) As Variant
  
  Dim fso, txtfile, CadenaGenerada
  
'  Public GHEAD1, GHEAD2, GHEAD3, GHEAD4, GHEAD5, GHEAD6, GHEAD7, GHEAD8, GHEAD9, GHEAD10 As String
'  Public GstrLinea1, GstrLinea2, GstrLinea3, GstrLinea4 As String
'  Public GstrFoot1, GstrFoot2, GstrFoot3, GstrFoot4, GstrFoot5, GstrFoot6, GstrFoot7, GstrFoot8, GstrFoot9, GstrFoot10 As String

'******************************************************************************************

  'Private NumeroTransax As String
  'Private fechatransax As String
  'Private horatransax As String
  
'******************************************************************************************

Private Function CargarValoresTran(Optional ByVal strCara As String) As Boolean
        
    'Datos del TRAN
                                                
    MStrNumero = Mrstranspend!NUMERO
    If Trim(MStrNumero) = Empty Then
       CargarValoresTran = False
       Exit Function
    End If
        
    If GintTipoControlador = 0 Then ' Gasboy
       MStrProductoTran = Mrstranspend!Producto
    Else                            ' CEM44
       MStrProductoTran = Format(Mrstranspend!Producto, "00")
    End If
    
    If Trim(MStrProductoTran) = Empty Then
       CargarValoresTran = False
       Exit Function
    End If
        
    If Trim(Mrstranspend!SOLES) = Empty Then
       CargarValoresTran = False
       Exit Function
    Else
       If GintTipoControlador = 0 Then ' Gasboy
        MDblSoles = CDbl(Mrstranspend!SOLES) / 100
        MDblSolesTita = CDbl(Mrstranspend!SOLES) / 100
       Else                            ' CEM44
        MDblSoles = CDbl(Mrstranspend!SOLES)
        MDblSolesTita = CDbl(Mrstranspend!SOLES)
       End If
    End If
    
    If Trim(Mrstranspend!precio) = Empty Then
       CargarValoresTran = False
       Exit Function
    Else
       If GintTipoControlador = 0 Then ' Gasboy
         MDblPrecioTran = CDbl(Mrstranspend!precio) / 100
       Else                            ' CEM44
         MDblPrecioTran = CDbl(Mrstranspend!precio)
       End If
    End If
    
    If Trim(Mrstranspend!GALONES) = Empty Then
       If GintTipoControlador = 1 Then ' CEM44
         MdblGalones = GFormatodeNumero(MDblSoles / MDblPrecioTran, 4)
       Else                            ' GASBOY
         CargarValoresTran = False
         Exit Function
       End If
    Else
       If GintTipoControlador = 0 Then ' GASBOY
          MdblGalones = CDbl(Mrstranspend!GALONES) / 1000
       Else                            ' CEM44
          MdblGalones = GFormatodeNumero(MDblSoles / MDblPrecioTran, 4)
       End If
    End If
    
    If Trim(Mrstranspend!CARA) = Empty Then
       If GintTipoControlador = 0 Then ' GASBOY
          CargarValoresTran = False
          Exit Function
       Else                            ' CEM44
          MStrCara = strCara
       End If
    Else
       MStrCara = Format(Mrstranspend!CARA, "00")
    End If
    
    
    If Trim(Mrstranspend!Turno) = Empty Then
      If GintTipoControlador = 0 Then ' GASBOY
         CargarValoresTran = False
         Exit Function
      Else
         MStrTurno = "1"
      End If
    Else
       MStrTurno = Mrstranspend!Turno
    End If
    
    If Trim(Mrstranspend!Fecha) = Empty Then
       CargarValoresTran = False
       Exit Function
    Else
       MStrFecha = Mrstranspend!Fecha
    End If
    
    If Trim(Mrstranspend!Hora) = Empty Then
       CargarValoresTran = False
       Exit Function
    Else
       MStrHora = Mrstranspend!Hora
    End If
    
    ' Hay que Verificar que la Transacción no se repita
        
    If MobjVentaPlaya.ExisteTran(MStrNumero, MStrProductoTran, Trim(Str(MdblGalones)), MStrCara, MStrFecha, MStrHora, MStrTurno) = True Then
       CargarValoresTran = False
       Exit Function
    End If
        
    MStrMonedaTran = GstrCodMonedaBase
        
    ' CARGO DATOS NECESARIO PARA INSERTARLOS EN EL DETALLE
    ' PROCEDIMIENTO TPC
    
    Set MrsDatosProducto = MobjVentaPlaya.ObtenerDatosdeArticulo(MStrCodigoCliente, MStrProductoTran)
     
      MStrProductoSKU = MrsDatosProducto!SKU
           
      MStrUnidadMedida = MrsDatosProducto!unidad
           
      MdblImpuestoIgv = MrsDatosProducto!taxValue
            
      MintInventariable = MrsDatosProducto!STKITEM
      
      MintInventFisico = MrsDatosProducto!STKFISI
             
      If MintInventFisico = 1 Then   ' Si la Toma de Invetarios está Activada se salta ese Producto
         CargarValoresTran = False
         Exit Function
      End If
             
      ' Estas Variables son para cargar los precios de la Base de datos SIES
      
      'MStrMonedaPrecioTPC = MrsDatosProducto!CURYID
      'MDblPrecioProd = MrsDatosProducto!precio  ' PRECIO DE FACTURACION
      'MdblPrecioDat = MrsDatosProducto!preciodat
       
      MStrMonedaPrecioTPC = GstrCodMonedaBase
      
      'Parte Original
      
        MDblPrecioProd = MDblPrecioTran  ' PRECIO DE FACTURACION
        MdblPrecioDat = MDblPrecioTran
        MintTPC = MrsDatosProducto!TIPOTPC
        
        
        If MrsDatosProducto!TIPOTPC = 1 Then ' Es un descuento en Monto
           MDblPrecioProd = MDblPrecioTran - MrsDatosProducto!DescuentoMonto
           MdblPrecioDat = MDblPrecioTran
           MDblSolesTita = GFormatodeNumero(MdblGalones * MDblPrecioProd, GintDecResultado)
        Else
           ' Es un Descuento por Porcentaje
           If MrsDatosProducto!TIPOTPC = 2 Then
              MDblPrecioProd = MDblPrecioTran - GFormatodeNumero((MDblPrecioTran - (MrsDatosProducto!DescuentoMonto / 100)), GintDecPrecio)
              MdblPrecioDat = MDblPrecioTran
              MDblSolesTita = GFormatodeNumero(MdblGalones * MDblPrecioProd, GintDecResultado)
           End If
        End If
                
      'Fin de Parte Original
                
      If IsNull(MrsDatosProducto!STDCOSTPEN) Then
        MdblCostoBase = 0
      Else
        MdblCostoBase = MrsDatosProducto!STDCOSTPEN
      End If
      If IsNull(MrsDatosProducto!STDCOSTUSD) Then
        MdblCostoExt = 0
      Else
        MdblCostoExt = MrsDatosProducto!STDCOSTUSD
      End If
            
      MStrCodigoAlternativo = MrsDatosProducto!altern
      If IsNull(MrsDatosProducto!DESCR) Then
        Mstrdescripcion = Empty
      Else
        Mstrdescripcion = MrsDatosProducto!DESCR
      End If
    ' MStrMonedaRelacionada: RECIBE LA MONEDA DEL TMP_OP_SALES (CURYID)
    ' Se deduce que el MdblPrecio (GASBOY) está a Moneda Base del sistema ,
    ' pero tenemos que guardarla a la moneda
    ' leída del TMP_OP_SALES
      
      If Trim(MStrTipoCambio) = Empty Then
         MStrTipoCambio = GstrTipoCambioVentas
      End If
 
      If Trim(MStrMonedaPrecioTPC) = Empty Then
         ' NO tiene moneda ???????
         MStrMonedaPrecioTPC = GstrCodMonedaBase
      End If
        
    ' Si la Moneda relacionada es igual a la moneda del precio del producto (D9,DX.....)
    ' La Moneda relacionada es la moneda que manda es la del cliente o la de
    ' caja si es que no hay la del cliente
                          
      If MStrMonedaRelacionada = MStrMonedaTran Then
         MdblPrecioDatMonCaja = MDblPrecioTran  ' Aquí debería ser la variable MdblPrecioDat
                                                ' Obtenida del Store TPC
         If MStrMonedaRelacionada = MStrMonedaPrecioTPC Then ' La moneda del TPC ES IGUAL A LA BASE
            MdblPrecioMonCaja = MDblPrecioProd
         Else
            MdblPrecioMonCaja = MobjVentasGeneral.ConvertirMoneda(MDblPrecioProd, MStrMonedaPrecioTPC, MStrMonedaRelacionada, GDatFechaProcesoVentas, MStrTipoCambio, GintDecPrecio)
         End If
      Else
         ' LA Moneda es diferente a la Base (MStrMonedaTran)
         MdblPrecioDatMonCaja = MobjVentasGeneral.ConvertirMoneda(MDblPrecioTran, MStrMonedaTran, MStrMonedaRelacionada, GDatFechaProcesoVentas, MStrTipoCambio, GintDecPrecio)
         
         If MStrMonedaRelacionada = MStrMonedaPrecioTPC Then ' La moneda del TPC ES IGUAL A LA BASE
            MdblPrecioMonCaja = MDblPrecioProd
         Else
            MdblPrecioMonCaja = MobjVentasGeneral.ConvertirMoneda(MDblPrecioProd, MStrMonedaPrecioTPC, MStrMonedaRelacionada, GDatFechaProcesoVentas, MStrTipoCambio, GintDecPrecio)
         End If
      End If
                
                     
      Set MrsDatosProducto = Nothing
      
      'NumeroTransax = Trim(MrsTransPend!numero)
      'fechatransax = Trim(MrsTransPend!fecha)
      'horatransax = Trim(MrsTransPend!Hora)
      
      
      CargarValoresTran = True
             
End Function

Private Sub cmdcambioturno_Click()
     GintTurnoaCambiar = MobjVentaPlaya.ObtenerTurnoaCambiar
     If GintTurnoaCambiar <> -1 Then
        FSeleccionTurno.Show vbModal
     Else
        MsgBox "No existe Turno Configurado", vbDefaultButton1 + vbExclamation, "Advertencia"
     End If
End Sub

Private Sub cmdcierrex_Click()
    Timer1.Enabled = False
    FCierreX_Playa.Show vbModal
    Timer1.Enabled = True
End Sub

Private Sub cmdcierrez_Click()
    Timer1.Enabled = False
    FCierreZ_PLaya.Show vbModal
    Timer1.Enabled = True
End Sub

Private Sub cmddatosadicionales_Click()

    Timer1.Enabled = False
    FDatosClientCombust.Show vbModal
    Timer1.Enabled = True
End Sub

Private Sub cmdTransaccionesPend_Click()
    Timer1.Enabled = False
    FTranspendientes.Show vbModal
    Timer1.Enabled = True
End Sub

Private Sub Form_Activate()

    'lineas nuevas
    If pbderecho_consultar = False Then
        Unload Me
    End If

End Sub

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

  If KeyCode = 27 Or KeyCode = 13 Then
      Unload Me
  End If
'  If KeyCode = 27 Then
'     If MsgBox("Seguro que desea salir de Facturación Automática", vbYesNo + vbQuestion, "Advertencia") = vbYes Then
'        Unload Me
'     End If
'  End If
      
'  If KeyCode = vbKeyF5 Then
'     GintTurnoaCambiar = MobjVentaPlaya.ObtenerTurnoaCambiar
'     If GintTurnoaCambiar <> -1 Then
'        FSeleccionTurno.Show vbModal
'     Else
'        MsgBox "No existe Turno Configurado", vbDefaultButton1 + vbExclamation, "Advertencia"
'     End If
'  End If
  
'  If KeyCode = vbKeyF6 Then
'     F_CASHDROP.Show vbModal
'  End If
'
'  If KeyCode = vbKeyF3 Then
'     Timer1.Enabled = False
'     FDatosClientCombust.Show vbModal
'     Timer1.Enabled = True
'  End If
'  If KeyCode = vbKeyF4 Then
'     Timer1.Enabled = False
'     FTranspendientes.Show vbModal
'     Timer1.Enabled = True
'  End If
'
'  If KeyCode = vbKeyF11 Then
'     Timer1.Enabled = False
'     FCierreX_Playa.Show vbModal
'     Timer1.Enabled = True
'  End If
'
'  If KeyCode = vbKeyF12 Then
'     Timer1.Enabled = False
'     FCierreZ_PLaya.Show vbModal
'     Timer1.Enabled = True
'  End If

  If KeyCode = vbKeyInsert Then
     If Lstmensajes.Visible = True Then
        Lstmensajes.Visible = False
     Else
        Lstmensajes.Clear
        Lstmensajes.Visible = True
     End If
  End If
  
  
End Sub

Private Sub Form_Load()
                                                 
  Call gseguridad(Me)

  If pbderecho_consultar Then
     
      Set fso = CreateObject("Scripting.FileSystemObject")
      Set txtfile = fso.OpenTextFile("c:\ControlErrores.txt", 8, 0)
                  
      Me.Width = 11940
      Me.Height = 8865
      Me.Top = 50
      Me.Left = 30
      Me.KeyPreview = True
      
'      lblversion.Caption = "TITANIUM Versión " & App.Major & "." & App.Minor & "." & App.Revision
      
    ' En esta Pantalla se tiene que cargar los datos del Customer por defecto
        
      Set MobjDispensador = New DB_UT_MANTENIMIENTOS.C_DISPENSADORES
      Set MrsDispensador = MobjDispensador.ListarCarasAsignadasaPtoVta(GstrPuntodeVenta)
      
      txtfile.WriteLINE ("ListarCarasAsiganadasPtovta " & GstrPuntodeVenta & " : " & Date & " " & Time)
            
      Set MobjVentaPlaya = New DB_OP_FACTURACION.C_VENTASPLAYA
      Set MobjVentasGeneral = New DB_OP_FACTURACION.C_VENTASGENERAL
      Set MobjCorrelativo = New DB_CORRELATIVO.C_Correlativos
      MobjVentaPlaya.LimpiarTemporalCombustible GstrPuntodeVenta
      Me.Caption = "Facturación Combustible (05.020.00)" & Space(45) & GstrPuntodeVenta & " [" & GstrTerminal & "] " & "Fecha de Proceso [" & GDatFechaProcesoVentas & "]"
      
      ObtenerConfiguracionTicket
    ' Esta Pantalla tiene que Buscar transacciones en los Trans : 1,2,3,4 ....
    ' y Buscar en el temporal de tmp_op_sales para enlazar las caras ,
    ' en caso no encuentre nada en el temporal emite un ticket Boleta con los datos
    ' del cliente por defecto
      
    ' Parte Agregada para el Control de los Trans
      
       Set Mcon = New ADODB.Connection
         
       If GINTCONECTAR = 1 Then
         Mcon.ConnectionString = Trim(GSTRCADENACONECTA)
       Else
         If GINTCONECTAR = 0 Then
           Mcon.Provider = "MSDASQL"
           Mcon.ConnectionString = Trim(GSTRCADENACONECTA)
         End If
       End If
         
       Mcon.Open
       
       Set Mrstranspend = New ADODB.Recordset
          
       Set Mcmd = New ADODB.Command
       Mcmd.ActiveConnection = Mcon
              
       'Set MCEM = New proyecto_cemm.CEMM44
              
       Timer1.Enabled = True
  Else
     MsgBox ("No tiene Derechos para Ingresar a Venta Combustible "), vbCritical + vbDefaultButton1, "Mensaje"
  End If
  
End Sub

Private Sub Form_Unload(Cancel As Integer)
  
  Set MobjDispensador = Nothing
  Set MrsDispensador = Nothing
  Set MobjVentaPlaya = Nothing
  Set MobjVentasGeneral = Nothing
  Set MobjCorrelativo = Nothing
  On Error Resume Next
  txtfile.Close
  
  Set Mcmd = Nothing
  Set Mcon = Nothing
  Set Mrstranspend = Nothing
  
End Sub

Private Sub MnuCierrex_Click()
  Timer1.Enabled = False
  
  FCierreX_Playa.Show vbModal
  'FReimpresionCierre.Show
  
  Timer1.Enabled = True
  
End Sub

Private Sub mnucierrez_Click()
  Timer1.Enabled = False
  
  FCierreZ_PLaya.Show vbModal
  
  Timer1.Enabled = True

End Sub

Private Sub MnuConfigVendTurn_Click()
  
  GintTurnoaCambiar = MobjVentaPlaya.ObtenerTurnoaCambiar
  If GintTurnoaCambiar <> -1 Then
     FSeleccionTurno.Show vbModal
  Else
     MsgBox "No existe Turno Configurado"
  End If
  
End Sub

Private Sub Timer1_Timer()

'Dim StrNumeroDocumento As String
'Dim StrSql As String
'Dim RsActualiza As ADODB.Recordset
'
'On Error GoTo errhandler
'
'  ' Si GIntPermiteStkNegativo / Permite negativo es 1
'  ' Va a estar consultando si existen Transacciones
'  ' en los Trans y los va ha enzalar con tmp_op_sales
'  ' Recordar que no se puede despachar en un Cara si
'  ' es que tiene una transacción Pendiente
'
'   Timer1.Enabled = False
'
'   'GrabarError ("Timer Deshabilitado, Comienza Búsqueda en Punto de Ventas : ")
'
'   ' Buscar en las Caras Transacciones a Facturar y enlazar
'   MrsDispensador.MoveFirst
'   Do While Not MrsDispensador.EOF
'
'     ' Parte Anexada---
'       'If Mrstranspend Is Nothing Then
'       '   Set Mrstranspend = New ADODB.Recordset
'       'End If
'     ' ----------------
'     If GintTipoControlador = 1 Then ' CEM44
'        'MCEM.grabar_tran GstrRutaJtran, GstrRutaTran, "Tran" & Trim(MrsDispensador!side)
'     End If
'
'     Mrstranspend.Open " Select * FROM tran" & Trim(MrsDispensador!side) & " WHERE ESTADO!='CANCEL' " & _
'                       " Order by Fecha,Hora ASC", Mcon, adOpenStatic
'
'     Mrstranspend.Requery
'
'     'Set DataGrid1.DataSource = Mrstranspend
'     'DataGrid1.Refresh
'
'
'     If Not Mrstranspend.EOF Then
'       Mrstranspend.MoveFirst
'       'Barrer Transacciones de la Cara
'
'       Do While Not Mrstranspend.EOF
'
'          If GIntPermiteStkNegativo = 0 Then
'             ' No se permite Stock Negativo hay que verificar el Stock del Producto
'             ' If Stock - (MrsTransPend!galones / 1000) < 0 Then
'             ' End If
'          End If
'          ' La transacción leída tiene que Buscar si existe en los temporales
'          ' Alguna Venta con quien enlazarse (obtener correlativo)
'          ' Si no hay ninguna simplemente se emite como ticket Boleta
'          ' y se puede insertar directamente en el temporal
'          ' y no necesita correlativo
'
'          ' Los Datos que me devuelve esta funcion (TMP_OP_SALES)me permite
'          ' cargar datos para enviarlos a la funcion CargarValoresTran
'
'          Set MrsTransPendTemp = MobjVentaPlaya.ListarTransacPendientesTemp(MrsDispensador!side)
'          If Not MrsTransPendTemp.EOF Then
'             ' Lo encontró !!!!!     , hay que insertarlo
'             ' Estos Datos son Obtenidos del TMP_OP_SALES
'             ' Lo enlazo con la cabecera
'
'             LimpiarVariablesImpresion
'
'             MStrTipoPago = MrsTransPendTemp!TYPEPAYMENTID
'             MDblCorrelativo = MrsTransPendTemp!CORRNBR
'             If IsNull(MrsTransPendTemp!curyid) Or MrsTransPendTemp!curyid = Empty Then
'                MStrMonedaRelacionada = GStrMonedaCaja
'             Else
'                MStrMonedaRelacionada = MrsTransPendTemp!curyid
'             End If
'
'             MStrTipoCambio = MrsTransPendTemp!CURYTYPEID
'             MblnAfecto = MrsTransPendTemp!AFECTO
'
'             If IsNull(MrsTransPendTemp!custidss) Then
'               MStrCodigoCliente = Empty
'             Else
'               MStrCodigoCliente = MrsTransPendTemp!custidss
'             End If
'
'             If IsNull(MrsTransPendTemp!CUSTNAME) Then
'               MstrNomCliente = Empty
'             Else
'               MstrNomCliente = MrsTransPendTemp!CUSTNAME
'             End If
'             If IsNull(MrsTransPendTemp!TAXREGNBR) Then
'               MstrRUCCliente = Empty
'             Else
'               MstrRUCCliente = MrsTransPendTemp!TAXREGNBR
'             End If
'             If IsNull(MrsTransPendTemp!ADDRESS) Then
'                MsrtDireccion = Empty
'             Else
'                MsrtDireccion = MrsTransPendTemp!ADDRESS
'             End If
'
'             If CargarValoresTran(MrsDispensador!side) = True Then
'                GrabarDatosenDetalleTempo
'                CalcularTotales ' Porque hay un nuevo registro
'
'                'Hay que clonar el Recordset del Temporal para Mandarlo al imprimir
'
'                Set lrsimprimirclone = MobjVentaPlaya.ObtenerDatosTemporalparaImpresion(MDblCorrelativo).Clone
'
'                If MStrTipoPago = GC_VALESCRED Or MStrTipoPago = GC_CONTADOADELANTO Then
'                   Set lrsimprimirVales = MobjVentaPlaya.ObtenerValesdeTemp(MDblCorrelativo).Clone
'                Else
'                   Set lrsimprimirVales = Nothing
'                End If
'
'                'Fin de Clonación de Recordset
'
'                'Hay que Obtener el Vendedor de esa cara
'
'                    Set MrsDatosVendedor = MobjVentaPlaya.ObtenerVendedordeCara(MrsDispensador!side)
'
'                    'Cargar Variables Vendedor
'                     If Not MrsDatosVendedor.EOF Then
'                        If Not IsNull(MrsDatosVendedor!SALESPERID) Then
'                          MstrVendedordecara = MrsDatosVendedor!SALESPERID
'                          MstrVendedorDescr = MrsDatosVendedor!salespername
'                        Else
'                          MsgBox "No existe Vendedor configurado para la cara " & Trim(MrsDispensador!side), vbDefaultButton1 + vbExclamation, "Advertencia"
'                          Lstmensajes.AddItem "No existe Vendedor configurado para la cara" & Trim(MrsDispensador!side) & ", Venta Automática fue Detenida "
'                          Timer1.Enabled = False
'                          Exit Sub
'                        End If
'
'                        If Not IsNull(MrsDatosVendedor!USERID) Then
'                           MstrUsuariodecara = MrsDatosVendedor!USERID
'                        Else
'                           MsgBox "No existe Usuario configurado para la cara " & Trim(MrsDispensador!side), vbDefaultButton1 + vbExclamation, "Advertencia"
'                           Lstmensajes.AddItem "No existe Vendedor configurado para la cara" & Trim(MrsDispensador!side)
'                           Timer1.Enabled = False
'                           Exit Sub
'                        End If
'                      Else
'                         MsgBox "No existe Vendedor configurado para la cara " & Trim(MrsDispensador!side), vbDefaultButton1 + vbExclamation, "Advertencia"
'                         lstmensajesvisibles.AddItem "No existe Vendedor configurado para la cara" & Trim(MrsDispensador!side) & ", Venta Automática fue Detenida "
'                         Timer1.Enabled = False
'                         Exit Sub
'                      End If
'                    Set MrsDatosVendedor = Nothing
'
'                  'Fin de Obtener el Vendedor de esa Cara
'
'
'                ' Parte que se ha Agregado para Incluir dentro del store de Emitir
'                ' el proceso de Grabdop en op_tran
'
'                'Erase MDatosTran
'
'                MDatosTran(1, 1) = MStrNumero
'                MDatosTran(1, 2) = Trim(Str(MDblSoles))
'                MDatosTran(1, 3) = MStrProductoTran
'                MDatosTran(1, 4) = Trim(Str(MDblPrecioTran))
'                MDatosTran(1, 5) = Trim(Str(MdblGalones))
'                MDatosTran(1, 6) = MStrCara
'                MDatosTran(1, 7) = MStrFecha
'                MDatosTran(1, 8) = MStrHora
'                MDatosTran(1, 9) = MStrTurno
'                MDatosTran(1, 10) = "CANCEL"
'
'
'                Set MrsEmision = EmitirDocumento(Trim(MrsDispensador!side), MStrNumero, 1, 1, 0, "", "", MdblTotalBase, MdblTotalExt, MDblIGVBase, MDblIGVExt, _
'                                                 MDblSubAfectoBase, MDblSubAfectoExt, MDblNoAfectoBase, MDblNoAfectoExt, _
'                                                 "", "", "", "", "", 0, GstrPuntodeVenta, 0, "", "", "", MstrVendedordecara, MstrUsuariodecara, "", MDatosTran)
'
'                ' Fin de Parte que Actualiza Trans
'
'                If Trim(MrsEmision!STATUSSTOCK) = "" And Trim(MrsEmision!numerodocumento) <> Empty And Trim(MrsEmision!TOMAINVENTARIO) = "" Then
'                    ' Parte que Actualiza los Trans
'
'                        StrNumeroDocumento = MrsEmision!numerodocumento
'                        StrSql = " Update TRAN" & Trim(MrsDispensador!side) & " set Estado='CANCEL',DOCUMENTO=" & CDbl(StrNumeroDocumento) & "" & _
'                                 " Where Numero='" & MStrNumero & "'"
'
'                        Mcmd.CommandText = StrSql
'                        Mcmd.Execute
'
'                        'GrabarError (" Venta Enlazada ,Se Actualizó el Tran" & Trim(MrsDispensador!side) & " la transacción :" & MStrNumero & " Documento : " & StrNumeroDocumento)
'
'                        ' Grabar en el Tran de SQL
'
'                        'MobjVentaPlaya.GrabarenTranSql MStrNumero, Trim(Str(MDblSoles)), MStrProductoTran, Trim(Str(MDblPrecioTran)), Trim(Str(MdblGalones)), _
'                                                       MStrCara, MStrFecha, MStrHora, MStrTurno, "CANCEL", CDbl(StrNumeroDocumento)
'
'
'                        'GrabarError " Venta Enlazada ,Se Actualizó en Sql la transacción :" & MStrNumero & " Documento : " & StrNumeroDocumento & " Cara:" & MStrCara & " Turno : " & MStrTurno & " el producto :" & MStrProductoTran & " galonaje : " & Str(MdblGalones)
'
'
'                    ' Fin de Parte qeu Actualiza Trans
'
'                    lstmensajesvisibles.Clear
'                    Lstmensajes.AddItem MStrCara & "  " & MStrNumero
'
'                    Imprimir_Ticket MrsEmision!numerodocumento, GintAnchoLineas, MstrNomCliente, MstrRUCCliente, MsrtDireccion, MStrMonedaRelacionada, MDblCorrelativo, MrsEmision!SUBTOTALBASE, _
'                                    MrsEmision!SUBTOTALEXT, MrsEmision!TOTALIGVBASE, MrsEmision!TOTALIGVEXT, MrsEmision!TOTALBASE, MrsEmision!TOTALEXT, MrsEmision!TOTALNOAFECTOBASE, _
'                                    MrsEmision!TOTALNOAFECTOEXT, lrsimprimirclone, MrsEmision!TipoPago, MrsEmision!MonedaTarjeta, MrsEmision!Turno, Trim(MrsDispensador!side), MstrVendedorDescr, _
'                                    MrsEmision!DESCTARJETA, MrsEmision!NumeroTarjeta, lrsimprimirVales, MrsEmision!PLACA, 0, MrsEmision!FechaServidor
'                    Set lrsimprimirclone = Nothing
'                    Set lrsimprimirVales = Nothing
'                Else
'                   lstmensajesvisibles.Clear
'                   If Trim(MrsEmision!STATUSSTOCK) = "SNEGATIVO" Then
'                      lstmensajesvisibles.AddItem "Cara " & MStrCara & ": Stock Negativo del Producto " & MStrProductoSKU
'                   End If
'                   If Trim(MrsEmision!TOMAINVENTARIO) = "IFISICO" Then
'                      lstmensajesvisibles.AddItem "Cara " & MStrCara & ": Toma de Inventario Activada "
'                   End If
'                End If
'             Else
'                'Hay que Buscar Registros en Blanco en la Cara que se está leyendo
'                'MobjVentaPlaya.EliminarRegistrosenBlanco Trim(MrsDispensador!side)
'
'                If MintInventFisico = 1 Then
'                   lstmensajesvisibles.Clear
'                   lstmensajesvisibles.AddItem "Toma de Inventario Activada para Producto " & MStrProductoSKU
'                Else
'                   Lstmensajes.AddItem "Registro en Blanco en Cara " & Trim(MrsDispensador!side)
'                End If
'
'             End If
'          Else
'             'Si es que no se encontro ninguna transaccion pendiente se imprime como
'             'Ticket Boleta con su propio correlativo
'             'Busco Directamente en el Detalle
'
'              LimpiarVariablesImpresion
'
'              MDblCorrelativo = MobjCorrelativo.ObtenerCorrelativo(GCUSERID)
'              MStrMonedaRelacionada = GStrMonedaCaja
'              MblnAfecto = True
'              MStrCodigoCliente = Empty
'
'
'              If CargarValoresTran(MrsDispensador!side) = True Then
'                 GrabarDatosenDetalleTempo
'                 ' No se necesita recalcular porque es un solo producto ,
'                 ' pero si se tiene que verificar que sea afecto
'                 ' Si no es afecto entonces se llenará el campo no afecto
'                 ' en caso sea mayor a cero es un solo registro afecto
'                 ' el sum (se realiza en el store)
'                 If MdblImpuestoIgv = 0 Then
'                    CalcularTotales ' se tiene que enviar los totales
'                                    ' como parámetros
'                 End If
'
'                'Hay que clonar el Recordset del Temporal para Mandarlo al imprimir
'
'                 Set lrsimprimirclone = MobjVentaPlaya.ObtenerDatosTemporalparaImpresion(MDblCorrelativo).Clone
'
'                'Fin de Clonación de Recordset
'
'                'Hay que Obtener el Vendedor de esa cara
'
'                    Set MrsDatosVendedor = MobjVentaPlaya.ObtenerVendedordeCara(MrsDispensador!side)
'
'                    'Cargar Variables Vendedor
'
'                    If Not MrsDatosVendedor.EOF Then
'                        If Not IsNull(MrsDatosVendedor!SALESPERID) Then
'                          MstrVendedordecara = MrsDatosVendedor!SALESPERID
'                          MstrVendedorDescr = MrsDatosVendedor!salespername
'                        Else
'                          MsgBox "No existe Vendedor configurado para la cara " & Trim(MrsDispensador!side), vbDefaultButton1 + vbExclamation, "Advertencia"
'                          Lstmensajes.AddItem "No existe Vendedor configurado para la cara" & Trim(MrsDispensador!side)
'                          Timer1.Enabled = False
'                          Exit Sub
'                        End If
'
'                        If Not IsNull(MrsDatosVendedor!USERID) Then
'                           MstrUsuariodecara = MrsDatosVendedor!USERID
'                        Else
'                           MsgBox "No existe Usuario configurado para la cara " & Trim(MrsDispensador!side), vbDefaultButton1 + vbExclamation, "Advertencia"
'                           Lstmensajes.AddItem "No existe Vendedor configurado para la cara" & Trim(MrsDispensador!side)
'                           Timer1.Enabled = False
'                           Exit Sub
'                        End If
'                    Else
'                        MsgBox "No existe Vendedor configurado para la cara " & Trim(MrsDispensador!side), vbDefaultButton1 + vbExclamation, "Advertencia"
'                        lstmensajesvisibles.AddItem "No existe Vendedor configurado para la cara" & Trim(MrsDispensador!side) & ", Venta Automática fue Detenida "
'                        Timer1.Enabled = False
'                        Exit Sub
'                    End If
'                    Set MrsDatosVendedor = Nothing
'
'                'Fin de Obtener el Vendedor de esa Cara
'
'                 MdblMontoTipoCambio = MobjVentasGeneral.ObtenerMontoTipodeCambio(GstrCodMonedaBase, GstrMonedaExtranjera, GDatFechaProcesoVentas, GstrTipoCambioVentas)
'
'
'                'Erase MDatosTran
'
'                MDatosTran(1, 1) = MStrNumero
'                MDatosTran(1, 2) = Trim(Str(MDblSoles))
'                MDatosTran(1, 3) = MStrProductoTran
'                MDatosTran(1, 4) = Trim(Str(MDblPrecioTran))
'                MDatosTran(1, 5) = Trim(Str(MdblGalones))
'                MDatosTran(1, 6) = MStrCara
'                MDatosTran(1, 7) = MStrFecha
'                MDatosTran(1, 8) = MStrHora
'                MDatosTran(1, 9) = MStrTurno
'                MDatosTran(1, 10) = "CANCEL"
'
'
'
'
'                Set MrsEmision = EmitirDocumento(Trim(MrsDispensador!side), MStrNumero, 0, 0, 1, GC_PAGOEFECTIVO, GStrMonedaCaja, MdblTotalBase, MdblTotalExt, MDblIGVBase, MDblIGVExt, _
'                                                       MDblSubAfectoBase, MDblSubAfectoExt, MDblNoAfectoBase, MDblNoAfectoExt, "", "", "", "", GstrTipoCambioVentas, MdblMontoTipoCambio, _
'                                                       GstrPuntodeVenta, 0, "", "", "", MstrVendedordecara, MstrUsuariodecara, "", MDatosTran)
'
'
'                 If Trim(MrsEmision!STATUSSTOCK) = "" And Trim(MrsEmision!numerodocumento) <> Empty And Trim(MrsEmision!TOMAINVENTARIO) = "" Then
'
'                    ' Parte que Actualiza los Trans
'
'                        StrNumeroDocumento = MrsEmision!numerodocumento
'                        StrSql = " Update TRAN" & Trim(MrsDispensador!side) & " set Estado='CANCEL',DOCUMENTO=" & CDbl(StrNumeroDocumento) & "" & _
'                                 " Where Numero='" & MStrNumero & "'"
'
'                        Mcmd.CommandText = StrSql
'                        Mcmd.Execute
'
'                        'GrabarError (" Boleta Simple ,Se Actualizó el Tran" & Trim(MrsDispensador!side) & " la transacción :" & MStrNumero & " Documento : " & StrNumeroDocumento)
'
'                        'MobjVentaPlaya.GrabarenTranSql MStrNumero, Trim(Str(MDblSoles)), MStrProductoTran, Trim(Str(MDblPrecioTran)), Trim(Str(MdblGalones)), _
'                                                       MStrCara, MStrFecha, MStrHora, MStrTurno, "CANCEL", CDbl(StrNumeroDocumento)
'
'
'                        'GrabarError " Venta Enlazada ,Se Actualizó en Sql la transacción :" & MStrNumero & " Documento : " & StrNumeroDocumento & " Cara:" & MStrCara & " Turno : " & MStrTurno & " el producto :" & MStrProductoTran & " galonaje : " & Str(MdblGalones)
'                    ' Fin de Parte que Actualiza Trans
'
'                    lstmensajesvisibles.Clear
'                    Lstmensajes.AddItem MStrCara & " " & MStrNumero
'
'                    Imprimir_Ticket MrsEmision!numerodocumento, GintAnchoLineas, MstrNomCliente, MstrRUCCliente, MsrtDireccion, MStrMonedaRelacionada, MDblCorrelativo, MrsEmision!SUBTOTALBASE, _
'                                    MrsEmision!SUBTOTALEXT, MrsEmision!TOTALIGVBASE, MrsEmision!TOTALIGVEXT, MrsEmision!TOTALBASE, MrsEmision!TOTALEXT, MrsEmision!TOTALNOAFECTOBASE, _
'                                    MrsEmision!TOTALNOAFECTOEXT, lrsimprimirclone, MrsEmision!TipoPago, MrsEmision!MonedaTarjeta, MrsEmision!Turno, Trim(MrsDispensador!side), MstrVendedorDescr, _
'                                    MrsEmision!DESCTARJETA, MrsEmision!NumeroTarjeta, Nothing, MrsEmision!PLACA, 0, MrsEmision!FechaServidor
'
'                    Set lrsimprimirclone = Nothing
'                 Else
'                   If Trim(MrsEmision!STATUSSTOCK) = "SNEGATIVO" Then
'                      lstmensajesvisibles.AddItem "Cara " & MStrCara & ": Stock Negativo del Producto " & MStrProductoSKU
'                   End If
'                   If Trim(MrsEmision!TOMAINVENTARIO) = "IFISICO" Then
'                      lstmensajesvisibles.AddItem "Cara " & MStrCara & ": Toma de Inventario Activada "
'                   End If
'                 End If
'              Else
'                ' Eliminar Registro en Blanco
'                 If MintInventFisico = 1 Then
'                    lstmensajesvisibles.Clear
'                    lstmensajesvisibles.AddItem "Toma de Inventario Activada para Producto " & MStrProductoSKU
'                 Else
'                    Lstmensajes.AddItem "Registro en Blanco en Cara " & Trim(MrsDispensador!side)
'                 End If
'
'              End If
'           End If
'          Mrstranspend.MoveNext
'          Set MrsTransPendTemp = Nothing
'       Loop
'
'     End If
'     Mrstranspend.Close
'     'Set Mrstranspend = Nothing
'     MrsDispensador.MoveNext
'   Loop
'
'   Timer1.Enabled = True
'
'Exit Sub
'errhandler:
'Dim Lerror As Double
'
'   Lerror = Err.Number
'   Lstmensajes.AddItem Err.Description
'   GrabarError (Err.Description)
'
'
'   '******************************************************************************
'       ' Validacion Pusta para Corregir Archivo Tran Dañado
'
'        If Err.Number = -2147217900 Then
'
'            Dim fsoTemp
'            Set fsoTemp = CreateObject("Scripting.FileSystemObject")
'            '  fsoTemp.deletefile GstrRutaTran & "Tran" & Trim(MrsDispensador!side) & ".dbf"
'
'
'            Set Mcon = Nothing
'            Set Mcon = New ADODB.Connection
'
'            Set Mrstranspend = Nothing
'
'            fsoTemp.copyfile Trim(GstrRutaTranError) & "Tran" & Trim(MrsDispensador!side) & ".dbf", GstrRutaTran
'
'            MsgBox "El Sistema se Cerrará  ," & Chr(13) & _
'                   "Debe Ingresar Nuevamente al Sistema  ", vbDefaultButton1 + vbInformation, "Reconstruccion de Archivos"
'            End
'
'            If GINTCONECTAR = 1 Then
'               Mcon.ConnectionString = Trim(GSTRCADENACONECTA)
'            Else
'               If GINTCONECTAR = 0 Then
'                 Mcon.Provider = "MSDASQL"
'                 Mcon.ConnectionString = Trim(GSTRCADENACONECTA)
'               End If
'            End If
'
'            Set fsoTemp = Nothing
'            Mcon.Open
'
'            End
'         End If
'
'      ' Fin de Validacion Pusta para Corregir Archivo Tran Dañado
'   '******************************************************************************
'
'   Set Mrstranspend = Nothing
'
'   ' Parte Agregada recientemente
'   Set Mrstranspend = New ADODB.Recordset
'
'   MobjVentaPlaya.LimpiarTemporalCombustible GstrPuntodeVenta
'   ' Hay que limpiar los Temporales aquellos que tengan algun valor en nbrtransacfuel
'   ' y aquellos que tiene el nbrtransacfuel = null y no tienen caBecera
'   ' Al momento de ingresar nuevamente
'
'   If Lerror = 482 Then
'      lstmensajesvisibles.AddItem "Error de Impresora, Venta fue Detenida,Se debe volver a Ingresar al Sistema"
'      Timer1.Enabled = False
'      Exit Sub
'   Else
'      Timer1.Enabled = True
'   End If
'
'   If Lerror = -2147217865 Then
'       Timer1.Enabled = False
'       Lstmensajes.AddItem "Intentando Reconectar"
'       GrabarError ("Intentando Reconectar")
'
'       Set Mcon = New ADODB.Connection
'       If GINTCONECTAR = 1 Then
'         Mcon.ConnectionString = Trim(GSTRCADENACONECTA)
'       Else
'         If GINTCONECTAR = 0 Then
'           Mcon.Provider = "MSDASQL"
'           Mcon.ConnectionString = Trim(GSTRCADENACONECTA)
'         End If
'       End If
'
'       Mcon.Open
'
'       Set Mrstranspend = New ADODB.Recordset
'
'       Set Mcmd = New ADODB.Command
'       Mcmd.ActiveConnection = Mcon
'
'       Timer1.Enabled = True
'   End If

    'Presenta la hora del sistema
    lbltimer.Caption = Time

End Sub

Public Sub GrabarError(StrCadena As String)
  txtfile.WriteLINE (StrCadena & " : " & Date & " " & Time)
End Sub

Public Sub LimpiarVariablesImpresion()
  
  MStrMonedaRelacionada = GStrMonedaCaja
  MStrTipoCambio = Empty
  MblnAfecto = True
  MStrCodigoCliente = Empty
  MstrNomCliente = Empty
  MstrRUCCliente = Empty
  MsrtDireccion = Empty
  
End Sub

Public Sub GrabarDatosenDetalleTempo()
    
    Dim MDblPrecioMonBase As Double
    Dim MDblPrecioMonExtranjera As Double
            
    Dim LdblImpBase As Double
    Dim LdblImpExt As Double
    
    Dim LDblSubTotalBase As Double
    Dim LDblSubTotalExt As Double
    
    Dim LdblTotalBase As Double
    Dim LdblTotalExt As Double
                                    
   ' El precio está con IGV y por defecto está a la moneda del setup
   ' Hay que tener en cuenta como se calculan los subtotales cuando se ingresa el Total
   ' Si no encuentra tipo de cambio para el cliente asume el de Ventas
                                                                                                                                                                                                                                                            
                                  
    LdblTotalBase = GFormatodeNumero(MDblSolesTita, GintDecResultado)
    LdblTotalExt = GFormatodeNumero(MobjVentasGeneral.ConvertirMoneda(MDblSolesTita, GstrCodMonedaBase, GstrMonedaExtranjera, _
                                    GDatFechaProcesoVentas, MStrTipoCambio, GintDecResultado), GintDecResultado)
      
    LDblSubTotalBase = GFormatodeNumero(LdblTotalBase / (1 + (MdblImpuestoIgv / 100)), GintDecResultado)
    LDblSubTotalExt = GFormatodeNumero(LdblTotalExt / (1 + (MdblImpuestoIgv / 100)), GintDecResultado)
        
    ' Si el cliente es Afecto
    
    If MblnAfecto = True Then
             
       ' Cálculos de los Impuestos en Moneda Base y Extranjera
             
       If MdblImpuestoIgv = 0 Then
          LdblImpBase = 0
          LdblImpExt = 0
       Else
          LdblImpBase = LdblTotalBase - LDblSubTotalBase
          LdblImpExt = LdblTotalExt - LDblSubTotalExt
       End If
              
    Else
       ' Si el Cliente es No afecto , entonces
       ' Ningun producto es afecto
       ' Si algun producto viene con Igv entonces lo grabamos como 0
       '*********************************************************
       ' NADIE ME DA RAZON / NO SE TIENE CLARO
       '*********************************************************
        
        MdblImpuestoIgv = 0
        LdblImpBase = 0
        LdblImpExt = 0
       
    End If
    
                     
    ' Recordar Verificar si se está haciendo la toma de Inventario
                                                 
    MobjVentaPlaya.GrabarRegistroenDetalleTemporal MStrCara, MDblCorrelativo, 0, MStrProductoSKU, MStrMonedaRelacionada, _
                                                   0, 0, 0, MStrNumero, 0, 0, 0, 0, MdblImpuestoIgv, 0, LdblTotalBase, LdblTotalExt, _
                                                   LdblImpBase, LdblImpExt, MintInventariable, 0, MdblPrecioDatMonCaja, _
                                                   MdblPrecioMonCaja, MdblCostoBase, MdblCostoExt, MStrCodigoAlternativo, _
                                                   Mstrdescripcion, MdblGalones, GCUSERID, 0, 1, GstrPuntodeVenta, MStrUnidadMedida
                      
                          
End Sub

Public Sub CalcularTotales()
 
 Dim Lrstotales As ADODB.Recordset
 Dim BlnExisteunNoAfecto As Boolean
 Dim BlnTodosLosImpIguales As Boolean
 
 Set Lrstotales = MobjVentaPlaya.ObtenerDatosTemporal(MDblCorrelativo, GintDecResultado)
  
  MdblImpuesto = 0
  MdblTotalBase = 0
  MdblTotalExt = 0
  MDblIGVBase = 0
  MDblIGVExt = 0
  MDblSubAfectoBase = 0
  MDblSubAfectoExt = 0
  MDblNoAfectoBase = 0
  MDblNoAfectoExt = 0
  
  '***************************************************
  ' Parte que recalcula los Datos de los Resultados
  '***************************************************
  
 If Not Lrstotales.EOF Then
   Lrstotales.MoveFirst
   
   'Capturo el Primer Impuesto de la Grilla
   MdblImpuesto = Lrstotales.Fields("%_Imp")
   'Inicializo la variable si es falso todos son Afectos
   BlnExisteunNoAfecto = False
   'Inicializo la variable Por defecto todos los impuestos son iguales
   BlnTodosLosImpIguales = True
   
   Do While Not Lrstotales.EOF
     If Lrstotales!AFECTO = 1 Then
       'Comparo los impuestos para revisar si son iguales
       If Lrstotales.Fields("%_Imp") <> MdblImpuesto Then
          BlnTodosLosImpIguales = False
       End If
       
       MDblSubAfectoBase = MDblSubAfectoBase + Lrstotales!SUBTOTALPEN
       MDblSubAfectoExt = MDblSubAfectoExt + Lrstotales!SUBTOTALUSD
     Else
       MDblNoAfectoBase = MDblNoAfectoBase + Lrstotales!SUBTOTALPEN
       MDblNoAfectoExt = MDblNoAfectoExt + Lrstotales!SUBTOTALUSD
       BlnExisteunNoAfecto = True
     End If
     
     MDblIGVBase = MDblIGVBase + Lrstotales!TAXPEN
     MDblIGVExt = MDblIGVExt + Lrstotales!TAXUSD
     MdblTotalBase = MdblTotalBase + Lrstotales!TOTALBASE
     MdblTotalExt = MdblTotalExt + Lrstotales!TOTALEXTR
     Lrstotales.MoveNext
   Loop
      
   If BlnExisteunNoAfecto = False Then ' Es decir Todos son Afectos
      ' Ademas se tiene que verificar que que todos los impuestos son iguales
      If BlnTodosLosImpIguales = True Then
        MDblSubAfectoBase = GFormatodeNumero(MdblTotalBase / (1 + (MdblImpuesto / 100)), GintDecResultado)
        MDblSubAfectoExt = GFormatodeNumero(MdblTotalExt / (1 + (MdblImpuesto / 100)), GintDecResultado)
        MDblIGVBase = MdblTotalBase - MDblSubAfectoBase
        MDblIGVExt = MdblTotalExt - MDblSubAfectoExt
      End If
   End If
   
  End If
  
  Set Lrstotales = Nothing
  
End Sub

Public Function EmitirDocumento(strCara As String, StrNumero As String, IntRecibeTotales As Integer, IntEnlazado As Integer, InContadoCredito As Integer, _
                           StrTipodePago As String, StrMoneda As String, DblTotalBase As Double, DblTotalExt As Double, _
                           DblIGVBase As Double, DblIgvExt As Double, DblSubAfectoBase As Double, DblSubAfectoExt As Double, _
                           DblNoAfectoBase As Double, DblNoAfectoExt As Double, StrCodigoCliente As String, _
                           strRUC As String, StrNombre As String, StrPlaca As String, _
                           StrTipodeCambio As String, DblMontoTipoCambio As Double, StrPuntoVenta As String, _
                           DblKilometraje As Double, StrDireccion As String, StrCodigoTarjeta As String, StrNumeroTarjeta As String, _
                           strCodVendedor As String, StrCodUsuario As String, StrDescripcionTarjeta As String, VarArregloTran As Variant) As ADODB.Recordset


 Set EmitirDocumento = MobjVentaPlaya.EmitirDocumentodeVenta(strCara, StrNumero, IntRecibeTotales, IntEnlazado, InContadoCredito, _
                                      MDblCorrelativo, StrTipodePago, StrMoneda, strCodVendedor, StrCodUsuario, _
                                      "", "", DblTotalBase, DblTotalExt, DblSubAfectoBase, DblSubAfectoExt, _
                                      DblIGVBase, DblIgvExt, 0, 0, DblNoAfectoBase, DblNoAfectoExt, 0, 0, 0, 0, 0, 0, 0, 0, _
                                      StrCodigoCliente, strRUC, StrNombre, StrPlaca, StrTipodeCambio, DblMontoTipoCambio, _
                                      0, 0, "", 0, StrPuntoVenta, "", DblKilometraje, StrDireccion, StrCodigoTarjeta, StrNumeroTarjeta, "", StrDescripcionTarjeta, VarArregloTran)
   
   
  MdblImpuesto = 0
  MdblTotalBase = 0
  MdblTotalExt = 0
  MDblIGVBase = 0
  MDblIGVExt = 0
  MDblSubAfectoBase = 0
  MDblSubAfectoExt = 0
  MDblNoAfectoBase = 0
  MDblNoAfectoExt = 0
   
     
End Function
    
Public Sub Imprimir_TicketBK(StrNumerodeTicket As String, IntAnchoTicket As Integer, StrRazonSocial As String, _
                             strRUC As String, StrDireccion As String, StrCodMoneda As String, DblCorrelativo As Double, _
                             DblValorVentaBase As Double, DblValorVentaExt As Double, DblIGVBase As Double, _
                             DblIgvExt As Double, DblTotalBase As Double, DblTotalExt As Double, _
                             DblNoAfectoBase As Double, DblNoAfectoExt As Double, ByVal RsDetalleTemporal As ADODB.Recordset, _
                             strTIPOPAGO As String, StrCodTarjeta As String, IntTurno As Integer, strCara As String, strCajero As String, _
                             Optional StrNombreTrajeta As String, Optional StrNumeroTarjeta As String, Optional DBLBonus As Double, Optional StrPlaca As String)
                           
                           
' Los Datos Generales se Debe cargar al Inicio de las Pantallas para no estar Repreguntando
' a cada momento
  Dim LHead1, LHead2, LHead3, LHead4, LHead5, LHead6, LHead7, LHead8, LHead9, LHead10 As String
  Dim LFoot1, LFoot2, LFoot3, LFoot4, LFoot5, LFoot6, LFoot7, LFoot8, LFoot9, LFoot10 As String
  
' Imprimir la Cabecera
  
  LHead1 = Alineacion("C", IntAnchoTicket, Len(Trim(GHEAD1)), Trim(GHEAD1))
  LHead2 = Alineacion("C", IntAnchoTicket, Len(Trim(GHEAD2)), Trim(GHEAD2))
  LHead3 = Alineacion("C", IntAnchoTicket, Len(Trim(GHEAD3)), Trim(GHEAD3))
  LHead4 = Alineacion("C", IntAnchoTicket, Len(Trim(GHEAD4)), Trim(GHEAD4))
  LHead5 = Alineacion("C", IntAnchoTicket, Len(Trim(GHEAD5)), Trim(GHEAD5))
  LHead6 = Alineacion("C", IntAnchoTicket, Len(Trim(GHEAD6)), Trim(GHEAD6))
  LHead7 = Alineacion("C", IntAnchoTicket, Len(Trim(GHEAD7)), Trim(GHEAD7))
  LHead8 = Alineacion("C", IntAnchoTicket, Len(Trim(GHEAD8)), Trim(GHEAD8))
  LHead9 = Alineacion("C", IntAnchoTicket, Len(Trim(GHEAD9)), Trim(GHEAD9))
  LHead10 = Alineacion("C", IntAnchoTicket, Len(Trim(GHEAD10)), Trim(GHEAD10))
  
   
  Printer.Print ""  ' El Primer Print no es Tomado en Cuenta
  Printer.Print ""  ' A partir del Primero se toman en cuenta
  Printer.Print ""
  Printer.Print ""
  
  
  
  If Trim(LHead1) <> Empty Then
    Printer.Print LHead1
  End If
  If Trim(LHead2) <> Empty Then
    Printer.Print LHead2
  End If
  If Trim(LHead3) <> Empty Then
    Printer.Print LHead3
  End If
  If Trim(LHead4) <> Empty Then
    Printer.Print LHead4
  End If
  If Trim(LHead5) <> Empty Then
    Printer.Print LHead5
  End If
  If Trim(LHead6) <> Empty Then
    Printer.Print LHead6
  End If
  If Trim(LHead7) <> Empty Then
    Printer.Print LHead7
  End If
  If Trim(LHead8) <> Empty Then
    Printer.Print LHead8
  End If
  If Trim(LHead9) <> Empty Then
    Printer.Print LHead9
  End If
  If Trim(LHead10) <> Empty Then
    Printer.Print LHead10
  End If
 
 ' Imprimir la Linea
     
  Dim LLinea1 As String
  
  LLinea1 = Alineacion("C", IntAnchoTicket, Len(Trim(GstrLinea1)), Trim(GstrLinea1))
  
  If Trim(LLinea1) <> Empty Then
    Printer.Print LLinea1
  End If
  
  ' Imprimir Numero de Máquina Registradora
  
  Dim strMaquinaReg As String
  strMaquinaReg = Alineacion("I", IntAnchoTicket - 10, Len("Maq.Regist.No: " & GStrMaquinaReg), "Maq.Regist.No: " & GStrMaquinaReg) & Date
  Printer.Print strMaquinaReg
 
  ' Imprimir el Número del Ticket
 
  Dim StrNumeroTicket As String
  StrNumeroTicket = Alineacion("I", IntAnchoTicket - 8, Len("Ticket No: " & FormatoTicket(StrNumerodeTicket)), "Ticket No: " & FormatoTicket(StrNumerodeTicket)) & Format(Time, "HH:mm:ss")
  Printer.Print StrNumeroTicket
  
  ' Imprimir los Datos del Cliente
  
  If Trim(StrRazonSocial) <> Empty Then
    Dim LStrRazonSocial As String
  
    LStrRazonSocial = Alineacion("I", IntAnchoTicket, Len("Raz.Soc:" & StrRazonSocial), "NOMBRE :" & StrRazonSocial)
    Printer.Print LStrRazonSocial
  End If
  
  If Trim(strRUC) <> Empty Then
    Dim LStrRUC As String
     LStrRUC = Alineacion("I", IntAnchoTicket, Len("RUC    :" & strRUC), "RUC    :" & strRUC)
     Printer.Print LStrRUC
  End If
       
  If Trim(StrDireccion) <> Empty Then
    Dim LstrDireccion As String
    LstrDireccion = Alineacion("I", IntAnchoTicket, Len("DIRECC.:" & StrDireccion), "DIRECC :" & StrDireccion)
    Printer.Print LstrDireccion
  End If
  
  ' Imprimir Seguna Línea
  
  Dim LLinea2 As String
  
  LLinea2 = Alineacion("C", IntAnchoTicket, Len(Trim(GstrLinea2)), Trim(GstrLinea2))
  
  If Trim(LLinea2) <> Empty Then
    Printer.Print LLinea2
  End If
  
  ' Imprimir el Detalle

  If Not RsDetalleTemporal.EOF Then
  
     Dim LstrProducto As String
     Dim LstrDescripcion As String
     
     RsDetalleTemporal.MoveFirst
     
     Do While Not RsDetalleTemporal.EOF
     
       ' El precio del Producto se Muestra a la Moneda Levantada (MonedaRelacionada)
       ' Y ase Graba en la Moneda Solicitada
       
       LstrProducto = Alineacion("I", 10, Len(Trim(RsDetalleTemporal!INVTIDSKU)), Trim(RsDetalleTemporal!INVTIDSKU)) & _
                      Alineacion("I", 5, Len(Trim("UND")), Trim("UND")) & _
                      Alineacion("I", 11, Len(GFormatodeNumero(RsDetalleTemporal!QTY, GintDecStock) & "x"), GFormatodeNumero(RsDetalleTemporal!QTY, GintDecStock) & "x") & _
                      Alineacion("I", IntAnchoTicket - 10 - 5 - 11, Len(GFormatodeNumero(RsDetalleTemporal!SLSPRICESALE, GintDecPrecio)), GFormatodeNumero(RsDetalleTemporal!SLSPRICESALE, GintDecPrecio))
                      
       Printer.Print LstrProducto
           
       If StrCodMoneda = GstrCodMonedaBase Then
          LstrDescripcion = Alineacion("I", 30, Len(Trim(RsDetalleTemporal!DESCRINVENTORY)), Trim(RsDetalleTemporal!DESCRINVENTORY)) & _
                            Alineacion("D", IntAnchoTicket - 30, Len(GFormatodeNumero(RsDetalleTemporal!TOTALPEN, GintDecPrecio)), GFormatodeNumero(RsDetalleTemporal!TOTALPEN, GintDecPrecio))
       Else
          LstrDescripcion = Alineacion("I", 30, Len(Trim(RsDetalleTemporal!DESCRINVENTORY)), Trim(RsDetalleTemporal!DESCRINVENTORY)) & _
                            Alineacion("D", IntAnchoTicket - 30, Len(GFormatodeNumero(RsDetalleTemporal!TOTALUSD, GintDecPrecio)), GFormatodeNumero(RsDetalleTemporal!TOTALUSD, GintDecPrecio))
       End If
        
       Printer.Print LstrDescripcion
        
        
       RsDetalleTemporal.MoveNext
     Loop
     
  End If
  
  ' Imprimir la Línea 3
  
  Dim LLinea3 As String
  
  LLinea3 = Alineacion("C", IntAnchoTicket, Len(Trim(GstrLinea3)), Trim(GstrLinea3))
  
  If Trim(LLinea3) <> Empty Then
    Printer.Print LLinea3
  End If
  
  ' Imprimir Totales
    
  If Trim(strRUC) <> Empty Then
        Dim StrValoventa As String
        StrValoventa = Alineacion("I", 17, Len("**** Valor Venta "), "**** Valor Venta ")
        
        If StrCodMoneda = GstrCodMonedaBase Then
           StrValoventa = StrValoventa & Alineacion("I", 7, Len(GstrSimboloMonedaBase & " :"), GstrSimboloMonedaBase & " :")
           StrValoventa = StrValoventa & Alineacion("D", IntAnchoTicket - 17 - 7, Len(GFormatodeNumero(DblValorVentaBase, GintDecResultado)), GFormatodeNumero(DblValorVentaBase, GintDecResultado))
        Else
           StrValoventa = StrValoventa & Alineacion("I", 7, Len(GstrSimboloMonedaExt & " :"), GstrSimboloMonedaExt & " :")
           StrValoventa = StrValoventa & Alineacion("D", IntAnchoTicket - 17 - 7, Len(GFormatodeNumero(DblValorVentaExt, GintDecResultado)), GFormatodeNumero(DblValorVentaExt, GintDecResultado))
        End If
          
        Printer.Print StrValoventa
        
        If DblNoAfectoBase <> 0 Then
        
            Dim strNoAfecto As String
            strNoAfecto = Alineacion("I", 17, Len("**** No Afecto   "), "**** No Afecto   ")
            
            If StrCodMoneda = GstrCodMonedaBase Then
               strNoAfecto = strNoAfecto & Alineacion("I", 7, Len(GstrSimboloMonedaBase & " :"), GstrSimboloMonedaBase & " :")
               strNoAfecto = strNoAfecto & Alineacion("D", IntAnchoTicket - 17 - 7, Len(GFormatodeNumero(DblNoAfectoBase, GintDecResultado)), GFormatodeNumero(DblNoAfectoBase, GintDecResultado))
            Else
               strNoAfecto = strNoAfecto & Alineacion("I", 7, Len(GstrSimboloMonedaExt & " :"), GstrSimboloMonedaExt & " :")
               strNoAfecto = strNoAfecto & Alineacion("D", IntAnchoTicket - 17 - 7, Len(GFormatodeNumero(DblNoAfectoExt, GintDecResultado)), GFormatodeNumero(DblNoAfectoExt, GintDecResultado))
            End If
            
            Printer.Print strNoAfecto
            
        End If
           
          
        Dim StrImpuesto As String
        StrImpuesto = Alineacion("I", 17, Len("**** IGV         "), "**** IGV         ")
        
        If StrCodMoneda = GstrCodMonedaBase Then
           StrImpuesto = StrImpuesto & Alineacion("I", 7, Len(GstrSimboloMonedaBase & " :"), GstrSimboloMonedaBase & " :")
           StrImpuesto = StrImpuesto & Alineacion("D", IntAnchoTicket - 17 - 7, Len(GFormatodeNumero(DblIGVBase, GintDecResultado)), GFormatodeNumero(DblIGVBase, GintDecResultado))
        Else
           StrImpuesto = StrImpuesto & Alineacion("I", 7, Len(GstrSimboloMonedaExt & " :"), GstrSimboloMonedaExt & " :")
           StrImpuesto = StrImpuesto & Alineacion("D", IntAnchoTicket - 17 - 7, Len(GFormatodeNumero(DblIgvExt, GintDecResultado)), GFormatodeNumero(DblIgvExt, GintDecResultado))
        End If
        
        Printer.Print StrImpuesto
  End If
   
   
  Dim StrTotal As String
  StrTotal = Alineacion("I", 17, Len("**** TOTAL       "), "**** TOTAL       ")
  
  If StrCodMoneda = GstrCodMonedaBase Then
     StrTotal = StrTotal & Alineacion("I", 7, Len(GstrSimboloMonedaBase & " :"), GstrSimboloMonedaBase & " :")
     StrTotal = StrTotal & Alineacion("D", IntAnchoTicket - 17 - 7, Len(GFormatodeNumero(DblTotalBase, GintDecResultado)), GFormatodeNumero(DblTotalBase, GintDecResultado))
  Else
     StrTotal = StrTotal & Alineacion("I", 7, Len(GstrSimboloMonedaExt & " :"), GstrSimboloMonedaExt & " :")
     StrTotal = StrTotal & Alineacion("D", IntAnchoTicket - 17 - 7, Len(GFormatodeNumero(DblTotalExt, GintDecResultado)), GFormatodeNumero(DblTotalExt, GintDecResultado))
  End If
  
  Printer.Print StrTotal
  
  ' Parte que Imprimie el Tipo de Pago
          
  Dim StrTipoPagoImp As String
  If Trim(strTIPOPAGO) = GC_PAGOEFECTIVO Then
     StrTipoPagoImp = Alineacion("I", 17, Len("EFECTIVO         "), "EFECTIVO         ")
  End If
  If Trim(strTIPOPAGO) = GC_VALESCRED Then
     StrTipoPagoImp = Alineacion("I", 17, Len("CREDITO          "), "CREDITO          ")
  End If
  If Trim(strTIPOPAGO) = GC_TARJETACRED Then
     StrTipoPagoImp = Alineacion("I", 17, Len(StrNombreTrajeta), StrNombreTrajeta)
  End If
   
  If Trim(strTIPOPAGO) = GC_PAGOEFECTIVO Then
    If StrCodMoneda = GstrCodMonedaBase Then
       StrTipoPagoImp = StrTipoPagoImp & Alineacion("I", 7, Len(GstrSimboloMonedaBase & " :"), GstrSimboloMonedaBase & " :")
       StrTipoPagoImp = StrTipoPagoImp & Alineacion("D", IntAnchoTicket - 17 - 7, Len(GFormatodeNumero(DblTotalBase, GintDecResultado)), GFormatodeNumero(DblTotalBase, GintDecResultado))
    Else
       StrTipoPagoImp = StrTipoPagoImp & Alineacion("I", 7, Len(GstrSimboloMonedaExt & " :"), GstrSimboloMonedaExt & " :")
       StrTipoPagoImp = StrTipoPagoImp & Alineacion("D", IntAnchoTicket - 17 - 7, Len(GFormatodeNumero(DblTotalExt, GintDecResultado)), GFormatodeNumero(DblTotalExt, GintDecResultado))
    End If
  End If
  
  If Trim(strTIPOPAGO) = GC_VALESCRED Then
      StrTipoPagoImp = StrTipoPagoImp & Alineacion("I", 5, Len("VALE:"), "VALE:")
      StrTipoPagoImp = StrTipoPagoImp & Alineacion("I", IntAnchoTicket - 17 - 5, Len(Str(DBLBonus)), Str(DBLBonus))
  End If
  
  If Trim(strTIPOPAGO) = GC_TARJETACRED Then
    If StrCodTarjeta = GstrCodMonedaBase Then
       StrTipoPagoImp = StrTipoPagoImp & Alineacion("I", 7, Len(GstrSimboloMonedaBase & " :"), GstrSimboloMonedaBase & " :")
       StrTipoPagoImp = StrTipoPagoImp & Alineacion("D", IntAnchoTicket - 17 - 7, Len(GFormatodeNumero(DblTotalBase, GintDecResultado)), GFormatodeNumero(DblTotalBase, GintDecResultado))
    Else
       StrTipoPagoImp = StrTipoPagoImp & Alineacion("I", 7, Len(GstrSimboloMonedaExt & " :"), GstrSimboloMonedaExt & " :")
       StrTipoPagoImp = StrTipoPagoImp & Alineacion("D", IntAnchoTicket - 17 - 7, Len(GFormatodeNumero(DblTotalExt, GintDecResultado)), GFormatodeNumero(DblTotalExt, GintDecResultado))
    End If
  End If
   
  Printer.Print StrTipoPagoImp
  
  
  Dim LstrDatosAdicionales As String
  ' Se Tiene que Imprimir el Número de la Tarjeta
    
    If Trim(strTIPOPAGO) = GC_TARJETACRED Then
       LstrDatosAdicionales = Alineacion("I", 3, Len("No:"), "No:")
       LstrDatosAdicionales = LstrDatosAdicionales & Alineacion("I", IntAnchoTicket - 3, Len(StrNumeroTarjeta), StrNumeroTarjeta)
       Printer.Print LstrDatosAdicionales
    End If
    
  ' Si Fue al Credito se tiene que imprimir la Placa si es que Hubiese
    
    If Trim(strTIPOPAGO) = GC_VALESCRED Then
      If Trim(StrPlaca) <> Empty Then
       LstrDatosAdicionales = Alineacion("I", 7, Len("Placa: "), "Placa: ")
       LstrDatosAdicionales = LstrDatosAdicionales & Alineacion("I", IntAnchoTicket - 7, Len(StrPlaca), StrPlaca)
       Printer.Print LstrDatosAdicionales
      End If
    End If
    
  
  ' Imprimir Turno,Cara y Cajero
    
  Dim StrDatosVendedor As String
  
  StrDatosVendedor = Alineacion("D", 6, Len("Turno:"), "Turno:")
  StrDatosVendedor = StrDatosVendedor & Alineacion("I", 3, Len(Str(IntTurno)), Str(IntTurno))
  StrDatosVendedor = StrDatosVendedor & Alineacion("D", 5, Len("Cara:"), "Cara:")
  StrDatosVendedor = StrDatosVendedor & Alineacion("I", 3, Len(strCara), strCara)
  StrDatosVendedor = StrDatosVendedor & Alineacion("D", 7, Len("Cajero:"), "Cajero:")
  StrDatosVendedor = StrDatosVendedor & Alineacion("I", IntAnchoTicket - 6 - 3 - 5 - 3 - 7, Len(strCajero), strCajero)
  
  Printer.Print StrDatosVendedor
    
 ' Imprimir la Línea 4
  
  Dim LLinea4 As String
  
  LLinea4 = Alineacion("C", IntAnchoTicket, Len(Trim(GstrLinea4)), Trim(GstrLinea4))
  
  If Trim(LLinea4) <> Empty Then
    Printer.Print LLinea4
  End If
     
' Imprimir Pie de Página
       
  LFoot1 = Alineacion("C", IntAnchoTicket, Len(Trim(GstrFoot1)), Trim(GstrFoot1))
  LFoot2 = Alineacion("C", IntAnchoTicket, Len(Trim(GstrFoot2)), Trim(GstrFoot2))
  LFoot3 = Alineacion("C", IntAnchoTicket, Len(Trim(GstrFoot3)), Trim(GstrFoot3))
  LFoot4 = Alineacion("C", IntAnchoTicket, Len(Trim(GstrFoot4)), Trim(GstrFoot4))
  LFoot5 = Alineacion("C", IntAnchoTicket, Len(Trim(GstrFoot5)), Trim(GstrFoot5))
  LFoot6 = Alineacion("C", IntAnchoTicket, Len(Trim(GstrFoot6)), Trim(GstrFoot6))
  LFoot7 = Alineacion("C", IntAnchoTicket, Len(Trim(GstrFoot7)), Trim(GstrFoot7))
  LFoot8 = Alineacion("C", IntAnchoTicket, Len(Trim(GstrFoot8)), Trim(GstrFoot8))
  LFoot9 = Alineacion("C", IntAnchoTicket, Len(Trim(GstrFoot9)), Trim(GstrFoot9))
  LFoot10 = Alineacion("C", IntAnchoTicket, Len(Trim(GstrFoot10)), Trim(GstrFoot10))
  
  If Trim(LFoot1) <> Empty Then
    Printer.Print LFoot1
  End If
  If Trim(LFoot2) <> Empty Then
    Printer.Print LFoot2
  End If
  If Trim(LFoot3) <> Empty Then
    Printer.Print LFoot3
  End If
  If Trim(LFoot4) <> Empty Then
    Printer.Print LFoot4
  End If
  If Trim(LFoot5) <> Empty Then
    Printer.Print LFoot5
  End If
  If Trim(LFoot6) <> Empty Then
    Printer.Print LFoot6
  End If
  If Trim(LFoot7) <> Empty Then
    Printer.Print LFoot7
  End If
  If Trim(LFoot8) <> Empty Then
    Printer.Print LFoot8
  End If
  If Trim(LFoot9) <> Empty Then
    Printer.Print LFoot9
  End If
  If Trim(LFoot10) <> Empty Then
    Printer.Print LFoot10
  End If
              
  Printer.EndDoc
  
  
End Sub

Function AlineacionBK(Lugar As String, Tam_Campo As Integer, log_text As Integer, cont_text As String) As String
 If log_text > Tam_Campo Then
    log_text = Tam_Campo
    cont_text = Mid(cont_text, 1, Tam_Campo)
 End If

 Select Case Lugar
   Case "D"
        AlineacionBK = Space(Tam_Campo - log_text) + cont_text
   Case "I"
        AlineacionBK = cont_text + Space(Tam_Campo - log_text)
   Case "C"
        AlineacionBK = Space((Tam_Campo - log_text) / 2) + cont_text + Space((Tam_Campo - log_text) / 2)
 End Select
End Function

Public Sub ObtenerConfiguracionTicketBK()
'  Dim LrsDatosTicket As ADODB.Recordset
'  Set LrsDatosTicket = MobjVentaPlaya.ObtenerDatosTicket
'
'  If Not LrsDatosTicket.EOF Then
'     ' Obtener las Cabeceras
'
'     If IsNull(LrsDatosTicket!HEAD1) Then
'        GHEAD1 = Empty
'     Else
'        GHEAD1 = LrsDatosTicket!HEAD1
'     End If
'     If IsNull(LrsDatosTicket!HEAD2) Then
'        GHEAD2 = Empty
'     Else
'        GHEAD2 = LrsDatosTicket!HEAD2
'     End If
'     If IsNull(LrsDatosTicket!HEAD3) Then
'        GHEAD3 = Empty
'     Else
'        GHEAD3 = LrsDatosTicket!HEAD3
'     End If
'     If IsNull(LrsDatosTicket!HEAD4) Then
'        GHEAD4 = Empty
'     Else
'        GHEAD4 = LrsDatosTicket!HEAD4
'     End If
'     If IsNull(LrsDatosTicket!HEAD5) Then
'        GHEAD5 = Empty
'     Else
'        GHEAD5 = LrsDatosTicket!HEAD5
'     End If
'     If IsNull(LrsDatosTicket!HEAD6) Then
'        GHEAD6 = Empty
'     Else
'        GHEAD6 = LrsDatosTicket!HEAD6
'     End If
'     If IsNull(LrsDatosTicket!HEAD7) Then
'        GHEAD7 = Empty
'     Else
'        GHEAD7 = LrsDatosTicket!HEAD7
'     End If
'     If IsNull(LrsDatosTicket!HEAD8) Then
'        GHEAD8 = Empty
'     Else
'        GHEAD8 = LrsDatosTicket!HEAD8
'     End If
'     If IsNull(LrsDatosTicket!HEAD9) Then
'        GHEAD9 = Empty
'     Else
'        GHEAD9 = LrsDatosTicket!HEAD9
'     End If
'     If IsNull(LrsDatosTicket!HEAD10) Then
'        GHEAD10 = Empty
'     Else
'        GHEAD10 = LrsDatosTicket!HEAD10
'     End If
'
'
'     'Obtener la Lineas
'     If IsNull(LrsDatosTicket!LINES1) Then
'        GstrLinea1 = Empty
'     Else
'        GstrLinea1 = LrsDatosTicket!LINES1
'     End If
'
'     If IsNull(LrsDatosTicket!Lines2) Then
'        GstrLinea2 = Empty
'     Else
'        GstrLinea2 = LrsDatosTicket!Lines2
'     End If
'
'     If IsNull(LrsDatosTicket!Lines3) Then
'        GstrLinea3 = Empty
'     Else
'        GstrLinea3 = LrsDatosTicket!Lines3
'     End If
'
'     If IsNull(LrsDatosTicket!Lines4) Then
'        GstrLinea4 = Empty
'     Else
'        GstrLinea4 = LrsDatosTicket!Lines4
'     End If
'
'
'     If IsNull(LrsDatosTicket!Foot1) Then
'        GstrFoot1 = Empty
'     Else
'        GstrFoot1 = LrsDatosTicket!Foot1
'     End If
'
'     If IsNull(LrsDatosTicket!Foot2) Then
'        GstrFoot2 = Empty
'     Else
'        GstrFoot2 = LrsDatosTicket!Foot2
'     End If
'
'     If IsNull(LrsDatosTicket!Foot3) Then
'        GstrFoot3 = Empty
'     Else
'        GstrFoot3 = LrsDatosTicket!Foot3
'     End If
'
'     If IsNull(LrsDatosTicket!Foot4) Then
'        GstrFoot4 = Empty
'     Else
'        GstrFoot4 = LrsDatosTicket!Foot4
'     End If
'
'     If IsNull(LrsDatosTicket!Foot5) Then
'        GstrFoot5 = Empty
'     Else
'        GstrFoot5 = LrsDatosTicket!Foot5
'     End If
'
'     If IsNull(LrsDatosTicket!Foot6) Then
'        GstrFoot6 = Empty
'     Else
'        GstrFoot6 = LrsDatosTicket!Foot6
'     End If
'
'     If IsNull(LrsDatosTicket!Foot7) Then
'        GstrFoot7 = Empty
'     Else
'        GstrFoot7 = LrsDatosTicket!Foot7
'     End If
'
'     If IsNull(LrsDatosTicket!Foot8) Then
'        GstrFoot8 = Empty
'     Else
'        GstrFoot8 = LrsDatosTicket!Foot8
'     End If
'
'     If IsNull(LrsDatosTicket!Foot9) Then
'        GstrFoot9 = Empty
'     Else
'        GstrFoot9 = LrsDatosTicket!Foot9
'     End If
'
'     If IsNull(LrsDatosTicket!Foot10) Then
'        GstrFoot10 = Empty
'     Else
'        GstrFoot10 = LrsDatosTicket!Foot10
'     End If
'
'  End If
'
'  LrsDatosTicket.Close
'  Set LrsDatosTicket = Nothing

End Sub

Public Function FormatoTicketBK(Strnroticket As String) As String

   FormatoTicketBK = Format(Strnroticket, "0##-#######")
End Function



    
    
    
    
    
    


