Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- procedure TfrmPrincipal.btnDCClick(Sender: TObject);
- var
- AdoQrySelectPedidos, AdoQrySelectPedidosLineas: TADOQuery;
- ArrPedidos: TArreglo;
- Add: boolean;
- IdPedido: string;
- i: integer;
- cSQL: string;
- begin
- btnDC.Enabled := False;
- try
- // Obtener los Pedidos a cambiar (LUHN = False)
- AdoQrySelectPedidos := OpenRecordSet(' SELECT TOP 2000 ID_PEDIDO FROM PEDIDOS WHERE LUHN = 0 AND PROCESADO = 0');
- PBDC.Max := AdoQrySelectPedidos.RecordCount;
- lblDC.Caption := 'Leyendo pedidos... (' + IntToStr(PBDC.Max) + ')';
- Application.ProcessMessages;
- while not AdoQrySelectPedidos.Eof do
- begin
- IdPedido := AdoQrySelectPedidos['ID_PEDIDO'];
- Add := True;
- // Obtener el estado del pedido (ESTADO <> 'C')
- AdoQrySelectPedidosLineas := OpenRecordSet(' SELECT ESTADO FROM PEDIDOS_LINEAS WHERE ID_PEDIDO = ' + cCadena(IdPedido));
- while not AdoQrySelectPedidosLineas.Eof do
- begin
- if (nz(AdoQrySelectPedidosLineas['ESTADO'], 'E') <> 'E') and (nz(AdoQrySelectPedidosLineas['ESTADO'], 'E') <> 'A') then
- begin
- Add := False;
- break;
- end;
- AdoQrySelectPedidosLineas.Next;
- Application.ProcessMessages;
- end;
- AdoQrySelectPedidosLineas.Close;
- AdoQrySelectPedidosLineas.Free;
- if Add then
- begin
- SetLength(ArrPedidos, Length(ArrPedidos) + 1);
- ArrPedidos[Length(ArrPedidos) - 1] := IdPedido;
- end;
- ExecSQL('UPDATE PEDIDOS SET PROCESADO = 1 WHERE ID_PEDIDO = ' + cCadena(IdPedido));
- PBDC.Position := PBDC.Position + 1;
- AdoQrySelectPedidos.Next;
- end;
- AdoQrySelectPedidos.Close;
- AdoQrySelectPedidos.Free;
- PBDC.Max := Length(ArrPedidos);
- PBDC.Position := 0;
- lblDC.Caption := 'Actualizando pedidos... (' + IntToStr(PBDC.Max) + ')';
- Application.ProcessMessages;
- // Actualizar ID_PEDIDO
- for i := 0 to Length(ArrPedidos) - 1 do
- begin
- cSQL := 'UPDATE PEDIDOS SET ID_PEDIDO = dbo.GetIdPedido(ID_PEDIDO), LUHN = 1 WHERE ID_PEDIDO = ' + cCadena(ArrPedidos[i]);
- cSQL := cSQL + ';UPDATE PEDIDOS_PARTIDAS SET ID_PEDIDO = dbo.GetIdPedido(ID_PEDIDO) WHERE ID_PEDIDO = ' + cCadena(ArrPedidos[i]);
- cSQL := cSQL + ';UPDATE PEDIDOS_LINEAS SET ID_PEDIDO = dbo.GetIdPedido(ID_PEDIDO) WHERE ID_PEDIDO = ' + cCadena(ArrPedidos[i]);
- cSQL := cSQL + ';UPDATE PEDIDOS_ARCHIVOS SET ID_PEDIDO = dbo.GetIdPedido(ID_PEDIDO) WHERE ID_PEDIDO = ' + cCadena(ArrPedidos[i]);
- cSQL := cSQL + ';UPDATE PEDIDOS_LINEAS_CONCEPTOS_FACTURACION SET ID_PEDIDO = dbo.GetIdPedido(ID_PEDIDO) WHERE ID_PEDIDO = ' + cCadena(ArrPedidos[i]);
- cSQL := cSQL + ';UPDATE PEDIDOS_LINEAS_OPERADORES SET ID_PEDIDO = dbo.GetIdPedido(ID_PEDIDO) WHERE ID_PEDIDO = ' + cCadena(ArrPedidos[i]);
- // Ejecutar Consulta
- SaveLog(cSQL);
- ExecSQL(cSQL);
- PBDC.Position := PBDC.Position + 1;
- Application.ProcessMessages;
- end;
- Application.MessageBox(PChar('Se han convertido un total de (' + IntToStr(Length(ArrPedidos)) + ') pedidos.'),'Proceso Finalizado', MB_OK + MB_TASKMODAL + MB_ICONINFORMATION);
- lblDC.Caption := '';
- PBDC.Position := 0;
- Application.ProcessMessages;
- except
- on E: Exception do
- begin
- lblDC.Caption := '';
- PBDC.Position := 0;
- Application.ProcessMessages;
- btnDC.Enabled := True;
- Application.MessageBox(PChar('Error al completar la operación: ' + E.Message), 'Error', MB_ICONERROR + MB_OK + MB_TASKMODAL);
- end;
- end;
- btnDC.Enabled := True;
- end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement