none
Control de stock RRS feed

  • Pregunta

  • buenas noche cordial saludo necesito crear un sistema de inventario con C# pero no se como codificar el manejo de stock  alguien me puede ayudar gracias. lo necesito de corazón para poder terminar mi tecnología.

    jueves, 8 de marzo de 2018 3:06

Respuestas

  • Sugerencia: mantén la base de datos normalizada, lo cual implica NO usar una tabla de Stock.

    En su lugar, lo que se hace es aplicar un "Select SUM(...)" sobre la tabla de movimientos de almacén que probablemente ya tienes en tu programa. Esa tabla registra todos los movimientos de entrada y salida del almacén (con signo distinto o con un campo que los distinga), por lo que si en un momento dado calculas la suma de todas las entradas menos todas las salidas, eso te arroja el Stock. Y tiene la ventaja (en comparación con una tabla independiente para el Stock) de que no tienes que ir actualizando el Stock cada vez que se prduce una entrada o salida, por lo que no cabe el riesgo de que se produzca una inconsistencia entre las entrads/salidas y el stock.

    Para facilitar el manejo desde el código cliente, puedes crear en la base de datos una Vista cuyo contenido sea del estilo de "select articulo, sum(cantidad) as stock from Movimientos group by articulo". Desde el código cliente, se comportaás como si fuera una tabla de stock, pero sin que el stock se almacene por separado. Normalmente el rendimiento será suficientemente bueno, ya que los servidores de base de datos implementan estas operaciones con mucha eficiencia, pero si en la práctica se volviese lento en caso de manejar muchos millones de movimientos, la solución es indexar la vista.

    jueves, 8 de marzo de 2018 11:59
    Moderador

Todas las respuestas

  • Sugerencia: mantén la base de datos normalizada, lo cual implica NO usar una tabla de Stock.

    En su lugar, lo que se hace es aplicar un "Select SUM(...)" sobre la tabla de movimientos de almacén que probablemente ya tienes en tu programa. Esa tabla registra todos los movimientos de entrada y salida del almacén (con signo distinto o con un campo que los distinga), por lo que si en un momento dado calculas la suma de todas las entradas menos todas las salidas, eso te arroja el Stock. Y tiene la ventaja (en comparación con una tabla independiente para el Stock) de que no tienes que ir actualizando el Stock cada vez que se prduce una entrada o salida, por lo que no cabe el riesgo de que se produzca una inconsistencia entre las entrads/salidas y el stock.

    Para facilitar el manejo desde el código cliente, puedes crear en la base de datos una Vista cuyo contenido sea del estilo de "select articulo, sum(cantidad) as stock from Movimientos group by articulo". Desde el código cliente, se comportaás como si fuera una tabla de stock, pero sin que el stock se almacene por separado. Normalmente el rendimiento será suficientemente bueno, ya que los servidores de base de datos implementan estas operaciones con mucha eficiencia, pero si en la práctica se volviese lento en caso de manejar muchos millones de movimientos, la solución es indexar la vista.

    jueves, 8 de marzo de 2018 11:59
    Moderador
  • hola

    >>pero no se como codificar el manejo de stock

    pero utilizas alguna base de datos, porque podrias mencionar cual?

    conoces sobre ado.net? o usas entity framework?

    tienes disenada una tabla de productos/articulos ? porque en principio el stock seria un campo en esa tabla, indicando la cantidad existente de item tienes de ese articulo

    entonces para descontar usas

    UPDATE productos SET cantidad = cantidad - @cantidad WHERE productoId = @productoId


    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 8 de marzo de 2018 13:02
  • Hola buenas noche estoy utilizando SQL Server 2014  gracias por querer colavorar
    viernes, 9 de marzo de 2018 3:07
  • Hola me puedes Regalar un ejemplo del código?  por favor gracias. 
    viernes, 9 de marzo de 2018 3:09
  • estoy utilizando programación orientada a objeto con c#
    viernes, 9 de marzo de 2018 3:13