Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-11-2022
kainchu3102 kainchu3102 is offline
Miembro
 
Registrado: jul 2021
Posts: 79
Poder: 4
kainchu3102 Va por buen camino
Bd

Hola mucho gusto, estoy usando Mysql Worbench, y ese procendimiento lo desde un Boton.Click pense con el for se podia recorrer todas las ID que se eliminan y devolver la cantidad de producto de una venta anulada. pero no me sale. muchas gracias por tu respuesta
Responder Con Cita
  #2  
Antiguo 11-11-2022
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 937
Poder: 24
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
Estimado kainchu3102,debe ser mas claro en la explicación de su duda o problema. Como le indica el colega mRoman, esto podria ser implementado con triggers (Disparadores) en la base de datos.

A continuación le propongo una opción de acuerdo a lo que creo comprender de su problema...

Código Delphi [-]
{1: Recuperar registro de ventas}
QVenta.Sql.Clear;
QVenta.Sql.Add('Select id_venta ');
QVenta.Sql.Add('from Ventas');
QVenta.Sql.Add('where id_venta=:id_Venta');
QVenta.ParamByName('id_venta').AsInteger:=Id_Venta;
QVenta.Open;

{2: Recuperar detalle de la venta}
QVentaDet.Sql.Clear;
QVentaDet.Sql.Add('Select id_pro_detven, can_detven)'
QVentaDet.Sql.Add('From det_venta)'
QVentaDet.Sql.Add('Where id_ven_detven = :id_Venta)';
QVentaDet.ParamByName('id_venta').AsInteger:=Id_Venta;
QVentaDet.Open;

{3: Ciclo para recorrer detalle de ventas y Reversar stock a tabla Productos}

QReversaStock.SQL.Clear;
QReversaStock.SQL.Add('Update Producto');
QReversaStock.SQL.Add('SET producto.sto_prod = producto.sto_prod + :CANT1');
QReversaStock.SQL.Add('Where producto.id_prod = :PROD');

While not QVentaDet.Eof Do
begin
     QReversaStock.Params.ParamByName('CANT1').AsInteger := QVentaDet.FieldByName('CAN_DETVEN').AsInteger;
     QReversaStock.Params.ParamByName('PROD').AsInteger  := QVentaDet.FieldByName('ID_PRO_DETVEN').AsInteger;
     QReversaStock.ExecSQL;

     QVentaDet.Next;
end;

{5: Eliminar Detalle de venta}
QDelete.Sql.Clear;
QDelete.Sql.Add('Delete From Det_venta');
QDelete.Sql.Add('Where id_ven_detven = :ID_DETVENE');
QDelete.ParamByName('ID_DETVENE').AsInteger:=Id_Venta;
QDelete.ExecSQL;

{6: Eliminar venta}
QDelete.Sql.Clear;
QDelete.Sql.Add('Delete From Ventas');
QDelete.Sql.Add('Where id_venta = :ID_Venta');
QDelete.ParamByName('id_venta').AsInteger:=Id_Venta;
QDelete.ExecSQL;

Espero le ayude...Saludos cordiales
Responder Con Cita
  #3  
Antiguo 11-11-2022
kainchu3102 kainchu3102 is offline
Miembro
 
Registrado: jul 2021
Posts: 79
Poder: 4
kainchu3102 Va por buen camino
Bd

Nose como agradecerte me sirvio de mucho, siempre entro y cunsulta alguna veces son buenas otras no, pero creo que deberían premiar a los que ayudamos o ponemos el granito de arena, o el club tambien deberia pedir una cuenta bancaria aparte de otros datos para que gentilmente se pueda cobrar una consulta, porque alguna veces vale la pena ayudar o viceversa. gracias nuevamente.
Responder Con Cita
  #4  
Antiguo 11-11-2022
kainchu3102 kainchu3102 is offline
Miembro
 
Registrado: jul 2021
Posts: 79
Poder: 4
kainchu3102 Va por buen camino
codigo

Código Delphi [-]
procedure TFORMVENTA.Eliminar1Click(Sender: TObject);

begin
if ID_VENTA  <> 0 then
 begin
   if MessageDlg('SU REGISTRO SERA ELIMINADO, ¿REALMENTE DESEA ELIMINAR REGISTRO?',mtConfirmation,mbOKCancel,0) <> idOk then
   begin
   ID_VENTA  := 0;
   abort
   end
   else
    begin
       with MDATOS_SAGA.FDQSEL_ABM_VEN2 Do
       Begin
       SQL.Clear;
       SQL.Add('SELECT  id_pro_detven, can_detven FROM det_venta WHERE id_ven_detven = :ID_DETVEN');
       ParamByName('ID_DETVEN').AsInteger := ID_VENTA;
       open;
      end;

        with MDATOS_SAGA.FDQACTUAL_STOCK do
      begin
      SQL.Clear;
      SQL.Add('UPDATE producto SET producto.sto_prod = producto.sto_prod + :CANT1  WHERE producto.id_prod = :PROD');
      While not MDATOS_SAGA.FDQSEL_ABM_VEN2.Eof Do
        begin
            Params.ParamByName('CANT1').AsInteger :=  MDATOS_SAGA.FDQSEL_ABM_VEN2.FieldByName('CAN_DETVEN').AsInteger;
            Params.ParamByName('PROD').AsInteger  :=  MDATOS_SAGA.FDQSEL_ABM_VEN2.FieldByName('ID_PRO_DETVEN').AsInteger;
            ExecSQL;
            MDATOS_SAGA.FDQSEL_ABM_VEN2.Next;
        end;
       end;

         With MDATOS_SAGA.FDQABM_VENTA do
         Begin
           SQL.Clear;
           SQL.Add ('DELETE FROM venta WHERE id_ven = :ID_VENE');
           Params.ParamByName('ID_VENE').AsInteger := ID_VENTA;
           ExecSQL;
           if RowsAffected = 1 then


            With MDATOS_SAGA.FDQABM_DET_VENTA do
           Begin
           SQL.Clear;
           SQL.Add ('DELETE FROM det_venta WHERE id_ven_detven = :ID_DETVENE');
           Params.ParamByName('ID_DETVENE').AsInteger := ID_VENTA;
           ExecSQL;


           end;
           MDATOS_SAGA.FDTVENTA.Refresh;
           DBGVENTA.DataSource.DataSet.Refresh;

           MDATOS_SAGA.FDTDET_VENTA.Refresh;
           DBGDET_VENTA.DataSource.DataSet.Refresh;
         end;
      end;
 end
  else
 begin
    ShowMessage('DEBE SELECCIONAR UN REGISTRO DE LA GRILLA PARA ELIMINAR, VERIFICAR');
 end;
end;

Asi quedo
Responder Con Cita
  #5  
Antiguo 12-11-2022
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 937
Poder: 24
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
Que bien...me alegra el haber aportado...
Responder Con Cita
  #6  
Antiguo 12-11-2022
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.405
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por kainchu3102 Ver Mensaje
Nose como agradecerte me sirvio de mucho, siempre entro y cunsulta alguna veces son buenas otras no, pero creo que deberían premiar a los que ayudamos o ponemos el granito de arena, o el club tambien deberia pedir una cuenta bancaria aparte de otros datos para que gentilmente se pueda cobrar una consulta, porque alguna veces vale la pena ayudar o viceversa. gracias nuevamente.
Arriba del todo tienes un par de enlaces por si quieres colaborar: teaming.net si estás en España y paypal para cualquier lugar del mundo.
Saludos.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Que es el update 3? Debo descargar el update 3? Nicomaco Varios 4 23-04-2009 00:53:24
deadlock update conflict with concurrent update! JuanErasmo Firebird e Interbase 6 10-07-2008 20:58:10
UPDATE con seccion llamada UPDATE sql's MyDAC karlaoax SQL 4 25-04-2007 22:10:50
OLD y NEW en UPDATE micayael Firebird e Interbase 3 20-10-2005 15:50:14


La franja horaria es GMT +2. Ahora son las 16:17:04.


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