PDA

Ver la Versión Completa : Registro no se Actualiza... que puede ser....


BlueSteel
05-07-2005, 17:39:04
Hola a todos..

Tengo un problemita.. que no se como solucionar... a ver si me pueden ayudar un poquito... :p

Es un sistema de Ordenes de Compra... en donde un modulo es para modificar Ordenes que estan en Garantía....

La idea es poder agregar o quitar items de la orden (Tabla : DOrden), y actualizar los respectivos valores netos y de Iva (Tabla:Orden), para lo cual realizo el siguiente procedimiento:

Agrega Item (Tabla DOrden)

vTot.Text := FloatToStr(RoundN(StrToFloat(vCtd.Text)*StrToFloat(vUni.Text)));
IBQ_Edit.SQL.Clear;
IBQ_Edit.SQL.Add('Insert Into "DOrden" ("Ord_Numero","Dor_Descripcion","Dor_Cantidad","Dor_Valor_Unitario")');
IBQ_Edit.SQL.Add('Values (:P1,:P2, :P3, :P4)');
IBQ_Edit.Params[0].AsString := nOrd.Text;
IBQ_Edit.Params[1].AsString := vDes.Text;
IBQ_Edit.Params[2].AsInteger := StrToInt(vCtd.Text);
IBQ_Edit.Params[3].AsFloat := StrToFloat(vUni.Text);
IBQ_Edit.ExecSQL;
vTot_Bru.Text := IntToStr(StrToInt(vTot.Text)+StrToInt(vTot_Net.Text));

Actualiza_Orden;



Elimina (Tabla DOrden)

IBQ_Edit.SQL.Clear;
IBQ_Edit.SQL.Add('Delete From "DOrden"');
IBQ_Edit.SQL.Add('Where "Dor_Numero"=:Var1');
IBQ_Edit.Params[0].AsString := IBQ_Items['Dor_Numero'];
IBQ_Edit.ExecSQL;
vTot_Bru.Text := FloatToStr(StrToFloat(vTot_Bru.Text)-Total_Item);



Procedimiento para actualizar calculos y Tabla :Orden

procedure TModifica_OC.Actualiza_Orden;
begin
vTot_Net.Text := FloatToStr(StrToFloat(vTot_Bru.Text)-StrToFloat(vTot_Des.Text));
If CB_Factura.Checked = True Then
vTot_Iva.Text := '0'
Else
vTot_Iva.Text := FloatToStr(RoundN(StrToFloat(vTot_Net.Text)*vIva));
vTot_Fin.Text := FloatToStr(RoundN(StrToFloat(vTot_Iva.Text)+StrToFloat(vTot_Net.Text)));
IBQ_Edit.SQL.Clear;
IBQ_Edit.SQL.Add('Update "Orden" Set "Ord_Neto"=:Var1, "Ord_Descuento"=:Var2, "Ord_Iva"=:Var3');
IBQ_Edit.SQL.Add('Where "Ord_Numero"=:Var4');
IBQ_Edit.Params[0].AsFloat := StrToFloat(vTot_Bru.Text);
IBQ_Edit.Params[1].AsFloat := StrToFloat(vTot_Des.Text);
IBQ_Edit.Params[2].AsFloat := StrToFloat(vTot_Iva.Text);
IBQ_Edit.Params[3].AsString := Ordenes.Num_Orden;
IBQ_Edit.ExecSQL;

IBT_Edit.Commit; // Actualiza cambios en Tabla :Dorden
IBT_Items.Commit; // Actualiza cambios en Tabla :Orden
end;


Bueno... cada vez que elimino o agrego un item a la Orden de Compra, estos datos se actualizan en la Tabla Dorden, pero se supone que tambien los actualizo en la Tabla Orden, pero cuando salgo del modulo y reviso la orden que habia modificado, solo estan las actualizaciones de los items (Tabla Dorden), pero los valores totales no se han modificados (Tabla Orden), que podrá ser.... :confused: :confused: