Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Tabla de Facturas vs Detalles de Facturas (https://www.clubdelphi.com/foros/showthread.php?t=46269)

magnu9 27-07-2007 14:32:34

Tabla de Facturas vs Detalles de Facturas
 
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

La duda es
 
Cuanles campos para fatura y cuales para detalles? Del listado...

eduarcol 27-07-2007 15:02:09

Para las facturas
Cita:

Empezado por Factura
numfactura
fechafactura
condicion
terminos
codusuario
codcliente
fechaVencimiento

Para los detalles
Cita:

Empezado por detalles
numfactura
impuesto
precioVenta
subtotal
descuento
total
codarticulo
cantidad


mamaro 27-07-2007 15:23:41

Hola
 
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í:
Cita:

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:
Cita:

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 Eduarcol
 
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

Saludo
 
Como dice mamaro, el documento es unico, pero las lineas de detalles son variables... y ya estoy confrontando problemas, miren el siguiente codigo

Código Delphi [-]
  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

hOLA
 
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.

Código Delphi [-]
  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;


La franja horaria es GMT +2. Ahora son las 09:05:09.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi