none
Consulta sobre stock en tiempo de ejecución. RRS feed

  • Pregunta

  • Hola amigos del foro,

                                                                   Primero que todo agradecer la oportunidad de poder participar nuevamente en foro, como segundo punto desearles un excelente día junto a sus familias.

    Hoy en la actualidad tengo un programa que posee una interfaz para generar una venta.  El tema puntual, es que esa interfaz la utilizan más de 1 vendedores a la vez  y al momento de vender productos se produce problemas con el stock que se muestra  en formulario.

    Por ejemplo:

    Hay 2 vendedores ofertando el mismo producto al mismo tiempo y a diferentes clientes, ha ambos les aparece que el producto “1” tiene un stock de 3 productos disponibles. Ahora, si el vendedor N°1 genera la venta primero que el otro vendedor y en esa venta se llevan 2 productos 1, solo quedaría 1 producto disponible en stock. Es aquí el problema, ya que si el 2 vendedor  desea vender  2  productos “1”, cuando los valla a buscar  la bodega, se encontrará que solo hay 1 producto disponible físicamente, lo que no está mal, dado que el 1 vendedor al ya vendió 2 de los 3 productos disponibles. Sin embargo el 2 vendedor se confía de lo que  muestra el formulario y le asegura al cliente de que si tiene el producto disponible en la cantidad solicitada por el cliente.

    Mi pregunta es:

    Como puedo controlar el stock para cuantas las interfaces existan abiertas?

    Mi desarrollo está en vb.net y trabajo con SQL server.


    Saludos desde Chile.

    domingo, 11 de septiembre de 2016 14:23

Respuestas

  • Hay dos formas de controlarlo, conocidas como "pesimista" y "optimista".

    Si decides usar el modo "pesimista", en el momento en que un vendedor abre un artículo en pantalla, grabas un flag en la tabla de productos que significa "este producto está en uso", y si otro vendedor intenta abrir el mismo producto, entonces en su pantalla le bloqueas la posibilidad de venderlo indicándole en un mensaje que otro vendedor lo está vendiendo en ese momento. Y por supuesto, cuando el primer vendedor cierra la pantalla, "liberas" el producto. El inconveniente de este mecanismo pesimista es que no permite, por ejemplo, que si hay 3 unidades, un vendedor venda 2 y el otro 1 (hasta que el primero no haya terminado de vender las suyas).

    Si te decantas por el modo "optimista", entonces les permites a los dos que vendan el producto, pero en el momento de dar el "Ok" para aceptar el pedido, antes de aceptarlo primero vas a la base de datos a ver si todavía quedan las unidades que se van a vender. Si ya no quedan (porque mientras tanto otro las ha vendido), entonces se muestra un mensaje de "lo siento, mientras estabas pensándotelo, estas unidades ya se han vendido y ahora solo quedan x".

    • Marcado como respuesta Aprendiz_Chile lunes, 12 de septiembre de 2016 11:53
    domingo, 11 de septiembre de 2016 15:21
  • Aprendiz_Chile,

    Yo me inclino por la propuesta optimista de Alberto, sin embargo me gustaría que consideres lo siguiente:

    En una almacén el documento que permite el movimiento de stock es la guía de remisión o parte de entrada/salida (documento interno del almacén), la factura no resta el stock disponible, menos el stock físico, como control mínimo deberías considerar tres niveles de stock:

    1. Stock solicitado (stock separado por los pedidos de venta)
    2. Stock disponible (stock físico menos el stock comprometido (facturas))
    3. Stock físico (stock contable de un producto en el almacén)

    Sobre lo explicado, el stock que se debería mostrar a los vendedores es la cantidad resultante de (StockDisponible - StockSolicitado)


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    • Marcado como respuesta Aprendiz_Chile lunes, 12 de septiembre de 2016 11:53
    domingo, 11 de septiembre de 2016 17:55

Todas las respuestas

  • Hay dos formas de controlarlo, conocidas como "pesimista" y "optimista".

    Si decides usar el modo "pesimista", en el momento en que un vendedor abre un artículo en pantalla, grabas un flag en la tabla de productos que significa "este producto está en uso", y si otro vendedor intenta abrir el mismo producto, entonces en su pantalla le bloqueas la posibilidad de venderlo indicándole en un mensaje que otro vendedor lo está vendiendo en ese momento. Y por supuesto, cuando el primer vendedor cierra la pantalla, "liberas" el producto. El inconveniente de este mecanismo pesimista es que no permite, por ejemplo, que si hay 3 unidades, un vendedor venda 2 y el otro 1 (hasta que el primero no haya terminado de vender las suyas).

    Si te decantas por el modo "optimista", entonces les permites a los dos que vendan el producto, pero en el momento de dar el "Ok" para aceptar el pedido, antes de aceptarlo primero vas a la base de datos a ver si todavía quedan las unidades que se van a vender. Si ya no quedan (porque mientras tanto otro las ha vendido), entonces se muestra un mensaje de "lo siento, mientras estabas pensándotelo, estas unidades ya se han vendido y ahora solo quedan x".

    • Marcado como respuesta Aprendiz_Chile lunes, 12 de septiembre de 2016 11:53
    domingo, 11 de septiembre de 2016 15:21
  • Aprendiz_Chile,

    Yo me inclino por la propuesta optimista de Alberto, sin embargo me gustaría que consideres lo siguiente:

    En una almacén el documento que permite el movimiento de stock es la guía de remisión o parte de entrada/salida (documento interno del almacén), la factura no resta el stock disponible, menos el stock físico, como control mínimo deberías considerar tres niveles de stock:

    1. Stock solicitado (stock separado por los pedidos de venta)
    2. Stock disponible (stock físico menos el stock comprometido (facturas))
    3. Stock físico (stock contable de un producto en el almacén)

    Sobre lo explicado, el stock que se debería mostrar a los vendedores es la cantidad resultante de (StockDisponible - StockSolicitado)


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    • Marcado como respuesta Aprendiz_Chile lunes, 12 de septiembre de 2016 11:53
    domingo, 11 de septiembre de 2016 17:55