Ver Mensaje Individual
  #5  
Antiguo 10-04-2023
delphi50jmb delphi50jmb is offline
Miembro
 
Registrado: jul 2007
Posts: 24
Reputación: 0
delphi50jmb Va por buen camino
Hola Casimiro, y cloayza.

Agradesco sus respuestas.

llevo muy poco tiempo trabajando con SQL, por lo cual no estoy familiarizado con los disparadores y Store Procedure.

Por otro lado, revisando tu codigo, se envia una instruccion para "Eliminar" las Facturas y detalle de Facturas ya procesadas. No se como funciona en otros paises, pero aqui, una factura "Anulada", no es lo mismo que una factura "Eliminada". Una factura Anulada debe retornar los productos al inventario, y debe mantenerse en los archivos e informes, para eventuales controles, o auditorias de Impuestos Internos.

E revisado muchos manuales de SQL, y lo mas cercano a lo que necesito, es algo como esto, pero no e logrado que funcione.

Código Delphi [-]
      Dt1.SQLDataSet1.Close;
      Dt1.SQLDataSet1.CommandText := 'UPDATE ' + ' Inventario ' +
                                       'SET '  +
                                         'ExistAct  = ' +
                                               '(SELECT ' + 'Facturas.Rut, Facturas.Numero, ' +
                                                           '(SELECT SUM(cantidad) ' +
                                                              'FROM DetFact ' +
                                                                 'WHERE DetFact.Rut=Facturas.Rut '       + ' AND ' +
                                                                       'DetFact.Numero=Facturas.Numero ' + ' AND ' +
                                                                       'DetFact.Codigo = Inventario.Codigo)  ' +
                                                'FROM Facturas ' +
                                                'WHERE ' + 'Estado = ' + QuoteStr('*') + ');';
      Dt1.SQLDataSet1.ExecSQL(False);


Cita:
Por cierto, el título que has puesto de "actualizar un archivo a partir de otros archivos" no tiene nada que ver con lo que preguntas.
Bueno, la verdad como comentaba en un principio. El operador de sistemas, tiene en su pantalla solo los datos de los encabezados de las facturas emitidas (Cliente, Direccion, Numero de Factura, Monto comprado), no tiene la informacion de detalle de la compra, ni de los inventarios de productos. Desde esa ventana, el operador da por pagadas o anuladas las facturas. Si una, o mas facturas son anuladas, el sistema debe encontrar el detalle de esa factura, y con ese detalle, actualizar los archivos de inventario con los productos que se devuelven. Entonces a partir de un archivo (Facturas), debo ir a otro archivo (DetalleFact), obtener los datos requeridos, y actualizar un tercer archivo (Inventario).

Espero se entienda la idea.

Gracias de antemano.

Saludos.
Jose Miguel.
Responder Con Cita