[BulmaGés]BulmaTPV
Daniel Jesús Pérez Burgos
danieljpb en gmail.com
Lun Nov 5 20:59:47 CET 2007
Hola! el programa que uso es una versión de facturlinex (
http://www.linexpyme.com/linex-pyme-2006/dists/cl/linex-pyme/binary-i386/facturlinex-src_1.6.0_all.deb)
"tuneada", ya que hace 4 años era lo único que mas o menos pude adaptar, al
tener un entorno fácil con kylix y ser pascal un lenguaje sencillo.
La parte que cambie fue la parte de venta y arqueos ya que el facturlinex no
esta adaptado a pantallas táctiles, y no tiene botones para marcar si no que
es todo por pistola y teclado. Como os comentaba lazarus es la alternativa a
kylix pero quizás para un desarrollo de primeras qt sea mas adecuado. La
base de datos es otro problema de este programa ya que los campos de las
tablas no los identifica con su descripción si no con iniciales A1, A2...
supongo que para que recurras a ellos para el soporte. Yo mas o menos se ya
casi todos a base de mirar el código. Os cuento un poco como trabaja este
programa en líneas generales por si os sirve de ayuda. Las tablas
principales son:
hisopcc0001 (0001 es la tienda): cabezera de los tickets
hisopdd0001 (0001 es la tienda): contenido de los tickets
ventas0001A (A es el puesto por si una tienda tiene mas de un tpv): tabla
donde se guardan los productos elejidos y el grid coje los datos para
mostrarlos. (esta tabla tiene dos campos discriminatorios, uno la
dependienta y otro la cuenta)
ventastmp0001A(A es el puesto por si una tienda tiene mas de un tpv): copia
de ventas0001 pero con otros campos como el entrega cambio fecha, hora,
dispensador y arqueo, es una papelera a donde van los tickets cobrados sin
procesar a espera de ser procesados por el demonio que comente.
arqueos0001: sumatorio de el total que marca el ordenador y el total que
introduce la chica al cerrar la caja.
cierrecajas0001: desglose de las monedas introducidas al cerrar el arqueo
(para su posterior comprobación al ingresar en el banco).
entrasal0001: tabla de entradas/salidas
Como supongo que la idea es enlazarlo con bulmages creo que las tablas de
artículos se cogerían de allí. Cuando empecé a modificar el programa para
que fuese visual me encontré con dos opciones, que el cliente diseñase las
pantalla de ventas o que esta se hiciese sola. En mi caso opte por hacerla
automática ya que se puede caer en la desidia y que la pantalla se quede
desactualizada. Cree una tabla en donde se definen las pestañas que
aparecerán en la aplicación en un espacio x en mi caso arriba. Estas
pestañas con somo secciones (Bebidas,Bocadillos... ) y cuando se pica
aparecen los artículos asociados. En la parte de los artículos aparece una
combo para seleccionar la sección en donde aparecen estos artículos, el
nombre del botón el color de fondo y de la letra y la foto (cosa que no
uso). así el resto lo hace el programa y el usuario no tiene que diseñar
la pantalla ella se crea sola. Cuando no cogen mas botones aparece una
flecha para cambiar de pantalla. Ya que los botones si se cargan por base de
datos tarda mucho cada vez, cuando arranca el programa genera un xml con
todos los artículos que tienen botón y de esa forma la lectura del xml es
mucho mas rápida para recargar la pantalla. Al generar la pantalla
dinámicamente le asigno a una propiedad que tienen los botones llamada tag
el código del artículo de forma que cuando se pica sobre el botón el
programa sabe a que artículo ir y cojer su precio o lo que queramos y lo
muestra en un grid que esta asociado a la tabla ventas. Los dos campos que
menciono los añadi ya que en mi negocio puede haber mas de una dependienta a
la vez y para que el sistema sepa que productos tiene esa dependienta uso un
campo dentro de la tabla ventas el otro tambien en ventas es para la cuenta
ya que cada dependienta tiene 4 cuentas de forma que si un cliente te deja
una compra y sigue comprando puedas atender a otro en otra cuenta dejando la
anterior aparcada.
Sistema básico de trabajo:
Cada dependienta esta obligada a entrar y salir quedando registrada la hora
de entrada, al terminar debe hacer lo mismo. Cada vez que entran se crea un
botón con su nombre y para cobrar pica sobre su nombre y este aparecerá en
un cuadro. Cuando se completa la operación la tabla ventas se vacía quedando
en la ventastmp los datos para ser procesados.
Procesado de datos:
Una vez que el demonio recorre la tabla ventastmp, actualiza las tablas
hisoppcc que son las cabezeras de los tickets en donde pone la fecha la hora
el nº de ticket el total la entrega, el cambio y la dispensadora, la tabla
hisopdd que es el desglose del ticket enlazado por el nº de ticket que es
autoincremental, en esta tabla hay un dato que es el nº de arqueo. En cada
producto introduzco el nº de arqueo al que corresponde, al cerrar el arqueo
hago un SUM de los productos con ese nº de arqueo (veo la venta real que
contrasto con la que la dependienta pone viendo si hay descuadres.), lo
guardo en la tabla arqueos incremento el número de arqueo dejándolo listo
para el siguiente turno.
Los listados los hago mediante la tabla hisopdd donde estan los
artículo(nº), la fecha y la hora en que se venden ademas de la cantidad y el
total de esa forma puedo saber lo que quiera relaccionado a artículos
específicos.
Los arqueos son pasados a contabilidad.
Uso ELO como pantalla táctil ya que es la que tiene mejor driver para linux
incluido dentro de xorg.
Este es el funcionamiento básico del tpv. como decía trabajo directamente
para abrir el cajón cortar el ticket e imprimir con secuencias de escape.
Uso epson como impresora ya que tiene una utilidad para meterle el logo del
ticket en la vram de la impresora y con una secuencia de escape me imprime
el logo que haya subido a la impresora creo que tiene opción de hasta 4
para subir.
No he detallado las tablas porque como digo son muy poco representativas ya
que usa iniciales, además si se desarrolla en base al bulmages supongo que
usaréis sus campos.
No uso fotos porque tendría que subirlas a todas las tiendas y con 2500
referencias es demasiado tiempo y preferimos la rapidez de carga.
Saludos y espero poderos ayudar.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://llistes.bulma.net/pipermail/bulmages/attachments/20071105/e6fe4462/attachment.htm
Más información sobre la lista de distribución BulmaGes