ene 13

Calculo de stocks II

En el post de ayer, veiamos como realizar un sistema de control de existencias, el más básico de todos, con un solo almacén.

Aqui teneis el enlace para los que no lo visteis:

Calculo de stocks I

Hoy vamos a complicar un poquito el ejemplo, y vamos a convertir nuestro control de existencias en un sistema multi-almacén.

Y para el ejemplo de hoy vamos a necesitar unos cuantos cambios sobre el ejercicio de ayer, pero, dejando claro, que ambos sistemas son compatibles y pueden ser realizados sobre el mismo ejercicio.

Para convertir el ejercicio anterior a multi-almacén necesitamos lo siguiente:

  • Una tabla de Almacenes
  • Una tabla para controlar el Stock

Y por supuesto, necesitamos enlazar estas tablas en el esquema anterior.

Control de stocks en varios almacenesPara incorporar estas tablas a nuestro anterior esquema, solo necesitamos:

  1. En la tabla de “Lineas de documentos”, creamos un enlace a la tabla maestra “Almacen”, para saber en que almacén se produce cada movimiento.
  2. La tabla de “Stock” debe tener enlaces a las tablas maestras “Almacen” y “Productos”, y por supuesto, un campo numerico para guardar el Stock, #STOCK
  3. En la tabla “Stock”, tambien necesitamos un indice de clave unica, formado por los campos #PRODUCTO y #ALMACEN, para evitar que esta tabla tenga registros repetidos.
  4. De nuevo, en la tabla “Lineas de documentos”, necesitamos un campo “Puntero indirecto” a la tabla “Stock” mendiante el indice de clave única formado por #PRODUCTO y #ALMACEN, al que llamaremos #PROD_ALM .
  5. Y para terminar, tambien en la tabla de “Lineas de documento”, necesitamos crear la “Actualización”, a través del campo #PROD_ALM , para acumular la #CANTIDAD en el campo #STOCK de la tabla “Stock”

Una vez creada la actualización, solo debemos indicar el campo a actualizar #STOCK, el modo de actualización “ACUMULAR” y como formula:

¿que formula usariais para actualizar? … pensad un poquito

… pensad un poquito mas

… vale, es que no deberia tener que decirla, es la misma de ayer.

choose( #TIPO=”C” , #CANTIDAD , – #CANTIDAD)

¿Como es posible que la misma formula sirva para actualizar el sistema multi-almacén?

Pues, muy sencillo, porque la actualización se realiza sobre una tabla diferente y esa tabla (Stock), dispone de un indice de clave única que combina las 2 tablas maestras “Productos” y “Almacén”.

¿Cuantos almacenes puedo controlar con este sistema: 2 , 3 , 4?

El ejemplo de ayer nos permitia controlar solo UN almacén. En este ejemplo, no hay una limitación del número de almacenes, en realidad depende del campo #ID de la tabla “Almacén”, si has creado un #ID con valor autonumerico de 1 byte, podrás controlar 255 almacenes, pero si amplias el numero de bytes del valor numérico a 2, podrás contolar más de 65.000 almacenes, y puedes seguir ampliando el número de bytes, pero la pregunta es ¿cuantos almacenes necesitas realmente?

Si vamos a usar la misma formula para actualizar y las dos actualiaciones deben ser creadas en la misma tabla de “Lineas de documento” ¿podemos hacer esto con una actualizacion para las 2 tablas?

La respuesta es ¡NO!, ya que, cada actualización debe corresponderse a un campo enlazado a una tabla maestra o a un puntero indirecto, y como puedes comprobar, la primera actualización acumula el resultado en la tabla “Productos” y la segunda, acumula el resultado en la tabla “Stock”

Y una última pregunta, ahora que he creado el sistema de control multi-almacén, ¿para que necesito mantener la acualización del ejemplo de ayer?

Por una razón muy sencilla: porque manteniendo las 2 actualiaciones, gestionamos mejor nuestro almacén, sabiendo las existencias de cada producto en cada uno de los almacenes, pero también, conociendo el stock acumulado de cada producto.

¿Alguna pregunta más?

PDF Printer    Enviar artculo en formato PDF   
comments: 6 »