Publicado el 5 comentarios

Error de sistema: -2147217913

Error_mybusinesspos_codigo_duro_58Error de sistema: -2147217913 The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.

Este error aparece cuando intentamos dar formato (año-mes-dia) a una fecha para aplicarlo en una consulta que solo acepta la estructura (dia-mes-año). Por ejemplo:


Set rstCorte = Rst("SELECT top 1 * FROM corteszx WHERE corte = 'z' and usufecha = '" & Libreria.Formato(date, "yyyy-mm-dd") & "' " , Ambiente.Connection )

El error se soluciona al modificar el orden de dia-mes-año de esta manera: Libreria.Formato(date, “dd-mm-yyyy”)

Set rstCorte = Rst("SELECT top 1 * FROM corteszx WHERE corte = 'z' and usufecha = '" & Libreria.Formato(date, "dd-mm-yyyy") & "' " , Ambiente.Connection )

Publicado el Dejar un comentario

Probar con Telnet si está abierto el puerto 1400

Para MyBusinessPOS, la base de datos acepta el almacenamiento y consultas a través del puerto 1400. Este puerto debemos configurarlo en Microsoft SQL Server y en el firewall del servidor de la base de datos.

Hay varias formas de comprobar que el servidor tiene abierto el puerto 1400 para tener acceso desde el la estación de trabajo. Una de las opciones es que desde el equipo del cajero, haremos la prueba a través del comando Telnet (Inicio de windows->Ejecuta->CMD->telnet). Sin embargo, por default Telnet no está habilitado en Windows 7.

¿Como se activan los servicios Telnet en Windows 7?

  1. Ingresar al Panel de Control -> Programas y Características
  2. Ingresar a la opción Activar o Desactivar las Características de Windows (esta opción se encuentra en el Bloque de Programas y Características) .
  3. En el cuadro de dialogo ubica las caracteristicas que quieres activar, en la lista puedes encontrar Cliente Telnet y Servidor Telnet, hay que marcar las casillas de las que quieras activar y dar clic en Aceptar.
  4. Las características se “activan” y una vez concluido el proceso ya están disponibles para su uso.
  5. Para probar que el puerto 1400 está disponible, desde el equipo de la Caja abrimos nuevamente el CMD (Inicio de windows->Ejecuta->CMD) y ejecutamos
    Telnet ip_servidor 1400
    Donde:

    • ip_servidor es la dirección IP de tu equipo donde se encuentra la base de datos.
    • 1400 es el puerto es el número de puesto que deseamos probar si está abierto.
      Aparecerá una pantalla en negro, eso quiere decir que el puerto 1400 está abierto y podemos proceder con conexión de MyBusiness POS desde la estación de trabajo.
Publicado el Dejar un comentario

Exportar a texto .txt

Este es un ejemlo de cómo exportar a un archivo de texto.

Sub Main()
Dim rstClientes
Dim s

Set rstClientes = CreaRecordSet( _
"SELECT * FROM clients", Ambiente.Connection )

s = ""

If ExisteArchivo( "c:\clientes.txt" ) = True Then
If Question( "Desea eliminar el archivo", 2 ) = True Then
EliminaArchivo "c:\clientes.txt"
End If
End If

While Not rstClientes.EOF
s = Chr(34) & rstClientes("cliente") & Chr(34) & _
Chr(9) & Chr(34) & rstClientes("nombre") & Chr(34) & _
Chr(9) & Chr(34) & rstClientes("telefono") & Chr(34) & vbCrLf
OutLine "c:\clientes.txt", s
rstClientes.MoveNext
Wend

If Question( "Desea abrir el archivo", 1 ) = True Then
ShellRun Parent.hWnd, "Open", "c:\clientes.txt"
End If

End Sub

Este script puede ser de utilidad si quisiéramos ver un texto con los clientes o cualquier otro layout que se requiera para otros sistemas.

He utilizado para servicoos como facturación cfdi y para tiempo aire.
La función ExisteArchivo es genial porque lo único que escribimos como parámetro es la ruta de nuestro archivo de texto.

Lo importante es probar todas las posibilidades que existen para tener la información disponible para hacer lo que las reglas del negocio requiere.

Publicado el Dejar un comentario

Importar desde texto .txt

Este ejemplo muestra como importar un archivo txt


Sub Main()
Dim s, cliente, telefono, dondeEstaEltabulador
Dim Query, rstCliente

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

CloseFile 1

OpenFile "c:\clientes.txt", 1

While Not FileEOF( 1 )

s = ReadLine( 1 )

dondeEstaEltabulador = clAt( Chr(9), s )
cliente = Mid( s, 1, dondeEstaElTabulador - 1 )
cliente = Replace( cliente, Chr(34), "" )

s = Mid( s, dondeEstaElTabulador + 1 )

dondeEstaEltabulador = clAt( Chr(9), s )
nombre = Mid( s, 1, dondeEstaElTabulador - 1 )
nombre = Replace( nombre, Chr(34), "" )

telefono = Mid( s, dondeEstaElTabulador + 1 )
telefono = Replace( telefono, Chr(34), "" )

Set rstCliente = Rst( _
"SELECT cliente FROM clients WHERE cliente = '" & cliente & "'", _
Ambiente.Connection )

Query.Reset

If rstCliente.EOF Then
Query.strState = "INSERT"
Else
Query.strState = "UPDATE"
Query.Condition = "cliente = '" & cliente & "'"
End If

' Tabla, campo, valor
Query.AddField "clients", "cliente", cliente
Query.AddField "clients", "nombre", nombre
Query.AddField "clients", "telefono", telefono
Query.CreateQuery
Query.Execute

Wend

CloseFile 1

End Sub

Esta función podría ser una opción para interconectar mybusiness pos con otras herramientas externas de una forma sencilla. Utilizo la importación para descifrar la respuesta de tiempo aire y funciona bastante bien.

Publicado el Dejar un comentario

Corte Z no coincide EFE con Total Ventas

caja-de-seguridad-para-efectivo-sentry-safe-cajon-de-dinero-D_NQ_NP_380321-MLM20744306858_052016-F

En ocasiones el corte muestra ingreso de efectivo mayor al que ingresó por concepto total de ventas y genera confusión al momento de cuadrar la caja.

Para solucionar este problema, revisamos la siguiente ruta en mybusiness pos: Configuración– Conceptos de Egresos.

Revisamos que tenga el concepto de cambio; en caso de que no exista, lo agregamos con estos datos:

Clave: CAM

Descripción: CAMBIO

Control de fondo revolvente: Desactivado

Saludos