Attribute VB_Name = "MVentasGeneral"
Option Explicit
 
 Private MobjMoneda As DB_MA_MANTENIMIENTOS.C_MONEDA
 Private MobjSetupPtoVta As DB_UT_MANTENIMIENTOS.C_PUNTODEVENTA
 Private MobjSetupGenVentas As UTIL_SETUP.C_SETUP
 Private MrsTemporal As ADODB.Recordset
 Private MobjVentasCombustibles As DB_OP_FACTURACION.C_VENTASPLAYA
 Private MobjVentasGeneral As DB_OP_FACTURACION.C_VENTASGENERAL
 Public GstrMonedaExtranjera As String
 Public GblnVienedePendientes As Boolean
 Public GStrCodVendedorVentaCombus As String
 Public GStrCodUsuarioVentaCombus As String
 
 
'Variables del Setup de Ventas
'Public GIntVentaAutoCombust As Integer
'Public GDatFechaProcesoVentas As Date
 
'Variables del Setup de Punto de Venta
 
 Public gdouloadsales As Double         'correlativo de transaccion grabada
 Public GstrPuntodeVenta As String
 Public GStrSitePtovta As String
 Public GstrTerminal As String
 Public GStrMaquinaReg As String
 
 Public GstrSimboloMoneda As String
 Public GstrSimboloMonedaExt As String
 Public GstrSimboloMonedaBase As String
 Public GstrCodigoVENDEDOR As String
 'Public GstrCategoriaFuels As String
 Public GStrnumeroserie As String
 Public GBlnPermiteTicketFact As Integer
 Public GBlnPermiteTicketBol As Integer
 Public GStrMonedaCaja As String
 Public GBlnpermitegrabartrans As Boolean
 Public GBlnpermitefacturapre As Integer
 Public GBlnpermiteboletapre As Integer
 Public GintTipoDispoSalidaFcat As Integer  ' 1 =Impresora , 0 =Pantalla
 Public GStrDispoTickFac As String          ' Recibe Puerto de Impresora
 Public GintTipoDispoSalidaBol As Integer   ' 1 =Impresora , 0 =Pantalla
 Public GStrDispoTickBol As String          ' Recibe Puerto de Impresora
 Public GBlnpermitesaltoautomatico As Boolean
 Public gIntsaltoautomatico As Integer
 Public gstrtipoventas As String
 Public GBlnclaveanulacion  As Boolean
 Public Gstrtiponegocio  As String
 'Public GintTurnoActual As Integer
 Public GintTurnoaCambiar As Integer
 Public pdbl_correlativo As Double          'correlativo interno de proceso
 Public gbln_ventaefectuada As Boolean
 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
 Public GintSaltaLineas  As Integer
 Public GstrCortarPapel As String
 Public GintAnchoLineas As Integer
 
 Public GBlnPermiteVentaCantidadProducto As Boolean


'@ Jorge: Modificacion
Public EsValeInterno As Boolean  '@ Jorge: permite saber si se creara un vale interno
'Mi Mercado - Trujillo
Public GstrDisplay As String             'permite almacnar el dispositivo display
Public GstrImprFacPreImpresa As Integer         'STKPRINTERFAC permite saber si se imprime factura en ptovta
Public qwerty As String
Sub VerDisplay(dispositivo As String, textoDisp1 As String, Optional textoDisp2 As String)
On Error GoTo error
    'Gaveta Mi Mercado
    Open dispositivo For Output As #1
    Print #1, textoDisp1
'    Print #1, textoDisp2
    Close #1
    DoEvents

Exit Sub
    
error:
     MsgBox "Error Nº " + CStr(Err.Number) + Chr(13) + "Descripcion: " + Err.Description + Chr(13) + _
            Chr(10) + Chr(10) + "Dispositivo  --->  " + dispositivo, vbCritical, "Error"
    Exit Sub

End Sub

Public Sub Imprimir_Ticketcstore_PantImpre(strTipoDoc As String, 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, DBLCASHPEN, DBLCASHUSD, _
                                DBLRETURNPEN, DBLRETURNUSD, _
                                ByVal RsDetalleTemporal As ADODB.Recordset, _
                                strTIPOPAGO As String, IntTurno As Integer, _
                                strCajero As String, Optional DBLBonus As Double, _
                                Optional StrPlaca As String, Optional ByVal rstarjetas As ADODB.Recordset, _
                                Optional IntImprimeReimprime As Integer = 0, Optional DatFechaImpresion As Date, _
                                Optional RsDetalleVales As ADODB.Recordset, Optional GstrDispositivo As String)
                           
' Los Datos Generales se Debe cargar al Inicio de las Pantallas para no estar Repreguntando
' a cada momento
On Error GoTo error
  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
  Dim i As Integer
' 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))
 
'------Modificado para Mi Mercado - Trujillo ----------------------------------
'------Autor: Jorge Illescas

'ABRIR GAVETA
'    If IntImprimeReimprime = 0 Then
'        Call corta_ticket
'        Call abrir_gaveta
  
'    End If
'------------------------------------------------------------------------------

'PERMITE IMPRIMIR EN PANTALLA EL TICKET
'If MsgBox("Desea impimir el ticket en pantalla?", vbQuestion + vbYesNo, "Imprimir Documento") = vbYes Then
'   Dim impPant As Boolean
'   impPant = True
'   Open "Tiket.txt" For Output As #1
'Else

  
'EMPIEZA A UTILIZAR EL PUERTO DE IMPRESORA
'USA EL MISO DISP DE IMPRESORA T.F O T.B.
Open GstrDispositivo For Output As #1
Call abrir_gaveta(GstrDispositivo)

'End If
  
  Print #1, Space(40) + "" + Space(40)     ' El Primer Print no es Tomado en Cuenta
'  Print #1, Space(40) + "" + Space(40)     ' A partir del Primero se toman en cuenta
'  Print #1, Space(40) + "" + Space(40)
'  Print #1, Space(40) + "" + Space(40)
    
  If Trim(LHead1) <> Empty Then
    Print #1, LHead1 '+ "" + LHead1
  End If
  If Trim(LHead2) <> Empty Then
    Print #1, LHead2 '+ "" + LHead2  'MI MERCADO
  End If
  If Trim(LHead3) <> Empty Then
    Print #1, LHead3 '+ "" + LHead3
  End If
  If Trim(LHead4) <> Empty Then
    Print #1, LHead4 '+ "" + LHead4
  End If
  If Trim(LHead5) <> Empty Then
    Print #1, LHead5 '+ "" + LHead5
  End If
  If Trim(LHead6) <> Empty Then
    Print #1, LHead6 '+ "" + LHead6
  End If
  If Trim(LHead7) <> Empty Then
    Print #1, LHead7 '+ "" + LHead7
  End If
  If Trim(LHead8) <> Empty Then
    Print #1, LHead8 '+ "" + LHead8
  End If
  If Trim(LHead9) <> Empty Then
    Print #1, LHead9 '+ "" + LHead9
  End If
  If Trim(LHead10) <> Empty Then
    Print #1, LHead10 '+ "" + LHead10
  End If
 
 ' Imprimir la Linea
     
  Dim LLinea1 As String
  
  LLinea1 = Alineacion("C", IntAnchoTicket, Len(Trim(GstrLinea1)), Trim(GstrLinea1))
  
  If Trim(LLinea1) <> Empty Then
    Print #1, LLinea1 '+ "" + LLinea1
  End If
  
  
  If IntImprimeReimprime = 1 Then
     GstrSimboloMonedaBase = GstrSimboloMonedaBaseModGen
     GstrSimboloMonedaExt = GstrSimboloMonedaExtModGen
  End If
  
  ' Imprimir Numero de Máquina Registradora
  
  Dim strMaquinaReg As String
  If IntImprimeReimprime = 0 Then
     strMaquinaReg = Alineacion("I", IntAnchoTicket - 10, Len("Maq.Regist.No: " & GStrMaquinaReg), "Maq.Regist.No: " & GStrMaquinaReg) & Date
  Else
     strMaquinaReg = Alineacion("I", IntAnchoTicket - 10, Len("Maq.Regist.No: " & GStrMaquinaReg), "Maq.Regist.No: " & GStrMaquinaReg) & Format(DatFechaImpresion, "dd/mm/yyyy")
  End If
  Print #1, strMaquinaReg '+ "" + strMaquinaReg
 
  ' Imprimir el Número del Ticket
 
  Dim StrNumeroTicket As String
  
  If IntImprimeReimprime = 0 Then
    StrNumeroTicket = Alineacion("I", IntAnchoTicket - 8, Len(strTipoDoc & ":" & FormatoTicket(StrNumerodeTicket)), strTipoDoc & ":" & FormatoTicket(StrNumerodeTicket)) & Format(Time, "HH:mm:ss")
  Else
    StrNumeroTicket = Alineacion("I", IntAnchoTicket - 8, Len(strTipoDoc & ":" & FormatoTicket(StrNumerodeTicket)), strTipoDoc & ":" & FormatoTicket(StrNumerodeTicket)) & Format(DatFechaImpresion, "HH:mm:ss")
  End If
  
  Print #1, StrNumeroTicket '+ "" + 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)
    Print #1, LStrRazonSocial '+ "" + LStrRazonSocial
  End If
  
  If Trim(strRUC) <> Empty Then
    Dim LStrRUC As String
     LStrRUC = Alineacion("I", IntAnchoTicket, Len("RUC    :" & strRUC), "RUC    :" & strRUC)
     Print #1, LStrRUC '+ "" + LStrRUC
  End If
       
  If Trim(StrDireccion) <> Empty Then
    Dim LstrDireccion As String
    LstrDireccion = Alineacion("I", IntAnchoTicket, Len("DIRECC.:" & StrDireccion), "DIRECC :" & StrDireccion)
    Print #1, LstrDireccion '+ "" + 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
    Print #1, LLinea2 '+ "" + 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))
                      
       Print #1, LstrProducto '+ "" + 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
        
       Print #1, LstrDescripcion '+ "" + 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
    Print #1, LLinea3 '+ "" + 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
          
        Print #1, StrValoventa '+ "" + 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
            Print #1, strNoAfecto '+ "" + 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
        
        Print #1, StrImpuesto '+ "" + 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
  Print #1, StrTotal '+ "" + StrTotal
  
  ' Parte que Imprimie el Tipo de Pago
  Dim StrTipoPagoImp As String

If Trim(strTIPOPAGO) = GC_PAGOEFECTIVO Or Trim(strTIPOPAGO) = GC_VALESCRED Then
    If Trim(strTIPOPAGO) = GC_VALESCRED Then
        StrTipoPagoImp = Alineacion("I", 17, Len("CREDITO          "), "CREDITO          ")
    End If
    

If Trim(strTIPOPAGO) = GC_VALESCRED Or Trim(strTIPOPAGO) = GC_PAGOEFECTIVO Then
      Dim LTotalvales As Integer
      StrTipoPagoImp = StrTipoPagoImp & Alineacion("I", 5, Len("VALE:"), "VALE:")
      
      If Not RsDetalleVales Is Nothing Then
         If Not RsDetalleVales.EOF Then
           LTotalvales = RsDetalleVales.RecordCount
           RsDetalleVales.MoveFirst
           
           For i = 1 To LTotalvales
              If i = 1 Then
                 StrTipoPagoImp = StrTipoPagoImp & Alineacion("I", IntAnchoTicket - 17 - 5, Len(Str(RsDetalleVales!Número_de_Vale)), Str(RsDetalleVales!Número_de_Vale))
              Else
                 StrTipoPagoImp = Space(17) & Alineacion("I", 5, Len("VALE:"), "VALE:") & Alineacion("I", IntAnchoTicket - 17 - 5, Len(Str(RsDetalleVales!Número_de_Vale)), Str(RsDetalleVales!Número_de_Vale))
              End If
              Print #1, StrTipoPagoImp '+ "" + StrTipoPagoImp
              RsDetalleVales.MoveNext
           Next
         End If
     End If
      
  End If
  
    If Len(Trim(StrTipoPagoImp)) > 0 Then
       If Trim(StrTipoPagoImp) <> "VALE:" Then
        Print #1, StrTipoPagoImp '+ "" + StrTipoPagoImp
       End If
    End If

Else        'si es pago tarjetas o pagos varios
   If Not rstarjetas Is Nothing Then
    If rstarjetas.RecordCount > 0 Then  'HAY PAGO CON TARJETAS
        StrTipoPagoImp = Alineacion("I", 17, Len("TARJETA           "), "TARJETA          ")
        Print #1, StrTipoPagoImp '+ "" + StrTipoPagoImp
        ' Se Tiene que Imprimir el Número de la Tarjeta
        Dim LSTR_NOMBRET As String
        Dim LSTR_NUMEROT As String
        Dim LSTR_MONEDA As String
        Dim LDBL_PENT As Double
        Dim LDBL_USDT As Double
        
        Do While Not rstarjetas.EOF
            LSTR_MONEDA = rstarjetas!curyid
            LSTR_NOMBRET = Trim(rstarjetas!DESCR)
            LSTR_NUMEROT = Trim(rstarjetas!NBRCARD)
            LDBL_PENT = rstarjetas!TOTCARDpen
            LDBL_USDT = rstarjetas!TOTCARDUSD
            StrTipoPagoImp = Alineacion("I", 11, Len(LSTR_NOMBRET), LSTR_NOMBRET)
            StrTipoPagoImp = StrTipoPagoImp & Alineacion("I", 16, Len(LSTR_NUMEROT), LSTR_NUMEROT)

            If LSTR_MONEDA = GstrCodMonedaBase Then
                StrTipoPagoImp = StrTipoPagoImp & Alineacion("I", 4, Len(GstrSimboloMonedaBase & ":"), GstrSimboloMonedaBase & ":")
                StrTipoPagoImp = StrTipoPagoImp & Alineacion("D", 8, Len(GFormatodeNumero(LDBL_PENT, GintDecResultado)), GFormatodeNumero(LDBL_PENT, GintDecResultado))
            Else
                StrTipoPagoImp = StrTipoPagoImp & Alineacion("I", 4, Len(GstrSimboloMonedaExt & " :"), GstrSimboloMonedaExt & " :")
                StrTipoPagoImp = StrTipoPagoImp & Alineacion("D", 8, Len(GFormatodeNumero(LDBL_USDT, GintDecResultado)), GFormatodeNumero(LDBL_USDT, GintDecResultado))
            End If
            Print #1, StrTipoPagoImp '+ "" + StrTipoPagoImp
            rstarjetas.MoveNext
        Loop
     End If
    End If
End If

  Dim LstrDatosAdicionales As String
        
  ' Si Fue al Credito se tiene que imprimir la Placa si es que Hubiese
    
    If Trim(strTIPOPAGO) = GC_VALESCRED Or Trim(strTIPOPAGO) = GC_PAGOEFECTIVO Then
      If Trim(StrPlaca) <> Empty Then
       LstrDatosAdicionales = Alineacion("I", 7, Len("Placa: "), "Placa: ")
       LstrDatosAdicionales = LstrDatosAdicionales & Alineacion("I", IntAnchoTicket - 7, Len(StrPlaca), StrPlaca)
       Print #1, LstrDatosAdicionales '+ "" + LstrDatosAdicionales
      End If
    End If
    
  ' Imprimir Efectivo Soles y dolares
    Dim Strefectivopagado As String
    If DBLCASHPEN <> 0 Or DBLCASHUSD <> 0 Then
        Strefectivopagado = Alineacion("I", 10, Len("EFECTIVO: "), "EFECTIVO: ")
        If DBLCASHPEN > 0 Then
            Strefectivopagado = Strefectivopagado & Alineacion("I", 3, Len(GstrSimboloMonedaBase & " :"), GstrSimboloMonedaBase & " :")
            Strefectivopagado = Strefectivopagado & Alineacion("I", 10, Len(GFormatodeNumero(Str(DBLCASHPEN), GintDecResultado)), GFormatodeNumero(Str(DBLCASHPEN), GintDecResultado))
        End If
        If DBLCASHUSD > 0 Then
            Strefectivopagado = Strefectivopagado & Alineacion("I", 3, Len(GstrSimboloMonedaExt & " :"), GstrSimboloMonedaExt & " :")
            Strefectivopagado = Strefectivopagado & Alineacion("I", 10, Len(GFormatodeNumero(Str(DBLCASHUSD), GintDecResultado)), GFormatodeNumero(Str(DBLCASHUSD), GintDecResultado))
        End If
        Strefectivopagado = Alineacion("I", 40, Len(Strefectivopagado), Strefectivopagado) '***** CASO ESPECIAL 1
        Print #1, Strefectivopagado '+ "" + Strefectivopagado
    End If
  
  ' Imprimir Vuelto Soles y dolares
    Dim Strvuelto As String
    If DBLRETURNPEN <> 0 Or DBLRETURNUSD <> 0 Then
        Strvuelto = Alineacion("I", 10, Len("VUELTO: "), "VUELTO: ")
        If DBLRETURNPEN > 0 Then
            Strvuelto = Strvuelto & Alineacion("I", 3, Len(GstrSimboloMonedaBase & " :"), GstrSimboloMonedaBase & " :")
            Strvuelto = Strvuelto & Alineacion("I", 10, Len(GFormatodeNumero(Str(DBLRETURNPEN), GintDecResultado)), GFormatodeNumero(Str(DBLRETURNPEN), GintDecResultado))
        End If
        If DBLRETURNUSD > 0 Then
            Strvuelto = Strvuelto & Alineacion("I", 3, Len(GstrSimboloMonedaExt & " :"), GstrSimboloMonedaExt & " :")
            Strvuelto = Strvuelto & Alineacion("I", 10, Len(GFormatodeNumero(Str(DBLRETURNUSD), GintDecResultado)), GFormatodeNumero(Str(DBLRETURNUSD), GintDecResultado))
        End If
        Print #1, Strvuelto '+ "" + Strvuelto
    End If
  
  ' Imprimir Turno 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", 7, Len("CAJERO:"), "CAJERO:")
  StrDatosVendedor = StrDatosVendedor & Alineacion("I", IntAnchoTicket - 6 - 3 - 7, Len(strCajero), strCajero)
  
  Print #1, StrDatosVendedor '+ "" + StrDatosVendedor
    
 ' Imprimir la Línea 4
  
  Dim LLinea4 As String
  
  LLinea4 = Alineacion("C", IntAnchoTicket, Len(Trim(GstrLinea4)), Trim(GstrLinea4))
  
  If Trim(LLinea4) <> Empty Then
    Print #1, LLinea4 '+ "" + 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
    Print #1, LFoot1 '+ "" + LFoot1
  End If
  If Trim(LFoot2) <> Empty Then
    Print #1, LFoot2 '+ "" + LFoot2
  End If
  If Trim(LFoot3) <> Empty Then
    Print #1, LFoot3 '+ "" + LFoot3
  End If
  If Trim(LFoot4) <> Empty Then
    Print #1, LFoot4 '+ "" + LFoot4
  End If
  If Trim(LFoot5) <> Empty Then
    Print #1, LFoot5 '+ "" + LFoot5
  End If
  If Trim(LFoot6) <> Empty Then
    Print #1, LFoot6 '+ "" + LFoot6
  End If
  If Trim(LFoot7) <> Empty Then
    Print #1, LFoot7 '+ "" + LFoot7
  End If
  If Trim(LFoot8) <> Empty Then
    Print #1, LFoot8 '+ "" + LFoot8
  End If
  If Trim(LFoot9) <> Empty Then
    Print #1, LFoot9 '+ "" + LFoot9
  End If
  If Trim(LFoot10) <> Empty Then
    Print #1, LFoot10 '+ "" + LFoot10
  End If
                      
  For i = 1 To GintSaltaLineas
    Print #1, Space(10)
  Next
  
''------Modificado para Mi Mercado - Trujillo ----------------------------------
''------Autor: Jorge Illescas
  Print #1, ""   ' El Primer Print no es Tomado en Cuenta
  Print #1, ""   ' A partir del Primero se toman en cuenta
  Print #1, ""
  Print #1, ""

 'DEPENDIENDO SI SE TRATA DE T.B O T.F
 Call corta_ticket(GstrDispositivo)
  
 Close #1
    
 'PARA VISUALIZAR EN PANTALLA EL TICKET
' If impPant Then
'    Shell "notepad.exe Tiket.txt", vbNormalFocus
'    impPant = False
' End If


Exit Sub

error:
    MsgBox "Error Nº " + CStr(Err.Number) + Chr(13) + "Descripcion: " + Err.Description _
                   + Chr(13) + "Dispositivo  ------->   " + GstrDispositivo, vbCritical, "Error"
                                                            
    Exit Sub


End Sub

Public Sub Imprimir_Ticket_Pantalla(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 RsDetalleVales As ADODB.Recordset, Optional StrPlaca As String, _
                           Optional IntImprimeReimprime As Integer = 0, Optional DatFechaImpresion As Date)

' Los Datos Generales se Debe cargar al Inicio de las Pantallas para no estar Repreguntando
' a cada momento
  Dim i As Integer
  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))
  
  
  Open "Tikette.txt" For Output As #1
  
  
  Print #1, ""   ' El Primer Print #1,  no es Tomado en Cuenta
  'Print #1,  ""  ' A partir del Primero se toman en cuenta
  'Print #1,  ""
  'Print #1,  ""
  
  If Trim(LHead1) <> Empty Then
    Print #1, LHead1
  End If
  If Trim(LHead2) <> Empty Then
    Print #1, LHead2
  End If
  If Trim(LHead3) <> Empty Then
    Print #1, LHead3
  End If
  If Trim(LHead4) <> Empty Then
    Print #1, LHead4
  End If
  If Trim(LHead5) <> Empty Then
    Print #1, LHead5
  End If
  If Trim(LHead6) <> Empty Then
    Print #1, LHead6
  End If
  If Trim(LHead7) <> Empty Then
    Print #1, LHead7
  End If
  If Trim(LHead8) <> Empty Then
    Print #1, LHead8
  End If
  If Trim(LHead9) <> Empty Then
    Print #1, LHead9
  End If
  If Trim(LHead10) <> Empty Then
    Print #1, LHead10
  End If
 
 ' Imprimir la Linea
     
  Dim LLinea1 As String
  
  LLinea1 = Alineacion("C", IntAnchoTicket, Len(Trim(GstrLinea1)), Trim(GstrLinea1))
  
  If Trim(LLinea1) <> Empty Then
    Print #1, LLinea1
  End If
  
  If IntImprimeReimprime = 1 Then
     GstrSimboloMonedaBase = GstrSimboloMonedaBaseModGen
     GstrSimboloMonedaExt = GstrSimboloMonedaExtModGen
  End If
  
  
  ' Imprimir Numero de Máquina Registradora
  
  Dim strMaquinaReg As String
  If IntImprimeReimprime = 0 Then
     strMaquinaReg = Alineacion("I", IntAnchoTicket - 10, Len("Maq.Regist.No: " & GStrMaquinaReg), "Maq.Regist.No: " & GStrMaquinaReg) & Format(DatFechaImpresion, "dd/mm/yyyy") 'Date
  Else
     strMaquinaReg = Alineacion("I", IntAnchoTicket - 10, Len("Maq.Regist.No: " & GStrMaquinaReg), "Maq.Regist.No: " & GStrMaquinaReg) & Format(DatFechaImpresion, "dd/mm/yyyy")
  End If
  
  Print #1, strMaquinaReg
 
 Dim StrNumeroTicket As String
 
       ' guia
       '
       Dim nroguia As String
       If Not RsDetalleVales Is Nothing Then
        If Not RsDetalleVales.EOF Then
           RsDetalleVales.MoveFirst
            nroguia = RsDetalleVales!Número_de_Vale
        End If
       End If
 
  ' Imprimir el Número del Ticket
 '@ Este comentario fue agregado por Jorge Illescas. 25/04/2005
 '--------------------------------------------------------------------------------------
 '@ Desde aqui comienza la seleccion de tipo de ticket b., ticket f. y ticket guia(vale)
 '--------------------------------------------------------------------------------------
 'Si se deaea imprimir el numero del ticket considerar imprimirlo antes del numero de la guia
 'usando la variable: StrNumerodeTicket
 If Trim(strTIPOPAGO) = GC_VALESCRED Then
  'Antes Ticket Guia, ahora TICKET FACTURA CREDITO
  
  'Se imprime el numero de la factura -(num. documento)
  If IntImprimeReimprime = 0 Then
    StrNumeroTicket = Alineacion("I", IntAnchoTicket - 8, Len("Factura No: " & FormatoTicket(StrNumerodeTicket)), "Factura No: " & FormatoTicket(StrNumerodeTicket)) & Format(DatFechaImpresion, "HH:mm:ss") 'Format(Time, "HH:mm:ss")
  Else
    StrNumeroTicket = Alineacion("I", IntAnchoTicket - 8, Len("Factura No: " & FormatoTicket(StrNumerodeTicket)), "Factura No: " & FormatoTicket(StrNumerodeTicket)) & Format(DatFechaImpresion, "HH:mm:ss")
  End If
  Print #1, StrNumeroTicket
  
  'Se imprime el numero de la guia - (num. vale)
  If IntImprimeReimprime = 0 Then
    StrNumeroTicket = Alineacion("I", IntAnchoTicket - 8, Len("Guia   No: " & FormatoTicket(nroguia, True)), "Guia   No: " & FormatoTicket(nroguia, True))  'Format(Time, "HH:mm:ss")
  Else
    StrNumeroTicket = Alineacion("I", IntAnchoTicket - 8, Len("Guia   No: " & FormatoTicket(nroguia, True)), "Guia   No: " & FormatoTicket(nroguia, True))
  End If
  Print #1, StrNumeroTicket
Else
  'Ticket Factura o Ticket Boleta
  If IntImprimeReimprime = 0 Then
    StrNumeroTicket = Alineacion("I", IntAnchoTicket - 8, Len("Ticket No: " & FormatoTicket(StrNumerodeTicket)), "Ticket No: " & FormatoTicket(StrNumerodeTicket)) & Format(DatFechaImpresion, "HH:mm:ss") 'Format(Time, "HH:mm:ss")
  Else
    StrNumeroTicket = Alineacion("I", IntAnchoTicket - 8, Len("Ticket No: " & FormatoTicket(StrNumerodeTicket)), "Ticket No: " & FormatoTicket(StrNumerodeTicket)) & Format(DatFechaImpresion, "HH:mm:ss")
  End If
  Print #1, StrNumeroTicket
End If
 'Print #1,  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)
    Print #1, LStrRazonSocial
  End If
  
  If Trim(strRUC) <> Empty Then
    Dim LStrRUC As String
     LStrRUC = Alineacion("I", IntAnchoTicket, Len("RUC    :" & strRUC), "RUC    :" & strRUC)
     Print #1, LStrRUC
  End If
       
  If Trim(StrDireccion) <> Empty Then
    Dim LstrDireccion As String
    LstrDireccion = Alineacion("I", IntAnchoTicket, Len("DIRECC.:" & StrDireccion), "DIRECC :" & StrDireccion)
    Print #1, 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
    Print #1, 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))
                      
       Print #1, 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
        
       Print #1, 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
    Print #1, 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
          
        Print #1, 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
            
            Print #1, 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
        
        Print #1, 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
  
  Print #1, StrTotal
  
  ' Parte que Imprimie el Tipo de Pago
          
  Dim StrTipoPagoImp As String
  If Trim(strTIPOPAGO) = GC_PAGOEFECTIVO Or Trim(strTIPOPAGO) = GC_CONTADOADELANTO 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 Or Trim(strTIPOPAGO) = GC_CONTADOADELANTO 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_CONTADOADELANTO Or Trim(strTIPOPAGO) = GC_PAGOEFECTIVO Then
  'If Trim(strTIPOPAGO) = GC_VALESCRED Or Trim(strTIPOPAGO) = GC_CONTADOADELANTO Or Trim(strTIPOPAGO) = GC_PAGOEFECTIVO Then
      Dim LTotalvales As Integer
      
      If Trim(strTIPOPAGO) = GC_VALESCRED Then
         StrTipoPagoImp = StrTipoPagoImp & Alineacion("I", 5, Len("VALE:"), "VALE:")
      End If
      If Trim(strTIPOPAGO) = GC_CONTADOADELANTO Then
         Print #1, StrTipoPagoImp
         StrTipoPagoImp = Space(17) & Alineacion("I", 5, Len("VALE:"), "VALE:")
      End If
      If Trim(strTIPOPAGO) = GC_PAGOEFECTIVO Then
         Print #1, StrTipoPagoImp
         StrTipoPagoImp = Space(17) & Alineacion("I", 5, Len("VALE:"), "VALE:")
      End If
            
            
      If Not RsDetalleVales Is Nothing Then
        If Not RsDetalleVales.EOF Then
           LTotalvales = RsDetalleVales.RecordCount
         
           RsDetalleVales.MoveFirst
          
           For i = 1 To LTotalvales
               If i = 1 Then
                 StrTipoPagoImp = StrTipoPagoImp & Alineacion("I", IntAnchoTicket - 17 - 5, Len(Str(RsDetalleVales!Número_de_Vale)), Str(RsDetalleVales!Número_de_Vale))
               Else
                 StrTipoPagoImp = Space(17) & Alineacion("I", 5, Len("VALE:"), "VALE:") & Alineacion("I", IntAnchoTicket - 17 - 5, Len(Str(RsDetalleVales!Número_de_Vale)), Str(RsDetalleVales!Número_de_Vale))
               End If
               Print #1, StrTipoPagoImp
               RsDetalleVales.MoveNext
           Next
        End If
       End If
  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
   
   
  ' Esta Validaciónde sirve para que no se repita el ultimo Item de Vales
  If Trim(strTIPOPAGO) <> GC_VALESCRED And Trim(strTIPOPAGO) <> GC_CONTADOADELANTO And Trim(strTIPOPAGO) <> GC_PAGOEFECTIVO Then
    If Trim(StrTipoPagoImp) <> "VALE:" Then
       Print #1, StrTipoPagoImp
    End If
  End If
      
      
  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)
       Print #1, LstrDatosAdicionales
    End If
    
  ' Si Fue al Credito se tiene que imprimir la Placa si es que Hubiese
    
    If Trim(strTIPOPAGO) = GC_VALESCRED Or Trim(strTIPOPAGO) = GC_PAGOEFECTIVO Then
      If Trim(StrPlaca) <> Empty Then
       LstrDatosAdicionales = Alineacion("I", 7, Len("Placa: "), "Placa: ")
       LstrDatosAdicionales = LstrDatosAdicionales & Alineacion("I", IntAnchoTicket - 7, Len(StrPlaca), StrPlaca)
       Print #1, 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)
  
  Print #1, StrDatosVendedor
    
 ' Imprimir la Línea 4
  
  Dim LLinea4 As String
  
  LLinea4 = Alineacion("C", IntAnchoTicket, Len(Trim(GstrLinea4)), Trim(GstrLinea4))
  
  If Trim(LLinea4) <> Empty Then
    Print #1, 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
    Print #1, LFoot1
  End If
  If Trim(LFoot2) <> Empty Then
    Print #1, LFoot2
  End If
  If Trim(LFoot3) <> Empty Then
    Print #1, LFoot3
  End If
  If Trim(LFoot4) <> Empty Then
    Print #1, LFoot4
  End If
  If Trim(LFoot5) <> Empty Then
    Print #1, LFoot5
  End If
  If Trim(LFoot6) <> Empty Then
    Print #1, LFoot6
  End If
  If Trim(LFoot7) <> Empty Then
    Print #1, LFoot7
  End If
  If Trim(LFoot8) <> Empty Then
    Print #1, LFoot8
  End If
  If Trim(LFoot9) <> Empty Then
    Print #1, LFoot9
  End If
  If Trim(LFoot10) <> Empty Then
    Print #1, LFoot10
  End If
              
  For i = 1 To GintSaltaLineas
    Print #1, Space(10)
  Next
                            
  Close #1
    
  Shell "notepad.exe Tiket.txt", vbNormalFocus
                           
End Sub
Sub corta_ticket(impresora As String)
On Error GoTo error
'  Ticketera Mi Mercado
'  Open impresora For Output As #1
  'Corta Tickets
  Print #1, GstrCortarPapel
  
'  Close #1
  DoEvents

Exit Sub
error:
     MsgBox "Error Nº " + CStr(Err.Number) + Chr(13) + "Descripcion: " + Err.Description + Chr(13) + _
            Chr(10) + Chr(10) + "Dispositivo  --->  " + impresora, vbCritical, "Error"
    Exit Sub
End Sub


 Public Sub GObtenerDatosdePtoVta(ByVal strterminal As String)
    'Obtener Variables del Modulo de Ventas GeneraL
    
    Set MobjVentasGeneral = New DB_OP_FACTURACION.C_VENTASGENERAL
    Set MobjMoneda = New DB_MA_MANTENIMIENTOS.C_MONEDA
    
    GstrMonedaExtranjera = MobjVentasGeneral.ObtenerMonedaExtranjera(GstrCodMonedaBase)
    GstrSimboloMonedaExt = MobjMoneda.ListarPorMonedaID(GstrMonedaExtranjera)!DescrMoney
    GstrSimboloMonedaBase = MobjMoneda.ListarPorMonedaID(GstrCodMonedaBase)!DescrMoney
     
    '*******************************************************************************************
    'Set MobjSetupGenVentas = New UTIL_SETUP.C_SETUP
    'Set MrsTemporal = MobjSetupGenVentas.ObtenerSetupVentas
     
    'GIntVentaAutoCombust = MrsTemporal!AUTOMATICSALES
    'GIntVentaAutoCombust = 1
    
    'GDatFechaProceso = MrsTemporal!DATEPROCESALES
    'GDatFechaProcesoVentas = MrsTemporal!DATEPROCESALES
    'GstrCategoriaFuels = MrsTemporal!CATEGORYFUEL
    
    'GstrRutaTran = MrsTemporal!TRANSACFUELPATH
    'GstrRutaTranBlanco = MrsTemporal!TABLESTRANSACFUEL
    '*******************************************************************************************
     
    Set MobjSetupPtoVta = New DB_UT_MANTENIMIENTOS.C_PUNTODEVENTA
    
    Set MrsTemporal = MobjSetupPtoVta.ObtenerConfiguracionPtoVta(GstrTerminal)
    GStrSitePtovta = MrsTemporal!SITEID
    
    GStrMaquinaReg = MrsTemporal!SERIALNUMBER
    
    GBlnPermiteTicketFact = MrsTemporal!STKTICKFAC
    GBlnPermiteTicketBol = MrsTemporal!STKTICKBOL
    GStrMonedaCaja = MrsTemporal!curyid
    GstrSimboloMoneda = MobjMoneda.ListarPorMonedaID(GStrMonedaCaja)!DescrMoney
    GintTipoDispoSalidaFcat = MrsTemporal!TYPEDISPTICKFAC
    GStrDispoTickFac = MrsTemporal!DISPTICKFAC
    GintTipoDispoSalidaBol = MrsTemporal!TYPEDISPTICKBOL
    GStrDispoTickBol = MrsTemporal!DISPTICKBOL
    GBlnpermitesaltoautomatico = MrsTemporal!stkjumpautomat
    gIntsaltoautomatico = MrsTemporal!qtyjumpautomat
    GBlnclaveanulacion = MrsTemporal!stkdeletedoc
    GBlnpermitegrabartrans = MrsTemporal!stkloadsale
    Gstrtiponegocio = MrsTemporal!BusinessType
    GBlnPermiteVentaCantidadProducto = MrsTemporal!QTYPRODUCT
    'mi mercado: Jorge Illescas..................................................................................
    GstrDisplay = MrsTemporal!DISPDISPLAY                       'Validar si se trata de negocio en Playa o Tienda
    GstrImprFacPreImpresa = MrsTemporal!STKPRINTERFAC           'Recoge informacion si se imprime factura manual
                                                                'FLAG 1 = EMITIRA FACTURA PRE IMPRESA
                                                                
    'recogiendo la configuracion de imprimir factura pre-impresa
    GstrImprFacPreImpresa = MrsTemporal!STKPRINTERFAC           'Recoge informacion si se imprime factura manual
                                                                'FLAG 1 = EMITIRA FACTURA PRE IMPRESA
    '*****************************************
    ' NO SE COMO OBTENERLO QUE QUEDE PENDIENTE
    '*****************************************
    Set MobjVentasGeneral = Nothing
    
 End Sub
 
Public Sub MENSAJES_VENDEDOR(validar As Integer)
If validar = 1 Then
    MsgBox ("No existe VENDEDOR")
    Exit Sub
End If
If validar = 2 Then
    MsgBox ("Clave Incorrecta")
    Exit Sub
End If
If validar = 3 Then
    MsgBox ("Su clave ha expirado")
    Exit Sub
End If
If validar = 4 Then
    MsgBox ("VENDEDOR Desactivado")
    Exit Sub
End If
If validar = 5 Then
    MsgBox ("VENDEDOR Suspendido")
    Exit Sub
End If
End Sub

Public Sub Imprimir_Ticket(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 RsDetalleVales As ADODB.Recordset, Optional StrPlaca As String, _
                           Optional IntImprimeReimprime As Integer = 0, Optional DatFechaImpresion As Date, _
                           Optional GstrDispositivo As String)

' Los Datos Generales se Debe cargar al Inicio de las Pantallas para no estar Repreguntando
' a cada momento
On Error GoTo error

  Dim i As Integer
  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))
  
  Open GstrDispositivo For Output As #1
  Call abrir_gaveta(GstrDispositivo)
  
  Print #1, ""  ' El Primer Print no es Tomado en Cuenta
  
  '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
    Print #1, LHead1
  End If
  If Trim(LHead2) <> Empty Then
    'Printer.Print LHead2
    Print #1, LHead2
  End If
  If Trim(LHead3) <> Empty Then
    'Printer.Print LHead3
    Print #1, LHead3
  End If
  If Trim(LHead4) <> Empty Then
    'Printer.Print LHead4
    Print #1, LHead4
  End If
  If Trim(LHead5) <> Empty Then
    'Printer.Print LHead5
    Print #1, LHead5
  End If
  If Trim(LHead6) <> Empty Then
    'Printer.Print LHead6
    Print #1, LHead6
  End If
  If Trim(LHead7) <> Empty Then
    'Printer.Print LHead7
    Print #1, LHead7
  End If
  If Trim(LHead8) <> Empty Then
    'Printer.Print LHead8
    Print #1, LHead8
  End If
  If Trim(LHead9) <> Empty Then
    'Printer.Print LHead9
    Print #1, LHead9
  End If
  If Trim(LHead10) <> Empty Then
    'Printer.Print LHead10
    Print #1, 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
    Print #1, LLinea1
  End If
  
  If IntImprimeReimprime = 1 Then
     GstrSimboloMonedaBase = GstrSimboloMonedaBaseModGen
     GstrSimboloMonedaExt = GstrSimboloMonedaExtModGen
  End If
  
  
  ' Imprimir Numero de Máquina Registradora
  
  Dim strMaquinaReg As String
  If IntImprimeReimprime = 0 Then
     strMaquinaReg = Alineacion("I", IntAnchoTicket - 10, Len("Maq.Regist.No: " & GStrMaquinaReg), "Maq.Regist.No: " & GStrMaquinaReg) & Format(DatFechaImpresion, "dd/mm/yyyy") 'Date
  Else
     strMaquinaReg = Alineacion("I", IntAnchoTicket - 10, Len("Maq.Regist.No: " & GStrMaquinaReg), "Maq.Regist.No: " & GStrMaquinaReg) & Format(DatFechaImpresion, "dd/mm/yyyy")
  End If
  
  'Printer.Print strMaquinaReg
  Print #1, strMaquinaReg
 
 Dim StrNumeroTicket As String
 
       ' guia
       '
       Dim nroguia As String
       If Not RsDetalleVales Is Nothing Then
        If Not RsDetalleVales.EOF Then
           RsDetalleVales.MoveFirst
            nroguia = RsDetalleVales!Número_de_Vale
        End If
       End If
 
  ' Imprimir el Número del Ticket
 '@ Este comentario fue agregado por Jorge Illescas. 25/04/2005
 '--------------------------------------------------------------------------------------
 '@ Desde aqui comienza la seleccion de tipo de ticket b., ticket f. y ticket guia(vale)
 '--------------------------------------------------------------------------------------
 'Si se deaea imprimir el numero del ticket considerar imprimirlo antes del numero de la guia
 'usando la variable: StrNumerodeTicket
 If Trim(strTIPOPAGO) = GC_VALESCRED Then
  'Antes Ticket Guia, ahora TICKET FACTURA CREDITO
  
  'Se imprime el numero de la factura -(num. documento)
  If IntImprimeReimprime = 0 Then
    StrNumeroTicket = Alineacion("I", IntAnchoTicket - 8, Len("Factura No: " & FormatoTicket(StrNumerodeTicket)), "Factura No: " & FormatoTicket(StrNumerodeTicket)) & Format(DatFechaImpresion, "HH:mm:ss") 'Format(Time, "HH:mm:ss")
  Else
    StrNumeroTicket = Alineacion("I", IntAnchoTicket - 8, Len("Factura No: " & FormatoTicket(StrNumerodeTicket)), "Factura No: " & FormatoTicket(StrNumerodeTicket)) & Format(DatFechaImpresion, "HH:mm:ss")
  End If
  'Printer.Print StrNumeroTicket
  Print #1, StrNumeroTicket
  
  'Se imprime el numero de la guia - (num. vale)
  If IntImprimeReimprime = 0 Then
    StrNumeroTicket = Alineacion("I", IntAnchoTicket - 8, Len("Guia   No: " & FormatoTicket(nroguia, True)), "Guia   No: " & FormatoTicket(nroguia, True))  'Format(Time, "HH:mm:ss")
  Else
    StrNumeroTicket = Alineacion("I", IntAnchoTicket - 8, Len("Guia   No: " & FormatoTicket(nroguia, True)), "Guia   No: " & FormatoTicket(nroguia, True))
  End If
  'Printer.Print StrNumeroTicket
  Print #1, StrNumeroTicket
Else
  'Ticket Factura o Ticket Boleta
  If IntImprimeReimprime = 0 Then
    StrNumeroTicket = Alineacion("I", IntAnchoTicket - 8, Len("Ticket No: " & FormatoTicket(StrNumerodeTicket)), "Ticket No: " & FormatoTicket(StrNumerodeTicket)) & Format(DatFechaImpresion, "HH:mm:ss") 'Format(Time, "HH:mm:ss")
  Else
    StrNumeroTicket = Alineacion("I", IntAnchoTicket - 8, Len("Ticket No: " & FormatoTicket(StrNumerodeTicket)), "Ticket No: " & FormatoTicket(StrNumerodeTicket)) & Format(DatFechaImpresion, "HH:mm:ss")
  End If
  'Printer.Print StrNumeroTicket
  Print #1, StrNumeroTicket
End If
 '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
    Print #1, LStrRazonSocial
  End If
  
  If Trim(strRUC) <> Empty Then
    Dim LStrRUC As String
     LStrRUC = Alineacion("I", IntAnchoTicket, Len("RUC    :" & strRUC), "RUC    :" & strRUC)
     'Printer.Print LStrRUC
     Print #1, LStrRUC
  End If
       
  If Trim(StrDireccion) <> Empty Then
    Dim LstrDireccion As String
    LstrDireccion = Alineacion("I", IntAnchoTicket, Len("DIRECC.:" & StrDireccion), "DIRECC :" & StrDireccion)
    'Printer.Print LstrDireccion
    Print #1, 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
    Print #1, 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
       Print #1, 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
       Print #1, 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
    Print #1, 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
        Print #1, 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
            Print #1, 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
        Print #1, 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
  Print #1, StrTotal
  
  ' Parte que Imprimie el Tipo de Pago
          
  Dim StrTipoPagoImp As String
  If Trim(strTIPOPAGO) = GC_PAGOEFECTIVO Or Trim(strTIPOPAGO) = GC_CONTADOADELANTO 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 Or Trim(strTIPOPAGO) = GC_CONTADOADELANTO 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_CONTADOADELANTO Or Trim(strTIPOPAGO) = GC_PAGOEFECTIVO Then
  'If Trim(strTIPOPAGO) = GC_VALESCRED Or Trim(strTIPOPAGO) = GC_CONTADOADELANTO Or Trim(strTIPOPAGO) = GC_PAGOEFECTIVO Then
      Dim LTotalvales As Integer
      
      If Trim(strTIPOPAGO) = GC_VALESCRED Then
         StrTipoPagoImp = StrTipoPagoImp & Alineacion("I", 5, Len("VALE:"), "VALE:")
      End If
      If Trim(strTIPOPAGO) = GC_CONTADOADELANTO Then
         'Printer.Print StrTipoPagoImp
         Print #1, StrTipoPagoImp
         StrTipoPagoImp = Space(17) & Alineacion("I", 5, Len("VALE:"), "VALE:")
      End If
      If Trim(strTIPOPAGO) = GC_PAGOEFECTIVO Then
         'Printer.Print StrTipoPagoImp
         Print #1, StrTipoPagoImp
         StrTipoPagoImp = Space(17) & Alineacion("I", 5, Len("VALE:"), "VALE:")
      End If
            
            
      If Not RsDetalleVales Is Nothing Then
        If Not RsDetalleVales.EOF Then
           LTotalvales = RsDetalleVales.RecordCount
         
           RsDetalleVales.MoveFirst
          
           For i = 1 To LTotalvales
               If i = 1 Then
                 StrTipoPagoImp = StrTipoPagoImp & Alineacion("I", IntAnchoTicket - 17 - 5, Len(Str(RsDetalleVales!Número_de_Vale)), Str(RsDetalleVales!Número_de_Vale))
               Else
                 StrTipoPagoImp = Space(17) & Alineacion("I", 5, Len("VALE:"), "VALE:") & Alineacion("I", IntAnchoTicket - 17 - 5, Len(Str(RsDetalleVales!Número_de_Vale)), Str(RsDetalleVales!Número_de_Vale))
               End If
               'Printer.Print StrTipoPagoImp
               Print #1, StrTipoPagoImp
               RsDetalleVales.MoveNext
           Next
        End If
       End If
  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
   
   
  ' Esta Validaciónde sirve para que no se repita el ultimo Item de Vales
  If Trim(strTIPOPAGO) <> GC_VALESCRED And Trim(strTIPOPAGO) <> GC_CONTADOADELANTO And Trim(strTIPOPAGO) <> GC_PAGOEFECTIVO Then
    If Trim(StrTipoPagoImp) <> "VALE:" Then
       'Printer.Print StrTipoPagoImp
       Print #1, StrTipoPagoImp
    End If
  End If
      
      
  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
       Print #1, LstrDatosAdicionales
    End If
    
  ' Si Fue al Credito se tiene que imprimir la Placa si es que Hubiese
    
    If Trim(strTIPOPAGO) = GC_VALESCRED Or Trim(strTIPOPAGO) = GC_PAGOEFECTIVO 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
       Print #1, 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
  Print #1, 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
    Print #1, 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
    Print #1, LFoot1
  End If
  If Trim(LFoot2) <> Empty Then
    'Printer.Print LFoot2
    Print #1, LFoot2
  End If
  If Trim(LFoot3) <> Empty Then
    'Printer.Print LFoot3
    Print #1, LFoot3
  End If
  If Trim(LFoot4) <> Empty Then
    'Printer.Print LFoot4
    Print #1, LFoot4
  End If
  If Trim(LFoot5) <> Empty Then
    'Printer.Print LFoot5
    Print #1, LFoot5
  End If
  If Trim(LFoot6) <> Empty Then
    'Printer.Print LFoot6
    Print #1, LFoot6
  End If
  If Trim(LFoot7) <> Empty Then
    'Printer.Print LFoot7
    Print #1, LFoot7
  End If
  
  If Trim(LFoot8) <> Empty Then
    'Printer.Print LFoot8
    Print #1, LFoot8
  End If
  If Trim(LFoot9) <> Empty Then
    'Printer.Print LFoot9
    Print #1, LFoot9
  End If
  If Trim(LFoot10) <> Empty Then
    'Printer.Print LFoot10
    Print #1, LFoot10
  End If
              
  For i = 1 To GintSaltaLineas
    'Printer.Print Space(10)
    Print #1, Space(10)
  Next
                            
  'Printer.EndDoc
  
  Print #1, ""   ' El Primer Print no es Tomado en Cuenta
  Print #1, ""   ' A partir del Primero se toman en cuenta
  Print #1, ""
  Print #1, ""
  
  Call corta_ticket(GstrDispositivo)
  Close #1
  
  Exit Sub

error:
    MsgBox "Error Nº " + CStr(Err.Number) + Chr(13) + "Descripcion: " + Err.Description _
                   + Chr(13) + "Dispositivo  ------->   " + GstrDispositivo, vbCritical, "Error"
                                                            
    Exit Sub

End Sub

Function Alineacion(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"
        Alineacion = Space(Tam_Campo - log_text) + cont_text
   Case "I"
        Alineacion = cont_text + Space(Tam_Campo - log_text)
   Case "C"
        Alineacion = Space((Tam_Campo - log_text) / 2) + cont_text + Space((Tam_Campo - log_text) / 2)
 End Select

'Controlando el ancho del texto
  If Len(Alineacion) > 40 Then
     Alineacion = Mid(Alineacion, 1, 40)
  ElseIf Len(Alineacion) < 40 Then
     If Tam_Campo = 40 Then
        Alineacion = Left(Alineacion + Space(40), 40)
     End If
  End If

End Function

Public Sub ObtenerConfiguracionTicket()
  Dim LrsDatosTicket As ADODB.Recordset
  Set MobjVentasGeneral = New DB_OP_FACTURACION.C_VENTASGENERAL
  Set LrsDatosTicket = MobjVentasGeneral.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
  Set MobjVentasGeneral = Nothing
  
  Obtener_Datos_Impresora
    
End Sub

Public Function Obtener_Datos_Impresora() As ADODB.Recordset
  Dim LrsDatosImpresora As ADODB.Recordset
  Set MobjVentasCombustibles = New DB_OP_FACTURACION.C_VENTASPLAYA
  Set LrsDatosImpresora = MobjVentasCombustibles.Cargar_Datos_Impresora(GstrPuntodeVenta)
        
  If Not LrsDatosImpresora.EOF Then
          
     If Not IsNull(LrsDatosImpresora!JUMPLINES) Then
        GintSaltaLineas = LrsDatosImpresora!JUMPLINES
     End If
          
     If Not IsNull(LrsDatosImpresora!WIDELINES) Then
        GintAnchoLineas = LrsDatosImpresora!WIDELINES
     End If
     
     If Not IsNull(LrsDatosImpresora!IDCUTPAPER) Then
        GstrCortarPapel = LrsDatosImpresora!IDCUTPAPER
     End If
  End If
    
  Set LrsDatosImpresora = Nothing
  Set MobjVentasCombustibles = Nothing
  
End Function

Public Function FormatoTicket(Strnroticket As String, _
                                    Optional EsGuia As Boolean = False) As String
   ' Esta parte ha sido modificado por Jorge Illescas. 25-04-2005
'   FormatoTicket = Format(Strnroticket, "0##-#######")
   'Modificacion-----------------------------------------------------------
   If EsGuia = True Then
      FormatoTicket = Format(Strnroticket, "001-#######")      'Formato Guia
   Else
      '@ Ultima modificacion..............................................................
      If EsValeInterno = True Then '......................................................
         FormatoTicket = Format(Strnroticket, "000-#######")   'Formato Vale Interno......
      Else '..............................................................................
      '@ .................................................................................
         FormatoTicket = Format(Strnroticket, "0##-#######")   'Formato Factuta, Boleta
      End If '............................................................................
   End If
End Function

Public Sub Imprimir_Ticketcstore(strTipoDoc As String, 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, DBLCASHPEN, DBLCASHUSD, _
                                DBLRETURNPEN, DBLRETURNUSD, _
                                ByVal RsDetalleTemporal As ADODB.Recordset, _
                                strTIPOPAGO As String, IntTurno As Integer, _
                                strCajero As String, Optional DBLBonus As Double, _
                                Optional StrPlaca As String, Optional ByVal rstarjetas As ADODB.Recordset, _
                                Optional IntImprimeReimprime As Integer = 0, Optional DatFechaImpresion As Date, _
                                Optional RsDetalleVales As ADODB.Recordset)
                           
' 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
  Dim i As Integer
' 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))
 
'------Modificado para Mi Mercado - Trujillo ----------------------------------
'------Autor: Jorge Illescas

'ABRIR GAVETA
'    If IntImprimeReimprime = 0 Then
'        Call corta_ticket
'        Call abrir_gaveta
'
'    End If
'------------------------------------------------------------------------------
  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
  
  
If IntImprimeReimprime = 1 Then
     GstrSimboloMonedaBase = GstrSimboloMonedaBaseModGen
     GstrSimboloMonedaExt = GstrSimboloMonedaExtModGen
  End If
  
  ' Imprimir Numero de Máquina Registradora
  
  Dim strMaquinaReg As String
  If IntImprimeReimprime = 0 Then
     strMaquinaReg = Alineacion("I", IntAnchoTicket - 10, Len("Maq.Regist.No: " & GStrMaquinaReg), "Maq.Regist.No: " & GStrMaquinaReg) & Date
  Else
     strMaquinaReg = Alineacion("I", IntAnchoTicket - 10, Len("Maq.Regist.No: " & GStrMaquinaReg), "Maq.Regist.No: " & GStrMaquinaReg) & Format(DatFechaImpresion, "dd/mm/yyyy")
  End If
  Printer.Print strMaquinaReg
 
  ' Imprimir el Número del Ticket
 
  Dim StrNumeroTicket As String
  
  If IntImprimeReimprime = 0 Then
    StrNumeroTicket = Alineacion("I", IntAnchoTicket - 8, Len(strTipoDoc & ":" & FormatoTicket(StrNumerodeTicket)), strTipoDoc & ":" & FormatoTicket(StrNumerodeTicket)) & Format(Time, "HH:mm:ss")
  Else
    StrNumeroTicket = Alineacion("I", IntAnchoTicket - 8, Len(strTipoDoc & ":" & FormatoTicket(StrNumerodeTicket)), strTipoDoc & ":" & FormatoTicket(StrNumerodeTicket)) & Format(DatFechaImpresion, "HH:mm:ss")
  End If
  
  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 Or Trim(strTIPOPAGO) = GC_VALESCRED Then
    If Trim(strTIPOPAGO) = GC_VALESCRED Then
        StrTipoPagoImp = Alineacion("I", 17, Len("CREDITO          "), "CREDITO          ")
    End If
    

If Trim(strTIPOPAGO) = GC_VALESCRED Or Trim(strTIPOPAGO) = GC_PAGOEFECTIVO Then
      Dim LTotalvales As Integer
      StrTipoPagoImp = StrTipoPagoImp & Alineacion("I", 5, Len("VALE:"), "VALE:")
      
      If Not RsDetalleVales Is Nothing Then
         If Not RsDetalleVales.EOF Then
           LTotalvales = RsDetalleVales.RecordCount
           RsDetalleVales.MoveFirst
           
           For i = 1 To LTotalvales
              If i = 1 Then
                 StrTipoPagoImp = StrTipoPagoImp & Alineacion("I", IntAnchoTicket - 17 - 5, Len(Str(RsDetalleVales!Número_de_Vale)), Str(RsDetalleVales!Número_de_Vale))
              Else
                 StrTipoPagoImp = Space(17) & Alineacion("I", 5, Len("VALE:"), "VALE:") & Alineacion("I", IntAnchoTicket - 17 - 5, Len(Str(RsDetalleVales!Número_de_Vale)), Str(RsDetalleVales!Número_de_Vale))
              End If
              Printer.Print StrTipoPagoImp
              RsDetalleVales.MoveNext
           Next
         End If
     End If
      
  End If
  
    If Len(Trim(StrTipoPagoImp)) > 0 Then
       If Trim(StrTipoPagoImp) <> "VALE:" Then
        Printer.Print StrTipoPagoImp
       End If
    End If

Else        'si es pago tarjetas o pagos varios
   If Not rstarjetas Is Nothing Then
    If rstarjetas.RecordCount > 0 Then  'HAY PAGO CON TARJETAS
        StrTipoPagoImp = Alineacion("I", 17, Len("TARJETA           "), "TARJETA          ")
        Printer.Print StrTipoPagoImp
        ' Se Tiene que Imprimir el Número de la Tarjeta
        Dim LSTR_NOMBRET As String
        Dim LSTR_NUMEROT As String
        Dim LSTR_MONEDA As String
        Dim LDBL_PENT As Double
        Dim LDBL_USDT As Double
        
        Do While Not rstarjetas.EOF
            LSTR_MONEDA = rstarjetas!curyid
            LSTR_NOMBRET = Trim(rstarjetas!DESCR)
            LSTR_NUMEROT = Trim(rstarjetas!NBRCARD)
            LDBL_PENT = rstarjetas!TOTCARDpen
            LDBL_USDT = rstarjetas!TOTCARDUSD
            StrTipoPagoImp = Alineacion("I", 11, Len(LSTR_NOMBRET), LSTR_NOMBRET)
            StrTipoPagoImp = StrTipoPagoImp & Alineacion("I", 16, Len(LSTR_NUMEROT), LSTR_NUMEROT)

            If LSTR_MONEDA = GstrCodMonedaBase Then
                StrTipoPagoImp = StrTipoPagoImp & Alineacion("I", 4, Len(GstrSimboloMonedaBase & ":"), GstrSimboloMonedaBase & ":")
                StrTipoPagoImp = StrTipoPagoImp & Alineacion("D", 8, Len(GFormatodeNumero(LDBL_PENT, GintDecResultado)), GFormatodeNumero(LDBL_PENT, GintDecResultado))
            Else
                StrTipoPagoImp = StrTipoPagoImp & Alineacion("I", 4, Len(GstrSimboloMonedaExt & " :"), GstrSimboloMonedaExt & " :")
                StrTipoPagoImp = StrTipoPagoImp & Alineacion("D", 8, Len(GFormatodeNumero(LDBL_USDT, GintDecResultado)), GFormatodeNumero(LDBL_USDT, GintDecResultado))
            End If
            Printer.Print StrTipoPagoImp
            rstarjetas.MoveNext
        Loop
     End If
    End If
End If

  Dim LstrDatosAdicionales As String
        
  ' Si Fue al Credito se tiene que imprimir la Placa si es que Hubiese
    
    If Trim(strTIPOPAGO) = GC_VALESCRED Or Trim(strTIPOPAGO) = GC_PAGOEFECTIVO 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 Efectivo Soles y dolares
    Dim Strefectivopagado As String
    If DBLCASHPEN <> 0 Or DBLCASHUSD <> 0 Then
        Strefectivopagado = Alineacion("I", 10, Len("EFECTIVO: "), "EFECTIVO: ")
        If DBLCASHPEN > 0 Then
            Strefectivopagado = Strefectivopagado & Alineacion("I", 3, Len(GstrSimboloMonedaBase & " :"), GstrSimboloMonedaBase & " :")
            Strefectivopagado = Strefectivopagado & Alineacion("I", 10, Len(GFormatodeNumero(Str(DBLCASHPEN), GintDecResultado)), GFormatodeNumero(Str(DBLCASHPEN), GintDecResultado))
        End If
        If DBLCASHUSD > 0 Then
            Strefectivopagado = Strefectivopagado & Alineacion("I", 3, Len(GstrSimboloMonedaExt & " :"), GstrSimboloMonedaExt & " :")
            Strefectivopagado = Strefectivopagado & Alineacion("I", 10, Len(GFormatodeNumero(Str(DBLCASHUSD), GintDecResultado)), GFormatodeNumero(Str(DBLCASHUSD), GintDecResultado))
        End If
        Printer.Print Strefectivopagado
    End If
  
  ' Imprimir Vuelto Soles y dolares
    Dim Strvuelto As String
    If DBLRETURNPEN <> 0 Or DBLRETURNUSD <> 0 Then
        Strvuelto = Alineacion("I", 10, Len("VUELTO: "), "VUELTO: ")
        If DBLRETURNPEN > 0 Then
            Strvuelto = Strvuelto & Alineacion("I", 3, Len(GstrSimboloMonedaBase & " :"), GstrSimboloMonedaBase & " :")
            Strvuelto = Strvuelto & Alineacion("I", 10, Len(GFormatodeNumero(Str(DBLRETURNPEN), GintDecResultado)), GFormatodeNumero(Str(DBLRETURNPEN), GintDecResultado))
        End If
        If DBLRETURNUSD > 0 Then
            Strvuelto = Strvuelto & Alineacion("I", 3, Len(GstrSimboloMonedaExt & " :"), GstrSimboloMonedaExt & " :")
            Strvuelto = Strvuelto & Alineacion("I", 10, Len(GFormatodeNumero(Str(DBLRETURNUSD), GintDecResultado)), GFormatodeNumero(Str(DBLRETURNUSD), GintDecResultado))
        End If
        Printer.Print Strvuelto
    End If
  
  ' Imprimir Turno 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", 7, Len("CAJERO:"), "CAJERO:")
  StrDatosVendedor = StrDatosVendedor & Alineacion("I", IntAnchoTicket - 6 - 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
                      
'  For i = 1 To GintSaltaLineas
'    Printer.Print Space(10)
'  Next
  
'------Modificado para Mi Mercado - Trujillo ----------------------------------
'------Autor: Jorge Illescas
  Printer.NewPage
  
  Printer.Print ""  ' El Primer Print no es Tomado en Cuenta
  Printer.Print ""  ' A partir del Primero se toman en cuenta
  Printer.Print ""
  Printer.Print ""
  For i = 1 To GintSaltaLineas
    Printer.Print Space(10)
  Next
'  Call abrir_gaveta
'  Call corta_ticket
' -----------------------------------------------------------------------------
  Printer.EndDoc
  
End Sub

Sub abrir_gaveta(dispositivoDisply As String)
On Error GoTo error
    'Gaveta Mi Mercado
'    Open dispositivoDisply For Output As #1
    Print #1, Chr(27) + "p" + Chr(0) + Chr(25) + Chr(250)
'    Close #1
    DoEvents
    
Exit Sub
error:
    MsgBox "Error Nº " + CStr(Err.Number) + Chr(13) + "Descripcion: " + Err.Description + Chr(13) + _
            Chr(10) + Chr(10) + "Dispositivo  --->  " + dispositivoDisply, vbCritical, "Error"
    Exit Sub
    
End Sub

