Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   control de existencias (https://www.clubdelphi.com/foros/showthread.php?t=89250)

gmontes 22-10-2015 20:16:17

control de existencias
 
mi pregunta es de primaria :o

como se podran controlan las existencias de un inventario en un ambiente con mas de 10 terminales

El problema es que se maneja mediante vales la facturación y al reunir un grupo de vales se procede a facturar, eso da pie a errores de captura de un producto por otro. pero el punto es que si tengo una cantidad x de un producto, ¿como controlar el que se facture en las 10 terminales al mismo tiempo ese producto sin sobregirar?.

delphi 7 y firebird es con lo que trabajamos.

Casimiro Notevi 22-10-2015 20:36:58

No se entiende el problema, ¿vales, sobregirar...?

jafera 23-10-2015 12:52:12

A ver si entiendo, un vale debe ser un albaran de entrega, supongo con lo cual al generar este vale debes descontar el stock del almacen central.

Supongamos que tienes un articulo referencia A1, bolsa de caramelos, 200 unidades.
Generas un vale con 3 bolsas, las cuales deben descontarse del stock, quedando en 197 unidades.
En otro terminal se venden 100 unidades con lo cual tenemos 97 en stock, finaliza el dia y facturamos los vales agrupando por cliente, por vale, o como quieras. Este proceso de facturacion no debe descontarte el stock puesto que lo has actualizado vale a vale.

Esto es lo que entiendo yo, si es asi un stored procedure en el vale te debe actualizar el stock al momento y si se devuelve pues se incrementa el stock.

Ya nos contarás.

Saludos

Josep

Neftali [Germán.Estévez] 23-10-2015 14:38:31

Cita:

Empezado por gmontes (Mensaje 498291)
¿como controlar el que se facture en las 10 terminales al mismo tiempo ese producto sin sobregirar?.

Yo también hay palabras que no entiendo.
Supongo que lo que NO QUIERES, es que el producto "se facture al mismo tiemnpo en 10 terminales".

Para eso, la respuesta son las transacciones. Creo según lo que he entendido.

ASAPLTDA 24-10-2015 14:15:51

descontar inventarios 10 Terminales
 
Hola, si entendi el problema radica si en 10 terminales se trata de descontar de una misma referencia de inventario al mismo tiempo.
Existen varios enfoques diferentes.
1. Bloqueo del registro para ser actualizado (pesimista) se usa SQL lock o se coloca en modo de ediccion el registro para que no lo puedan leer
2. Optmista se verfica el inventario leido contra el inventario antes actualizar, si es mismo se actualiza (esto lo hace automaticamente delphi ya usando un clientdataset delphi verifica el registro leeido contra el existente antes de lanzar un una actualizacion)
3. grabar un registro en una tabla de trabajo del registro que esta siendo actualizado , verificar este registro para revisar si esta siendo actualizado, grabar que esta siendo actualizado, liberar despues de actualizado

Nota (al mismo tiempo es concepto humano ya que existe un tiempo de computador mientras se procesa cada terminal y la base de datos procesar las peticiones por cola (esto es lo que creo)

Espero que te sirva esto de algo
Una prueba simplemente usa un dbgrid con una tabla 2 con actualizacion, 2 abre el mismo programa en un segundo terminal, 3. actualiza el datos en una terminal 4 actualiza el mismo registro en la segunda terminal y debe generar un error (registro cambiado ) revisa los eventos en caso de usar un tclientdataset)

saludes, y cuentanos sobre la soluccion que aplico o encontro

josejairoms 24-10-2015 15:52:04

En teoria cuando grabes la primer factura el saldo sera suficiente, al enviar a grabar la segunda factura para la cual ya no hay existencia suficiente el sistema debe devolverle un mensaje producto xxxx ya se agoto... le recomiendo este proceso lo haga en la base de datos con los trigers,,, luego en la interfaz volver, corregir y volver a enviar la inserción,

espero le sea de utilidad..

gmontes 28-10-2015 21:42:02

gracias por las respuestas y perdon por ser tan escueto en la informacion

tomare en cuenta sus opiniones y las evaluare .

les platicare un poco mas del proceso

tenemos nuestro inventario x y un capturista registra un vale con 20 articulos por ejemplo y queda sin facturar (en transito); es posible que se modifique ese vale, ya sea porque se devuelven artículos o modifica la cantidad (de mas o de menos). el mismo cliente puede seguir devolviendo productos y adquiriendo mas.

al final del día, días o hasta semanas puede pedir la factura.

entonces en papel seria mi inventario , menos articulos en transito igual a inventario real.

esa seria la idea

el problema es que si estoy capturando un articulo , debo tomar en cuenta los que estan en transito y aparte los que estoy capturando ya que puede ser que se registre mas de una ves o veces en el mismo momento. debo aclarar que es de un vale en papel donde se lee la captura de articulos.


se implemento con firebird y transacciones, pero aun tengo mis dudas del correcto funcionamiento ya que el hecho de no hacer la captura del producto fisicamente sino mediante un vale, pudiera dar errores de codigo. (un producto por otro)

josejairoms 01-11-2015 20:37:36

inventario y vales
 
Ahora veo el problema con otra perspectiva, ahi te doy otra idea..

Al parecer tienes dos problemas, los vales que al parecer son pedidos de clientes que posteriormente se facturan,,, entonces que tal si creas un tabla para esos vales que puedes llamar pedidos de clientes, ahi controlas las cantidades requeridas de los productos y sabras si las existencias son suficientes o deberas emitir ordenes de producccion u ordenes de compras segun sea tu caso, al momento de facturar traes de los pedidos de clientes los produ ctos y cantidades a facturar y ahi si afectas :Dtu inventario real; asi tendras un inventario real un inventario de productos comprometidos que al cruzarlos te arrojar que mercancias debes producir si es que producen lo que venden o comprar si es que comercializan...

Espero te ayude de algo..

gmontes 03-11-2015 20:41:05

si ayuda tu propuesta, gracias

en cierta forma cada articulo que capture se debera guardar de inmediato en esa tabla para controlar el inventario.


La franja horaria es GMT +2. Ahora son las 09:41:23.

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