Programmieren in Pascal: KURT (Korruptionsschutz): Unterschied zwischen den Versionen

Aus Datenschutz
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „KURT - diesmal in Pascal: <pre> // KURT - Korruptionsschutz-Schnellprüfprogramm und Berichtsgenerierung per E-Mail // (c) 2020, 2022 Frank Werner - Feierabe…“)
 
 
Zeile 20: Zeile 20:
  
 
var Fragebogen: TFragebogen = (
 
var Fragebogen: TFragebogen = (
                                ('00', 'Handelt es sich bei der zu untersuchenden Stelle um eine öffentliche Stelle?', '01', '18'),
+
  ('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'),
+
  ('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 öffentlichen Stelle Bereiche, in denen Einfluss auf Aufträge, Fördermittel, Genehmigungen, Gebote oder Verbote genommen werden kann?', '03', '09'),
+
  ('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'),
+
  ('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'),
+
  ('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'),
+
  ('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'),
+
  ('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'),
+
  ('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'),
+
  ('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'),
+
  ('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'),
+
  ('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'),
+
  ('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'),
+
  ('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'),
+
  ('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'),
+
  ('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'),
+
  ('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'),
+
  ('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'),
+
  ('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'),
+
  ('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'),
+
  ('19', 'Die Stelle hat ihre Sorgfaltspflicht NICHT ERFÜLLT!', '00', '00'),
                                ('20', 'Die Stelle hat ihre Sorgfaltspflicht ERFÜLLT!', '00', '00')
+
  ('20', 'Die Stelle hat ihre Sorgfaltspflicht ERFÜLLT!', '00', '00')
                              );
+
  );
 +
 
 
     Sachverhalt: string;
 
     Sachverhalt: string;
 
     Bericht    : string;
 
     Bericht    : string;

Aktuelle Version vom 20. Mai 2022, 10:04 Uhr

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.