Koppla mot händelse: 'Före spara ändrad post'

function q_polr_artikel_Replace: boolean;
  var sCurrentErsattsAvArtnr, sCurrentErsatterArtNr, sSQL : string;

begin (* By Polr AB *)
  q_hz_artikel_Replace := True;

  // Ersatts Av Artnr
  sSQL := 'SELECT COUNT(1) FROM ar WHERE ar.ForetagKod = '+sy1.ForetagKod+' AND ar.ArtNr='+toSQL(ar.ArtNr)+' AND ISNULL(ar.ErsattsAvArtnr, "") <> ISNULL('+toSQL(ar.ErsattsAvArtnr) + ', "")';
  If (SQLGetInteger(sSQL) > 0) AND (ar.ErsattsAvArtnr <> '') Then
  Begin
    sSQL := 'SELECT ISNULL(ar.ErsatterArtNr, "<tomt>") FROM ar WHERE ar.ForetagKod = '+sy1.ForetagKod+' AND ar.ArtNr='+toSQL(ar.ErsattsAvArtnr)+'';

    If (YesNo('Vill du även uppdatera ersättande artikel "'+ar.ErsattsAvArtnr+'" med "Ersätter artikel" = '+ar.ArtNr+'? (Nuvarande värde: '+SQLGetString(sSQL)+')')) Then
    Begin
      sSQL := 'UPDATE ar SET ErsatterArtNr = '+ToSQL(ar.ArtNr)+', RowUpdatedDt = GETDATE(), RowUpdatedBy = '+ToSQL(sy2.PersSign)+', RowUpdatedCols="ErsatterArtNr" WHERE ForetagKod = '+sy1.ForetagKod+' AND ArtNr='+toSQL(ar.ErsattsAvArtnr)+'';
      SQLExecuteText(sSQL);
    End;

  End;

  // Ersatter ArtNr
  sSQL := 'SELECT COUNT(1) FROM ar WHERE ar.ForetagKod = '+sy1.ForetagKod+' AND ar.ArtNr='+toSQL(ar.ArtNr)+' AND ISNULL(ar.ErsatterArtNr, "") <> ISNULL('+toSQL(ar.ErsatterArtNr) + ', "")';
  If (SQLGetInteger(sSQL) > 0) AND (ar.ErsatterArtNr <> '') Then
  Begin
    sSQL := 'SELECT ISNULL(ar.ErsattsAvArtnr, "<tomt>") FROM ar WHERE ar.ForetagKod = '+sy1.ForetagKod+' AND ar.ArtNr='+toSQL(ar.ErsatterArtNr)+'';

    If (YesNo('Vill du även uppdatera ersatt artikel "'+ar.ErsatterArtNr+'" med "Ersätts av artikel" = '+ar.ArtNr+'? (Nuvarande värde: '+SQLGetString(sSQL)+')')) Then
    Begin
      sSQL := 'UPDATE ar SET ErsattsAvArtnr = '+ToSQL(ar.ArtNr)+', RowUpdatedDt = GETDATE(), RowUpdatedBy = '+ToSQL(sy2.PersSign)+', RowUpdatedCols="ErsattsAvArtnr" WHERE ForetagKod = '+sy1.ForetagKod+' AND ArtNr='+toSQL(ar.ErsatterArtNr)+'';
      SQLExecuteText(sSQL);
    End;

  End;

End;