Formularios con detalles

22/11/2005 - 16:21 por Armando | Informe spam
Hola.

Quiero opiniones o sugerencias. Estoy haciendo una aplicación para controlar
las ventas de foráneos que irá cargada en Internet.

En cuanto a los vendedores, clientes y productos no tengo problema. Pero en
la Venta (que tiene varios Detalles) estoy atorado en la lógica.

Una venta tiene un vendedor, un cliente, fecha (hasta aquí no hay problema)
y varios Detalles: productos en diversas cantidades cada uno con su precio
(Aquí es el lío). Hay que hacerlas por separado?. Un formulario para venta y
otro para detalle, y para varios detalles?

Primero se tendría que guardar la venta para generar el ID con que ligarla a
los detalles y luego abrir y guardar cada detalle por separado?

Mi lógica me parece algo rebuscada y difícil. Así que mejor les pregunto si
saben otras maneras de lograrlo?

Actualmente estoy tratando una venta con varios detalles (uno por cada
producto solicitado) pero también podría ser una venta con un solo detalle
(donde irían todos los productos solicitados). Ahora si que estoy abierto a
la opción óptima o mas sencilla.

Ahorita tengo las tablas de ventas y detalles así:

Ventas:
id
idcliente (para ligar al cliente)
idusuario (para ligar al vendedor)
fecha
clientedescuento (saca el descuento del cliente)
facturado
total (seria la suma de los totales de sus detalles)
pagado
ctlfecha
ctluser

Detalles:
id
idventa (Para ligarla con la venta)
idproducto (para ligarla con el producto)
cantidad
preciounitario (lo saca del producto)
ctlfecha
ctluser

Saludos y Gracias
__________________________________
"Si alguna vez no te dan la sonrisa esperada, sé generoso y da la tuya.
Porque nadie tiene tanta necesidad de una sonrisa, como aquel que no sabe
sonreír a los demás."
 

Leer las respuestas

#1 [_(V)_i_c_K_] ™
28/11/2005 - 08:27 | Informe spam
Las tablas estan bien...

no vi nada sobre impuestos, pero calculo que ya lo tendrás estipulado o no se usará..

En cuanto a la operativa..

Hay que guardar tantos registos como items tiene el detalle. o sea , un encabezado y tantos Items (registros) como sean necesarios, relacionados a ese encabezado.

no sé con que herramientas trabajas, pero.. por ej.. con SQL Server, hacer esto, con Stored Procedures, es bastante facil

al llamar al SP que crea el registro en la primer tabla, se devuelve un valor del ID creado (@@IDENTITY), luego, del codigo se llama al SP que crea los registros de la segunda tabla con ese ID., este SP es llamado desde dentro de un bucle que recorre cada linea del detalle.

este modo de trabajo, es llamado.."Normalización"..

Espero que te ayude de algo.


Saludos.

Mick
VB6 SP6 / WinXP SP2




"Armando" escribió en el mensaje news:
Hola.

Quiero opiniones o sugerencias. Estoy haciendo una aplicación para controlar
las ventas de foráneos que irá cargada en Internet.

En cuanto a los vendedores, clientes y productos no tengo problema. Pero en
la Venta (que tiene varios Detalles) estoy atorado en la lógica.

Una venta tiene un vendedor, un cliente, fecha (hasta aquí no hay problema)
y varios Detalles: productos en diversas cantidades cada uno con su precio
(Aquí es el lío). Hay que hacerlas por separado?. Un formulario para venta y
otro para detalle, y para varios detalles?

Primero se tendría que guardar la venta para generar el ID con que ligarla a
los detalles y luego abrir y guardar cada detalle por separado?

Mi lógica me parece algo rebuscada y difícil. Así que mejor les pregunto si
saben otras maneras de lograrlo?

Actualmente estoy tratando una venta con varios detalles (uno por cada
producto solicitado) pero también podría ser una venta con un solo detalle
(donde irían todos los productos solicitados). Ahora si que estoy abierto a
la opción óptima o mas sencilla.

Ahorita tengo las tablas de ventas y detalles así:

Ventas:
id
idcliente (para ligar al cliente)
idusuario (para ligar al vendedor)
fecha
clientedescuento (saca el descuento del cliente)
facturado
total (seria la suma de los totales de sus detalles)
pagado
ctlfecha
ctluser

Detalles:
id
idventa (Para ligarla con la venta)
idproducto (para ligarla con el producto)
cantidad
preciounitario (lo saca del producto)
ctlfecha
ctluser

Saludos y Gracias
__________________________________
"Si alguna vez no te dan la sonrisa esperada, sé generoso y da la tuya.
Porque nadie tiene tanta necesidad de una sonrisa, como aquel que no sabe
sonreír a los demás."


Preguntas similares