Publicado el 3 comentarios

Antes de aceptar un código lo dividimos en partes

Código que se ejecuta al presionar la Tecla F2 en el punto de Venta

Sub Main()

If LCase(Articulo) = "_ini" Then
Script.RunProcess "GREENBOXINI", Me, Ambiente
CancelaProceso = True
Exit Sub
End If

If LCase(Articulo) = "_setup" Then
Script.RunProcess "GREENBOXALTA", Me, Ambiente
CancelaProceso = True
Exit Sub
End If

If LCase(Articulo) = "_tellerscatalog" Then
Script.RunProcess "GREENBOXCAJEROS", Me, Ambiente
CancelaProceso = True
Exit Sub
End If

If LCase(Articulo) = "_ta" Then
Script.RunProcess "GREENBOXTIEMPOAIRE", Me, Ambiente
CancelaProceso = True
Exit Sub
End If

If LCase(Articulo) = "_tv" Then
Script.RunProcess "GREENBOXVERIFICAR", Me, Ambiente
CancelaProceso = True
Exit Sub
End If

If Articulo = "CONSULTA EXISTENCIA" Then
Script.RunForm "CC05", Me, Ambiente,, True
CancelaProceso = True
Exit Sub
End If

'Set rstArt = CreaRecordSet( "SELECT peso FROM prods WHERE articulo = '" & Articulo & "'", Ambiente.Connection )

'If Not rstArt.EOF Then
' Me.Descuento = rstArt("peso")
'End If

'Call incrementaProducto()

' Articulo es una variable que entrega el dato que se capturo en
' el punto de venta
If Trim( Ucase(Articulo) ) = "ADMISION" Then

If Me.Venta = 0 Then
MyMessage "Es necesario capturar al menos de un producto"
CancelaProceso = True
Exit Sub
End If

Script.RunForm "MIFORMA", Me, Ambiente, , True
'PlaySound Ambiente.Path & "\sounds\s03.wav"
CancelaProceso = True
End If

Me.usuarioRequerido = 0

If clAt( "VPZ", Articulo ) = 1 Then
Call recuperaVenta()
CancelaProceso = True
End If

If Ucase(Trim(Articulo)) = "EXR" Then
CancelaProceso = True
Script.RunForm "EXISTENCIAREMOTA", Me, Ambiente,, True
End If

Version2005

'Call calculaPrecioDecaja()

End Sub

Sub calculaPrecioDeCaja()
Dim rstClaveAdd
Dim rstArticulo

Set rstClaveAdd = CreaRecordSet( "SELECT articulo, cantidad FROM clavesadd WHERE clave = '" & Me.Articulo & "'", Ambiente.Connection )

If rstClaveAdd.EOF Then
Exit Sub
End If

If rstClaveAdd("cantidad") = 1 Then
Exit Sub
End If

Set rstArticulo = CreaRecordSet( "SELECT precio3 FROM prods WHERE articulo = '" & Trim(rstClaveAdd("articulo")) & "'", Ambiente.Connection )

If Not rstArticulo.EOF Then
Me.PrecioEspecial = rstArticulo("precio3")
End If

End Sub

Sub recuperaVenta()
Dim rstVenta, nVenta

nVenta = Val2( Mid( Articulo, 4 ) )

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

If rstVenta.EOF Then
' El campo 3 despliega los mensajes en el punto de venta
txtFields(3) = "Venta no encontrada"
Exit Sub
End If

If rstVenta("estado") <> "PE" Then
txtFields(3) = "Venta no valida"
Exit Sub
End If

Set Me.rstVenta = rstVenta
Set Me.rstPartidas = CreaRecordSet( _
"SELECT * FROM partvta WHERE venta = " & nVenta, _
Ambiente.Connection )
Me.Venta = nVenta
Me.Modo = "MODIFICACION"
Me.Reload = True
Me.ReiniciaVenta
Eventos
Me.CalculaImportes
End Sub

Sub Version2005
Dim rstEmpleado
Dim cEmpleado
Dim Query
Dim nPos
Dim cCodigo
Dim cPeso
Dim rstAsistencia
Dim Contenido

' Articulo es una variable que entrega el punto de venta
' Esto proceso todos los comandos del punto de venta
Call ValidaComando

'validaNumeroDePartidas

If UCase(Trim(Articulo)) = "CENEFASXMARCA" Then
Script.RunForm "CENEFASXMARCA", Me, Ambiente,, True
CancelaProceso = True
End If

If UCase(Trim(Articulo)) = "CENEFAS" Then
Script.RunForm "CENEFAS", Me, Ambiente,, True
CancelaProceso = True
End If

If Ucase(Trim(Articulo)) = "BORDADO" Then
Script.RunForm "BORDADO", Me, Ambiente,, True
End If

If Ucase(Trim(Articulo)) = "LONAS" Then
Script.RunForm "LONAS", Me, Ambiente,, True
End If

If Ucase(Trim(Articulo)) = "ESTAMPADO01" Then
Script.RunForm "ESTAMPADO", Me, Ambiente,, True
End If

If Ucase(Trim(Articulo)) = "ESTAMPADO02" Then
Script.RunForm "ESTAMPADO02", Me, Ambiente,, True
End If

If Ucase(Trim(Articulo)) = "ESTAMPADO03" Then
Script.RunForm "ESTAMPADO03", Me, Ambiente,, True
End If

'SumaCantidades
' Articulo es una variable publica que contiene el dato que leyo el lector
' o que tecleo el usuario hasta el momento de presionar un enter
nPos = clAt( "*", Articulo )

' cantidadDeArticulos es una variable publica que indica la cantidad
' de productos que va a aceptar el punto de venta
If nPos > 0 Then
cantidadDeArticulos = Val2( Mid( Articulo, 1, nPos - 1 ) )
Articulo = Mid( Articulo, nPos + 1 )
End If

' Para articulos con peso
If clAt( "ARTICULOPARAPESO", Articulo ) = 1 Then
cCodigo = Mid( Articulo, 3, 5 )
cPeso = Mid( Articulo, 8 )
Articulo = cCodigo
CantidadDeArticulos = (Val2(cPeso) / 10000)
End if

nPos = clAt( "CLI", Articulo )

' La varable cancelaProceso termina el flujo de programa interno de MyBusiness
' Parecido a Exit Sub
If nPos = 1 Then
txtFields(0) = Mid( Articulo, 4 )
txtFields(4) = ""
CancelaProceso = True
ChecaSaldo txtFields(0)
ColocaFoto txtFields(0)
End If

If clAt( "EMP", Articulo ) = 1 Then
cEmpleado = UCase(Mid( Articulo, 4 ))
Set rstEmpleado = CreaRecordSet( "SELECT * FROM empleados WHERE empleado = '" & cEmpleado & "'", Ambiente.Connection )

If rstEmpleado.EOF Then
txtFields(3) = "Empleado no existe"
cancelaProceso = True
txtFields(4) = ""
PlaySound Ambiente.Path & "\sounds\error.wav"
Exit Sub
End If

'Set rstEmpFecha = CreaRecordSet( "SELECT * FROM asistencia WHERE empleado = '" & cEmpleado & "' AND fecha = " & fechaSQL( Date, Ambiente.Connection ), Ambiente.Connection )

'If Not rstEmpFecha.EOF Then
' txtFields(3) = "Usted ya fue registrado"
' cancelaProceso = True
' txtFields(4) = ""
' PlaySound Ambiente.Path & "\sounds\error.wav"
' Exit Sub
'End If

'PlaySound Ambiente.Path & "\sounds\ready.wav"

Set Query = NewQuery()
Set Query.Connection = Ambiente.Connection

Query.strState = "INSERT"

Query.AddField "asistencia", "id", TraeSiguiente( "asistencia", Ambiente.Connection )
Query.AddField "asistencia", "fechahora", Formato( Date, "dd-MM-yyyy" ) & ":" & Formato( Time, "hh:mm:ss" )
Query.AddField "asistencia", "retardo", Retardo( rstEmpleado("horaentrada") )
Query.AddField "asistencia", "empleado", cEmpleado
Query.AddField "asistencia", "fecha", Date
Query.CreateQuery
Query.Execute

txtFields(3) = rstEmpleado("nombre") & " " & Formato( Date, "dd-MM-yyyy" ) & ":" & Formato( Time, "hh:mm:ss" )
CancelaProceso = True
txtFields(4) = ""

If Not clEmpty( rstEmpleado("imagen") ) Then
CreaHTML "", ""
End If

End If

If Ucase(Trim(Articulo)) = "ARTICULOS PROMOCIONALES" Then
Script.RunProcess "GALAXIA", Me.Parent, Ambiente
CancelaProceso = True
txtFields(4) = ""
End If

If Mid(UCase(Trim(Articulo)),1,6) = "MONEDA" Then
cambiaMonedaDeLaVenta Trim(Mid( Articulo, 7 ))
cancelaProceso = True
End If
'Call ValidaExistencia()
End Sub

Sub ValidaExistencia()
Dim rstProd
Set rstProd = CreaRecordSet( "SELECT alm" & Ambiente.Almacen & " FROM prods WHERE articulo = '" & articulo & "'", _
Ambiente.Connection )

If Not rstProd.EOF Then
If rstProd(0) <= 0 Then Me.OperacionBloqueada = True txtFields(3) = "Existencia insuficiente, operación bloqueada" CancelaProceso = True PlaySound Ambiente.Path & "\sounds\Existencia.wav" End If End If End Sub Sub cambiaMonedaDeLaVenta( cMoneda ) Dim rstVenta, rstMoneda, Query, rstMonedaOriginal Set rstVenta = CreaRecordSet( _ "SELECT * FROM ventas WHERE venta = " & Me.Venta, Ambiente.Connection ) Set rstMoneda = CreaRecordSet( _ "SELECT * FROM monedas WHERE moneda = '" & cMoneda & "'", Ambiente.Connection ) If Not rstMoneda.EOF Then Me.Moneda = cMoneda Me.tipoDeCambio = rstMoneda("tc") Else Exit Sub End If If rstVenta.EOF Then Exit Sub End If If Ucase(Trim(rstVenta("moneda"))) = UCase(Trim(cMoneda)) Then Exit Sub End If Ambiente.Connection.Execute _ "UPDATE partvta SET precio = precio * " & FormatoDecimal( rstVenta("tipo_cam") ) & ", " & _ "preciobase = preciobase * " & FormatoDecimal( rstVenta("tipo_cam") ) & ", " & _ "donativo = donativo * " & FormatoDecimal( rstVenta("tipo_cam") ) & " " & _ "WHERE venta = " & Me.Venta Ambiente.Connection.Execute _ "UPDATE partvta SET precio = precio / " & FormatoDecimal( Me.tipoDeCambio ) & ", " & _ "preciobase = preciobase / " & FormatoDecimal( Me.tipoDeCambio ) & ", " & _ "donativo = donativo / " & FormatoDecimal( Me.tipoDeCambio ) & " " & _ "WHERE venta = " & Me.Venta Set Query = NewQuery() Set Query.Connection = Ambiente.Connection Query.Reset Query.strState = "UPDATE" Query.Condition = "venta = " & Me.Venta Query.AddField "ventas", "moneda", Me.Moneda Query.AddField "ventas", "tipo_cam", Me.tipoDeCambio Query.CreateQuery Query.Execute Parent.ReLoad = True ReiniciaVenta CalculaImportes End Sub Sub ChecaSaldo( Cliente ) Dim rstSaldo, rstCobranza, Html Set rstSaldo = CreaRecordSet( "SELECT * FROM clients WHERE cliente = '" & Cliente & "'", _ Ambiente.Connection ) If rstSaldo.EOF Then Exit Sub End If CreaHTML "","" If rstSaldo("Saldo") <= 0 Then Exit Sub End If PlaySound "c:\saldo.wav" Set rstCobranza = CreaRecordSet( _ "SELECT * FROM cobranza WHERE cliente = '" & cliente & "' AND saldo > 0", _
Ambiente.Connection )

html = ""

While Not rstCobranza.EOF
html = html & "

"
html = html & "Documento " & rstCobranza("tipo_doc") & _
rstCobranza("no_referen") & " " & rstCobranza("Saldo")
html = html & "

"
rstCobranza.MoveNext
Wend

CreaHTML "",(Html)

End Sub

Function Retardo( strHora )
Dim intMinutos
Dim intMinutosActual
Dim nPos
Dim strHoraActual
Dim tolerancia

tolerancia = 10

nPos = clAt( ":", strHora )
intMinutos = Val2( Mid( strHora, 1, nPos - 1) ) * 60
intMinutos = intMinutos + Val2( Mid( strHora, nPos + 1 ) )

strHoraActual = Formato( Time(), "hh:mm" )
nPos = clAt( ":", strHoraActual )
intMinutosActual = Val2( Mid( strHoraActual, 1, nPos - 1) ) * 60
intMinutosActual = intMinutosActual + Val2( Mid( strHoraActual, nPos + 1 ) )

If intMinutosActual > (intMinutos + tolerancia) Then
Retardo = intMinutosActual - intMinutos
Else
Retardo = 0
End If

End Function

Sub ColocaFoto( cCliente )
Dim cHtml

cHtml = ""
CreaHTML "", (cHtml)

End Sub

Sub SumaCantidades()

' Buscamos si el artículo ya esta en el GRID
For n = 1 to fg2.Rows - 1
If clEmpty( fg2.TextMatrix( n, 0 ) ) Then
Exit For
End If

Set rstArtAux = Rst("SELECT tiempoaire FROM prods WHERE articulo = '" & Trim(Articulo) & "'", Ambiente.Connection)

If Trim(fg2.TextMatrix( n, 0 )) = Trim(Articulo) AND Val2(rstArtAux("tiempoaire")) <> 0 Then
Ambiente.Connection.Execute "UPDATE partvta SET cantidad = cantidad + 1 WHERE id_salida = " & fg2.TextMatrix( n, 7 )
fg2.TextMatrix( n, 1 ) = Val2( fg2.TextMatrix( n, 1 ) ) + 1
txtFields(4) = ""
CancelaProceso = True
Exit Sub
End If
Next

End Sub

Sub validaNumeroDePartidas
Dim rstPartidas

Set rstPartidas = CreaRecordSet( _
"SELECT COUNT( * ) FROM partvta WHERE venta = " & Me.Venta, _
Ambiente.Connection )

If Val2( rstPartidas(0) ) >= 4 Then
MyMessage "No es posible capturar mas de 4 partidas"
CancelaProceso = True
End If

End Sub

Sub ValidaComando()

If clAt( "/", Articulo ) > 0 And clAt( "//", Articulo ) = 0 Then
Call cantidaporPrecio()
Exit Sub
End If

If Trim(UCase(Articulo)) = "COMPRAS" Then
Set Compras = CreateObject( "MyBCompras.Compras" )
Set Compras.Ambiente = Ambiente
Compras.NuevaCompra True
End If

If Len( Trim( Articulo ) ) <> 4 Then
Exit Sub
End If

If clAt( "Z", UCase(Articulo) ) <> 1 Then
Exit Sub
End If

Select Case UCase(Articulo)
Case "Z001"
Script.RunForm "ALTACLIENTE", Me, Ambiente,, True
Case "Z002"
Me.OperacionBloqueada = False
txtFields(3) = "Operación Reactivada"
Case "Z003"
Me.FinalizaOperacion
Case "Z004"
Script.RunForm "ALTARAPIDA", Me, Ambiente,, True
Case "Z005"

If Question(Mensaje(642, Ambiente)) Then
Me.BorraVenta = True
Me.FinalizaOperacion
End If

Case "Z006"

Me.RecuperaVentaDeCliente

Case "Z007"

If txtFields(0).Enabled Then
txtFields(0).SetFocus
End If

Case "Z008"

AplicaDescuento

Case "Z009"

Script.RunProcess "CORTEX", Me, Ambiente

Case "Z010"

Script.RunProcess "CORTEZ", Me, Ambiente

Case "Z011"

Script.RunForm "PAGOEFECTIVO", Me, Ambiente,, True

Case "Z012"

Script.RunForm "COBROENEFECTIVO", Me, Ambiente,, True

Case "Z013"

Set rstUsuventas = CreaRecordSet( "SELECT * FROM usuventas WHERE usuario = '" & Ambiente.Uid & "'", Ambiente.Connection )

If rstUsuventas.EOF Then
Script.RunForm "DEVOLUCIONES", Me, Ambiente, True
'Exit Sub
End If

If Val2( rstUsuventas("devpunto") ) <> 0 Then
Script.RunForm "DEVOLUCIONES", Me, Ambiente, True
'Exit Sub
Else
MyMessage "No tiene derecho a hacer devoluciones, solicite el permiso con su supervisor"
'Exit Sub
End If

Case "Z014"

Script.RunForm "TICKETAFACTURA", Me, Ambiente,, True

'Case "Z016"
'
' Me.ActivaCobranza

Case "Z015"

Script.RunProcess "PUNTOV063", Me, Me.Ambiente

Case "Z016"

Script.RunForm "RETICKET", Me, Ambiente,, True

'Case "Z019"
'
' MyMessage "CONTROL + F12 Editar datos cliente" & vbCrLf & "CONTROL + F7 Editar guión" & vbCrLf & "SHIFT + F3 Colocar cursor en campo repartidor" & vbCrLf & "SHIFT + F4 Alta de repartidor"

Case "Z017"

Script.RunForm "FCAJA", Me, Ambiente,, True

Case "Z018"

Script.RunForm "CAMBIOUSUARIO", Me, Ambiente,, True

'Case "Z022"
'
' Script.RunProcess "VENTASCOLECTOR", Me, Me.Ambiente

Case "Z019"

Calculadora Ambiente

Case "Z020"

Script.RunProcess "ABRECAJON", Me, Me.Ambiente

Case "Z021"

Script.RunForm "AUXCLIENTS", Parent, Ambiente,, True

Case "Z022"

Script.RunProcess "ELIMINAVENTA", Me, Me.Ambiente

Case "Z023"

Script.RunForm "VENTASOBSERV", Me, Ambiente,, True

Case "Z024"

Script.RunForm "VENTASDESC", Me, Ambiente,, True

Case "Z025"

Script.RunForm "CAMBIOVALEEFECTIVO", Me, Me.Ambiente,, True

Case "Z026"

Script.Runform "FACTURADECIERRE", Me, Ambiente,, False

Case "Z027"

Script.RunHuellaForm "REGISTROACCESO", Me, Ambiente,, True

'Case "Z028"

'Script.Runform "LISTADEPEDIDOS", Me, Ambiente,, True

End Select

CancelaProceso = True
txtFields(4) = ""

End Sub

Sub llenaPuntoDeVenta
Dim cLinea, dondeEstaLaComa, articulo

' CloseFile cierra un manejador de archivo
CloseFile 1
' OpenFile Abre un archivo de texto para lectura
OpenFile "c:\articulos.txt", 1

' FileEOF regresa true en caso de que el archivo
' de texto llegue a su final
While Not FileEOF( 1 )
' ReadLine lee una cadena de texto
' hasta que encuentra un retorno de carro
cLinea = ReadLine( 1 )
dondeEstaLaComa = clAt( ",", (cLinea) )
articulo = Mid(cLinea, 1, dondeEstaLaComa -1 )

' cantidadDeArticulos es una variable que
' entrega el punto de venta e indica la
' cantidad de productos que se va a ingresar
' en el punto de venta
cantidadDeArticulos = _
Mid( cLinea, dondeEstaLaComa + 1 )

' llenaPartidad Es un metodo que ingresa
' producto en el punto de venta
llenaPartida (articulo)
Wend

CloseFile 1

End Sub

Sub calculaPeso()
Dim rstArticulo, cArticulo, nPesos

nPos = clAt( "--", Articulo )
cArticulo = Mid( Articulo, nPos + 2 )
nPesos = Val2(Mid( Articulo, 1, nPos - 1 ))

Set rstArticulo = CreaRecordSet( _
"SELECT * FROM prods WHERE articulo = '" & cArticulo & "'", _
Ambiente.Connection )

If Not rstArticulo.EOF Then
Articulo = cArticulo
cantidadDeArticulos = nPesos / rstArticulo("precio1")
End If

End Sub

Function Permisos( permisoSolicitado )

Set rstUsuario = CreaRecordSet( _
"SELECT * FROM usuarios WHERE usuario = '" & Ambiente.uid & "'", Ambiente.connection )

If rstUsuario("supervisor") Then
cmdZ001.Caption = "Z001 Cambia o da de alta un cliente"
cmdZ002.Caption = "Z002 Quita bloqueo por error código de producto"
cmdZ003.Caption = "Z003 Confirma la venta o muestra ventana de cobro"
cmdZ004.Caption = "Z004 Da de alta o modifica un artículo"
cmdZ005.Caption = "Z005 Deja como pendiente la venta actual"
cmdZ006.Caption = "Z006 Muestra lista de ventas pendientes"
cmdZ007.Caption = "Z007 Posicionar el cursor en el campo de cliente"
cmdZ008.Caption = "Z008 Pantalla de descuentos"
cmdZ009.Caption = "Z009 Corte parcial X"
cmdZ010.Caption = "Z010 Corte total Z"
cmdZ011.Caption = "Z011 Permite capturar un ingreso de dinero a caja"
cmdZ012.Caption = "Z012 Permite capturar una salida de dinero a caja"
cmdZ013.Caption = "Z013 Realiza una devolución de mercancia en caja"
cmdZ014.Caption = "Z014 Convierte un ticket en factura"
cmdZ015.Caption = "Z015 Realiza el pago de la devolucion"
cmdZ016.Caption = "Z016 Cobranza a clientes"
cmdZ017.Caption = "Z017 Muestra información del próducto"
cmdZ018.Caption = "Z018 Re imprimir ticket"
cmdZ019.Caption = "Z019 Functiones ventas por teléfono (Informativo)"
cmdZ020.Caption = "Z020 Arqueo de efectivo"
cmdZ021.Caption = "Z021 Cambio de usuario"
cmdZ022.Caption = "Z022 Recupera ventas del colector"
cmdZ023.Caption = "Z023 Muestra la calculadora"
cmdZ024.Caption = "Z024 Abre el cajón de dinero"
cmdZ025.Caption = "Z025 Datos auxiliares del cliente"
cmdZ026.Caption = "Z026 Elimina la ultima venta"
cmdZ027.Caption = "Z027 Observaciones a la venta"
cmdZ028.Caption = "Z028 Descuento por importe"
Else
cmdZ001.Caption = "Z001 Cambia o da de alta un cliente"
cmdZ002.Caption = "Z002 Quita bloqueo por error código de producto"
cmdZ003.Caption = "Z003 Confirma la venta o muestra ventana de cobro"
cmdZ004.Caption = "Z005 Deja como pendiente la venta actual"
cmdZ005.Caption = "Z006 Muestra lista de ventas pendientes"
cmdZ006.Caption = "Z007 Posicionar el cursor en el campo de cliente"
cmdZ007.Caption = "Z011 Permite capturar un ingreso de dinero a caja"
cmdZ008.Caption = "Z012 Permite capturar una salida de dinero a caja"
cmdZ009.Caption = "Z015 Realiza el pago de la devolucion"
cmdZ010.Caption = "Z020 Arqueo de efectivo"
cmdZ011.Caption = "Z021 Cambio de usuario"
cmdZ012.Caption = "Z024 Abre el cajón de dinero"
cmdZ013.Caption = "Z025 Muestra la calculadora"
cmdZ014.Caption = "Z026 Elimina la ultima venta"
cmdZ015.Caption = "Z027 Observaciones a la venta"
cmdZ016.Caption = "Z028 Descuento por importe"
End If
End Function

Sub cantidaporPrecio()
Dim nPos, cCantidad, cArticulo, rstProd
Dim nPrecio

nPos = clAt( "/", Articulo )
cCantidad = Mid( Articulo,1, nPos - 1 )
cArticulo = Trim( Mid( Articulo, nPos + 1 ) )

Set rstProd = CreaRecordSet( "SELECT * FROM prods WHERE articulo = '" & cArticulo & "'", Ambiente.Connection )

If rstProd.EOF Then
Exit Sub
End If

nCantidad = Round( Val2( cCantidad ) / rstProd("precio1"), 4 )

If Not rstProd.EOF Then
cantidadDeArticulos = nCantidad
llenaPartida rstProd("Articulo")
End If

CancelaProceso = True
End Sub

Sub incrementaProducto()
Dim rstArticulo, Query

Set rstArticulo = CreaRecordSet( _
"SELECT articulo FROM prods WHERE articulo = '" & Me.Articulo & "' AND granel = 0 AND speso = 0", _
Ambiente.Connection )

Set Query = NewQuery()
Set Query.Connection = Ambiente.Connection

If rstArticulo.EOF Then
Exit Sub
End If

For n = 0 To fg2.Rows - 1

If clEmpty( fg2.TextMatrix( n, 0 ) ) Then
Exit For
End If

If Ucase( Trim( fg2.TextMatrix(n,0) ) ) = _
UCase( Trim(Me.Articulo) ) Then

Query.SQL = _
"UPDATE partvta SET cantidad = cantidad + 1 WHERE id_salida = " & _
fg2.TextMatrix(n,7)
Query.Exec

fg2.TextMatrix(n,1) = Val2(fg2.TextMatrix(n,1)) + 1
CancelaProceso = True
Me.CalculaImportes
Exit For
End If

Next

End Sub

Publicado el 25 comentarios

Reimprimir Corte Z MyBusiness POS

Muchos usuarios han tenido la necesidad de reimprimir su corte Z.

Esta herramienta premite reimprimir todos los cortes Z que se han emitido en el sistema MyBusiness POS. Puedes filtrar por fecha y por estación.

 

 

Así que en este post se publica una herramienta que es de utilidad para cubrir dicha necesidad.

Características del parche:

+ Permite la búsqueda de Cortes por rango de Fechas

+ Permite la búsqueda de Cortes por Estación de Trabajo

+ Permite la búsqueda de Cortes por Monto de Caja

Solicita el parche a jofelchez@gmail.com

wpid-img-20160416-wa0003.jpg

Publicado el Dejar un comentario

¿Cómo importar un Procedimiento a MyBusiness POS?

Enfocado a: Distribuidores y Usuarios.

1. Entrar a MyBusiness POS y damos un clic en la carpeta configuracion del business manager.

2. Dentro de esta ventana buscar la carpeta personalización, y posteriormente el icono “formatos del sistema”

3. Se abrirá la herramienta Business Manager con la lista de todos los formatos

4. Clic derecho sobre cualquiera de los formatos y aparecerá una lista de opciones de la cual debe elegir la opción: Importar paquete de procedimientos.

5. Buscar el directorio donde esta guardado el archivo y selecciónalo.

6. Aparecerá una mensaje que te dice:
”Paquete importado”. Oprime un clic en Aceptar.

7. Cerramos la ventana. Para mayor seguridad, se recomienda dar mantenimiento a la base de datos y cerrar el programa.

Publicado el 1 comentario

Cómo cambiar la fuente del ticket



Para poder modificar el tamaño de la fuente en el ticket de My Business POS, primero es necesario conocer cómo está conectada la impresora, así como la configuración de la estación de trabajo. 

Existen dos formas de modificar el texto de un ticket:

1. Para las impresoras configuradas por puerto LPT:
Se modifica un procedimiento llamado FORMATOTEXTO (En el Business Manager—Configuración—Personalización—Procedimientos y Rutinas del Usuario)
Ahí está un código como este:

Sub Main()
Dim p, s

On error resume next

Set p = ImpresoraDefault(Ambiente.rstEstacion("pticket"))

' p.ScaleMode = 7 ' Centimetros
'p.PaintPicture LoadPicture(Ambiente.Path & "\images\logo.jpg"), 0, 0, 3, 4
p.Font.Name = "Courier New"
p.Font.Size = 9
p.FontBold True

For n = 1 To 2
s = s & vbCrLf
Next

' pt (print text) imprime el texto indicado (impresora), (texto)
pt (p),(s)

pt (p),(Script.textToFormat)
p.EndDoc

End Sub

Lo que vamos a hacer es identificar p.Font.Name y p.Font.Size. Puede cambiarlo por una fuente legible y que a la vez se ajuste en el ticket. Se recomienda que utilice los tipos de letra Tahoma o Courier New debido a que estos utilizan caracteres con ancho estándar; sin embargo puede hacer pruebas con la fuente Arial.
Para GUARDAR los cambios, presione F2 o de clic en el botón Guardar.

2. Para impresoras configuradas por puerto USB:

Para este caso, es posible modificar el ticket en la parte final del formato TICKET (En el Business Manager—Configuración—Personalización—FORMATOS) y ubicamos el código, el cual está comentado:

'IniciaDocumento
'Say 0,0, cSalida
'FinDocumento
'Exit Sub

Lo descomentamos, agregamos la fuente y debe quedar de la siguiente manera:

IniciaDocumento
EstableceFuente "Courier New", 9
'FontBold True
Say 0,0, cSalida
FinDocumento
Exit Sub

Guardamos (F2) y hacemos la prueba
Para más información por favor visite http://helpmybusinesspos.info/errores-de-mybusiness-pos/como-elegir-la-miniprinter-mas-apropiada-para-su-negocio/ 

Publicado el Dejar un comentario

Código Zebra 2844 y MyBusiness POS 2011

Puedes copiar este código y pegarlo en tu editor de mybusinesspos

' El siguiente procedimiento imprime las etiquetas de cada uno de los articulos
Public Sub Main ()

Set rstPartidas = CreaRecordSet( "SELECT articulo, descrip, etiquetas, precio1, precio2, precio10 FROM prods WHERE etiquetas > 0", Ambiente.Connection )

While Not rstPartidas.EOF

For i = 1 to rstPartidas("etiquetas")
ImprimeEtiqueta "LPT1", rstPartidas("articulo"), "",rstPartidas("descrip") , Formato(rstPartidas("precio1"), "##,##0.00" ), Formato(rstPartidas("precio2"), "##,##0.00" ), Formato(rstPartidas("precio10"), "##,##0.00" )
Next

rstPartidas.MoveNext

Wend

Set rstPartidas = CreaRecordSet( "SELECT clavesadd.clave, prods.descrip, clavesadd.etiquetas, prods.precio1, prods.precio2, prods.precio10 FROM clavesadd INNER JOIN prods ON clavesadd.articulo = prods.articulo WHERE clavesadd.etiquetas > 0", Ambiente.Connection )

While Not rstPartidas.EOF

For i = 1 to rstPartidas("etiquetas")
ImprimeEtiqueta "LPT1", rstPartidas("clave"), "",rstPartidas("descrip") , Formato(rstPartidas("precio1"), "##,##0.00" ), Formato(rstPartidas("precio2"), "##,##0.00" ), Formato(rstPartidas("precio10"), "##,##0.00" )
Next

rstPartidas.MoveNext

Wend

End sub

Public Sub ImprimeEtiqueta( cPuerto, cArticulo, cDato1, cDescrip, cPrecioDeLista, cMayoreo, cSugerido )

cPuerto = Trim( cPuerto )
cArticulo = Trim( cArticulo )
cDescrip = Trim( cDescrip )
cDato1 = Trim( cDato1 )

cSalida = ""

' Aqui se puede modificar la etiqueta utiliza un lenguaje llamado EPL2 le adjunto manual del
' lenguaje, tambien si tienen la información del formato de la etiqueta y quieren que la
' diseñe por favor mandemelo
' Aqui se muestran los comandos basicos
' El comando N inicia la etiqueta
' El comando A muestra un dato de texto en donde el 250 es la posición en el eje de las X
' y el 15 la posición en el eje de las Y
' El comando B muestra el código de barras donde 250 es la posición en el eje de las X y 45
' Es la posición de inicio del eje de las Y
' El comando P Finaliza la etiqueta y el nunero 1 indica cuantas etiquetas se van a imprimir

cSalida = cSalida & "N" & Chr(13) & Chr(10)
cSalida = cSalida & "A250,15,0,1,1,1,N," & Chr(34) & Formato( Date, "dd-MM-yyyy" ) & Chr(34) & Chr(13) & Chr(10)
cSalida = cSalida & "A250,30,0,2,1,1,N," & Chr(34) & Mid( cDescrip,1, 30)& Chr(34) & Chr(13) & Chr(10)
cSalida = cSalida & "B250,70,0,1,2,6,80,B," & Chr(34) & cArticulo & Chr(34) & Chr(13) & Chr(10)
cSalida = cSalida & "A380,155,0,4,1,1,N," & Chr(34) & "PRECIO $" & cPrecioDeLista & Chr(34) & Chr(13) & Chr(10)
'cSalida = cSalida & "A250,95,0,2,1,1,N," & Chr(34) & cMayoreo & Chr(34) & Chr(13) & Chr(10)
cSalida = cSalida & "P1" & Chr(13) & Chr(10)

if Ambiente.rstEstacion("ietiquetas") <> 0 Then
if clAt( "LPT", Ambiente.rstEstacion("ietiquetaspuerto") ) > 0 Then
Out Trim(Ambiente.rstEstacion("ietiquetaspuerto")), cSalida
else
if Ambiente.ImpresoraDeEtiquetas.PortOpen Then
Ambiente.ImpresoraDeEtiquetas.Output = cSalida
end if
end if
end if

Dormir 100
Eventos

End Sub