Seit Einführung der Löschfunktion in PROSOZ 14plus werden in manchen Verwaltungen Möglichkeiten diskutiert, Vorgänge vor einer endgültigen physikalischen Löschung nochmals prüfen zu können. Gerade im Zusammenhang mit möglichen Manipulationen (Erfinden von Vorgängen, Auszahlungen an falsche / erfundene Empfänger, etc.) kann eine solche Prüfung sinnvoll sein, denn das physikalische Löschen der Vorgangs- und Buchhaltungsdaten vernichtet etwaige Spuren (mit Ausnahme von archivierten Zahlungslisten).

Mit dem SQL-Script werden die zu löschenden Vorgänge aufgelistet und geprüft, ob in den letzten XX Jahren eine Buchung erfolgte. Passen Sie am Anfang des Scripts die gewünschten Filterkriterien an.

 

SQL Code für MS SQL Server

declare @loeschtag as datetime
declare @vonbereich as integer
declare @bisbereich as integer
declare @jahre as integer

-- Hier das Datum eintragen, bis zu dem gelöscht werden soll
set @loeschtag = '31.12.2021'

-- Hier die Bereichsnummern eintragen, die geprüft werden sollen (von-bis-Bereich)
set @vonbereich = 3000
set @bisbereich = 3999

-- Hier die Anzahl Jahre eingetragen, z.B. 10 steht für den Zeitraum "letzte 10 Jahre bis Löschdatum"
set @jahre = 10

select
n_vorgang.bereich,
n_vorgang.aktenzeichen aktenzeichen,
n_vorgang.vorgangsnummer vorgnr,
n_vorgang.muendelnr_alt mnr,
n_adressen.adressnummer adressnummer,
n_adressen.nachname as nachname_jm,
n_adressen.vorname as vorname_jm,
convert (char, n_personendaten.geburtsdatum,104) as geburtsdatum_jm,
n_vorgang.grund,
convert (char,n_vorgang.beginnvorgang,104) as beginnvorgang,
convert (char, n_vorgang.endevorgang,104) as endevorgang,
convert (char, n_vorgang.endezahlung,104) as endezahlung,
n_vorgang.endegrund,
n_vorgang.loeschen,
convert (char, n_vorgang.loeschdatum,104) as loeschdatum,
n_vorgang.archivieren,
convert (char, n_vorgang.archivierungsdatum,104) as archivierungsdatum,
 
-- Buchhaltungsdaten
CASE ASCII(buzahl.typ) 
                WHEN 65 THEN 'Auszahlung'
                WHEN 68 THEN 'Abschlagszahlung'
                WHEN 69 THEN 'Einzahlung'
                WHEN 97 THEN 'Einnahmeabsetzung'
                WHEN 101 THEN 'Ausgabeabsetzung'                
END      

as Buchungsart,


-- Prüfung ob in den letzten 10 Jahren etwas gebucht wurde 

(case when max(buzahl.buchdat) >= dateadd (yy,-@jahre, @loeschtag) 
      then   'PRÜFEN - Vorgang wurde in den letzten 10 Jahren bebucht' 
      + ' - zuletzt bebucht am: ' + (cast (convert(char,(max(buzahl.buchdat)),104) as char (20)))
      when max(buzahl.buchdat) is null
      then 'Keine IST-Buchung vorhanden'
      else 'letztes Buchungsdatum: ' + (cast (convert(char,(max(buzahl.buchdat)),104) as char (20))) 
end) Hinweis_Buchhaltung

from 
n_vorgang left outer join buzahl on
(n_vorgang.bereich = buzahl.bereich) 
and
(n_vorgang.muendelnr_alt = buzahl.mnr),

n_vorgbeteiligte, 
n_adressen, 
n_personendaten

 
where
n_vorgang.vorgangsnummer = n_vorgbeteiligte.vorgang 
and n_vorgbeteiligte.adresse = n_adressen.adressnummer 
and n_vorgbeteiligte.adresse = n_personendaten.zuordnungsnummer 
and n_vorgbeteiligte.beteiligtenart =7 

and n_vorgang.loeschdatum <= @loeschtag    
and n_vorgang.loeschdatum is not null 

and n_vorgang.bereich between @vonbereich and @bisbereich
 
group by

n_vorgang.bereich,
n_vorgang.aktenzeichen,
n_vorgang.vorgangsnummer ,
n_vorgang.muendelnr_alt ,
n_adressen.adressnummer ,
n_adressen.nachname,
n_adressen.vorname,
n_personendaten.geburtsdatum,
n_vorgang.grund,
n_vorgang.beginnvorgang,
n_vorgang.endevorgang,
n_vorgang.endezahlung,
n_vorgang.endegrund,
n_vorgang.loeschen,
n_vorgang.loeschdatum,
n_vorgang.archivieren,
n_vorgang.archivierungsdatum,
buzahl.typ

 
order by 
n_vorgang.bereich,
n_adressen.nachname,
n_adressen.vorname,
n_personendaten.geburtsdatum

 

SQL Code für ORACLE

steht noch nicht zur Verfügung 

 

Bitte beachten Sie vor dem Download von MIS- oder SQL-Auswertungen die Grundsätze für die Nutzung von Auswertungen.