<?php
header("Expires: Mon, 12 Jul 1995 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H.i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
$verz = "upload/"; // relatives Uploadverzeichnis (relativ zum 'Standort' dieser Datei, wohin die Dateien kopiert werden sollen

## INDEX gegen DB
if(!isset($_SESSION)) { session_start(); }

include_once '../classes/TestProjektSmarty.class_subdir.php';
require_once("../config.inc.php");
require_once("../config/datenbankanbindung.php");
require_once("../func_get_parameter.php");
require_once("../config/func_cryption.php");
require_once("../func_standard_hs.php");
require_once("../func_tangen.php");
$smarty       = new SmartyAdmin();
$templatename = substr(basename($_SERVER['PHP_SELF']), 0, -3) . "html";
require_once "../language/german.inc.php";


$action = $_GET['action'];
if ($action == '') {
  if (isset($_GET['error'])) {
    
    $errorno = $_GET['error'];
    
    $smarty->assign('index_error', 1);
    
    if ($errorno == 1) {
      $smarty->assign('index_error_text', "Es m&uuml;ssen alle Felder ausgef&uuml;llt werden");
    }
    
    if ($errorno == 2) {
      $smarty->assign('index_error_text', "Der Benutzername ist im System nicht vorhanden");
    }
    
    if ($errorno == 3) {
      $smarty->assign('index_error_text', "Der Benutzername oder das Passwort ist nicht korrekt.");
    }
    
    if ($errorno == 4) {
      $smarty->assign('index_error_text', "Es wurden bereits Dateien hochgeladen. Melden Sie sich bitte bei der Hochschule, falls Änderungen gewünscht sind.");
    }
    
    if ($errorno == 5) {
      $smarty->assign('index_error_text', "Es sind noch keine Testergebnisse vorhanden. Daher kann dieser Schritt noch nicht ausgeführt werden.");
    }
    
    if ($errorno == 6) {
      $smarty->assign('index_error_text', "Es liegt aktuell kein bestandenes Testergebnis vor. Daher kann dieser Schritt nicht ausgeführt werden.");
    }
    
    # Daten aufbereiten bei Fehler
    if (isset($_SESSION["global_username"])) {
      $smarty->assign('index_user', $_SESSION["global_username"]);
    }
  }
  
  # Uploadverzeichnis aufräumen. Temporäre Dateien, die älter als 2 Wochen sind, werden gelöscht
    $dir = $_SERVER["DOCUMENT_ROOT"].dirname($_SERVER['PHP_SELF'])."/$verz";
    
    $folder = dir($dir);
    while ($dateiname = $folder->read()) {
        if (filetype($dir.$dateiname) != "dir") {
            if (strtotime("-2 weeks") > @filemtime($dir.$dateiname)) {
                if (@unlink($dir.$dateiname) != false){
                #  echo $dateiname.' wurde gelöscht<br>';
                $filedel = "$dir.$dateiname";
                $result_deldoc = $db->query("SELECT up_id, ka_id
                                               FROM dvm_upload
                                              WHERE file ='$filedel'
                                                AND upload_dat = '0000-00-00 00:00:00'
                                              LIMIT 1");
                $row_deldoc    = $result_deldoc->fetch_array();
                
                $sql1 = $db->query("DELETE FROM dvm_upload
                                     WHERE up_id = $row_deldoc[up_id]
                                  ");
                                  
                $sql1 = $db->query("DELETE FROM dvm_note
                                     WHERE ka_id = $row_deldoc[ka_id]
                                  ");
                                  
                $sql1 = $db->query("DELETE FROM dvm_dst_wunsch
                                     WHERE ka_id = $row_deldoc[ka_id]
                                       AND sendedat = '0000-00-00 00:00:00'
                                       AND datum < DATE_SUB( NOW() , INTERVAL 10 DAY )
                                  ");
                }else{
                #  echo $dateiname.' konnte nichtgelöscht werden<br>';
                }
            }
        }
    }

}

if ($action == 'anmeld') {
  if (isset($_POST['user'])) {
    $username_kand = mb_strtoupper($_POST["user"]); //remove case sensitivity on the username
  } else {
    $username_kand = $_SESSION["username_kand"];
  }
  
  if (isset($_POST['password'])) {
    $tan = $_POST["password"];
  } else {
    $tan = $_SESSION["tan"];
  }
  $_SESSION["username_kand"] = $username_kand;
  $_SESSION["tan"]      = $tan;
  
  if ($username_kand == "" OR $tan == "") {
    echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=1\">";
    exit;
  } else {
    
    $db = dbconnect();
    
    $result_best = $db->query("SELECT bestanden
                                 FROM dvm_kandidat a, dvm_term_kand b, dvm_tanpool c, dvm_ergebnisse d
                                WHERE a.ka_id = b.ka_id
                                  AND b.tp_id = c.tp_id
                                  AND c.tan = d.tan
                                  AND a.id = '$username_kand'
                                  AND c.tan= '$tan'
                                  AND c.aktiv = 'A'
                                ORDER BY b.tk_id DESC
                                LIMIT 1");
    $row_best    = $result_best->fetch_array();

    $result_anzerg = $db->query("SELECT count(*) Anz
                                 FROM dvm_kandidat a, dvm_term_kand b, dvm_tanpool c, dvm_ergebnisse d
                                WHERE a.ka_id = b.ka_id
                                  AND b.tp_id = c.tp_id
                                  AND c.tan = d.tan
                                  AND a.id = '$username_kand'
                                  AND c.tan= '$tan'
                                  AND c.aktiv = 'A'
                                ORDER BY b.tk_id DESC
                                LIMIT 1");
    $row_anzerg    = $result_anzerg->fetch_array();
    if($row_anzerg['Anz'] == 0){
    # Keine Ergebnisse erfasst
    echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=5\">";
    exit;
    }
    
    if($row_best['bestanden'] == 0){
    # Durchgefallen
    echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=6\">";
    exit;
    }

    
    $result = $db->query("SELECT a.ka_id, a.id, c.tp_id, c.tan, c.tinyurl
                          FROM dvm_kandidat a, dvm_term_kand b, dvm_tanpool c
                         WHERE a.ka_id = b.ka_id
                           AND b.tp_id = c.tp_id
                           AND a.id = '$username_kand'
                           AND c.tan= '$tan'
                           AND c.aktiv = 'A'
                         LIMIT 1");
    $row    = $result->fetch_array();
    
    $_SESSION["ka_id"] = $row['ka_id'];
    
    $result_fin = $db->query("SELECT max(upload_dat) upload_dat
                            FROM dvm_upload
                           WHERE ka_id = '$row[ka_id]'");
    $row_fin    = $result_fin->fetch_array();
    
    if ($username_kand != strtoupper($row['id'])) {
      echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=2\">";
      exit;
    }
    // Passwort falsch
    elseif ($tan != $row['tan']) {
      echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=3\">";
      exit;
    }
    // Schon hochgeladen
      elseif ($row_fin['upload_dat'] != "" AND $row_fin['upload_dat'] != '0000-00-00 00:00:00') {
      echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=4\">";
      exit;
    }
  }
  
  # Fehler beim Upload anzeigen
  if (isset($_GET['error'])) {
    
    $errorno = $_GET['error'];
    $smarty->assign('index_error', 1);
    
    if ($errorno == 1) {
      $smarty->assign('index_error_text', "Es dürfen nur PDF Dateien hochgeladen werden.");
    }
    if ($errorno == 2) {
      # Tabelle dvm_parameter
      $size_mb = trim(get_parameter(12));
      $smarty->assign('index_error_text', "Die Datei ist zu groß. Die Dateigröße darf max. $size_mb MB betragen.");
    }
    if ($errorno == 3) {
      $smarty->assign('index_error_text', "Die Datei mit diesem Namen wurde bereits hochgeladen.");
    }
    if ($errorno == 4) {
      # Tabelle dvm_parameter
      $anz_dok = trim(get_parameter(13));
      $smarty->assign('index_error_text', "Es dürfen maximal $anz_dok Dateien hochgeladen werden.");
    }
    if ($errorno == 5) {
      $smarty->assign('index_error_text', "Es ist ein Fehler aufgetreten. Versuchen Sie es erneut oder kontaktieren Sie die Hochschule.");
    }
    if ($errorno == 10) {
      $smarty->assign('index_error_text', "Sie müssen zunächst Dokumente hochloaden, bevor Sie zum nächsten Schritt gelangen.");
    }
    if ($errorno == 11) {
      $smarty->assign('index_error_text', "Sie müssen allen Dokumenten eine Beschreibung zuweisen");
    }
    if ($errorno == 12) {
      $smarty->assign('index_error_text', "Sie müssen den Bereich zur HZB Note korrekt ausfüllen");
    }
    if ($errorno == 13) {
      $smarty->assign('index_error_text', "Es muss laut Dokumentenbeschreibung das Zeugnis mit der HZB Note hochgeladen sein, oder falls noch nicht vorhanden die letzten beiden Schulzeugnisse. Das HZB Zeugnis muss dennoch bis Bewerbungsschluss nachgereicht werden, sonst ist keine Zulassung möglich.");
    }
    if ($errorno == 14) {
      $smarty->assign('index_error_text', "Es muss laut Dokumentenbeschreibung der Lebenslauf erfasst sein");
    }
    if ($errorno == 15) {
      $smarty->assign('index_error_text', "Sie haben eine HZB Note erfasst. Sie müssen Schritt 3 mit Ja beantworten und eine Note eintragen");
    }
    if ($errorno == 16) {
      $smarty->assign('index_error_text', "Sie haben eine zwei Zeugisse erfasst. Sie müssen Schritt 3 mit Nein beantworten und eine Note eintragen");
    }
  }
  
  # Gespeicherte Werte
  $query1 = "SELECT up_id, ka_id, file, beschreibung
               FROM dvm_upload
              WHERE ka_id = $row[ka_id]";
  
  $result1 = $db->query($query1) or die("Cannot execute query1");
  
  while ($row1 = $result1->fetch_array()) {
    $basename         = basename($row1['file']);
    $username_kand         = $_SESSION["username_kand"];
    $rep              = $username_kand . "_";
    $row1['basename'] = str_replace($rep, '', $basename);
    $table_data1[]    = $row1;
  }
  $smarty->assign('table_data1', $table_data1);
  
  # Note / HZB erfasst?
  $query_note = $db->query("SELECT hzb, zeugnisschnitt
                              FROM dvm_note
                             WHERE ka_id = $row[ka_id]");
  $row_note   = $query_note->fetch_array();
  $row_cnt = $query_note->num_rows;
  
  if($row_note['hzb'] == "0.00" AND $row_cnt > 0){
   # Keine HZB Note erfasst
   $durchschnitt = $row_note['zeugnisschnitt'];
   $radio = "n";
   $smarty->assign('hzb_radio', $radio);
   $smarty->assign('hzb_durchschnitt', $durchschnitt);
   $smarty->assign('hzb_hzbnote', "");
  }elseif($row_note['zeugnisschnitt'] == "0.00" AND $row_cnt > 0){
   $hzb = $row_note['hzb'];
   $radio = "j";
   $smarty->assign('hzb_radio', $radio);
   $smarty->assign('hzb_durchschnitt', "");
   $smarty->assign('hzb_hzbnote', $hzb);
  }else{
   $smarty->assign('hzb_radio', "");
   $smarty->assign('hzb_hzbnote', "");
  }
}

if ($action == 'upload') {
  $username_kand = $_SESSION["username_kand"];
  $tan = $_SESSION["tan"];
  if ($username_kand == "" OR $tan == "") {
    echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=1\">";
    exit;
  }
  // https://www.tutorials.de/tutorials65420.html
  #echo '<pre>', print_r($_POST, true), '</pre>'; 
  
  $tempname = $_FILES['file']['tmp_name'];
  $name     = $_FILES['file']['name'];
  
  $type    = $_FILES['file']['type'];
  $size    = $_FILES['file']['size'];
  $einheit = "Byte"; // F&uuml;r die Efolgsmeldung.
  
  $limitedext = array(
    ".pdf"
  ); //Erlaubte Dateieindung beim Upload
  $extlimit   = "yes"; //Do you want to limit the extensions of files uploaded
  $ext        = strrchr($name, '.');
  
  
  if (($extlimit == "yes") && (!in_array($ext, $limitedext))) {
    echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?action=anmeld&error=1\">";
    exit;
  }
  # Tabelle dvm_parameter
  $size_mb = trim(get_parameter(12));
  $size_bt = $size_mb*1024*1024;
  
  if ($size > $size_bt) {
    echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?action=anmeld&error=2\">";
    exit;
  }
  
  $name     = str_replace(array("ä","ö","ü","ß","Ä","Ü","Ü"," "), array("ae","oe","ue","ss","Ae","Oe","Ue","_"), $name);
  $ka_id    = $_SESSION["ka_id"];
  $neu      = $username_kand . "_" . $name;
  
  $result_exists = $db->query("SELECT count(*) Anz
                                 FROM dvm_upload
                                WHERE file = '$verz$neu'
                                  AND ka_id = '$ka_id'");
  $row_exists    = $result_exists->fetch_array();
  
  $result_anz = $db->query("SELECT count(*) Anz
                              FROM dvm_upload
                             WHERE ka_id = '$ka_id'");
  $row_anz    = $result_anz->fetch_array();
  
  if ($row_exists['Anz'] > 0) {
    echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?action=anmeld&error=3\">";
    exit;
  }
  
  # Tabelle dvm_parameter
  $anz_dok = trim(get_parameter(13));

  if ($row_anz['Anz'] >= $anz_dok) {
    echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?action=anmeld&error=4\">";
    exit;
  }
  
  # Datei hochladen
  $datum_db =date("Y-m-d H:i:s");
  move_uploaded_file("$tempname", "$verz$neu"); // Unterverzeichnisse wie folgt: copy("$tempname", "pdf/$neu");
  $sql1 = $db->query("insert into dvm_upload (ka_id, file, dok_dat) VALUES('$ka_id', '$verz$neu', '$datum_db')");
  echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?action=anmeld\">";
  
}

if ($action == 'del') {
  $username_kand = $_SESSION["username_kand"];
  $tan = $_SESSION["tan"];
  if ($username_kand == "" OR $tan == "") {
    echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=1\">";
    exit;
  }

  function deleteFiles($datei)
  {
    if (@unlink($datei)) {
      $error = TRUE;
    } else {
      $error = FALSE;
    }
    return $error;
  }
  
  $up_id    = $_GET["up_id"];
  $username_kand = $_SESSION["username_kand"];
  $ka_id    = $_SESSION["ka_id"];
  
  $result_del = $db->query("SELECT file 
                              FROM dvm_upload
                             WHERE ka_id = $ka_id
                               AND up_id= $up_id
                               AND ka_id IN (SELECT ka_id 
                                               FROM dvm_kandidat 
                                               WHERE id='$username_kand')
                             LIMIT 1;
                           ");
  $row_del    = $result_del->fetch_array();
  
  $del = deleteFiles($row_del['file']); // Dateien werden im Uploadverzeichnis gel&ouml;scht, falls noch welche darin w&auml;ren
  if ($del) {
    
    $sql1 = $db->query("DELETE FROM dvm_upload
                       WHERE ka_id = $ka_id
                         AND up_id= $up_id
                         AND ka_id IN (SELECT ka_id 
                                         FROM dvm_kandidat 
                                         WHERE id='$username_kand')");
  }
  echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?action=anmeld\">";
}


if ($action == 'descr') {
  ################################################
  # Speicherung der Dokumentenbeschreibung
  ################################################
  // https://www.tutorials.de/tutorials65420.html
  #echo '<pre>', print_r($_POST, true), '</pre>'; 
  $username_kand = $_SESSION["username_kand"];

  $query1 = "SELECT up_id
               FROM dvm_upload
              WHERE ka_id IN (SELECT ka_id 
                                FROM dvm_kandidat 
                               WHERE id='$username_kand') 
                AND upload_dat = '0000-00-00 00:00:00'";

  $result1 = $db->query($query1) or die("Cannot execute query1c");
  while ($row1 = $result1->fetch_array()) {
    $id = "desc_".$row1['up_id'];
    $beschreibung = $_POST[$id];

    $sql1 = $db->query("UPDATE dvm_upload 
                           SET beschreibung = '$beschreibung'
                         WHERE up_id = $row1[up_id]
                      ");

  }
  echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?action=anmeld\">";
  
}

if ($action == 'stelle') {
  #echo '<pre>', print_r($_POST, true), '</pre>'; 
  $username_kand = $_SESSION["username_kand"];
  $tan = $_SESSION["tan"];
  $ka_id  = $_SESSION["ka_id"];
  
    
  if ($username_kand == "" OR $tan == "") {
    echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=1\">";
    exit;
  }
  
  $result_anz = $db->query("SELECT count(*) Anz
                              FROM dvm_upload
                             WHERE ka_id = '$ka_id'");
  $row_anz    = $result_anz->fetch_array();

  if ($row_anz['Anz'] == 0) {
    echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?action=anmeld&error=10\">";
    exit;
  }

  #Dokumentenbeschreibung prüfen
  $result_anzdescr = $db->query("SELECT count(*) Anz
                                   FROM dvm_upload
                                  WHERE ka_id = $ka_id
                                    AND beschreibung = ''");
  $row_anzdescr    = $result_anzdescr->fetch_array();  
  if($row_anzdescr['Anz'] > 0){
    echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?action=anmeld&error=11\">";
    exit;
  }
  
  # HZB Frage ja / nein beantwortet
  $result_anznote = $db->query("SELECT count(*) Anz
                                   FROM dvm_note
                                  WHERE ka_id = $ka_id");
  $row_anznote    = $result_anznote->fetch_array();  
  if($row_anznote['Anz'] == ""){
    echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?action=anmeld&error=12\">";
    exit;
  }
  
  # Pflichtdokumente prüfen. Entweder letzte 2 Zeugnisse oder HZB Note
  $result_anzzeug = $db->query("SELECT count(*) Anz
                                   FROM dvm_upload
                                  WHERE ka_id = $ka_id
                                    AND beschreibung = 'Zeugnis'");
  $row_anzzeug    = $result_anzzeug->fetch_array();
  
  $result_anzhzb = $db->query("SELECT count(*) Anz
                                   FROM dvm_upload
                                  WHERE ka_id = $ka_id
                                    AND beschreibung = 'HZB'");
  $row_anzhzb    = $result_anzhzb->fetch_array();
  if($row_anzzeug['Anz'] < 2 AND $row_anzhzb['Anz'] <> 1){
      echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?action=anmeld&error=13\">";
      exit;
  }
  
  # Lebenslauf vorhanden
  $result_anzleben = $db->query("SELECT count(*) Anz
                                   FROM dvm_upload
                                  WHERE ka_id = $ka_id
                                    AND beschreibung = 'Lebenslauf'");
  $row_anzleben    = $result_anzleben->fetch_array();
  if($row_anzleben['Anz'] < 1){
      echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?action=anmeld&error=14\">";
      exit;
  }
  
  # Wenn HZB dann Ja in Schritt 3
  # Wenn keine HZB dann Nein in Schritt 3
  
  $result_hzbnote = $db->query("SELECT hzb
                                   FROM dvm_note
                                  WHERE ka_id = $ka_id");
  $row_hzbnote    = $result_hzbnote->fetch_array();  
  if($row_hzbnote['hzb'] == "0.00" AND $row_anzhzb['Anz'] > 0){
    echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?action=anmeld&error=15\">";
    exit;
  }
  
  $result_schnitt = $db->query("SELECT zeugnisschnitt
                                   FROM dvm_note
                                  WHERE ka_id = $ka_id");
  $row_schnitt    = $result_schnitt->fetch_array();  
  if($row_schnitt['zeugnisschnitt'] == "0.00" AND $row_anzzeug['Anz'] > 0 AND $row_anzhzb['Anz'] == 0){
    echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?action=anmeld&error=16\">";
    exit;
  }
  
  $query1 = "SELECT a.dst_id, bez, plz, ort
               FROM dvm_dienststellen a
              WHERE a.dst_id NOT IN (SELECT dst_id
                                       FROM dvm_dst_wunsch
                                      WHERE ka_id = '$ka_id'
                                    )
                AND (gueltig_von <= date_format(now(), '%Y-%m-%d') OR gueltig_von = '0000-00-00')
                AND (gueltig_bis >= date_format(now(), '%Y-%m-%d') OR gueltig_bis = '0000-00-00')
              ORDER BY bez ASC";
  
  $result1 = $db->query($query1) or die("Cannot execute query1");
  
  while ($row1 = $result1->fetch_array()) {
    $table_data1[]           = $row1;
  }
  $smarty->assign('table_data1', $table_data1);


  # Gespeicherte Werte
  $query2 = "SELECT a.wu_id, b.bez, b.str, b.plz, b.ort, b.mail
               FROM dvm_dst_wunsch a, dvm_dienststellen b
              WHERE a.dst_id = b.dst_id
                AND a.ka_id = $ka_id";
  
  $result2 = $db->query($query2) or die("Cannot execute query2b");
  
  while ($row2 = $result2->fetch_array()) {
    $table_data2[]    = $row2;
  }
  $smarty->assign('table_data2', $table_data2);

  # Tabelle dvm_parameter
  $anz_stellen = trim(get_parameter(14));
  $smarty->assign('index_stelle_anz', $anz_stellen);
  
  # Ggf. Wahl der Standardhochschule wenn diese nicht über PLZ zugeordnet werden kann.
  $result_hs = $db->query("SELECT a.ka_id, anrede, vorname, nachname, str, plz, ort, date_format(login_dat, '%d.%m.%Y - %H:%i') login_dat_form, a.id, c.tan
                            FROM dvm_kandidat a, dvm_term_kand b, dvm_tanpool c
                           WHERE a.ka_id = b.ka_id
                             AND b.tp_id = c.tp_id
                             AND a.id = '$username_kand'
                             AND c.tan= '$tan'
                           LIMIT 1");
  $row_hs    = $result_hs->fetch_array();
  $hochschule = standard_hs($row_hs['plz']);
  if($hochschule == 'NA'){
    $smarty->assign('index_wahl_prx', 1);
  }else{
    $smarty->assign('index_wahl_prx', 0);
  }
  
  # Fehler bei Praxisstellenwahl anzeigen
  if (isset($_GET['error'])) {
    
    $errorno = $_GET['error'];
    $smarty->assign('index_error', 1);

    if ($errorno == 1) {
      $smarty->assign('index_error_text', "Es dürfen maximal $anz_stellen Stellen gewählt werden.");
    }
    if ($errorno == 2) {
      $smarty->assign('index_error_text', "Sie müssen zuerst eine Stelle aud der Dropdownliste markieren.");
    }
  }

}

if ($action == 'save_praxis') {
  $username_kand = $_SESSION["username_kand"];
  $tan = $_SESSION["tan"];
  $ka_id  = $_SESSION["ka_id"];
  $dst_id = $_POST["stelle"];
  if ($username_kand == "" OR $tan == "") {
    echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=1\">";
    exit;
  }
  // https://www.tutorials.de/tutorials65420.html
  $result_anz = $db->query("SELECT count(*) Anz
                              FROM dvm_dst_wunsch
                             WHERE ka_id = '$ka_id'");
  $row_anz    = $result_anz->fetch_array();
  
  # Tabelle dvm_parameter
  $anz_stellen = trim(get_parameter(14));
  
  if ($row_anz['Anz'] >= $anz_stellen) {
    echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?action=stelle&error=1\">";
    exit;
  }
  if ($dst_id == '') {
    echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?action=stelle&error=2\">";
    exit;
  }
  
  $heute    = mktime(date("H"), date("i"), date("s"), date("m"), date("d"), date("Y")); // heutiges Datum & Zeit: https://de2.php.net/manual/de/function.date.php
  $datum_db = date("Y-m-d H:i:s", $heute); // Formatierung, wie es vor dem Dateinamen erscheinen soll
  
  $sql1 = $db->query("insert into dvm_dst_wunsch (dst_id, ka_id, datum) VALUES('$dst_id', '$ka_id', '$datum_db')");
  echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?action=stelle\">";
  
}

if ($action == 'del_stelle') {
  $username_kand = $_SESSION["username_kand"];
  $tan = $_SESSION["tan"];
  $ka_id    = $_SESSION["ka_id"];
  $wu_id    = $_GET["wu_id"];
  
  if ($username_kand == "" OR $tan == "") {
    echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=1\">";
    exit;
  }

  $sql1 = $db->query("DELETE FROM dvm_dst_wunsch
                       WHERE ka_id = $ka_id
                         AND wu_id= $wu_id
                         AND ka_id IN (SELECT ka_id 
                                         FROM dvm_kandidat 
                                         WHERE id='$username_kand')");
  
  echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?action=stelle\">";
  
}

if ($action == 'hswahl') {
  $username_kand = $_SESSION["username_kand"];
  $tan = $_SESSION["tan"];
  $ka_id    = $_SESSION["ka_id"];
  
  if ($username_kand == "" OR $tan == "") {
    echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=1\">";
    exit;
  }
  $smarty->assign('hsw_value_hs', $_SESSION["hochschule"]);
  
  
  ## Fehlerhandling
  $error1 = $_GET['error1'];
  
  if($error1 == 1){
    $smarty->assign('index_error', 1);
 
    if($error1 == 1){
      $smarty->assign('index_error_text', 'Bitte wählen Sie zuerst eine Hochschule!');
    }
  }

}

if ($action == 'overview') {
  $username_kand = $_SESSION["username_kand"];
  $tan = $_SESSION["tan"];
  $ka_id    = $_SESSION["ka_id"];
  
  if ($username_kand == "" OR $tan == "") {
    echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=1\">";
    exit;
  }
  
  # Ggf. Hat Wahl der Standardhochschule stattgefunden, wenn diese nicht über PLZ zugeordnet werden kann.
  $result_hs = $db->query("SELECT a.ka_id, anrede, vorname, nachname, str, plz, ort, date_format(login_dat, '%d.%m.%Y - %H:%i') login_dat_form, a.id, c.tan
                            FROM dvm_kandidat a, dvm_term_kand b, dvm_tanpool c
                           WHERE a.ka_id = b.ka_id
                             AND b.tp_id = c.tp_id
                             AND a.id = '$username_kand'
                             AND c.tan= '$tan'
                           LIMIT 1");
  $row_hs    = $result_hs->fetch_array();
  $hochschule = standard_hs($row_hs['plz']);
  if($hochschule == 'NA'){
    $smarty->assign('index_wahl_prx', 1);
    if(isset($_POST['hs'])){
      $hochschule = trim($_POST['hs']);
    }else{
      $hochschule = $_SESSION["hochschule"];
    }
    $smarty->assign('index_wahl_hs', $hochschule);
    $_SESSION["hochschule"] = $hochschule;
    if ($hochschule == '') {
      $error1=1;
      $error=true;
    }
    
    if(isset($error)){
      echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?action=hswahl&error1=$error1\">";
      exit;
    }
  }else{
    $smarty->assign('index_wahl_prx', 0);
  }


  # Gespeicherte Werte
  $query1 = "SELECT up_id, ka_id, file, beschreibung
               FROM dvm_upload
              WHERE ka_id = $ka_id";
  
  $result1 = $db->query($query1) or die("Cannot execute query1");
  
  while ($row1 = $result1->fetch_array()) {
    $basename         = basename($row1['file']);
    $username_kand         = $_SESSION["username_kand"];
    $rep              = $username_kand . "_";
    $row1['basename'] = str_replace($rep, '', $basename);
    $table_data1[]    = $row1;
  }
  $smarty->assign('table_data1', $table_data1);


  # Gespeicherte Werte
  $query2 = "SELECT a.wu_id, b.bez, b.str, b.plz, b.ort, b.mail
               FROM dvm_dst_wunsch a, dvm_dienststellen b
              WHERE a.dst_id = b.dst_id
                AND a.ka_id = $ka_id";
  
  $result2 = $db->query($query2) or die("Cannot execute query2c");
  
  while ($row2 = $result2->fetch_array()) {
    $table_data2[]    = $row2;
  }
  $smarty->assign('table_data2', $table_data2);


  
}

if ($action == 'save') {
  $username_kand = $_SESSION["username_kand"];
  $tan = $_SESSION["tan"];
  if ($username_kand == "" OR $tan == "") {
    echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=1\">";
    exit;
  }

  $ka_id  = $_SESSION["ka_id"];
  $query2 = "SELECT up_id, ka_id, file, beschreibung
                 FROM dvm_upload
                WHERE ka_id = $ka_id";
  $result2 = $db->query($query2) or die("Cannot execute query2d");
  
  $heute    = mktime(date("H"), date("i"), date("s"), date("m"), date("d"), date("Y")); // heutiges Datum & Zeit: https://de2.php.net/manual/de/function.date.php
  $datum_db = date("Y-m-d H:i:s", $heute); // Formatierung, wie es vor dem Dateinamen erscheinen soll
  
  while ($row2 = $result2->fetch_array()) {
    
    $files       = $row2['file'];
    $basename    = basename($files);
    $destination = '../uploads/';
    $rename_file = $destination . $basename;
    $admindir    = '../uploads/' . $basename;
    rename($files, $rename_file);
    
    $sql1 = $db->query("UPDATE dvm_upload 
                              SET file = '$admindir'
                                 , upload_dat = '$datum_db'
                            WHERE up_id = $row2[up_id]
                         ");
    if (!$sql1) {
      $err = 1;
    }
  }

# Mailversand
  $query1 = "SELECT a.wu_id, b.bez, b.str, b.plz, b.ort, b.mail, init_tan, b.dst_id, register_dat
               FROM dvm_dst_wunsch a, dvm_dienststellen b
              WHERE a.dst_id = b.dst_id
                AND a.ka_id = $ka_id";
  
  $result1 = $db->query($query1) or die("Cannot execute query1");

  
  
  $result_hs = $db->query("SELECT anrede, plz
                             FROM dvm_kandidat
                            WHERE ka_id = '$ka_id'");
  $row_hs    = $result_hs->fetch_array();
  
  # Standardhochschule 
  $hochschule = standard_hs($row_hs['plz']);
  if($hochschule == 'NA'){
    $hochschule = $_SESSION["hochschule"];
  }else{
    $hochschule = $hochschule;
  }
  
  # Initialtan erforderlich für Login?
  $result_tan = $db->query("SELECT anrede, plz
                             FROM dvm_kandidat
                            WHERE ka_id = '$ka_id'");
  $row_tan    = $result_tan->fetch_array();
  
  $sql0 = $db->query("UPDATE dvm_kandidat 
                         SET hochschule = '$hochschule'
                       WHERE ka_id = '$ka_id'
                    ");
  
  if($hochschule == 'Ludwigsburg'){
   $anschrift = 'Reuteallee 36<br>71634 Ludwigsburg';
   $sender = "Hochschule Ludwigsburg";
   $sendermail = get_parameter(8);
  }elseif($hochschule == 'Kehl'){
   $anschrift = 'Kinzigallee 1<br>77694 Kehl';
   $sender = "Hochschule Kehl";
   $sendermail = get_parameter(7);
  }
  $link_arzt = 'https://www.gesundheitsamt-bw.de/lga/DE/Service/Gesundheitliche_Eignung_Verbeamtung/Seiten/default.aspx';
  $link = 'https://www.hs-ludwigsburg.de/kurs/dvm/praxisstelle/index.php';
  $link_register = 'https://www.hs-ludwigsburg.de/kurs/dvm/praxisstelle/register.php';
  
  #########################################################
  ##  dieselbe Mail ist auch in /admin/bewerber_daten.php
  #########################################################
  while ($row1 = $result1->fetch_array()) {
  
    # Initialtan erforderlich für Login?
    if ($row1['init_tan'] == ''){
      $tan = tangen();
      $sql0 = $db->query("UPDATE dvm_dienststellen
                             SET init_tan = '$tan'
                           WHERE dst_id = '$row1[dst_id]'
                        ");
    }else{
      $tan = "";
    }
  
  
        $empfaenger = "$row1[mail]";
        $betreff = "Bewerbung zur praktischen Ausbildung DVM";
        if($row_hs['anrede'] != 'W'){
          # männliche Version
          $text = "Sehr geehrte Damen und Herren,<br>
          <br>
          an unserer Hochschule ist eine Bewerbung für den Studiengang Digitales Verwaltungsmanagement (DVM) eingegangen.
          Der Bewerber hat Sie als eine seiner Wunschausbildungsstellen angegeben. ";
          
          if($tan == ""){
            $text .="
            Sie erhalten einen Link für den Download der Bewerbungsunterlagen:
            <br>
            <br>
            <a href='$link'>$link</a>";
          }
          
          if($tan != ""){
            $text .="
            <br>
            <br>
            Bitte registrieren Sie Ihre Praxisstelle zunächst mit folgenden Logindaten:<br>
            <b>Registrierung:</b> $link_register<br>
            <b>Benutzername:</b> $empfaenger<br>
            <b>Einmalpasswort:</b> $tan
            ";
          }
          
          $text .="
          <br>
          <br>
          Nach § 7 Absatz 4 APrOdigVwm gD führen die Ausbildungsstellen vor ihrer Auswahlentscheidung ein persönliches Gespräch mit den Bewerberinnen und Bewerbern. 
          Die Einladung zur Vorstellung (§ 7 Absatz 3 APrOdigVwm gD) erfolgt durch die Wunschausbildungsstellen. Sie teilen der zuständigen Hochschule unverzüglich schriftlich ihre Entscheidung mit.
          <br>
          Sollten Sie sich für den Bewerber entscheiden, ist dieser darauf hinzuweisen, unverzüglich 
          <ul>
          <li>ein ärztliches Zeugnis über die erforderliche gesundheitliche Eignung (nicht älter als sechs Monate, eine Übersicht der hierfür zugelassenen Ärzte finden Sie unter 
          <a href='$link_arzt'>$link_arzt</a>) sowie</li>
          <li>ein Führungszeugnis zur Vorlage bei einer Behörde (§ 30 Absatz 5 des Bundeszentralregistergesetzes) – nicht älter als drei Monate,</li>
          </ul>
          der Hochschule zu übermitteln.
          <br><br>
          Bitte teilen Sie dem Bewerber mit, dass er nur dann einen Ausbildungsplatz bei Ihnen erhalten kann, wenn er eine endgültige Zulassung für einen Studienplatz durch die Hochschule erhält.
          <br><br>
          Freundliche Grüße
          <br><br>
          Ihre Hochschule $hochschule
          <br>
          $anschrift
          <br>
          <p>
          Diese Mail wurde automatisch generiert!<br />
          Antworten Sie daher nicht auf diese Mail.<br />
          <br />
          Vielen Dank!
          </body>
          </html>";
        }else{
          # weibliche Version
          $text = "Sehr geehrte Damen und Herren,<br>
          <br>
          an unserer Hochschule ist eine Bewerbung für den Studiengang Digitales Verwaltungsmanagement (DVM) eingegangen.
          Die Bewerberin hat Sie als eine ihrer Wunschausbildungsstellen angegeben. ";
          
          if($tan == ""){
            $text .="
            Sie erhalten einen Link für den Download der Bewerbungsunterlagen:
            <br>
            <br>
            <a href='$link'>$link</a>";
          }
          
          if($tan != ""){
            $text .="
            <br>
            <br>
            Bitte registrieren Sie Ihre Praxisstelle zunächst mit folgenden Logindaten:<br>
            <b>Registrierung:</b> $link_register<br>
            <b>Benutzername:</b> $empfaenger<br>
            <b>Einmalpasswort:</b> $tan
            ";
          }
          
          $text .="
          <br>
          <br>
          Nach § 7 Absatz 4 APrOdigVwm gD führen die Ausbildungsstellen vor ihrer Auswahlentscheidung ein persönliches Gespräch mit den Bewerberinnen und Bewerbern. 
          Die Einladung zur Vorstellung (§ 7 Absatz 3 APrOdigVwm gD) erfolgt durch die Wunschausbildungsstellen. Sie teilen der zuständigen Hochschule unverzüglich schriftlich ihre Entscheidung mit.
          <br>
          Sollten Sie sich für die Bewerberin entscheiden, ist diese darauf hinzuweisen, unverzüglich 
          <ul>
          <li>ein ärztliches Zeugnis über die erforderliche gesundheitliche Eignung (nicht älter als sechs Monate, eine Übersicht der hierfür zugelassenen Ärzte finden Sie unter 
          <a href='$link_arzt'>$link_arzt</a>) sowie</li>
          <li>ein Führungszeugnis zur Vorlage bei einer Behörde (§ 30 Absatz 5 des Bundeszentralregistergesetzes) – nicht älter als drei Monate,</li>
          </ul>
          der Hochschule zu übermitteln.
          <br><br>
          Bitte teilen Sie der Bewerberin mit, dass sie nur dann einen Ausbildungsplatz bei Ihnen erhalten kann, wenn sie eine endgültige Zulassung für einen Studienplatz durch die Hochschule erhält.
          <br><br>
          Freundliche Grüße
          <br><br>
          Ihre Hochschule $hochschule
          <br>
          $anschrift
          <br>
          <p>
          Diese Mail wurde automatisch generiert!<br />
          Antworten Sie daher nicht auf diese Mail.<br />
          <br />
          Vielen Dank!
          </body>
          </html>";
        }

#echo "
#From: $sender - $sendermail<br>
#$empfaenger<br>
#$betreff<br>
#$text<br><hr>";

          ## Mailversand:
          $headers  = "From: $sender <$sendermail>\r\n";
          $headers .= "MIME-Version: 1.0\r\n";
          $headers .= "Content-type: text/html; charset=utf-8\r\n";
          $return   = @mail($empfaenger, $betreff, $text, $headers);
          $datum_db =date("Y-m-d H:i:s");
          $text_db = addslashes($text);
          if($return){
            $sql1 = $db->query("UPDATE dvm_dst_wunsch 
                                   SET mail_text = '$text_db'
                                     , mail_betreff = '$betreff'
                                     , status = 'V'
                                     , sendedat = '$datum_db'
                                 WHERE wu_id = $row1[wu_id]
                              ");
          }else{
            $sql1 = $db->query("UPDATE dvm_dst_wunsch 
                                   SET mail_text = '$text_db'
                                     , mail_betreff = '$betreff'
                                     , status = 'F'
                                 WHERE wu_id = $row1[wu_id]
                              ");
            $err = 2;
          }

  }
  
  if (!isset($err)) {
#echo "destroy1";
    session_destroy();
  } else {
#echo "destroy2";
    session_destroy();
#    echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?action=anmeld&error=5\">";
#    exit;
  }
}

$smarty->assign('action', "$action");
$smarty->display("$template/upload/$templatename");
?>