none
URGENTE! COMO RESTAR MI PRODUCTO DE INVENTARIO RRS feed

  • Pregunta

  • Buenas noches, 

    Es mi primer proyecto es lo ultimo que me falta, el facturar....

    Mi objectivo es cada vez que se complete una factura como "venta" me reste el stock, pero no encuentro el codigo ni mucho menos una idea de como deberia hacerlo, veo muchos pots que crean un detallefactura o cosas asi, trabajo con el sql server ahi mantengo mi base de datos y quisiera crear el boton facturar y cuando le de click ahi me reste automaticamente el stock que mantenia en el inventario.

    Por favor ayuda!

    Llevo dias ya, es mi segundo post sobre este tema.

    domingo, 23 de septiembre de 2018 8:33

Respuestas

  • Voy a plantearte un par de preguntas. Cuando se tiene que restar el stock, en el momento de añadir la línea.

    O será en el momento de agregar la factura al sistema.

    Entrando un poco más en materia, los DataGridView, no deben de ser poseedores de la información de la base de datos, la manera más correcta de operar con ellos, es que estos como elementos visuales, carguen la información de colecciones. Estas colecciones, si implementan la información de la base de datos.

    Por ejemplo tu formulario 1 de pedidos con dgv de artículos pedidos, tiene que tener una lista, o un datatable, que contiene esa información, y el dgv, solo tiene en su propiedad datasource, agregado la colección.

    Cuando la colección cambia, el dgv cambia.

    Suponiendo que tu stock se restase en esta fase, cuando vas a la base de datos a solicitar la información del articulo, además, ya restas el stock, por tanto en el procedimiento almacenado donde solicitas info, además modificas tu tabla de inventario. Esta info, se ve devuelta a la colección, y el dgv, actualizado por el datasource.

    Suponiendo que no restas stock, ahí y lo restas en la inclusión de la línea en el datagrid, que me supongo que, pasarás algún tipo de objeto en el constructor, del segundo form, o en un método particular del segundo form, que invocas al llamarlo. De cualquiera de las maneras, en ese momento, es cuando debes de ir a la base de datos a confirmar y variar el stock, antes de alimentar la rejilla.

    Posibilidad 3. Suponiendo que tu stock, se resta cuando se confirma la factura, o al menos guando se guarda en su totalidad.

    En ese momento es cuando además de guardar la misma, en su procedure invocas el descuento de stockaje, por tanto si te da problemas, el stock, la factura no se guarda, porque la transacción se cancela.

    Espero haberte aportado un punto de vista que puedas llevar a buen puerto.

    Un saludo

    domingo, 23 de septiembre de 2018 22:18
  • Hola Elias:

    Una de las maneras es, cuando insertas la linea de tu factura o documento que reste stock, lo haces en un procedimiento almacenado y en la misma transaccion restas stock de tu tabla de stock. Cuando borras una linea, j

    Haces lo mismo. Siempre desde procedimientos almacenados y utilizando transacciones.

    La manera, que yo te recomiendo es diferente. Y parte de la idea de que el stock no es algo que se tiene en una tabla, sino que se calcula. De manera que te olvidas de la tabla y para saber tu stock sumas y restas compras, existencias y cualquier documento que reste o sume stock. Lo haces en una vista y nunca tienes fallos de stock. Es mas complejo de poner en funcionamiento, pero no da errores.

    Espero te ayude.

    Un saludo

    Hola Javi, 

    Gracias por responder, en serio necesitaba de ayuda, haber si llegue a comprenderte Javi

    http://img.fenixzone.net/i/hHXSY4K.jpeg

    En teoria me dices que haga algo como lo que plantee ahi, un form de realiazar pedido y ahi reste el stock que deseo adquirir, pero al momento de facturarlo con el cliente? 

    Deseo importar el pedido que realiza el cliente, no seria algo mas complejo?? 

    El sistema de facturacion que estaba tratando de hacer es, importar el cliente y llena automaticamente los campos clientes

    y en un datagridview llamo a los productos y le pongo la cantidad deseada que vaya a comprar el punto es que no tenia conexion con la cantidad del producto, solo con el codigo y el producto.

    Te comento javi, asi es como estaba haciendo mi facturacion venta 

    http://img.fenixzone.net/i/AfZpDyr.jpeg

    importo mi producto, mi cliente pero no me resta el stock porque obviamente no lo tengo activado ni asociado mi cantidad de datagridview - datagriview del otro form

    domingo, 23 de septiembre de 2018 13:11

Todas las respuestas

  • Hola Elias:

    Una de las maneras es, cuando insertas la linea de tu factura o documento que reste stock, lo haces en un procedimiento almacenado y en la misma transaccion restas stock de tu tabla de stock. Cuando borras una linea, j

    Haces lo mismo. Siempre desde procedimientos almacenados y utilizando transacciones.

    La manera, que yo te recomiendo es diferente. Y parte de la idea de que el stock no es algo que se tiene en una tabla, sino que se calcula. De manera que te olvidas de la tabla y para saber tu stock sumas y restas compras, existencias y cualquier documento que reste o sume stock. Lo haces en una vista y nunca tienes fallos de stock. Es mas complejo de poner en funcionamiento, pero no da errores.

    Espero te ayude.

    Un saludo

    domingo, 23 de septiembre de 2018 9:43
  • Hola Elias:

    Una de las maneras es, cuando insertas la linea de tu factura o documento que reste stock, lo haces en un procedimiento almacenado y en la misma transaccion restas stock de tu tabla de stock. Cuando borras una linea, j

    Haces lo mismo. Siempre desde procedimientos almacenados y utilizando transacciones.

    La manera, que yo te recomiendo es diferente. Y parte de la idea de que el stock no es algo que se tiene en una tabla, sino que se calcula. De manera que te olvidas de la tabla y para saber tu stock sumas y restas compras, existencias y cualquier documento que reste o sume stock. Lo haces en una vista y nunca tienes fallos de stock. Es mas complejo de poner en funcionamiento, pero no da errores.

    Espero te ayude.

    Un saludo

    Hola Javi, 

    Gracias por responder, en serio necesitaba de ayuda, haber si llegue a comprenderte Javi

    http://img.fenixzone.net/i/hHXSY4K.jpeg

    En teoria me dices que haga algo como lo que plantee ahi, un form de realiazar pedido y ahi reste el stock que deseo adquirir, pero al momento de facturarlo con el cliente? 

    Deseo importar el pedido que realiza el cliente, no seria algo mas complejo?? 

    El sistema de facturacion que estaba tratando de hacer es, importar el cliente y llena automaticamente los campos clientes

    y en un datagridview llamo a los productos y le pongo la cantidad deseada que vaya a comprar el punto es que no tenia conexion con la cantidad del producto, solo con el codigo y el producto.

    Te comento javi, asi es como estaba haciendo mi facturacion venta 

    http://img.fenixzone.net/i/AfZpDyr.jpeg

    importo mi producto, mi cliente pero no me resta el stock porque obviamente no lo tengo activado ni asociado mi cantidad de datagridview - datagriview del otro form

    domingo, 23 de septiembre de 2018 13:11
  • Hola Elias:

    Lo estas planteando desde la perspectiva del software cliente. Y no lo estas viendo en conjunto.

    Cuando importas automatizas o como lo quieras ver, se desencadena una accion. Esta accion, no tiene por que ser una sola, sino una transaccion compleja.

    Ej. Cuando vas al cajero y sacass pasta no hay al menos dos operaciones bien diferenciadas. Sacar y restar.

    Cuando se añade una linea, aunque sean en masa, realiza varias cosas en una transaccion. Si la misma es buena se hace todo, sino ninguna.

    Cuando insertas una linea desde el software cliente, restas stock ademas de insertar la linea. Si insertas 50 a la vez, punto net hará esas acciones 50 veces.

    Un saludo

    domingo, 23 de septiembre de 2018 14:21
  • Hola Javi:

    Te agradezco nuevamente por responder mi mensaje, pero cual seria el codigo que deberia llevar para que mi cantidad de mi datagridview 1 que esta almacenada en la base de datos se reste con mi datagridview 2 que esta en otro form distinto.

    En serio agradezco mucho tu apoyo, disculpame es mi primer proyecto.

    domingo, 23 de septiembre de 2018 18:05
  • Voy a plantearte un par de preguntas. Cuando se tiene que restar el stock, en el momento de añadir la línea.

    O será en el momento de agregar la factura al sistema.

    Entrando un poco más en materia, los DataGridView, no deben de ser poseedores de la información de la base de datos, la manera más correcta de operar con ellos, es que estos como elementos visuales, carguen la información de colecciones. Estas colecciones, si implementan la información de la base de datos.

    Por ejemplo tu formulario 1 de pedidos con dgv de artículos pedidos, tiene que tener una lista, o un datatable, que contiene esa información, y el dgv, solo tiene en su propiedad datasource, agregado la colección.

    Cuando la colección cambia, el dgv cambia.

    Suponiendo que tu stock se restase en esta fase, cuando vas a la base de datos a solicitar la información del articulo, además, ya restas el stock, por tanto en el procedimiento almacenado donde solicitas info, además modificas tu tabla de inventario. Esta info, se ve devuelta a la colección, y el dgv, actualizado por el datasource.

    Suponiendo que no restas stock, ahí y lo restas en la inclusión de la línea en el datagrid, que me supongo que, pasarás algún tipo de objeto en el constructor, del segundo form, o en un método particular del segundo form, que invocas al llamarlo. De cualquiera de las maneras, en ese momento, es cuando debes de ir a la base de datos a confirmar y variar el stock, antes de alimentar la rejilla.

    Posibilidad 3. Suponiendo que tu stock, se resta cuando se confirma la factura, o al menos guando se guarda en su totalidad.

    En ese momento es cuando además de guardar la misma, en su procedure invocas el descuento de stockaje, por tanto si te da problemas, el stock, la factura no se guarda, porque la transacción se cancela.

    Espero haberte aportado un punto de vista que puedas llevar a buen puerto.

    Un saludo

    domingo, 23 de septiembre de 2018 22:18
  • Y a todo esto en qué lenguaje programas.
    domingo, 23 de septiembre de 2018 23:27