Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Problema con lógica de tablas. (https://www.clubdelphi.com/foros/showthread.php?t=53896)

david_uh 04-03-2008 15:25:39

Problema con lógica de tablas.
 
Hola foro

Estoy haciendo un pequeño programa que controle compras ventas y por supuesto que una compra aumente el stock del almacen y una venta reduzca este stock
El programa en si ya esta hecho y he usado las siguente tablas compras, detallecompra, ventas, detalleventa donde y mi tabla productos en la que alamceno la informacion de cada producto ademas de sus stock actual, su costo prmedio actual,etc, es decir que cada operacin de compra o venta modifica el contenido de de la tabla productos.

todo esta ba bien PERO el hecho y mi problema es QUE la empresa abrio unlocal mas de venta, (antes la tienda y el almacen pues quedaban en el mismo lugar) y me complica las cosasa ya que se desea saber cuanto de cada producto se encuentra en cada local asi como el control de compras y ventas de cada local.

Estaré muy agraadecido por cualquier aporte que me pudiesen alcanzar por favor es urgente....
Saludos

kuan-yiu 04-03-2008 15:41:06

Los problemas de almacén no tienen fácil solución: o duplicas los artículos o divides tus tablas.
Yo trabajé hace años en algo parecido. Tenía una tabla de delegaciones que guarda el código de cada delegación, una tabla de artículos que guarda toda la información inmutable de los mismos (nombre, fabricante...) y el stock se almacena en otra tabla en la que se guarda una referencia del artículo y de la delegación.

Caral 04-03-2008 15:43:15

Hola
En la tabla productos hay que añadir un campo (local #), con esto se puede saber que producto esta en cada local y usando una sola tabla.
Con esto el cada vez que se actualice un producto en las tablas compra o venta se especifica a que local corresponde.
El resto es pan comido.
Saludos

david_uh 04-03-2008 15:48:27

Cita:

Empezado por kuan-yiu (Mensaje 270500)
Los problemas de almacén no tienen fácil solución: o duplicas los artículos o divides tus tablas.
Yo trabajé hace años en algo parecido. Tenía una tabla de delegaciones que guarda el código de cada delegación, una tabla de artículos que guarda toda la información inmutable de los mismos (nombre, fabricante...) y el stock se almacena en otra tabla en la que se guarda una referencia del artículo y de la delegación.

gracias por tu pronta respuesta pero podrias decirme por favor a que te refiers con "delegaciones"
gracias de antemano

david_uh 04-03-2008 15:51:48

Cita:

Empezado por Caral (Mensaje 270502)
Hola
En la tabla productos hay que añadir un campo (local #), con esto se puede saber que producto esta en cada local y usando una sola tabla.
Con esto el cada vez que se actualice un producto en las tablas compra o venta se especifica a que local corresponde.
El resto es pan comido.
Saludos

Es una interesante solucion, entonces la estructura inicial de mis tablas esta bien o me sugiere alguna modificacion? teniendo en cuenta que debo controlar compras y ventas y operar con ambos almacenes, como dije cada local tiene su determinado stock digamos que local A es la principal y la sucursal es local B entonces se envia mercaderia de A a B y se trata de controlar eso tambien

Gracias por el aporte ..

Caral 04-03-2008 16:01:31

Hola
El concepto es sencillo.
Local principal #1, cantidad total del producto, osea suma de los demas locales.
Si tenemos un local #2, este define la cantidad de su producto en Base a sus compras y ventas, el producto siempre esta en el local #1, lo unico que hacen los otros locales es modificarlo.
Cuando se modifica se marca el local que hizo el cambio, con esto se hace la referencia a su stock en particular.
Todo inventario comienza con una inclusion o compra y se modifica con la siguiente compra y venta.
El aporte de kuan-yiu es sencillo, se hacen tantas tablas de contenido como locales y el producto se mantiene en una sola.
Para mi con una sola tabla se puede hacer todo, de echo hago algo similar en mi empresa.
Espero me entiendas.
Saludos

david_uh 04-03-2008 16:06:24

claro que si. Lo pensaré bien esta noche y les posteo el modelo de tablas para cualquier sugerencia gracias por sus aportes

kuan-yiu 05-03-2008 09:14:16

A ver, delegación es local, sucursal, edificio, almacén... lo que quieras que identifique los distintos lugares en los que se llevan inventarios diferentes.
El problema de ponerlo todo en la misma tabla de artículos, es la duplicidad, si quiero saber cuantos tornillos tengo y resulta que tengo 7 modelos diferentes 4 de ellos en 2 almacenes distintos en la tabla de artículos que propone Caral me aparecerían 11 tornillos. Si este sistema te vale es el más sencillo de incorporar a tu estructura.
Mi solución no permite artículos repetidos, por lo que tenemos una tabla global con los artículos de los que dispone la empresa y una tabla auxiliar que dice cuanto de cada artículo hay en cada almacén (allí los llamaban delegaciones). En este caso además se guardaban otros datos de esas delegaciones necesarios para realizar ciertos procesos de normalización y recuento de stock.

kalimero 05-03-2008 10:10:40

Hola.
Creo que lo mejor para estos casos es tener una tabla "Stock" donde guardas informacion relativa a las exixtencias por articulo y almacen. Estas tabla la debes mantener mediante disparadores que aumenten o disminuyan el stock según la accion sea compra o venta.

Saludos

david_uh 05-03-2008 20:04:28

Cita:

Empezado por kalimero (Mensaje 270771)
Hola.
Creo que lo mejor para estos casos es tener una tabla "Stock" donde guardas informacion relativa a las exixtencias por articulo y almacen. Estas tabla la debes mantener mediante disparadores que aumenten o disminuyan el stock según la accion sea compra o venta.

Saludos

Es lo mismo que propone kuan-yiu crear dos tablas más una para las delegaciones o locales o almacenes y otra donde guarde el id del producto el stock fisico stock valorado y id del almacen o delegación

Lo interesante es controlar esto con triggers pues lo que hice yo fue usar un objeto TArticulo que se encargaba de meter y sacar productos actualizando y checkeando el stock existente.


La franja horaria es GMT +2. Ahora son las 21:53:10.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi