PDA

Ver la Versión Completa : Actualización entre almacenes


Juanfran
27-08-2004, 19:47:08
Hola a todos:

Estoy realizando una aplicación para la gestión de tiendas (tiendas de regalos). El programa se encuentra instalado en tres máquinas diferentes cada una de ellas con su respectiva IP privada.

En cada máquina se configuran los diferentes almacenes con los que vamos a trabajar. Los datos que se especifican son: código, nombre, tipo (local o remoto), y la dirección IP si el almacén es remoto. El almacén donde se encuentra físicamente cada ordenador es el local y el resto son remotos.

tienda 1......................tienda 2..................tienda 3
alm.tda.1 (local)...........alm.tda.2 (local).......alm.tda.3 (local)
alm.tda.2 (remoto)........alm.tda.1 (remoto)....alm.tda.1 (remoto)
alm.tda.3 (remoto)........alm.tda.3 (remoto)....alm.tda.2 (remoto)

Una de las operaciones que debo llevar a cabo consiste en traspasar stock entre diferentes almacenes. Para ello los pasos a seguir serían los siguientes:

1) Selección del almacén original y el almacén de destino. El almacén original siempre es el almacén local, mientras que el almacén destino se selecciona de una lista de almacenes remotos.

2) Selección de los diferentes artículos a traspasar así como la cantidad.

Estos datos se guardan en un fichero (TRASPASOS) con los siguientes campos: alm.origen, alm.destino, artículo y cantidad. Este fichero queda pendiente de ser procesado.

Hasta este momento el stock tanto en el alm.original como en el destino no se ha modificado.

A continuación el proceso se ejecuta desde el almacén destino. Allí el usuario ejecuta una opción en la que el usuario elige de una lista el almacén del que recibe el traspaso. A continuación se conecta a través de Internet vía dirección IP del almacén y busca en el fichero TRASPASOS todos los registros cuyo código de almacén sea igual al que ejecuta la operación.

La transacción que defino es la siguiente:
- lectura registro
- Control stock disponible en alm.original
- Control artículo existente en alm.destino
- Incrementa stock en alm.destino
- Reduce stock en alm.original
- Borra registro de fichero de traspasos

El proceso anterior tambíen se podría ejecutar desde el almacén origen. Si fuese así se seleccionaría de la lista de alm.remotos, aquel que vaya a recibir el traspaso.

La base de datos que estoy utilizando es Firebird, y utilizo el DBExpress para acceder a la BD. Además creo un módulo de datos con un SQlConnection para la conexión local y un módulo de datos con otro SQlConnection para la conexión remota. En este último en el proced. onBeforeConnec dentro del param.database incluyo la dirección IP (x.x.x.x:c:\Archivos de program\Tienda\Datos\Tienda.fdb).

Esta es la situación en la que me encuentro, y a mi se me ha ocurrido resolverla así . No sé si es correcto o no por lo que agradecería algo de luz sobre el tema, así como la voz de la experiencia, sobre todo en la forma en la que planteo la transaccion.

Gracias anticipadas y perdón por la extensión del mensaje.