Publicado el Dejar un comentario

Formato de tickets para credito

' Mybusiness POS v. 2011
Sub Main()
Dim rstVenta

Set rstVenta = CreaRecordSet( _
"SELECT * FROM ventas WHERE venta = " & Documento, Ambiente.Connection )

If rstVenta("cobranza") > 0 Then
ImprimeTicket
ImprimeTicket
Else
ImprimeTicket
End If

End Sub

Sub ImprimeTicket

'If MsgBox( "Desea imprimir el ticket", vbQuestion + vbYesNo + vbDefaultButton2 ) = vbNo Then
' Exit Sub
'End If

' Creamos el recordSet del encabezado de la venta
Set rstEncabezado = Rst("SELECT * FROM ventas WHERE venta = " & prn.Documento, Ambiente.Connection )

' Verificamos que la venta que se desea imprimir exista
if rstEncabezado.EOF Then
MsgBox "No existe la venta seleccionada",vbInformation
Exit Sub
end if

' Creamos el recordSet de las partidas que componen la venta
Set rstPartidas = Rst("SELECT partvta.iespecial, partvta.articulo, prods.precio1,prods.descrip, partvta.precio, partvta.cantidad, partvta.descuento, partvta.impuesto, partvta.preciobase, partvta.prdescrip FROM partvta INNER JOIN prods ON prods.articulo = partvta.articulo WHERE venta =" & rstEncabezado.fields("Venta"), Ambiente.Connection )

' Traemos todos los datos del cliente
Set rstCliente = Rst("SELECT * FROM clients WHERE cliente = '" & rstEncabezado.fields("Cliente") & "'", Ambiente.Connection )

' Traemos los datos de cobranza si es que existe
Set rstCobranza = Rst( "SELECT * FROM cobranza WHERE venta = " & rstEncabezado("venta"), Ambiente.Connection )

cSalida = ""

'Esto abre el cajon de dinero
if Ambiente.rstEstacion("Cajon") <> 0 Then
cSalida = cSalida & Chr(27) & Chr(112) & Chr(48) & Chr(20) & Chr(20)
cSalida = cSalida & Chr(7)
' Sansung de inyección
' cSalida = cSalida & Chr(27) & Chr(112) & Chr(48) & Chr(49)
end if

cSalida = cSalida & "" & Ambiente.Empresa & Chr(13) & Chr(10)
cSalida = cSalida & "" & Trim( Ambiente.Direccion1 ) & Chr(13) & Chr(10)
cSalida = cSalida & "" & Trim( Ambiente.Direccion2 ) & Chr(13) & Chr(10)
cSalida = cSalida & "" & Trim( Ambiente.Telefonos ) & Chr(13) & Chr(10)
cSalida = cSalida & "" & Trim( rstEncabezado("Usuario") ) & " " & Trim( Ambiente.Estacion ) & " Ticket: " & rstEncabezado("No_referen") & Chr(13) & Chr(10)

cSalida = cSalida & Formato( rstEncabezado("f_emision"),"dd-MM-yyyy" ) & " Hora: " & rstEncabezado("usuHora") & Chr(13) & Chr(10)
cSalida = cSalida & Trim( rstCliente("cliente") ) & " " & Trim( rstCliente("Nombre") ) & Chr(13) & Chr(10)
cSalida = cSalida & Ambiente.rstEstacion("leyendacomodin") & " " & rstEncabezado("comodin") & Chr(13) & Chr(10)
cSalida = cSalida & "Vendedor: " & rstEncabezado("Vend") & Chr(13) & Chr(10)
cSalida = cSalida & "CANT. DESCRIPCION PRECIO IMPORTE" & Chr(13) & Chr(10)

nImporteTotal = 0
nImpuesto = 0
nCantidadTotal = 0
nDescuentoTotal = 0
nImporteOrigen = 0

'PrintText cSalida

If Ambiente.Tag <> "HTML" Then

If Ambiente.rstEstacion("ticket") <> 0 Then
if clAt( "LPT", Ambiente.rstEstacion("pticket") ) > 0 Then
Out Trim(Ambiente.rstEstacion("pticket")), cSalida
else
if Ambiente.Ticket.PortOpen Then
Ambiente.Ticket.Output = cSalida
end if
end if
End if

cSalida = ""

End If

While Not rstPartidas.EOF

nPrecio = rstPartidas("Precio") * ( 1 - (rstPartidas("Descuento")/100) ) * (1 + ( rstPartidas("impuesto") / 100 ) )
nPrecioBase = Round( rstPartidas("PrecioBase") * (1 + ( rstPartidas("impuesto") / 100 ) ), 2)
nDescuento = (nPrecioBase - nPrecio) * rstPartidas("Cantidad")

If nPrecioBase > 0 Then
nDescPor = ( nPrecio / nPrecioBase ) * 100
Else
nDescPor = 0
End If

nDescuentoTotal = nDescuentoTotal + nDescuento
nImporte = nPrecio * rstPartidas("Cantidad")

nCantidad = PadL(Formato( rstPartidas("cantidad"), "##,##0.00" ),3)

cDescrip = Mid( rstPartidas("Descrip"), 1, 16 )
nCantidadTotal = nCantidadTotal + rstPartidas("cantidad")

nImporteTotal = nImporteTotal + nImporte
nImpuesto = nImpuesto + ( nImporteTotal * ( rstPartidas("impuesto") / 100 ) )

nPrecio = 0
nIEspecial = rstPartidas("Precio") * (Val2(rstPartidas("iespecial")) / 100)
nIVa = rstPartidas("Precio") * (rstPartidas("impuesto") / 100)
nPrecio = rstPartidas("Precio") + nIEspecial + nIVa

cPrecio = PadL(Trim(Formato( nPrecio, Ambiente.FDinero )),8)
cImporte = PadL(Trim(Formato( Round( nPrecio, 2) * rstPartidas("cantidad") * (1 - (rstPartidas("descuento") / 100)), Ambiente.FDinero )),8)
nPrecioOrigen = Round( rstPartidas("PrecioBase") * (1 + ( rstPartidas("impuesto") / 100 )),2) * rstPartidas("cantidad")
nImporteOrigen = nImporteOrigen + nPrecioOrigen

strSalida = PadL(Formato( nCantidad, Ambiente.Formato ),2) & " " & cDescrip & " " & cPrecio & " " & cImporte

'If rstPartidas("Precio1") > rstPartidas("Precio") Then
' nDescuentoPartida = ( rstPartidas("Precio1") - rstPartidas("Precio") ) * nCantidad
' strSalida = strSalida & " Descuento: " & Formato( nDescuentoPartida, "##,##0.00" ) & vbCrLf
'End If

cSalida = cSalida & strSalida & Chr(13) & Chr(10)

If Not clEmpty( cNull( rstPartidas("prdescrip") ) ) Then
cSalida = cSalida & Trim( rstPartidas("prdescrip") ) & vbCrLf
End If

rstPartidas.MoveNext
Wend

'PrintText cSalida

If Ambiente.Tag <> "HTML" Then

If Ambiente.rstEstacion("ticket") <> 0 Then
if clAt( "LPT", Ambiente.rstEstacion("pticket") ) > 0 Then
Out Trim(Ambiente.rstEstacion("pticket")), cSalida
else
if Ambiente.Ticket.PortOpen Then
Ambiente.Ticket.Output = cSalida
end if
end if
End if

cSalida = ""

End If

cSalida = cSalida & Chr(13) & Chr(10)
cSalida = cSalida & Chr(13) & Chr(10)

cSalida = cSalida & " Importe: " & PadL(Formato( Val2(rstEncabezado("importe")), Ambiente.FDinero ),10) & Chr(13) & Chr(10)
cSalida = cSalida & " Impuesto: " & PadL(Formato( Val2(rstEncabezado("impuesto")), Ambiente.FDinero ),10) & Chr(13) & Chr(10)

if Val2(rstEncabezado("iespecial")) > 0 Then
cSalida = cSalida & " Impuesto 2%: " & PadL(Formato( Val2(rstEncabezado("iespecial")), Ambiente.FDinero ),10) & Chr(13) & Chr(10)
end if

if nDescuentoTotal > 0 Then
cSalida = cSalida & " Importe: " & PadL(Formato( nImporteOrigen, Ambiente.FDinero ),10) & Chr(13) & Chr(10)
cSalida = cSalida & " Descuento: " & PadL(Formato( nDescuentoTotal, Ambiente.FDinero ),10) & Chr(13) & Chr(10)
end if

cSalida = cSalida & " Importe: " & PadL(Formato( Val2(rstEncabezado("impuesto")) + Val2(rstEncabezado("importe")) + Val2(rstEncabezado("iespecial")), Ambiente.FDinero ),10) & Chr(13) & Chr(10)
cSalida = cSalida & " Redondeo: " & PadL(Formato( Val2(rstEncabezado("Redondeo")), Ambiente.FDinero ),10) & Chr(13) & Chr(10)
cSalida = cSalida & Chr(13) & Chr(10)
cSalida = cSalida & PadL(Formato( nCantidadTotal, "###,###" ),4) & " ----- TOTALES ---- " & PadL(Formato( (Val2(rstEncabezado("impuesto")) + Val2(rstEncabezado("importe")) + Val2(rstEncabezado("iespecial")) + Val2(rstEncabezado("redondeo"))), Ambiente.FDinero ),10) & Chr(13) & Chr(10)

nPagoTotal = Val2(rstEncabezado("Pago1")) + Val2(rstEncabezado("Pago2")) + Val2(rstEncabezado("Pago3"))

if rstEncabezado("Pago1") > 0 Then
cSalida = cSalida & " Pago en " & rstEncabezado("Concepto1") & " " & PadL(Formato( Val2(rstEncabezado("Pago1")), Ambiente.FDinero ),9) & Chr(13) & Chr(10)
end if

if rstEncabezado("Pago2") > 0 Then
cSalida = cSalida & " Pago en " & rstEncabezado("Concepto2") & " " & PadL(Formato( Val2(rstEncabezado("Pago2")), Ambiente.FDinero ),9) & Chr(13) & Chr(10)
end if

if rstEncabezado("Pago3") > 0 Then
cSalida = cSalida & " Pago en " & rstEncabezado("Concepto3") & " " & PadL(Formato( Val2(rstEncabezado("Pago3")), Ambiente.FDinero ),9) & Chr(13) & Chr(10)
end if

Eventos

if nPagoTotal < (Val2(rstEncabezado("impuesto")) + Val2(rstEncabezado("importe")) + Val2(rstEncabezado("iespecial")) + Val2(rstEncabezado("redondeo"))) Then cSalida = cSalida & " Credito: " & PadL(Formato( Val2(rstEncabezado("impuesto")) + Val2(rstEncabezado("iespecial")) + Val2(rstEncabezado("importe")) + Val2(rstEncabezado("redondeo")) - nPagoTotal, Ambiente.FDinero ),9) & Chr(13) & Chr(10) cSalida = cSalida & "Debo y pagaré la cantidad de: " & PadL(Formato( Val2(rstEncabezado("impuesto")) + Val2(rstEncabezado("iespecial")) + Val2(rstEncabezado("importe")) + Val2(rstEncabezado("redondeo")) - nPagoTotal, Ambiente.FDinero ),9) & vbCrLf cSalida = cSalida & vbCrLf cSalida = cSalida & "______________________________" & vbCrLf cSalida = cSalida & "Nombre: " & vbCrLf else cSalida = cSalida & " Cambio: " & PadL(Formato( nPagoTotal - Val2(rstEncabezado("impuesto")) - Val2(rstEncabezado("iespecial")) - Val2(rstEncabezado("importe")) - Val2(rstEncabezado("redondeo")), Ambiente.FDinero ),9) & Chr(13) & Chr(10) end if Set rstMoneda = CreaRecordSet( "SELECT * FROM monedas WHERE moneda = '" & rstEncabezado("moneda") & "'", Ambiente.Connection ) cSalida = cSalida & Chr(13) & Chr(10) cSalida = cSalida & Chr(13) & Chr(10) cSalida = cSalida & Letra( Val2(rstEncabezado("impuesto")) + Val2(rstEncabezado("importe")) + Val2(rstEncabezado("iespecial")), Trim(rstMoneda("Descrip")), True,rstMoneda("Nombre") ) & Chr(13) & Chr(10) cSalida = cSalida & Chr(13) & Chr(10) cSalida = cSalida & Chr(13) & Chr(10) cSalida = cSalida & Chr(13) & Chr(10) cSalida = cSalida & "***** GRACIAS POR SU COMPRA *****" & Chr(13) & Chr(10) cSalida = cSalida & Chr(13) & Chr(10) cSalida = cSalida & Chr(13) & Chr(10) cSalida = cSalida & Chr(13) & Chr(10) cSalida = cSalida & Chr(13) & Chr(10) cSalida = cSalida & Chr(13) & Chr(10) cSalida = cSalida & Chr(13) & Chr(10) cSalida = cSalida & Chr(13) & Chr(10) cSalida = cSalida & Chr(13) & Chr(10) ' Esto manda un corte de papel 'PrintText cSalida if Ambiente.rstEstacion("ticketcorte") <> 0 Then
cSalida = cSalida & Chr(27) & Chr(105)
end if

If Ambiente.Tag = "HTML" Then

Ambiente.Tag = ""

cSalida = Replace( cSalida, Chr(13) & Chr(10), "
" )
cSalida = "

" & cSalida & "

"
CreaHtml "", (cSalida)

Else

if Ambiente.rstEstacion("ticket") <> 0 Then
if clAt( "LPT", Ambiente.rstEstacion("pticket") ) > 0 Then
Out Trim(Ambiente.rstEstacion("pticket")), cSalida
else
if Ambiente.Ticket.PortOpen Then
Ambiente.Ticket.Output = cSalida
end if
end if
End if

End If

End Sub

Publicado el 6 comentarios

Formato de Tickets

' Mybusiness POS v. 2011
Sub Main()
Dim rstSeries

'Ambiente.Torreta.PortOpen = False
'Ambiente.Torreta.Settings = "9600,N,8,1"
'Ambiente.Torreta.RTSEnable = True
'Ambiente.Torreta.PortOpen = True
'Ambiente.Torreta.CommPort = 1
'Ambiente.Torreta.OutPut = "ABC"
'Eventos
'Ambiente.Torreta.PortOpen = False

'cLineaNueva = Chr(13)
cLineaNueva = Chr(13) & Chr(10)

'If MsgBox( "Desea imprimir el ticket", vbQuestion + vbYesNo + vbDefaultButton2 ) = vbNo Then ' en caso de que la impresión sea opcional, descomentamos las Tres líneas, quitando el apostrofe.
' Exit Sub
'End If

' Creamos el recordSet del encabezado de la venta
Set rstEncabezado = Rst("SELECT * FROM ventas WHERE venta = " & prn.Documento, Ambiente.Connection )

' Verificamos que la venta que se desea imprimir exista
if rstEncabezado.EOF Then
MsgBox "No existe la venta seleccionada",vbInformation
Exit Sub
end if

' Creamos el recordSet de las partidas que componen la venta
Set rstPartidas = Rst("SELECT partvta.prcantidad, partvta.iespecial, partvta.id_salida, partvta.kit, partvta.articulo, prods.precio1,prods.descrip, partvta.precio, partvta.cantidad, partvta.descuento, partvta.impuesto, partvta.preciobase, partvta.prdescrip, prods.serie FROM partvta INNER JOIN prods ON prods.articulo = partvta.articulo WHERE venta =" & rstEncabezado.fields("Venta"), Ambiente.Connection )

' Traemos todos los datos del cliente
Set rstCliente = Rst("SELECT * FROM clients WHERE cliente = '" & rstEncabezado.fields("Cliente") & "'", Ambiente.Connection )

' Traemos los datos de cobranza si es que existe
Set rstCobranza = Rst( "SELECT * FROM cobranza WHERE venta = " & rstEncabezado("venta"), Ambiente.Connection )

cSalida = ""

'Esto abre el cajon de dinero
if Ambiente.rstEstacion("Cajon") <> 0 Then
cSalida = cSalida & Chr(27) & Chr(112) & Chr(48) & Chr(20) & Chr(20)
cSalida = cSalida & Chr(7)
' Sansung de inyección
' cSalida = cSalida & Chr(27) & Chr(112) & Chr(48) & Chr(49)
end if

Set rstTextTicket = CreaRecordSet( "SELECT * FROM tickettext", Ambiente.Connection )

If rstTextTicket.EOF Then
cSalida = cSalida & "" & Ambiente.Empresa & cLineaNueva
cSalida = cSalida & "" & Trim( Ambiente.Direccion1 ) & cLineaNueva
cSalida = cSalida & "" & Trim( Ambiente.Direccion2 ) & cLineaNueva
cSalida = cSalida & "" & Trim( Ambiente.Telefonos ) & cLineaNueva
Else
'cSalida = cSalida & Replace(rstTextTicket("textheader"), Chr(10), "" )
cSalida = cSalida & rstTextTicket("textheader")
End If

'cSalida = cSalida & "" & Trim( rstEncabezado("Usuario") ) & " " & Trim( Ambiente.Estacion ) & " Ticket: " & rstEncabezado("No_referen") & cLineaNueva
cSalida = cSalida & Trim( rstEncabezado("caja") ) & " " & Trim( rstEncabezado("Usuario") ) & " Ticket: " & rstEncabezado("No_referen") & cLineaNueva

cSalida = cSalida & Formato( rstEncabezado("f_emision"),"dd-MM-yyyy" ) & " Hora: " & rstEncabezado("usuHora") & cLineaNueva

cDatos = "" & rstEncabezado("datos")

If clAt( ":", Trim(cDatos) ) = 1 Then
cSalida = cDatos & cLineaNueva
Else
cSalida = cSalida & Trim( rstCliente("cliente") ) & " " & Trim( rstCliente("Nombre") ) & cLineaNueva
cSalida = cSalida & Trim( rstCliente("calle") ) & " " & Trim( rstCliente("colonia") ) & Chr(13) & Chr(10)
End If

cSalida = cSalida & Ambiente.rstEstacion("leyendacomodin") & " " & rstEncabezado("comodin") & cLineaNueva
'cSalida = cSalida & "Vendedor: " & rstEncabezado("Vend") & cLineaNueva
'msgbox Ambiente.Var9
'cSalida = cSalida & Ambiente.Var9 & vbCrLf
'Ambiente.Var9 = ""

cSalida = cSalida & "CANT. DESCRIPCION CODIGO SUBTOTAL" & cLineaNueva

nImporteTotal = 0
nImpuesto = 0
nCantidadTotal = 0
nDescuentoTotal = 0
nImporteOrigen = 0

'PrintText cSalida

While Not rstPartidas.EOF

nPrecio = rstPartidas("Precio") * ( 1 - (rstPartidas("Descuento")/100) ) * (1 + ( rstPartidas("impuesto") / 100 ) )
nPrecioBase = Round( rstPartidas("PrecioBase") * (1 + ( rstPartidas("impuesto") / 100 ) ), 2)
nDescuento = (nPrecioBase - nPrecio) * rstPartidas("Cantidad")

If nPrecioBase > 0 Then
nDescPor = ( nPrecio / nPrecioBase ) * 100
Else
nDescPor = 0
End If

nDescuentoTotal = nDescuentoTotal + nDescuento
nImporte = nPrecio * rstPartidas("Cantidad")

nCantidad = PadL(Formato( rstPartidas("cantidad") / rstPartidas("prCantidad"), "##,##0" ),3)

cDescrip = PadR( Mid( rstPartidas("Descrip"), 1, 30 ), 30 )
nCantidadTotal = nCantidadTotal + ( rstPartidas("cantidad") / rstPartidas("prcantidad") )

nImporteTotal = nImporteTotal + nImporte
nImpuesto = nImpuesto + ( nImporteTotal * ( rstPartidas("impuesto") / 100 ) )

nPrecio = 0
nIEspecial = rstPartidas("Precio") * (Val2(rstPartidas("iespecial")) / 100)
nIVa = rstPartidas("Precio") * (rstPartidas("impuesto") / 100)
nPrecio = rstPartidas("Precio") + nIEspecial + nIVa

cPrecio = PadL(Trim(Formato( nPrecio, Ambiente.FDinero )),8)
cImporte = PadL(Trim(Formato( Round( nPrecio, 2) * rstPartidas("cantidad") * (1 - (rstPartidas("descuento") / 100)), Ambiente.FDinero )),8)
nPrecioOrigen = Round( rstPartidas("PrecioBase") * (1 + ( rstPartidas("impuesto") / 100 )),2) * rstPartidas("cantidad")
nImporteOrigen = nImporteOrigen + nPrecioOrigen

strSalida = PadL(Formato( nCantidad, "##,##0" ),2) & " " & Trim( rstPartidas("prdescrip") ) & " " & cDescrip & vbCrLf & " P/Pza. " & cPrecio & " " & rstPartidas("articulo") & " " & cImporte

'If rstPartidas("Precio1") > rstPartidas("Precio") Then
' nDescuentoPartida = ( rstPartidas("Precio1") - rstPartidas("Precio") ) * nCantidad
' strSalida = strSalida & " Descuento: " & Formato( nDescuentoPartida, "##,##0.00" ) & vbCrLf
'End If

cSalida = cSalida & strSalida & cLineaNueva

'If Not clEmpty( cNull( rstPartidas("prdescrip") ) ) Then
' cSalida = cSalida & Trim( rstPartidas("prdescrip") ) & vbCrLf
'End If

If rstPartidas("Kit") <> 0 Then
Set rstOpciones = CreaRecordSet( "SELECT partvtaopciones.articulo, prods.descrip FROM partvtaopciones INNER JOIN prods ON partvtaopciones.articulo = prods.articulo WHERE id_salida = " & rstPartidas("id_salida"), Ambiente.Connection )

While Not rstOpciones.EOF
cSalida = cSalida & "Opcion:" & rstOpciones("descrip") & Chr(13) & Chr(10)
rstOpciones.MoveNext
Wend
End If

If rstPartidas("serie") <> 0 Then

If rstEncabezado("ticket") <> 0 Then
Set rstSeries = CreaRecordSet( _
"SELECT * FROM series WHERE documento = 'TICKET' AND numeroDocumento = " & rstEncabezado( "no_referen" ) & " AND articulo = '" & rstPartidas("articulo") & "'", _
Ambiente.Connection )
Else
Set rstSeries = CreaRecordSet( _
"SELECT * FROM series WHERE documento = 'REMISION' AND numeroDocumento = " & rstEncabezado( "no_referen" ) & " AND articulo = '" & rstPartidas("articulo") & "'", _
Ambiente.Connection )
End If

While Not rstSeries.EOF

Serie = Trim( rstSeries("serie") )
Serie = PadL( Serie, 11 )
Serie = Mid( Serie, Len( Serie ) - 10 )

cSalida = cSalida & "SERIE: " & Serie & vbCrLf
rstSeries.MoveNext
Wend

End If

rstPartidas.MoveNext

Wend

'PrintText cSalida

cSalida = cSalida & cLineaNueva
cSalida = cSalida & cLineaNueva

'cSalida = cSalida & " Importe: " & PadL(Formato( Val2(rstEncabezado("importe")), Ambiente.FDinero ),10) & cLineaNueva
'cSalida = cSalida & " Impuesto: " & PadL(Formato( Val2(rstEncabezado("impuesto")), Ambiente.FDinero ),10) & cLineaNueva

'if Val2(rstEncabezado("iespecial")) > 0 Then
' cSalida = cSalida & " Impuesto 2%: " & PadL(Formato( Val2(rstEncabezado("iespecial")), Ambiente.FDinero ),10) & cLineaNueva
'end if

if nDescuentoTotal > 0 Then
'cSalida = cSalida & " Importe: " & PadL(Formato( nImporteOrigen, Ambiente.FDinero ),10) & cLineaNueva
'cSalida = cSalida & " Descuento: " & PadL(Formato( nDescuentoTotal, Ambiente.FDinero ),10) & cLineaNueva
end if

'cSalida = cSalida & " Importe: " & PadL(Formato( Val2(rstEncabezado("impuesto")) + Val2(rstEncabezado("importe")) + Val2(rstEncabezado("iespecial")), Ambiente.FDinero ),10) & cLineaNueva
'cSalida = cSalida & " Redondeo: " & PadL(Formato( Val2(rstEncabezado("Redondeo")), Ambiente.FDinero ),10) & cLineaNueva
cSalida = cSalida & cLineaNueva
cSalida = cSalida & PadL(Formato( nCantidadTotal, "###,###" ),4) & " ----- TOTALES ---- " & PadL(Formato( (Val2(rstEncabezado("impuesto")) + Val2(rstEncabezado("importe")) + Val2(rstEncabezado("iespecial")) + Val2(rstEncabezado("redondeo"))), "$" & Ambiente.FDinero ),10) & cLineaNueva

nPagoTotal = Val2(rstEncabezado("Pago1")) + Val2(rstEncabezado("Pago2")) + Val2(rstEncabezado("Pago3"))

if rstEncabezado("Pago1") > 0 Then
cSalida = cSalida & " Pago en " & rstEncabezado("Concepto1") & " " & PadL(Formato( Val2(rstEncabezado("Pago1")), "$" & Ambiente.FDinero ),9) & cLineaNueva
end if

if rstEncabezado("Pago2") > 0 Then
cSalida = cSalida & " Pago en " & rstEncabezado("Concepto2") & " " & PadL(Formato( Val2(rstEncabezado("Pago2")), "$" & Ambiente.FDinero ),9) & cLineaNueva
end if

if rstEncabezado("Pago3") > 0 Then
cSalida = cSalida & " Pago en " & rstEncabezado("Concepto3") & " " & PadL(Formato( Val2(rstEncabezado("Pago3")), "$" & Ambiente.FDinero ),9) & cLineaNueva
end if

Eventos

If rstEncabezado("Comision") > 0 Then
cSalida = cSalida & " Comisión: " & PadL(Formato( Val2(rstEncabezado("comision")), "$" & Ambiente.FDinero ),10) & cLineaNueva
End If

nComision = rstEncabezado("comision")

if nPagoTotal < (Val2(rstEncabezado("impuesto")) + Val2(rstEncabezado("importe")) + Val2(rstEncabezado("iespecial")) + Val2(rstEncabezado("redondeo"))) Then cSalida = cSalida & " Credito: " & PadL(Formato( Val2(rstEncabezado("impuesto")) + Val2(rstEncabezado("iespecial")) + Val2(rstEncabezado("importe")) + Val2(rstEncabezado("redondeo")) - nPagoTotal, "$" & Ambiente.FDinero ),9) & cLineaNueva else cSalida = cSalida & " Cambio: " & PadL(Formato( nPagoTotal - nComision - Val2(rstEncabezado("impuesto")) - Val2(rstEncabezado("iespecial")) - Val2(rstEncabezado("importe")) - Val2(rstEncabezado("redondeo")), "$" & Ambiente.FDinero ),9) & cLineaNueva end if Set rstMoneda = CreaRecordSet( "SELECT * FROM monedas WHERE moneda = '" & Ucase(Trim(rstEncabezado("moneda"))) & "'", Ambiente.Connection ) cSalida = cSalida & cLineaNueva cSalida = cSalida & cLineaNueva cSalida = cSalida & Letra( Round( Val2(rstEncabezado("impuesto")) + Val2(rstEncabezado("importe")) + Val2(rstEncabezado("iespecial")), 2 ), Trim(rstMoneda("Descrip")), True,rstMoneda("Nombre") ) & cLineaNueva If rstTextTicket.EOF Then cSalida = cSalida & cLineaNueva cSalida = cSalida & cLineaNueva cSalida = cSalida & cLineaNueva cSalida = cSalida & "***** GRACIAS POR SU COMPRA *****" & cLineaNueva cSalida = cSalida & cLineaNueva cSalida = cSalida & cLineaNueva cSalida = cSalida & cLineaNueva cSalida = cSalida & cLineaNueva cSalida = cSalida & cLineaNueva cSalida = cSalida & cLineaNueva cSalida = cSalida & cLineaNueva cSalida = cSalida & cLineaNueva Else cSalida = cSalida & rstTextTicket("textend") End If ' Esto manda un corte de papel if Ambiente.rstEstacion("ticketcorte") <> 0 Then
cSalida = cSalida & Chr(27) & Chr(105)
end if

'EstableceImpresora "EPSON TM-U220D Receipt"
'IniciaDocumento
'EstableceFuente "Courier New",7.5
'Say 0,0, cSalida
'FinDocumento
'Exit Sub

If Ambiente.Tag = "HTML" Then

Ambiente.Tag = ""

cSalida = Replace( cSalida, cLineaNueva, "
" )
cSalida = "

" & cSalida & "
"
CreaHtml "", (cSalida)

Else
'MsgBox cSalida
Script.sendToPrinter Ambiente, (cSalida), prn.Pantalla
' Script.sendToPrinter Ambiente, (cSalida), prn.Pantalla ' si queremos que se imprima dos veces, descomentamos esta linea, solo quitamos el apostrofe al inicio
End If

End Sub

Publicado el Dejar un comentario

Imprime el ticket via Windows

' Mybusiness POS v. 2011
Sub Main()

imprime Ambiente.rstEstacion.fields("ImpRem")
'imprime "\\SERVER2\HP LaserJet 3300 Series PCL 6"

End Sub

Function imprime( cImpresora )
' Formato de remisiones
' Por() Daniel

Dim rstEncabezado 'El recordSet de los datos generales
Dim rstPartidas 'Las partidas de la factura
Dim rstCliente 'El cliente de la venta
Dim rstLotes 'Lista de lotes
Dim rstSeries 'Lista de números de serie
Dim nRenglon 'El número de renglón sobre el que se va a trabajar
Dim strSql 'Una cadena con el query que se va a ejecutar
Dim Estado 'El estado de la venta cancelado o facturado
Dim ImportePartida 'El importe de cada partida
Dim ImporteTotal 'El importe total de la factura
Dim Impuesto 'El impuesto de la factura
Dim rstMoneda 'La moneda de la venta
Dim nLineas 'Un contador para los campos de tipo memo
Dim nSalto

nSalto = 0.7

'Esto abre el cajon de dinero
if Ambiente.rstEstacion("Cajon") <> 0 Then
if Not clEmpty(Ambiente.rstEstacion("pticket")) Then
Out Trim(Ambiente.rstEstacion("pticket")), Chr(27) & Chr(112) & Chr(48) & Chr(20) & Chr(20)
end if
end if

' Creamos el recordSet del encabezado de la venta
Set rstEncabezado = Rst("SELECT * FROM ventas WHERE venta = " & prn.Documento, Ambiente.Connection )

' Verificamos que la venta que se desea imprimir exista
if rstEncabezado.EOF Then
MsgBox "No existe la venta seleccionada",vbInformation
Exit Function
end if

' Creamos el recordSet de las partidas que componen la venta
Set rstPartidas = Rst("SELECT * FROM partvta WHERE venta =" & rstEncabezado.fields("Venta"), Ambiente.Connection )

' Traemos todos los datos del cliente
Set rstCliente = Rst("SELECT * FROM clients WHERE cliente = '" & rstEncabezado.fields("Cliente") & "'", Ambiente.Connection )

'Indicamos cual es la impresora que deseamos utilizar
EstableceImpresora (cImpresora)

' Iniciamos la Impresión del encabezado de la forma
IniciaDocumento

EstableceFuente "Courier New", 9
FontBold True

' Imprimimos el logo del programa
'Picture Ambiente.path & "\Images\Business.jpg", Col(28), Row(1), Col(7),Row(4)

' Imprimimos el Nombre de la empres
'FilledBox 1.5,0.2,5,0.33, RGB( 200, 200, 200 )

nRenglon = 0
nRenglon = nRenglon + nSalto

FontBold True
Say Row(nRenglon),Col(28), Ambiente.Empresa
FontBold False

nRenglon = nRenglon + nSalto
nRenglon = nRenglon + nSalto
Say Prn.Row(nRenglon), Col(28), Ambiente.Direccion1
nRenglon = nRenglon + nSalto
Say Prn.Row(nRenglon), Col(28), Ambiente.Direccion2
nRenglon = nRenglon + nSalto
Say Prn.Row(nRenglon), Col(28), "Ticket: " & rstEncabezado.Fields("No_referen") & " Caja: " & Ambiente.Estacion
nRenglon = nRenglon + nSalto
Say Prn.Row(nRenglon), Col(28), rstEncabezado.Fields("Usuario") & " " & Formato( rstEncabezado.Fields("UsuFecha"), "dd/MM/yyyy") & " " & rstEncabezado.Fields("UsuHora")

if rstEncabezado.Fields("Estado") = "CA" Then
Estado = "CANCELADO"
end if

if rstEncabezado.Fields("Estado") = "CO" Then
Estado = "REMISIONADO"
end if

FontBold False

nRenglon = nRenglon + nSalto

While Not rstPartidas.EOF

' No congelamos el sistema
Ev = DoEvents

'Say Row(nRenglon), Col(36), Trim(rstPartidas.Fields("Articulo"))
Say Row(nRenglon), Col(43), Padl(Formato(rstPartidas.Fields("Precio") * (1 + ( rstPartidas.Fields("Impuesto") / 100)), "###,###,###.00"), 6)
Say Row(nRenglon), Col(40), rstPartidas.Fields("Cantidad")
'Say Row(nRenglon), Col(59), rstPartidas.Fields("Descuento")

' Calculamos el importe
ImportePartida = rstPartidas.Fields("Precio") * rstPartidas.Fields("Cantidad")
ImportePartida = ImportePartida - ( ImportePartida * ( rstPartidas.Fields("Descuento") / 100 ) )

Say Row(nRenglon), Col(47.5), PadL(Formato(ImportePartida * (1 + ( rstPartidas.Fields("Impuesto") / 100)),"###,###,###.00"),6)

' Contamos las lineas que tiene el campo memo
' Imprimimos las lineas al final para poder incrementar los renglones
' sin afectar a las partidas
nLineas = CuantasLineas( rstPartidas.Fields("Observ") )

' Imprimimos cada una de ellas
For n = 1 to nLineas
Say Row(nRenglon), Col(28), Mid( strLinea( Trim(rstPartidas.Fields("Observ")), n), 1, 18 )
nRenglon = nRenglon + nSalto
Next

' Si no existen comentarios no disminuimos en un renglon.
if nLineas > 0 Then
nRenglon = nRenglon - nSalto
end if

rstPartidas.MoveNext
nRenglon = nRenglon + nSalto

If nRenglon >= 60 Then
nRenglon = 1
PaginaNueva
End If

Wend

' Imprimimos las observaciones de la operacion
nLineas = CuantasLineas( rstEncabezado.Fields("Observ") )

' Imprimimos cada una de ellas
For n = 1 to nLineas
nRenglon = nRenglon + 1
Say Row(nRenglon), Col(30), strLinea( rstEncabezado.Fields("Observ"), n)
Next

' Imprimimos la leyenda en letra y los totales
ImporteTotal = rstEncabezado.fields("Importe")
Impuesto = rstEncabezado.fields("Impuesto")

Set rstMoneda = rst("SELECT * FROM monedas WHERE moneda = '" & rstEncabezado.fields("Moneda") & "'", Ambiente.Connection )

nRenglon = nRenglon + nSalto
Say Row(nRenglon), Col(28), "Importe : " & PadL(Formato(ImporteTotal,"###,###,###.00"),12)
nRenglon = nRenglon + nSalto
Say Row(nRenglon), Col(28), "Impuesto: " & PadL(Formato(Impuesto,"###,###,###.00"),12)
nRenglon = nRenglon + nSalto
Say Row(nRenglon), Col(28), "Total : " & PadL(Formato(ImporteTotal + Impuesto,"###,###,###.00"),12)
nRenglon = nRenglon + nSalto
nCobro = rstEncabezado.fields("Pago1") + rstEncabezado.fields("Pago2") + rstEncabezado.fields("Pago3")
Say Row(nRenglon), Col(28), "Su pago : " & PadL( Formato( nCobro, Ambiente.Fdinero ), 12 )
nRenglon = nRenglon + nSalto
nCambio = ImporteTotal + Impuesto - (rstEncabezado.fields("Pago1") + rstEncabezado.fields("Pago2") + rstEncabezado.fields("Pago3"))
Say Row(nRenglon), Col(28), "Cambio : " & PadL( Formato( Abs(nCambio), Ambiente.FDinero ), 12 )
nRenglon = nRenglon + nSalto
nRenglon = nRenglon + nSalto
Say Row(nRenglon), Col(28),Trim( Letra(ImporteTotal + Impuesto, rstMoneda.fields("Descrip"), True, rstMoneda.fields("Nombre") ) )

nRenglon = nRenglon + nSalto
Say Row(nRenglon), Col(28), "Gracias por su preferencia"

' Se da por terminado el documento
FinDocumento

End Function

Publicado el 3 comentarios

Cómo solucionar el Error de decimales y Reportes en Blanco?

wpid-12921860_959637817437617_1017869236_o.png.jpg

A varios usuarios les ha sucedido que no pueden visualizar los reportes de manera correcta; solo se alcanza a visualizar un poco que se está cargando el reporte, pero al momento de mostrarlo se queda casi en blanco toda la ventana.

La solución que les comparto en esta ocasión tal vez suena muy simple,  sin embargo, estoy seguro que a más de uno le va a ser útil.

Debe configurar su equipo al idioma Español (México).

Esto se logra siguiendo la ruta INICIO — PANEL DE CONTROL — CONFIGURACION REGIONAL Y DE IDIOMA.

Ahí Seleccionamos el idioma Español de México  y también se recomienda la ubicación México.

Esto además soluciona el problema de que los aprecios de los artículos se ven en miles o millones de pesos (cuando en realidad su valor es unos pesos y algunos centavos).

Este tip también soluciona el problema de los decimales con coma (1,500) y muestra los decimales con el punto decimal(1.5) como lo conocemos en México.

Espero haber aportado algo para todos los visitantes del blog. cualquier duda contactarme a jofelchez@gmail.com

Pagar

¿Cuál es la cuenta bancaria a la que debo hacer mi aportación?

La aportación es a nombre de José Guadalupe Félix Sánchez. El importe recomendado es de $1,500.00 MXN

  • OXXO (12 pesos comisión)
    • Depósito tarjeta BBVA. 4152 3139 1639 5200
  • A través de PayPal.
  • BANCOMER
    • PractiCaja (disponible las 24 hrs). 0178928320
    • Cuenta. 0178928320
    • Clabe Interbancaria. 012420001789283207
  • SANTANDER
    • Cuenta 6055627182
    • Clabe Interbancaria. 014180605562718206.
  • BANCOPPEL
    • Cuenta. 10166316214
    • Clabe Interbancaria. 137180101663162145

Qué garantía existe al hacer la aportación?

Si en dos semanas no se siente satisfecho, su solución será gratuita.

¿Cómo funciona el pago en forma de Pomo?

La forma de pago es a través de Depósito, Transferencia interbancaria o a través de Paypal , por un monto mínimo de $1,000.00 M.N.

¿Qué beneficios tiene el usuario al adquirir por lo menos un parche?

El usuario tiene acceso a soporte relacionado con el mismo parche, así como también puede solicitar otros parches a precios más accesible

¿Dónde identifico el precio de los parches?

La aportación del Pomo es de $749.00 M.N.

¿Qué debo hacer después de hacer el pago?

Notificar al WhatsApp 7222816462 o correo jofelchez@gmail.com sobre este depósito y adjuntar una foto del comprobante de dicho pago.

¿Cuál es el beneficio de pagar casi en el momento que encuentro el archivo que necesito?

Envío mucho más rápido de la solución que buscas.

Haz la diferencia… Deja algo para seguir motivados