procedure Tf_remision2.AgregarClick(Sender: TObject);
var
idremision: integer;
cantidad: real;
begin
if remi.State=dsInsert then
begin
remi.Fields[1].AsInteger:=strtoint(DBComprobante.Text);
remi.Fields[2].AsDateTime:=feini.Date;
remi.Fields[3].AsDateTime:=fefin.Date;
remi.Fields[4].AsString:=DBMotivo.Text;
remi.Fields[5].AsString:=DBRazon.Text;
remi.Fields[6].AsString:=DBRUC.Text;
remi.Fields[7].AsString:=DBDestino.Text;
remi.Fields[8].AsString:=DBPartida.Text;
remi.Fields[9].AsString:=f_menu.nomusu.Text;
remi.Fields[10].AsDateTime:=now();
remi.Fields[11].AsString:=DBLocal.Text;
remi.Fields[12].AsInteger:=strtoint(DBRemision.Text);
remi.Post;
remi.ApplyUpdates;
f_menu.conex.Commit;
remi.Close;
remi.Open;
remi.Last;
end;
if remi.State=dsEdit then
begin
remi.Fields[1].AsInteger:=strtoint(DBComprobante.Text);
remi.Fields[2].AsDateTime:=feini.Date;
remi.Fields[3].AsDateTime:=fefin.Date;
remi.Fields[4].AsString:=DBMotivo.Text;
remi.Fields[5].AsString:=DBRazon.Text;
remi.Fields[6].AsString:=DBRUC.Text;
remi.Fields[7].AsString:=DBDestino.Text;
remi.Fields[8].AsString:=DBPartida.Text;
remi.Fields[9].AsString:=f_menu.nomusu.Text;
remi.Fields[10].AsDateTime:=now();
remi.Fields[11].AsString:=DBLocal.Text;
remi.Post;
remi.ApplyUpdates;
f_menu.conex.Commit;
remi.Close;
remi.Open;
remi.Locate('id_remision',idremision,[]);
end;
des;
try
cantidad:=strtofloat(Cant.Text);
except
cantidad:=0;
end;
if cantidad <= merca.Fields[3].AsInteger then
begin
detalle.Append;
detalle.Fields[1].AsInteger:=remi.Fields[0].AsInteger;
detalle.Fields[3].AsInteger:=merca.Fields[0].AsInteger;
detalle.Fields[2].AsFloat:=strtofloat(cant.Text);
detalle.Post;
detalle.ApplyUpdates;
idremision:=remi.Fields[0].AsInteger;
f_menu.conex.Commit;
remi.Close;
remi.Open;
remi.Locate('id_remision',idremision,[]);
end
else
begin
showmessage('No se agregaron detalles, no hay cantidad suficiente o se modifico la cabecera');
Cant.SetFocus;
end;
abredetalle;
end;