CONTACTO ***** jofelchez@gmail.com *****




Soporte Remoto, helpmybusinesspos.info , TeamViewer, Hamachi, Descarga My Business pos 2012 Gratis, crack activar, keygen activador , FACTURACIÓN ELECTRÓNICA, my business pos 2012, MyCBB, Codigo de Barras BiDimensional, configurar facturas, Migración de la Versión 2006 a la Versión 2011, Delta, Configurar 2011, Manuales de Instalación, Errores, Modificar, Respaldos, Nuevo IVA, Red MyBusiness, Problema, Ambiente path, Migración, Impresora, Descarga 2011, Reportes, Presentaciones, Win7, SQL, Manager, Ticket, Etiquetas, Generador, Corte X Z, Restaurar, Zebra, Logo, recomendaciones, Remisiones, Barras, Inventario, hamachi, Delta y LINUX, code39, como cambiar el iva en my business pos, my business pos blogspot, como instalar my busuness delta, TPV, MyMoney, Concentrador POS, Zebra, Datamax, Mobile Business, Commander, Restaurante, MyBusiness POS 2012, Kardex
Mostrando entradas con la etiqueta mybusiness. Mostrar todas las entradas
Mostrando entradas con la etiqueta mybusiness. Mostrar todas las entradas

domingo, 7 de abril de 2013

¿Cómo reiniciar una contraseña de MyBusiness POS?

Borrar VentasPara reiniciar su contraseña, es necesario que conozca un poquito de
SQL, solo para conectarse a la base de datos, con el programa
"Microsoft SQL Management studio" o con la aplicación "Navicat
Enterprise Edition", cualquiera de estas las puede descargar de esta
página de Soporte My Business POS.

[wpdm_package id='15037']

Bueno, una vez instalado, configure su conexión al servidor SQL server

Conéctese a la base de datos y busque la tabla "usuarios".

En la tabla, ubique la columna clave y coloque estas tres letras:
_a\ (guión bajo, a y diagonal invertida, es SUP con un tipo de encriptación)

Guarde y con esto ya podrá acceder con los datos por default del usuario SUP

jueves, 1 de noviembre de 2012

Descarga el NUEVO My Business POS 2012!!!

Descarga la nueva versión de MyBusiness POS 2012 ahora!!!
[wpdm_package id='15042']

viernes, 10 de agosto de 2012

My Business POS 2012

descagas mybusiness pos[wpdm_package id='15022']

[wpdm_package id='14960']

[wpdm_package id='15023']

Descarga la nueva versión de MyBusiness POS 2012 ahora!!!

[wpdm_package id='15042']

[gview file="http://helpmybusinesspos.info/wp-content/Descargas/2012/05/MyBusinessPOS2012_trip.pdf" height="900" width="100%"]

Así que hay que probar las novedades que nos presenta; por supuesto espero que esta última versión sea mucho mejor que sus antecesoras 2008, 2010 y 2011; porque para lograr llegar hasta aquí tuvieron que pasar dos años de espera, quiero pensar que eso significa que los errores son mínimos

Lo único que espero es que este típtico no sea solo publicidad engañosa, esto debido a que muchos nuevos distribuidores se ven ilusionados y se arriesgan a tal grado de perder hasta la lealtad de sus clientes. Y pues con el cliente no se puede jugar...Hay que ofrecer soluciones y no problemas.

Los distribuidores que tienen el privilegio de ir al congreso a Cancún en este mes de  Mayo, pues bien por ellos; en mi caso, pues la carga de trabajo no me permite  asistir (y si tuviera tiempo y dinero pues mejor lo disfrutaba en Mérida y sus alrededores)

Aquí les dejo el link de descarga de la diferentes versiones de MyBusiness POS por si llegaran a necesitarlas

En lo personal, aun sigo recomendando la versión 2006 Delta por considero que es la que ha dado vida y  costeado el desarrollo de las demás versiones.

Recomendación importante para los Distribuidores:

Antes de ofrecer el producto, hay que hacer las pruebas necesarias para tener la certeza de funcionalidad del software...

Bueno pues mucha suerte y éxito a todos.

domingo, 13 de mayo de 2012

My Business POS 2012

Descarga la nueva versión de MyBusiness POS 2012 ahora!!!

[wpdm_package id='15042']


[youtube sF3rZa9Mb8A]


Bueno pues mucha suerte y éxito a todos. 

sábado, 28 de enero de 2012

Reimprimir Corte Z MyBusiness POS

wpid-img-20160416-wa0003.jpg

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

[wpdm_package id='15012']

[wpdm_package id='17534']

[wpdm_package id='15042']

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

[youtube zxma9shdcMM]

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

miércoles, 25 de enero de 2012

Manejo de Bitácoras

MyBusiness POS contiene una herramienta de uso sencillo que agiliza el cambio de precios.
Modifique los precios que necesite en el icono “Artículos” de la pestaña “Inventario” de la barra de iconos.

Después de guardar los cambios con la tecla , diríjase a la barra de tareas, pestaña “Utilerías” y de un clic en el icono “Bitácoras”. Una vez ahí, asigne una ruta en donde desee que se guarden los cambios de precios aplicados anteriormente.

Esta última acción creara un archivo en la ruta seleccionada que podrá importar en otra base de datos.

La manera de hacerlo es la siguiente:
De un clic en el icono “Subir bitácoras” de la pestaña de “Utilerías” de la barra de tareas.

Asigne aquí la ruta de donde obtendrá el archivo que contiene los cambios de precios realizados en la anterior base de datos.
De un clic en [Aceptar] y se ejecutará un procedimiento que afectará los precios de los artículos de la actual base de datos basada en los cambios que trajimos en la bitácora.
Esta es una forma bastante ágil de hacer cambios de precios entre tiendas o sucursales que no están conectadas en línea.

Fuente:
Información obtenida del boletín No. 43 de MyBusinessPOS.com

viernes, 20 de enero de 2012

Manual MyBusiness POS 2012

manual_mybusinessposDescarga la nueva versión de MyBusiness POS 2012 ahora!!!

[wpdm_package id='15042']

El manual de usuario de MyBusinessPOS 2012 puede ser descargado aquí

[gview file="http://helpmybusinesspos.info/wp-content/Descargas/2012/08/ManualMyBusinessPOS2012.pdf" height="900" width="100%"]

Fuente: www.mybusinessspos.com

viernes, 13 de enero de 2012

Congreso Anual MyBusiness POS 2012

Información obtenida de www.mybusinesspos.com
[wpdm_package id='15042']
[wpdm_package id='15021']

Objetivo del Congreso


Congregar a la comunidad de distribuidores de MyBusiness POS de todo el país, con los más importantes fabricantes y mayoristas de equipo POS, en un evento para la capacitación y potenciación de su capacidad de ventas.

Lugar y Fecha


17 al 20 de mayo de 2012
Hotel Great Parnassus. Cancún, Q. Roo.

Beneficios


Conocerás las novedades de los productos de los principales fabricantes de hardware POS.
Convivirás durante tres días con dichos fabricantes para abordar negocios potenciales.
Convivirás con los más importantes mayoristas de POS.

Inversión.


Hasta el 20 de febrero: $2,500.00*

Hasta el 20 de marzo: $2,750.00 *
Hasta el 20 de abril: $3,000.00 *
Hasta el 30 de abril: $3,500.00 *

* Precios netos por persona con base en ocupacion doble.

¿Qué incluye?


- Una cama en habitación doble por cuatro días y tres noches en el Hotel Great Parnassus en Cancún, Quintana Roo.
- Conferencias de fabricantes y mayoristas.
- Una licencia de MyBusiness POS para reventa para los que asistan a todas las conferencias y mesas demostrativas.
- 3 desayunos para una persona.
- 3 comidas para una persona.
- 3 cenas para una persona.

El número máximo de asistentes por empresa es de 2. En el caso de que asistan cónyuges tienen que comprobar que laboran en la misma empresa.

EL CUPO ES LIMITADO y está diseñado para distribuidores realmente interesados en generar negocio y asistir a todas las pláticas y talleres.

sábado, 31 de diciembre de 2011

¿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.

jueves, 29 de diciembre de 2011

Al dar un clic en un módulo adicional de la barra de tareas

Este es el código fuente del Procedimiento RUNBARRA
RUNBARRA almacena todas las acciones que realizan los iconos de la ventana principal del sistema.
Aqui podemos hacer algunos ajustes para ejecutar nuestras Formas desarrolladas con el Editor de "Ambiente de desarrollo"
' Mybusiness POS v. 2011
Sub Main()
Dim Ventas

Select Case Ambiente.Tag
Case "Series"
Script.RunForm "SERIES", Parent, Ambiente,, False
Case "Verificador"

If Question( "Desea activar el verificador de precios (recuerde desactiva la ventana con ...1 y enter)", 1 ) Then
MuestraVerificador
End If

Case "Reconectar"
CreaConexiones
Case "AltaRapida"
Script.RunForm "ALTARAPIDA", Parent, Ambiente,, False
Case "AltaHotel"
Script.RunForm "ALTASERVICIOS", Parent, Ambiente,, False
Case "MySQLPass"
Script.RunForm "PASSMYSQL", Parent, Ambiente,, False
Case "HotSync"
Script.RunProcess "HOTSYNC", Parent, Ambiente
Case "Ofertas"
Script.RunForm "OFERTAS", Parent, Ambiente,, False
Case "CambioPrecio"
Script.RunForm "CAMBIOPRECIO", Parent, Ambiente,, False
Case "Procedimientos"
MuestraNodo "Procedimientos"
Case "Formatos"
MuestraNodo "formatos"
Case "Reportes"
MuestraNodo "Reportes"
Case "Hermes"
Script.RunForm "OFERTAS2", Parent, Ambiente,, False
Case "Etiquetas2"
Script.RunForm "ETIQUETA2", Parent, Ambiente,, False
Case "InvExcel"
Script.RunForm "PRODSEXCEL", Parent, Ambiente,, False
Case "estados"
Script.RunForm "ESTADOS", Parent, Ambiente,, False
Case "EditarCB"
MuestraDEtiquetas
Case "EditarTicket"
Script.RunForm "EDITORTICKET", Me, Ambiente,, False
Case "EditarGuion"
Script.RunForm "EDITORMENSAJE", Me, Ambiente,, False
Case "Pls2001"
Script.RunForm "EPLS2000", Me, Ambiente,, False
Case "Repartidor"
Script.RunForm "ALTAREPARTIDOR", Me, Ambiente,, False
Case "ImpVentas"
Script.RunForm "IMPVENTAS2", Me, Ambiente,, False
Case "Pacientes"
Script.RunForm "PACIENTES", Me, Ambiente,, False
Case "Bitacoras"
Script.RunForm "BITACORAS", Me, Ambiente,, False
Case "SubirBitacora"
Script.RunForm "SUBIRBITACORAS", Me, Ambiente,, False
Case "prospectos"
' Script puede ejecutar un proceso, una forma de captura, un reporte
' o un formato impreso
Script.RunForm "PROSPECTOS", Me, Ambiente,, False
Case "PreciosEspeciales"
Script.RunForm "PRECIOSESPECIALES", Me, Ambiente,, False

Case "Recostear"
Script.RunForm "COSTEO", Me, Ambiente,, False

Case "Touch"

Set Ventas = CreateObject("MyBVentas.ventas")
Set Ventas.Ambiente = Ambiente
Ventas.ActivaTouch

Case "PuntoVenta2"

Set Ventas = CreateObject("MyBVentas.ventas")
Set Ventas.Ambiente = Ambiente
Ventas.ActivaPuntoDeVenta2

Case "Recalcular"
If Question( "Desea recalcular el inventario", 1 ) Then
Call RecDelta()
End If

Case "Servicios"

ejecuta "CD010"

Case "DatosGenerales"

Me.DatosEmpresa

Case "Mantenimiento"

RepararBaseDedatos

Case "FormatosImpresion"

Formatos

Case "Consecutivos"

'Consecutivos
SetSessionValue Ambiente, "FORMPADRECONSEC", "BUSINESSMANAGER"
Script.RunForm "CONSECUTIVOS", Me, Ambiente,, True

Case "GeneralConsecutivos"

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

Case "BorrarBase"

EliminaDatos

Case "AltaEmpresa"

Script.RunForm "DATOSEMPRESA", Me, Ambiente,, False

Case "CambiarEmpresa"

CambiaEmpresa

Case "RegistroDeLicencia"

AcercaDe

Case "ConfigGeneral"

ConfigGeneral

Case "SincronizarProcedimientos"

SincronizarProcedimientos

Case "Rangos"

establecerPeriodosDeCarpetas

Case "configpocket"
Script.RunForm "CONFIGPOCKETPC", Me, Ambiente,, True
Case "inventariopocket"
Script.RunForm "ENTRADAPOCKET", Me, Ambiente,, True
Case "pocket"
Script.RunForm "EXPORTAIMPORTAPOCKET", Me, Ambiente,, True
'Script.RunProcess "EXPORTAINFOTOPOCKET", Parent, Ambiente
Case "confirmaventas"
Script.RunForm "CONFIRMAVENTAS", Me, Ambiente,, True
Case "creanotas"
Script.RunForm "AsistenteNotasPocket", Me, Ambiente,, True
'Case "creainventariofisico"
'Script.RunForm "INVFISICOPOCKET", Me, Ambiente,, True
Case "reportepedidospk"
EjecutaReporte "PEDIDOSMOBILE"
Case "cargainicial"
EjecutaReporte "PRODSPOCKET"
Case "ventaspendientes"
EjecutaReporte "VENTASMOBILE"
Case "articulosvendidos"
EjecutaReporte "VENTAPRODSMOBILE"

Case "HojaInventario"

Script.RunForm "HOJACOSTOS", Me, Ambiente,, False
'muestraHojaDeInventario

Case "CobroCaja"

Set ventas = CreateObject( "MyBVentas.ventas" )
Set ventas.Ambiente = Me.Ambiente
Ventas.MuestraCobroEncaja

Case "Consulta"

Script.RunForm "CONSULTA", Me, Ambiente,, False

Case "etenvio"

Script.RunForm "ETENVIO", Me, Ambiente,, False

Case "FacturaCierre"

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

Case "series"

activaSeriesSalida

Case "lotes"

activaFormaDeLotes

Case "CambioCosto"

activaFormaDeCambiosDeCosto

Case "ReportesFinancieros"

ShellRun Me.hWnd, "Open", "http://localhost:4410/index.myweb?newsession"

Case "seriesseguimiento"

Script.RunForm "RASTREOSERIE", Me, Ambiente,, False

Case "MBInventario"

Set MBInventario = CreateObject( "MyBArticulos.Articulos" )
Set MBInventario.Ambiente = Ambiente
MBInventario.muestraMBInventario

Case "ordenproduccion"

Set p = CreateObject( "MyBProduccion.produccion" )
Set p.Ambiente = Ambiente
p.NuevaOp

Case "capturaetiquetas"

Set p = CreateObject( "MyBProduccion.produccion" )
Set p.Ambiente = Ambiente
p.MuestraCapturaDeFracciones

Case "seguimiento"

Set p = CreateObject( "MyBProduccion.produccion" )
Set p.Ambiente = Ambiente
p.muestraSeguimiento

Case "destajo"

Script.RunForm "DESTAJO", Me, Ambiente,, False

Case "ordenservicio"

Script.RunForm "ORDENES", Me, Ambiente,, False

Case "BuscarTicket"

Script.RunForm "BUSCATICKET", Me, Ambiente,, False

Case "existenciaremota"

Script.RunForm "EXISTENCIAREMOTA", Me, _
Ambiente, , False

Case "Abonos"

Set Cobranza = CreateObject( "MyBCobranza.Cobranza" )
Set Cobranza.Ambiente = Ambiente
Cobranza.NuevoAbono


Case "ImportarMySQL"

Script.RunForm "IMPORTAMYSQL", Me, Ambiente,, False

Case "Analisis"

Script.RunForm "PRODUCTOSSUGERIDO", Me, Ambiente,, False

Case "UEPS"

Script.RunForm "COSTEOUEPS", Me, Ambiente,, False

Case "PEPS"

Script.RunForm "COSTEOPEPS", Me, Ambiente,, False

Case "Secciones"

Script.RunForm "BUSQUEDASECCIONES", Me, Ambiente,, False

Case "Comandas"

Script.RunProcess "AAMESAS", Me, Ambiente

Case "Reservaciones"

Script.RunProcess "AARESERVACIONES", Me, Ambiente

Case "Backup"

Script.RunForm "RESPALDOBASEDEDATOS", Me, Ambiente,, False

Case "Menu"

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

Case "r_impresoras"

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

Case "CierreTienda"

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

Case "Huella"

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

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


Case "Clientes2"

Script.RunForm "CLIENTES", Me, Ambiente,, False

Case "Proveedores2"

Script.RunForm "PROVEEDORES", Me, Ambiente,, False

Case "FPersonalizados"

Script.RunForm "GENERADORDOCUMENTOS", Me, Ambiente,, False

Case "materiales"

Script.RunForm "HOJADEMATERIALES", Me, Ambiente,, False

Case "imc"

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

Case "RemisionFactura"

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

Case "ImpClientes"

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

Case "ImpProveedores"

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

Case "CambioPrecio"

Script.RunForm "CAMBIOPRECIO", Me, Ambiente,, True
case "ConfigSucursal"

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

Case "FacturaElectronica"
ConfigFile = Ambiente.Path + "\econfig.txt"
BatchFile = Ambiente.Path + "\FElectronica.bat"

Set rstConfiguracion = CreaRecordSet("select * from FEConfig ", Ambiente.Connection)
if not rstConfiguracion.EOF then
Set fso=CreateObject("Scripting.FileSystemObject")
If fso.FileExists(ConfigFile) Then
fso.DeleteFile ConfigFile
End if
If fso.FileExists(BatchFile) Then
fso.DeleteFile BatchFile
End if
If not fso.FolderExists(rstConfiguracion("FileLocation")) Then
fso.CreateFolder(rstConfiguracion("FileLocation"))
End if

outline BatchFile,"@echo off" + vbCrLf
outline BatchFile,"cd " + Ambiente.Path + vbCrLf
outline BatchFile,"start /wait FElectronica.exe" + vbCrLf
outline BatchFile,"exit" + vbCrLf

'ambiente.connection.execute "exec FEInicializaSerie '"+ trim(ambiente.estacion) + "'"
outline ConfigFile,ambiente.connection + vbCrLf
ShellRun Me.hWnd, "Open",Ambiente.Path + "\FElectronica.bat"
end if

Case "Tallas"

Script.RunForm "TallaColModelos", Me, Ambiente,, True
End Select

End Sub

Sub ejecuta( nombreProcedimiento )
Dim rstFormato

Set rstFormato = CreaRecordSet( _
"SELECT * FROM formatos WHERE formato = '" & nombreProcedimiento & "'",_
Ambiente.Connection )

If rstFormato.EOF Then
Exit Sub
End If

' 1.- Tipo de programa
' 2.- Codigo de programacion
' 3.- El objeto Ambiente
' 4.- El objeto padre
Script.Preview rstFormato("tipo"), rstFormato("codigo"), Ambiente, Me

End Sub


Sub EjecutaReporte(reporte)

Dim rstReporte

Set rstReporte = Rst("SELECT * FROM formatosdelta WHERE formato = '" & reporte & "'", Ambiente.Connection )

If rstReporte.EOF Then
Exit Sub
End If

Script.Preview rstReporte("tipo"), rstReporte("codigo"), Ambiente, Me, rstReporte("formato"), ""


End Sub






Al iniciar el sistema

Este es el código fuente del Procedimiento INICIO001
INICIO001 almacena todos los iconos y procedimientos necesarios en la ventana principal del sistema.
Aqui podemos hacer algunos ajustes para agregar iconos de nuestras Formas desarrolladas con el Editor de "Ambiente de desarrollo"
' Mybusiness POS v. 2011
Sub Main()
Dim adXactReadSerializable
Dim adXactReadUncommitted
Dim adXactReadCommitted
Dim adXactRepeatableRead

adXactReadSerializable = 1048576
adXactReadUncommitted = 256
adXactReadCommitted = 4096
adXactRepeatableRead = 65536

' Establecemos el modo de Aislamiento
'Ambiente.Connection.Execute "SET TRANSACTION ISOLATION LEVEL SERIALIZABLE"
Ambiente.Connection.IsolationLevel = adXactReadSerializable

Parent.Timer.Enabled = True
Ambiente.eventRowReports = true
Ambiente.ModoDeDepuracion = True


' Cargamos el listado de Iconos
ModoAvanzado

' Vemos si el usuario tiene pendientes
'Call buscaPendientes


'Set NodX = bmForm.tvTreeView.Nodes.Add("Business", 4, "CarpetaDeUsuario1", "Carpeta Personalizada", 1, 2)

End Sub


Sub ModoAvanzado()

Dim rstUsuario

On Error Resume Next
vbalListBar1.Width = Me.Width / 4
On Error Goto 0

' Vemos si el usuario es supervisor
Set rstUsuario = CreaRecordSet( "SELECT supervisor FROM usuarios WHERE usuario = '" & Ambiente.Uid & "'", Ambiente.Connection )

'Me.vbalImageList1.AddFromFile Ambiente.Path & "\images\recostear.ico", 1, "recostear"
'Eventos

vbalListBar1.Bars.Clear


With vbalListBar1

If parent.bIconosNuevos = True Then
.ImageList = imgBarra
Else
.ImageList = vbalImageList1
End If

.Bars.Add ,"Ventas", "Ventas"
.Bars.Add ,"Restaurante", "Restaurante"

.Bars.Add ,"Compras", "Compras"
.Bars.Add ,"Inventario", "Inventario"
.Bars.Add ,"Utilerias", "Utilerias"
.Bars.Add ,"TiempoAire", "Tiempo Aire"
.Bars.Add ,"FacElectronica", "Factura Electrónica"
.Bars.Add ,"Mobile Business", "Mobile Business"

'.Bars.Add ,"Produccion", "Producción"


' Bars.Add agrega una pestaña a la barra de tareas
' Opcional 1.- El indice de la barra, 2.- La llave
' de la barra, 3.- El titulo de la barra
'.Bars.Add ,"cursoveracruz", "Curso Veracruz"

' Items.Add agrega un icono a la pestaña indicada
' Opcional 1.- El indice, 2.- La llave del icono,
' 3.- Titulo del icono, 4.- Un indice que representa
' un icono entre 1 y 140
'.Bars("cursoveracruz").Items.Add ,"existenciaremota", _
'"Existencias en sucursales", 110


' Le damos acceso a la parte de programación solo si es supervisor
If rstUsuario("supervisor") <> 0 Then
.Bars.Add ,"Configuracion", "Configuración"
.Bars.Add ,"Programacion", "Programación"
End If

For n = 1 To .Bars.Count
.Bars(n).State = 0
Next

.Bars("ventas").State = 1

.Bars("Inventario").Items.Add ,"Articulos", "Artículos", 2
.Bars("Inventario").Items.Add ,"AltaRapida", "Alta Rápida (Artículos)", 45
.Bars("Inventario").Items.Add ,"Tallas", "Tallas y Colores por Modelo", 19
.Bars("Inventario").Items.Add ,"InvExcel", "Importar artículos y existencia desde excel(tm)", 98
.Bars("Inventario").Items.Add ,"Entradas", "Entradas al Inventario", 25
.Bars("Inventario").Items.Add ,"Salidas", "Salidas al Inventario", 26
.Bars("Inventario").Items.Add ,"Fisico", "Inventario físico", 27
.Bars("Inventario").Items.Add ,"Recalcular", "Recalcular Inventario (Promedio)", 29

.Bars("Inventario").Items.Add ,"UEPS", "Recalcular Costeo (UEPS)", 130
.Bars("Inventario").Items.Add ,"PEPS", "Recalcular Costeo (PEPS)", 128

.Bars("Inventario").Items.Add ,"HojaInventario", "Resumen de operaciones", 65

'.Bars("Inventario").Items.Add ,"Recostear", "Recostear Inventario", 99

'.Bars("Inventario").Items.Add ,"PedidosOrdenes", "Recalcular por surtir y por recibir", 35
'.Bars("Inventario").Items.Add ,"Cerrar", "Cerrar inventario", 30

'Rosy 08-Noviembre-2006
'If clAt("MySQL",Ambiente.Connection.ConnectionString) Then
.Bars("Inventario").Items.Add ,"CalidadInventario", "Informe de Calidad de Inventario", 34
'.Bars("Inventario").Items.Add ,"CalidadInventario2", "Informe de Calidad de Inventario (Solo nuevos)", 62
'End If
'Rosy

.Bars("Inventario").Items.Add ,"series", "Números de serie", 101
.Bars("Inventario").Items.Add ,"lotes", "Lotes", 51
.Bars("Inventario").Items.Add ,"Analisis", "Analisis de Inventario", 121

.Bars("Ventas").Items.Add ,"PuntoVenta", "Punto de venta", 7
.Bars("Ventas").Items.Add ,"CierreTienda", "Resumen general de operaciones", 136
.Bars("Ventas").Items.Add ,"RemisionFactura", "Convertir remisiones a factura", 137

.Bars("Ventas").Items.Add ,"Pedidos", "Pedidos de clientes", 4
.Bars("Ventas").Items.Add ,"Facturas", "Facturas", 5
.Bars("Ventas").Items.Add ,"Remisiones", "Remisiones", 6
.Bars("Ventas").Items.Add ,"Clientes2", "Clientes", 16
.Bars("Ventas").Items.Add ,"ImpClientes", "Importar catálogo de clientes desde Excel(tm)", 130
.Bars("Ventas").Items.Add ,"Cobranza", "Cobranza", 10
.Bars("Ventas").Items.Add ,"Devoluciones", "Devoluciones / Notas de crédito", 22

.Bars("Compras").Items.Add ,"OrdenesDeCompra", "Ordenes de Compra", 8
.Bars("Compras").Items.Add ,"Compras", "Compra", 9
.Bars("Compras").Items.Add ,"DevComp", "Devolución de compra", 24
.Bars("Compras").Items.Add ,"Proveedores2", "Proveedores", 17
.Bars("Compras").Items.Add ,"ImpProveedores", "Importar catálogo de proveedores desde Excel(tm)", 130
.Bars("Compras").Items.Add ,"Cxp", "Cuentas por pagar", 11

.Bars("Utilerias").Items.Add ,"EditarTicket", "Editar texto del ticket", 96

.Bars("Utilerias").Items.Add ,"Etiquetas", "Etiquetas de código de barras", 39
.Bars("Utilerias").Items.Add ,"FPersonalizados", "Formatos personalizados (Requiere Microsoft Word)", 139

.Bars("Utilerias").Items.Add ,"Ofertas", "Ofertas", 134
.Bars("Utilerias").Items.Add ,"CambioPrecio", "Cambios de precios", 65
.Bars("Utilerias").Items.Add ,"Bitacoras", "Bitacoras", 41
.Bars("Utilerias").Items.Add ,"SubirBitacora", "Subir Bitacoras", 98
'.Bars("Utilerias").Items.Add ,"Telemercadeo", "Telemercadeo", 13
'.Bars("Utilerias").Items.Add ,"Pendientes", "Pendientes", 14
.Bars("Utilerias").Items.Add ,"EditarFacturas", "Editar formato de factura", 7
.Bars("Utilerias").Items.Add ,"EditarRemisiones", "Editar formato de remisiones", 7
.Bars("Utilerias").Items.Add ,"EditarNc", "Editar formato de Notas de Crédito", 7
'.Bars("Utilerias").Items.Add ,"EditarClientes", "Cartas personalizadas", 7
'.Bars("Utilerias").Items.Add ,"Pls2001", "Generar PLU Para Torrey PLS 2001", 94
.Bars("Utilerias").Items.Add ,"Verificador", "Verificador", 36
.Bars("Utilerias").Items.Add ,"Backup", "Respaldo", 142
.Bars("Utilerias").Items.Add ,"Huella", "Registro de entradas/Salidas de personal", 144
.Bars("Utilerias").Items.Add ,"PruebaHuella", "Prueba Huella", 144
.Bars("Utilerias").Items.Add ,"MBInventario", "MyBusiness Inventario", 129

'.Bars("Produccion").Items.Add ,"ordenproduccion", "Orden de producción", 119
'.Bars("Produccion").Items.Add ,"capturaetiquetas", "Captura de etiquetas", 120
'.Bars("Produccion").Items.Add ,"seguimiento", "Seguimiento del proceso", 121
'.Bars("Produccion").Items.Add ,"destajo", "Pago del destajo", 122

.Bars("TiempoAire").Items.Add ,"ActualizarMontos", "Actualizar montos para venta de tiempo aire", 69

.Bars("FacElectronica").Items.Add ,"ConfigSucursal", "Configuración de Sucursales", 102
.Bars("FacElectronica").Items.Add ,"FacturaElectronica", "Emisión de Facturas Electrónicas", 102

.Bars("Mobile Business").Items.Add ,"configpocket", "Configurar Pocket PC", 48
.Bars("Mobile Business").Items.Add ,"inventariopocket", "Capturar Inventario de la Pocket PC", 2
.Bars("Mobile Business").Items.Add ,"pocket", "Exportar/Importar datos a Pocket PC", 71
'.Bars("Mobile Business").Items.Add ,"confirmaventas", "Confirmar ventas de Pocket PC", 5
.Bars("Mobile Business").Items.Add ,"creanotas", "Asistente de devoluciones en Pocket PC", 6
'.Bars("Mobile Business").Items.Add ,"creainventariofisico", "Aplicar Inventario Físico de Pocket PC", 27
.Bars("Mobile Business").Items.Add ,"reportepedidospk", "Reporte de Pedidos de la Pocket PC", 121
.Bars("Mobile Business").Items.Add ,"cargainicial", "Reporte de productos cargados inicialmente a la Pocket PC", 22
.Bars("Mobile Business").Items.Add ,"ventaspendientes", "Reporte de ventas generadas por la Pocket PC", 4
.Bars("Mobile Business").Items.Add ,"articulosvendidos", "Reporte de artículos vendidos desde la Pocket PC", 108

If rstUsuario("supervisor") <> 0 Then

'.Bars("Configuracion").Items.Add ,"DatosGenerales", "Conexión a la base de datos", 100
.Bars("Configuracion").Items.Add ,"ConfigGeneral", "Datos generales de la empresa", 109

If clAt( "MySQL", Ambiente.Connection ) Then
.Bars("Configuracion").Items.Add ,"Mantenimiento", "Mantenimiento a la base de datos", 101
End If

.Bars("Configuracion").Items.Add ,"FormatosImpresion", "Establecer Formatos de Impresión", 102
.Bars("Configuracion").Items.Add ,"Consecutivos", "Consecutivos de impresión", 103
.Bars("Configuracion").Items.Add ,"GeneralConsecutivos", "General de consecutivos de impresión", 117
.Bars("Configuracion").Items.Add ,"BorrarBase", "Borrar Base de Datos", 104
.Bars("Configuracion").Items.Add ,"AltaEmpresa", "Manejo de conexiones a base de datos", 105
.Bars("Configuracion").Items.Add ,"CambiarEmpresa", "Cambiar de conexión", 106
.Bars("Configuracion").Items.Add ,"SincronizarProcedimientos", "Sincronizar Procedimientos", 110
.Bars("Configuracion").Items.Add ,"Rangos", "Rangos de vista del Business Manager", 111
.Bars("Configuracion").Items.Add ,"RegistroDeLicencia", "Acerca de...", 107
.Bars("Programacion").Items.Add ,"EditorFormas", "Ambiente de desarrollo", 42
.Bars("Programacion").Items.Add ,"Busquedas", "Editor de busquedas", 18
.Bars("Programacion").Items.Add ,"EditorSQL", "Editor de SQL", 19
.Bars("Programacion").Items.Add ,"ImportarMySQL", "Importar de MySQL", 101
End If

.Bars("Restaurante").Items.Add ,"Secciones", "Secciones", 137
.Bars("Restaurante").Items.Add ,"r_impresoras", "Impresoras", 143

.Bars("Restaurante").Items.Add ,"Touch", "Caja", 53
.Bars("Restaurante").Items.Add ,"Comandas", "Comandas", 136
.Bars("Restaurante").Items.Add ,"Reservaciones", "Reservaciones", 140
.Bars("Restaurante").Items.Add ,"Menu", "Definición de menú", 141


If rstUsuario("supervisor") <> 0 Then
If clAt( "MySQL", Ambiente.Connection ) > 0 Then
.Bars("Utilerias").Items.Add ,"MySQLPass", "Establecer password de MySQL", 46
End If
End If

End With

End Sub


Sub buscaPendientes()

Set rstPendientes = CreaRecordSet( "SELECT * FROM pendient WHERE para = '" & Ambiente.Uid & "' AND estado = 'PE' AND fecha = " & fechaSQL( fecha ), _
Ambiente.Connection )

If Not rstPendientes.EOF Then
Set Clientes = CreateObject( "MyBClientes.Clientes" )
Set Clientes.Ambiente = Me.Ambiente
Clientes.MuestraPendientes
End If

End Sub



También podemos solucionar este error, desde whatsapp 7222816462:
Error Número 429

Module: frminicio
Function: vbalListBar1_ItemClick
Description: ActiveX Component can´t create object
Código duro 24
Error Número 429

martes, 27 de diciembre de 2011

Como leer etiquetas generadas por una báscula Torrey

[wpdm_package id='16567']

[wpdm_package id='15019']

[wpdm_package id='15009']

[wpdm_package id='15024']

[wpdm_package id='15025']

[wpdm_package id='15026']

En caso de que su empresa sea un supermercado o una carnicería, en ocasiones necesario leer las etiquetas de código de barras generadas por las básculas expendedoras. Para eso es importante habilitar la venta de ARTÍCULOS A GRANEL en la pestaña de Artículos.

El formato de código de barra que generan estas básculas son:

  • 20cccccwwwwwV (Formato por peso weight)


En donde cada campo representa:

El dígito inicial siempre es 20


ccccc representa el código del producto registrado en la báscula, una clave de 5 digitos

wwwww es el PESO en gramos 01250 es igual a un kilo con 250 gramos

V es el digito verificador

Es decir la báscula se configura para generar formatos por peso o por precio.

Es necesario dar de alta el producto en forma especial siguiendo estas reglas:

  • La clave debe ser de 5 digitos, por ejemplo 00022 Milanesa de Res, tal y como estan registrados los productos en la báscula.

  • En la unidad poner KG

  • Impuesto normalmente es cero

  • Dar el precio correcto por kilo


En el Punto de Venta al escanear el código de barras con clave: 2000022001054 el sistema identificará que se trata de un código de barra generado por báscula y lo convertira en la venta de 105 gramos del producto 00022.

Ejemplo práctico: basculas torrey


El siguiente código es impreso por la báscula y lleva la siguiente estructura.

Es un código ean 13

201234501245

Explicación de la estructura del código de barras

20=código a despreciar

12345=código del ARTÍCULO (es el que se da de alta en el sistema, con 5 dígitos)

01245=peso del articulo

Esto representa una simulación mediante la lectura del código.

Entonces el peso será 01265*0.01=12.65

Luego entonces lo que leerá MyBusiness POS será lo siguiente, según la simulación:

12345*12.45

12345=es el código del ARTÍCULO (es el que se da de alta en el sistema, con 5 dígitos)

*=es el multiplicador lo da por defecto ferrum.

12.45=es el peso de la etiqueta que leyó el sistema, como resultado del factor.



cualquier duda o comentaio, por favor hazlo saber al correo jofelchez@gmail.com

sábado, 12 de noviembre de 2011

Ticket con descuentos

Este es el código fuente del formato "Ticket con descuentos"

' Mybusiness POS v. 2011
Sub Main()

if Ambiente.rstEstacion("torreta") <> 0 Then
if clAt( "LPT", Ambiente.rstEstacion("ptorreta") ) > 0 Then
Out Trim(Ambiente.rstEstacion("ptorreta")), Chr( 12 ) & "Total: $" & Formato( Val2( txtFields(4) ), "###,###.00" )
else
On Error resume next
Ambiente.torreta.PortOpen = True
if Ambiente.torreta.PortOpen Then
Ambiente.Torreta.OutPut = Chr( 12 ) & "Total: $" & Formato( Val2( txtFields(4) ), "###,###.00" )
end if
end if
end if

If Ambiente.rstEstacion("ventasportelefono") <> 0 Then

cSalida = ""

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

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

Exit Sub
End If

'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

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

If rstTextTicket.EOF Then
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)
Else
cSalida = cSalida & rstTextTicket("textheader")
End If

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 rstEncabezado("Comision") > 0 Then
cSalida = cSalida & " Comisión: " & PadL(Formato( Val2(rstEncabezado("comision")), Ambiente.FDinero ),10) & Chr(13) & Chr(10)
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) & Chr(13) & Chr(10)
else
cSalida = cSalida & " Cambio: " & PadL(Formato( nPagoTotal - nComision - 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)

If rstTextTicket.EOF Then
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)

Else
cSalida = cSalida & rstTextTicket("textend")
End If

' 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

Dormir 100
Eventos

End Sub

viernes, 11 de noviembre de 2011

Formato de tickets 3

' Mybusiness POS v. 2011
Sub Main()
' Realizado para Irving Hernandez
' 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

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

If rstTextTicket.EOF Then
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)
Else
cSalida = cSalida & rstTextTicket("textheader")
End If

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. 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, 40 ) & vbCrLf
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) & " " & 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)
cSalida = cSalida & cDescrip

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 rstEncabezado("Comision") > 0 Then
cSalida = cSalida & " Comisión: " & PadL(Formato( Val2(rstEncabezado("comision")), Ambiente.FDinero ),10) & Chr(13) & Chr(10)
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) & Chr(13) & Chr(10)
else
cSalida = cSalida & " Cambio: " & PadL(Formato( nPagoTotal - nComision - 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)

If rstTextTicket.EOF Then
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)

Else
cSalida = cSalida & rstTextTicket("textend")
End If

' 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


miércoles, 9 de noviembre de 2011

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

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

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