Publicado el 7 comentarios

Ticket reducido con impuesto especial

Descarga el formato de ticket tanto para puerto USB (impresora predeterminada desde windows) como para puerto LPT.

Este ticket tiene la característica que cada linea utiliza 32 caracteres, las descripciones de articulos son multilínea y no se truncan.

Puedes descargarlo aquí mismo.

ticket con impuesto especial (gratis)

152.00 KB 493 descargas

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 25 comentarios

Configurar MyBusiness POS en RED y Código Duro 58 [Solucionado]

También visite:  Como corregir codigo duro 58

He notado que muchos de los Distribuidores y clientes tienen problemas para hacer la conexion de MyBusiness POS 2011 en Red.

Descarga la cadena de conexión para MyBusiness POS 20

En ocasiones hay que hacer algo más allá de simplemente llenar los textBox que nos presenta el Sistema. El problema en la Conexión se presentó igual en la Versión 2010.
Al parecer, cuando damos de alta una conexión de forma errónea se nos complica un poco hacer la MODIFICACIÓN en los parámetros, esto es porque la ventana contiene errores para hacer el ajuste antes mencionado. En este caso, lo recomendable es BORRAR la conexión errónea y dar de ALTA una nueva Conexión con los datos correctos.
Otra alternativa es colocar de forma manual el nombre de la Conexion en el espacio en blanco que se muestra al final de todos los TextBox. eso es lo que se presenta en el siguiente video. Espero que sea útil…. y no se olviden de Comentar.
Aunque, si hubiera una manera de hacer un Donativo, újule sería bien recibido jeje; digo, si les es útil. Al final del día quienes más visitan este blog son DISTRIBUIDORES que van a aplicar esta Solución con sus CLIENTES.
Saludos.
https://youtu.be/LfAAzzR1Kac
Además, he agregado el siguiente video para los usuarios que tienen problemas para abrir por primera vez el sistema MyBusinessPOS: El ya famoso Error Código Duro 58.

Como información adicional, cito la siguiente información obtenida del boletín No. 41 de MyBusinessPOS.com, la cual puede ser de utilidad.

Instalar SQL para trabajar en RED

Servidor

Una vez que se introduce en CD de instalación y nos muestra el “SplashCD” damos un clic en la opción Instalar SQL para trabajar en RED la cual nos mostrará una ventana donde debemos definir el “password para el servidor de Microsoft SQL Server” capturamos el password y lo confirmamos, damos un clic en el botón “Aceptar” y continuamos con la instalación.

Una ves instalado vamos a revisar el puerto que asigno al instalar el SQL, damos clic en el botón Inicio / Todos los programas / Microsoft SQL Server 2005 / Configuration Tools / SQL Server Configuration Manager Nos mostrará la siguiente ventana en la cual damos clic en la opción de SQL Server 2005 Network Configuration / Protocolo for SQL EXPRESS / TCP/IP y damos un clic en Propiedades del TCP/IP – IP Adreses IPAII – TCP Dynamic Port. Una vez que tenemos el número de puerto hay que acceder al firewall de Windows para liberar el puerto que nos servirá para conectarnos en red

Liberar puerto en el Firewall de Windows

Damos un clic en el botón Inicio / Panel de control / Firewall de Windows / Excepciones y damos clic en Agregar puerto… Asignamos un nombre y el número de puerto que género la instalación del SQL Server, clic en TCP, clic en Aceptar.

Hasta este punto ya tenemos el password para el servidor de Microsoft SQL Server, el número de puerto del SQL y liberado el puerto en el firewall de Windows.

Cliente

En el equipo cliente damos clic en la opción “Instalar MyBusiness” al concluir con la instalación nos mostrar los “Datos generales de la empresa” en la cual colocamos el nombre de nuestra empresa y damos clic en el botón “Avanzadas” y modificaremos los siguientes datos.

1. Desactivamos la casilla de “Utilizar base de datos local”

2. Revisamos que el nombre de la base de se el mismo de no ser así cambiamos la ruta o el nombre de la misma

3. Verificamos el nombre del equipo servidor o la IP a la cual nos vamos a conectar (125.265.1.125\SQLEXPRESS) ejemplo.

4. Cambiamos el puerto que nos asigna por el que nos genero el SQL y del cual liberamos el puerto

5. Y finalmente cambiamos el password por que creamos al momento de la instalación.

Damos clic en el botón “Aceptar” y ¡listo…!!! Nos hemos conectado en Red.

Publicado el 29 comentarios

Configurar impresora ZEBRA 2844 a través de USB (Solucionado)

zebra2844_mybusinesspos2

Las impresoras de código de barras ZEBRA 2844 son muy eficientes y muestran excelentes resultados. Sin embargo, en MyBusiness POS, en ocasiones genera ciertos conflictos, sobre todo si queremos conectarla vía USB. el siguiente bloque de código está configurado para etiquetas que tienen 1” de alto X 1.25” de ancho aprox.

Para configurar la impresora, solo basta realizar los siguientes pasos:
https://youtu.be/TuhCVlZrM-0
1) instalar el driver de la impresora. esto es debido a que, cuando conectamos cualquier dispositivo vía USB, el Sistema Operativo instala un  controlador para poder hacerlo funcionar correctamente.
2) Definir la impresora ZEBRA 2844 como predeterminada (Inicio->Impresoras y faxes-> Clic derecho sobre la impresora ZEBRA2844 –>Impresora predeterminada). También es necesario configurar el tamaño del papel. para realizar esto, después de configurar la impresora predeterminada, demos clic derecho sobre la impresora ZEBRA 2844 y seleccionamos la opción Propiedades. Ahora damos clic en el botón “preferencias de impresión” y vamos a especificar el tamaño del papel 7 cm de largo X 2.54 cm de alto.
[products ids=’18217,19645′]
3) Ahora abrimos MyBusinessPOS 2006 y vamos a crear el formato para poder imprimir las etiquetas. En el Business Manager (la columna de enmedio) buscamos la siguiente ruta: Configuración-> Personalización-> Procedimientos o Rutinas de Usuario –> Aquí vamos a crear un nuevo procedimiento, en la parte superior se encuentra la opción “Nuevo”. Los datos que debemos escribir en el formulario son:

4) En el área de desarrollo, solo escribimos las siguientes líneas:

Public Sub Main()
nFila = 1
Set rstProds = CreaRecordSet( 'SELECT * FROM prods WHERE etiquetas > 0 ORDER BY articulo', Ambiente.Connection )
nY =0
nMargensuperior = 100
nMargenIzquierda = 25
While Not rstProds.EOF
cArticulo = Trim( rstProds("articulo") )
cDescrip = Trim( Mid(rstProds("descrip"),1,25) ) & " " & Trim( rstProds("modelo") ) & " " & Trim( rstProds("talla") )’ & " " & Formato( rstProds("precio1"), "$##,##0.00" )
cEmpresa = Ambiente.Empresa
For i = 1 To rstProds("Etiquetas")
PosicionX = nMargenIzquierda
PosicionY = ((nY * nFila) – nY) + nMargensuperior
IniciaDocumento
Codigo39 PosicionX, PosicionY, 10, 400, cArticulo, True,,, cDescrip
FinDocumento
if i = rstProds("Etiquetas") Then
Exit For
end if
Next
rstProds.MoveNext
Wend
End Sub

 

Otra de las recomendaciones es, cuando mandamos imprimir y de la imporesora Zebra sale el papel en blanco, es apoyarnos con una impresora virtual con PDF Creator y poco a poco vamos identificando dònde se encuentra el código impreso para ajustar la caída de forma correcta. hay que ser un poquito pacientes ya que encontrar la coordenada de impresión ideal puede tomar más de media hora a prueba y error.

Nota: Si su lector de códigos de barras no detecta la impresión, posiblemente le hace falta colocar un asterisco (*) al inicio y otro asterisco (*) al final del código de barras .