prognose_kehl/func_doz_nachbes.php
2023-01-30 08:01:11 +01:00

127 lines
6.1 KiB
PHP
Executable File
Raw Permalink Blame History

<?php
require_once("config.inc.php");
function func_doz_nachbes()
{
// Berechnung der Leistungszulagen BZ in die Zukunft sowie die fiktiven Zulagen.
$db = dbconnect();
$result_truncate = $db->query("TRUNCATE TABLE prog_tmp_professor");
$result_truncate = $db->query("TRUNCATE TABLE prog_tmp_professor_besoldung");
$result_truncate = $db->query("TRUNCATE TABLE prog_tmp_professor_arbumfang");
// Teil 1: Vorhandene Profs in Temp schreiben, auch die im Ruhestand
$query = "SELECT did, doz_titel, doz_vorname, doz_name, geb_dat, zugang, weggang, nachbesetzung, anz_zulagen
FROM prog_professor
ORDER BY doz_name ASC, doz_vorname ASC";
$result = $db->query($query) or die("Cannot execute query");
while ($row = $result->fetch_array()) {
// Wenn kein Enddatum vorhanden ist, dann wird das Auschscheidedatum/Ruhestandsdatum verwendet
$result_insert = $db->query("INSERT INTO prog_tmp_professor (did, doz_titel, doz_vorname, doz_name, geb_dat, zugang, weggang, anz_zulagen, art)
VALUES
('$row[did]', '$row[doz_titel]', '$row[doz_vorname]', '$row[doz_name]', '$row[geb_dat]', '$row[zugang]', '$row[weggang]', '$row[anz_zulagen]', 'B')");
}
# Ausbaustufe 3: Besoldung der Professoren extra schreiben
$query = "SELECT pbid, startdat, did, besoldung, stufe, bzid
FROM prog_professor_besoldung
ORDER BY startdat ASC";
$result = $db->query($query) or die("Cannot execute query");
while ($row = $result->fetch_array()) {
$result_insert = $db->query("INSERT INTO prog_tmp_professor_besoldung (pbid, startdat, did, besoldung, stufe, bzid,art)
VALUES
('$row[pbid]', '$row[startdat]', '$row[did]', '$row[besoldung]', '$row[stufe]', '$row[bzid]', 'B')");
}
# Ausbaustufe 3: Arbeitsumfang der Professoren extra schreiben
$query = "SELECT pad, startdat, did, prozent
FROM prog_professor_arbumfang
ORDER BY startdat ASC";
$result = $db->query($query) or die("Cannot execute query");
while ($row = $result->fetch_array()) {
$result_insert = $db->query("INSERT INTO prog_tmp_professor_arbumfang (pad, startdat, did, prozent, art)
VALUES
('$row[pad]', '$row[startdat]', '$row[did]', '$row[prozent]', 'B')");
}
// Teil 2: Fiktive Profs in Temp schreiben. Fiktive Nachfolge von Ruhestandsprofessoren
$query = "SELECT did, doz_titel, doz_vorname, doz_name, geb_dat, zugang, weggang, nachbesetzung, anz_zulagen
FROM prog_professor
WHERE nachbesetzung != '0000-00-00'
ORDER BY doz_name ASC, doz_vorname ASC";
$result = $db->query($query) or die("Cannot execute query");
while ($row = $result->fetch_array()) {
// Wenn kein Enddatum vorhanden ist, dann wird das Auschscheidedatum/Ruhestandsdatum verwendet
# F<>r fiktive Nachbesetzung muss man wissen, wann der letzte regul<75>re Prof in Ruhestand geht. Bis dahin laufen auch die fiktiven Professoren
$result_weggang = $db->query("SELECT max(weggang) enddat_form
FROM prog_professor
");
$row_weggang = $result_weggang->fetch_array();
$ende = $row_weggang['enddat_form'];
$doz_vorname = "$row[doz_vorname]";
$doz_nachname = "NACHFOLGER " . "$row[doz_name]";
$result_insert = $db->query("INSERT INTO prog_tmp_professor (doz_titel, doz_vorname, doz_name, geb_dat, zugang, weggang, nachbes_did, anz_zulagen, art)
VALUES
('', '$doz_vorname', '$doz_nachname', '', '$row[nachbesetzung]', '$ende', $row[did], '7', 'F')");
$did = $db->insert_id;
$result_update = $db->query("UPDATE prog_tmp_professor
SET did=$did
WHERE tdid=$did
");
}
# Ausbaustufe 3: Besoldung in eigene Tabelle schreiben
$query = "SELECT zugang, did
FROM prog_tmp_professor
WHERE art='F'
ORDER BY zugang ASC";
$result = $db->query($query) or die("Cannot execute query");
$pbid = 1000;
while ($row = $result->fetch_array()) {
$result_insert = $db->query("INSERT INTO prog_tmp_professor_besoldung (pbid, startdat, did, besoldung, stufe, bzid, art)
VALUES
('$pbid', '$row[zugang]', '$row[did]', 'W2', '0', 1, 'F')");
$pbid++;
}
# Ausbaustufe 3: Arbeitsumfang der Professoren extra schreiben
$query = "SELECT zugang, did, nachbes_did
FROM prog_tmp_professor
WHERE art='F'
ORDER BY zugang ASC";
$result = $db->query($query) or die("Cannot execute query");
$pad = 1000;
while ($row = $result->fetch_array()) {
# Aktuell wird der letzte Wert des Arbeitsumfangs verwendet, den der reale Professor hatte. Der wird an den fiktiven Professor weitergegeben.#
# Kann aber sein, dass die Hochschule immer 100% m<>chte bei einer Nachbesetzung.
# Mail an Dunkel/Gottwald am 27.12.2017
# $result_lastumf = $db->query("SELECT prozent
# FROM prog_professor_arbumfang
# WHERE did = $row[nachbes_did]
# ORDER BY startdat DESC
# LIMIT 1");
# $row_lastumf = $result_lastumf->fetch_array();
# $umfang = $row_lastumf[prozent];
# --> Antwort Frau Gottwald. Es wird der Nachfolger mit 1.00 angenommen
$umfang = 1;
$result_insert = $db->query("INSERT INTO prog_tmp_professor_arbumfang (pad, startdat, did, prozent, art)
VALUES
('$pad', '$row[zugang]', '$row[did]', '$umfang', 'F')");
$pad++;
}
} // Ende Funktion
#func_doz_nachbes();
?>