PDA

Ver la Versión Completa : Tabla de Facturas vs Detalles de Facturas


magnu9
27-07-2007, 14:32:34
Teniendo los siguientes campos cuales podrian pertenecen a la tabla de facturas y cuales a la tabla de Detalles de Facturas:

numfactura
fechafactura
condicion
terminos
codusuario
codcliente
fechaVencimiento
impuesto
precioVenta
subtotal
descuento
total
codarticulo
cantidad

eduarcol
27-07-2007, 14:35:27
y la duda es???

magnu9
27-07-2007, 14:48:28
Cuanles campos para fatura y cuales para detalles? Del listado...

eduarcol
27-07-2007, 15:02:09
Para las facturas

numfactura
fechafactura
condicion
terminos
codusuario
codcliente
fechaVencimiento

Para los detalles

numfactura
impuesto
precioVenta
subtotal
descuento
total
codarticulo
cantidad

mamaro
27-07-2007, 15:23:41
Creo que que lo que tienes que ver en toda base de datos es la relación entre los distintos tipos de objetos .. ejemplo:
1) Consideremos un documento Factura, éste es un objeto que tiene varios atributos (Nº, fecha, etc), y otros sub-objetos (por ejemplo cada una de las lineas del detalle, también se podría decir que el proveedor es un objeto, etc).
2) El cliente siempre es uno, la cantidad de líneas es variable.
2) Basado en el análisis anterior yo haría :rolleyes: :

a) Una tabla que llamaría Factura_Cab por ejemplo con los campos que aparecen una vez en la factura (en el documento de papel), algo así:
ident <- clave primaria integer autoincremental
numfactura
fechafactura
condicion (¿condiciones de entrega?)
terminos
codusuario
codcliente
total

b) Una tabla que llamaría Factura_Det con los campos que se asocian a cada una de las lineas más un identificador y una clave foránea a Factura_Cab:
Ident <- Clave primaria, integer autoincremental
Factura <- Clave foránea a la tabla Factura_Cab.
fechaVencimiento (vencimiento del articulo ¿no?)
impuesto
precioVenta
subtotal
descuento
codarticulo
cantidad


saludos

magnu9
27-07-2007, 15:28:34
Gracias, como la tenia... mil gracias por tu tiempo.

eduarcol
27-07-2007, 15:56:34
toma consejos, las tablas deben tener una estructura debes guiarte por un modelo, esas tablas son muy simples y mas temprano que tarde van a venir dando problemas

magnu9
27-07-2007, 16:29:53
Como dice mamaro, el documento es unico, pero las lineas de detalles son variables... y ya estoy confrontando problemas, miren el siguiente codigo


For i := 1 to Fact.RowCount-1 do
begin
querDetalle.SQL.Text := 'Insert Into Detalle_factura (codart, cantidad....) Values('+inttoStr(codigoArtic)+','+editCantid.Text+'.....)';
querDetalle.ExecSQL;
end;

Resulta que si coloco varios articulos al detalles,,, me los guarda en la tabla de detalles pero solo me guarda el ultimo que agregue al detalle. O sea si agrego el articulo 1 y luego el 5... solo me guarda el articulo 5 pero dos veces.

eduarcol
27-07-2007, 16:46:59
Pues a eso vamos, es un mala estructura de la base de datos, ahora lo qe me extraña es que si no tienes claves principales, el insert deberia duplicar los codigos no reemplazarlos, seguro que ese es todo el codigo??

magnu9
27-07-2007, 17:27:37
MIRA EDUARCOL, ASI ME FUNCIONO... ES QUE NO ESTABA RECORRIENDO LA VARIABLE "i". Y codigoArtic ESA VARIABLE LES ASIGNABA EL VALOR DEL CODIGO MAXIMO DE LA TABLA DE ARTICULOS.

For i := 1 to SGFact.RowCount-1 do
begin
querDetalle.SQL.Text := 'Insert Into Detalle_factura (numfac, codart) Values('+inttoStr(numfact)+','+QuotedStr(SGFact.Cells[0,i])+')';
querDetalle.ExecSQL;
end;