FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Totalizar campos.
Hola, tengo que llevar al día el stock actual de cada artículo en un almacen, hay compras y ventas lógicamente, o entradas y salidas con lo que el saldo actual va variando, pongamos por ejemplo que el artículo lo llamamos "Mesas", para sabe el número de mesas que tengo en cada momento, cómo sería el procedimiento más sencillo, crear un campo en la tabla donde llamado "Stock Actual", donde vaya sumando las compras y restando las ventas" en ese campo, o no sería necesario crear ese campo, podría hacerlo de otro modo más directo y sencillo.
Gracias. |
#2
|
||||
|
||||
Claro, un campo "stock" que aumente o disminuye, según compres o vendas.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#3
|
|||
|
|||
Pensaba que era más seguro, que se totalizaran todas las compras de ese articulo, y por otro lado totalizar todas las ventas, y hacer la diferencia, ya que si por ejemplo hay que modificar o anular una compra por algún motivo, hay que tener en cuenta de modificar el campo stock nuevamente por la diferencia.
|
#4
|
||||
|
||||
Tu pregunta ha sido muy genérica, así que la respuesta ha debido de ser muy genérica
Lo normal no es que lo hagas tú "directamente", sino tener un trigger en la base de datos que se encargue de ello cuando compres o vendas.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#5
|
||||
|
||||
pienso que hay muchas maneras de hacerlo, lo que yo hago es similar a lo que mencionas, tener ingresos y salidas separados luego hacer la operacion matematica teniendo en consideración los saldos del mes anterior (podrias tener un proceso de cierre de mes donde se acumulen los saldos), aunque hacerlo en linea se ve mas profesional, seria cuestion de que evalues de acuerdo a tus necesidades.
saludos
__________________
Dulce Regalo que Satanas manda para mi..... |
#6
|
||||
|
||||
Cita:
El problema es que en la práctica luego esa operación (dependiendo del volumen) se vuelve tremendamente ineficiente, porque en muchos sitios hay que tener el stock de cada artículo y no puedes permitirte calcularlo en el momento. Luego las cosas se complicas cuando haces inventarios, parciales, totales,... En la práctica la solcuión que siempre he visto es la que comenta Casimniro. Un campo que se mantiene y se actualiza con todas las operaciones que haces sobre artículos.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#7
|
||||
|
||||
Se puede manejar en un campo de la tabla donde vayas llevando los movimientos, una vista que se encargue de este calculo o puede ser un valor calculado por una función. Todo depende de la estructura de tu sistema y el manejo que le quieras dar.
Creería que hacer el calculo de stock antes de una venta en caja es consumir recursos innecesariamente. Si el articulo lo tenemos en caja, la venta hay que hacerla aunque (Aveces por fallas en el sistema o de digitación) el calculo de stock diga que no hay existencias. Si no es una venta en caja, Algo mas como una cotización, este calculo puede servirte para verificar si se debe hacer pedidos a proveedor. A la final: No hay nada escrito que sea una verdad absoluta de como manejar esto. Todo depende de la estructura de tu sistema y como quieres manejarlo-
__________________
Buena caza y buen remar... http://mivaler.blogspot.com |
#8
|
|||
|
|||
Gracias por las respuestas, lo cierto es que grandes movimientos por artículo no tengo unos 100 movimientos por año, necesito saber los stock de ese artículo en el momento de consumirlo o de venderlo y cuando supere un mínimo avisarme con un mensaje de que nos queda poco stock de ese artículo que esto último no tiene mayor complicación, pero nada de inventarios parciales.
Lo del Trigger no lo había escuchado nunca, si tenéis un ejemplo os lo agradecería, o buscaré por internet. Gracias. |
#9
|
||||
|
||||
Cita:
Lee este libro, es de lo mejor para usar delphi con bases de datos relacionales.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#10
|
|||
|
|||
Mira que he leído libros de delphi, mira que he hecho bases relacionales, mira que he hecho listado complejos con Qckip Report con Rave Report, mira que he hecho procedimientos, mira que he hecho funciones, mira que he hecho funciones con parámetros valor y de referencia, mira que trabajo con SQL hago cualquier informe por muy complejo que sea, todo me ha funcionado bien, pero qué casualidad TRIGGER no lo he visto en ningún libro.
Pero también mira que casualidad te vas a una tienda de pacotilla de la coruña y sabe el stockaje de un artículo que hay en la tienda de la pedanía más pequeña de Almeria de ese mismo artículo, creo que mi duda para un Ferrari como es Delphi debería estar resuelto como sumar 2 + 2 para un Universitario, posiblemente no usa delphi. |
#11
|
||||
|
||||
Cita:
Cita:
PD: Y por cierto, el consejo del libro es con toda la buena intención del mundo, y más en este caso, en que Ian Marteens (el autor) trata de forma muy divertida y amena, con ejemplos sencillos, la técnica de trabajar con bases de datos relacionales: interbase, firebird, mysql, postgresql, mssql, oracle, etc.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#12
|
||||
|
||||
Digamos que los triggers no es una cosa básica de SQL, no es lo primero que se lee o se estudia, pero si que es algio fundamental en cuanto haces cosas serias con una Base de Datos (SGBD) algo seria, por eso es extraño que si has trabajado con ellas no hayas oido hablar.
Es algo como las transacciones. No es lo que se lee/estudia el primer día, pero es algo obligatorio para cualquier Base de Datos. Digamos que justo el caso que planteas (el del stock o inventarios) es uno que se ajusta mucho a usar triggers. Si asumimos, tal y como se dijo antes, vas a crear un campo en la tabla de artículo que te mantenga actualizado el stock de ese artículo hay 2 posibilidades: 1) Enfocar el prigrama desde Delphi (o desde el programa). Debes asegurarte de que cualquier operación que hagas sobre el artículo actualiza el stock. Significa tener eso en cuenta en varias partes del programa y usar transacciones (si o si). Para evitar por ejemplo, que se guarde una venta y por algún error no se actualice el stock. 2) La segunda opción es enfocarlo desde la Base de Datos. La Base de Datos te da la posibilidad de programar una acción cada vez que haces un INSERT, un DELETE o un UPDATE sobre una tabla. La idea es programar esas operaciones en la tabla de VENTAS y COMPRAS para que actualizen el stock. De esta forma desde cualquier lugar donde se modifiquen las ventas (sea desde el programa, desde un Stored procedure, desde una importacion,...) se actualizarán los artículos. La idea de los triggers es así de sencilla, tal vez sea un poco más complicado programarlos, pero si has trabajado con Stored Procedures te resultará parecido. Si miras en la wiki, verás que la explicación es sencilla, es más acabo de ver que el ejemplo que viene en la WIKI es justo de actualizar el stock. ;-) https://es.wikipedia.org/wiki/Trigger_(base_de_datos)
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. Última edición por Neftali [Germán.Estévez] fecha: 21-06-2017 a las 10:03:46. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Totalizar valores | rruffino | Impresión | 2 | 06-10-2013 18:04:01 |
Problemas al totalizar en excel | JoAnCa | Servers | 2 | 22-08-2008 21:12:05 |
Totalizar sobre una base en actualizacion | skaiser | Firebird e Interbase | 2 | 04-11-2007 15:39:54 |
Report Manager - Totalizar campos | hperez | Impresión | 0 | 23-07-2007 20:00:46 |
Totalizar sin anidar consultas? | Miguel Galarza | Firebird e Interbase | 0 | 10-11-2006 23:37:46 |
|