<?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ä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();
?>