fac_t
num_f (numero de la factura)
cod_t (cod del trabajo)
val_t (valor del trabajo)
can_t (cantidad del trabajo)
cod_emp (el empleado que lo ejecuto)
fec (fecha)
fac_i
num_f (numero de la factura)
cod_t (cod del trabajo)
cod_i (codigo del insumo)
can_i (cantidad del insumo)
cod_emp (el empleado que lo ejecuto)
fec (fecha)
t_i
cod_t (cod del trabajo)
cod_i (cod del insumo)
can_ti (cantidad)
Lo que quero hacer es que cuando grabo la factura el fac_t que me guarda el trabajo hecho pero que luego el me grabe tambien en la fac_i que es si es el trabajo refuerzo por ejemplo que me guarde los insumos que utilizo en ese tipo de trabajo es decir lo que tiene relacionado la tabla t_i que es donde esta relacionados el trabajo con los insumos
Es deceir
en la tabla t_i
cod_t cod_i can_ti
001 001 1
001 002 2
en la tabla fac_t
num_f cod_t val_t can_t cod_emp fec
f001 001 500000 1 sam 01/06/2013
y la tabla fac_i
num_f cod_t cod_i can_i cod_emp fec
f001 001 001 1 sam 01/06/2013
delphi
if ((Length(F_factura.SGtra_fac.Cells[1,i]) > 0) or (Length(F_factura.SGins_fac.Cells[1,i]) > 0)) then begin hoy:= now(); with Mtab.ZQ2 do begin Close; SQL.Clear; SQL.Add('SELECT * FROM FACT_T WHERE NUM_F= '+QuotedStr(cod_fac)+'ORDER BY COD_T'); Open; First; for i := 1 to SGtra_fac.RowCount - 1 do //------------------------------------------------------------ begin if (Length(SGtra_fac.Cells[1, i]) > 0) and (Length(SGtra_fac.Cells[3, i]) > 0) then begin existeCod := FALSE; if not(existeCod) then begin Mtab.ZQ4.Close; Mtab.ZQ4.SQL.Clear; Mtab.ZQ4.SQL.Add('INSERT INTO FACT_T VALUES(' +QuotedStr (cod_fac)+',' +QuotedStr (SGtra_fac.Cells[1, i])+',' +FloatToStr(F_ppal.cantStrToFloat((SGtra_fac.Cells[3, i])))+',' +QuotedStr (DBEemp.Text)+',' +QuotedStr(F_ppal.fechaPG(DateToStr(hoy)))+')'); try ShowMessage(Mtab.ZQ4.SQL[0]); Mtab.ZQ4.ExecSQL; except on E: Exception do end; end; // END IF end; // end length end; // end for end; // with end; // end if
Agradezco su ayuda