Programmieren in Pascal: KURT (Korruptionsschutz)
Zur Navigation springen
Zur Suche springen
KURT - diesmal in Pascal:
// KURT - Korruptionsschutz-Schnellprüfprogramm und Berichtsgenerierung per E-Mail // (c) 2020, 2022 Frank Werner - Feierabendprojekt in FreePascal (+ Lazarus) // Prototyp für die Android-App, das eBook, die Entscheidungsdatenbank, // Fragebögen, Formulare und die HTML-Seiten // To-Do-Liste // Nachweispflicht program kurt; type TFragebogen = array [0..20, 0..3] of string; // Der Fragebogen: 22 Zeilen, 4 Spalten, Index beginnt bei 0!! // Spalten: Nr., Frage, Nächste Fragenummer bei JA, Nächste Fragenummer bei NEIN // Wenn die nächsten Fragenummern beide Null sind, ist der Prüfbogen beendet var Fragebogen: TFragebogen = ( ('00', 'Handelt es sich bei der zu untersuchenden Stelle um eine öffentliche Stelle?', '01', '18'), ('01', 'Handelt es sich bei dieser öffentlichen Stelle um eine kleine kreisangehörige Gemeinde (mit weniger als 20.000 Einwohnern)?', '18', '02'), ('02', 'Gibt es bei dieser öffentl. Stelle Bereiche, in denen Einfluss auf Aufträge, Fördermittel, Genehmigungen, Gebote oder Verbote genommen werden kann?', '03', '09'), ('03', 'Sind diese Bereiche als "korruptionsgefährdet" (z. B. in einer Dienstanweisung) festgelegt?', '05', '04'), ('04', 'PFLICHTVERLETZUNG (§ 19 Abs. 2 Korruptionsbekämpfungsgesetz): Korruptionsgefährdete Bereiche müssen schriftlich erklärt werden!', '19', '19'), ('05', 'Sind Beschäftigte in diesen Bereichen länger als fünf Jahre ununterbrochen eingesetzt?', '06', '09'), ('06', 'PFLICHTVERLETZUNG (§ 21 Korruptionsbekämpfungsgesetz): Sie sind von der Rotationspflicht abgewichen. Das ist nur aus rechtlichen oder tatsächlichen Gründen erlaubt!', '19', '19'), ('07', 'Wurden die Gründe für die Abweichung von der Rotationspflicht dokumentiert und der Aufsichtsbehörde gemeldet?', '09', '08'), ('08', 'PFLICHTVERLETZUNG (§ 21 Korruptionsbekämpfungsgesetz): Die Gründe müssen dokumentiert und der Aufsichtsbehörde gemeldet werden!', '19', '19'), ('09', 'Geben politische Beamte jährlich über Beruf, Beraterverträge, Mitgliedschaften in Gremien, Vereinen oder privatrechtlichen Unternehmen Auskunft?', '11', '10'), ('10', 'PFLICHTVERLETZUNG (§ 16 Korruptionsbekämpfungsgesetz): Politische Beamte müssen jährlich berichten!', '19', '19'), ('11', 'Zeigen politische Beamte und Abgeordnete vor Übernahme oder innerhalb von fünf Jahren nach dem Eintritt in den Ruhestand Nebenbeschäftigungen an?', '13', '12'), ('12', 'PFLICHTVERLETZUNG (§ 17 Abs. 2 Korruptionsbekämpfungsgesetz): Politische Beamte müssen diese Angaben machen!', '19', '19'), ('13', 'Erfolgt eine jährliche Aufstellung aller Nebeneinnahmen der Abgeordneten und politischen Beamten?', '15', '14'), ('14', 'PFLICHTVERLETZUNG (§ 17 Abs. 2 Korruptionsbekämpfungsgesetz): Politische Beamte müssen diese Angaben machen!', '19', '19'), ('15', 'Gibt es ehemalige Beschäftigte, die aus ihrer früheren Tätigkeit Versorgungsbezüge o. ä. erhalten?', '16', '20'), ('16', 'Werden diese Beschäftigten schriftlich auf die Anzeigepflicht hingewiesen und der Hinweis aktenkundig gemacht?', '20', '17'), ('17', 'PFLICHTVERLETZUNG (§ 18 Abs. 1 Korruptionsbekämpfungsgesetz, § 41 Beamtenstatusgesetz, § 52 Abs. 5 Landesbeamtengesetz): Hinweis ist Pflicht!', '19', '19'), ('18', 'Das Korruptionsbekämpfungsgesetz gilt nur für öffentliche Stellen mit mehr als 20.000 Einwohnern!', '00', '00'), ('19', 'Die Stelle hat ihre Sorgfaltspflicht NICHT ERFÜLLT!', '00', '00'), ('20', 'Die Stelle hat ihre Sorgfaltspflicht ERFÜLLT!', '00', '00') ); Sachverhalt: string; Bericht : string; i : integer; procedure Ausgeben (Ausgabe: string; var Bericht: string); begin Bericht := concat (Bericht, '+++ ', Ausgabe, ' +++', chr(13), chr (10)); write (Ausgabe, ' '); end; function Antwort (Frage: string; var Bericht: string): boolean; // Frage stellen, Antwort entgegen nehmen, Bericht um beides ergänzen, 21.10.2021/FW var c: char; begin Ausgeben (Frage, Bericht); readln (c); if c = 'j' then begin Bericht := concat (Bericht, '=> JA', chr(13), chr(10)); Antwort := true; end else begin Bericht := concat (Bericht, '=> NEIN', chr(13), chr(10)); Antwort := false; end; end; begin // Start: Titel ausgeben, Sachverhalt erfassen, Bericht vorbereiten Bericht := ''; Ausgeben ('KURT - Schnelle Vorprüfung und Generierung eines kurzen Berichts (Version 21.10.2021), Autor: Frank Werner', Bericht); writeln; Ausgeben ('Geben Sie den Sachverhalt des Falles ein (ohne personenbezogene Daten!):', Bericht); readln (Sachverhalt); Bericht := concat ('Sachverhalt: ', Sachverhalt, chr (13), chr (10)); // Fragebogen abarbeiten i := 0; repeat if Fragebogen [i, 2] = Fragebogen [i, 3] then begin // Wenn die Werte der Spalten 2 und 3 gleich sind Ausgeben (Fragebogen [i, 1], Bericht); // ist die Frage eine Information (nur anzeigen) Val(Fragebogen [i, 2], i); // und der zweite Wert die neue Frageposition end else if Fragebogen [i, 2] = '00' then begin // Sonst, wenn die nächste Frageposition = 0 ist i := 0; // ist der Loop beendet end else if Antwort (Fragebogen [i, 1], Bericht) then begin Val (Fragebogen [i, 2], i); end else begin Val (Fragebogen [i, 3], i); end; until i = 0; // Bericht ausgeben writeln; writeln; Ausgeben (Bericht, Bericht); readln; end.
Diese Programm wird ohne jegliche Garantie oder Gewährleistung zur Verfügung gestellt. Eine Haftung wird nicht übernommen.