<?php
session_start();
$jahrgang = $_SESSION["jahrgang"];
include_once 'classes/TestProjektSmarty.class.php';
require_once("config.inc.php");
$templatename = substr(basename($_SERVER['PHP_SELF']), 0, -3) . "html";
$smarty       = new Smarty();
require_once "functions.php";
require_once "language/german.inc.php";
require_once "func_lvs_exk_mehrtaegig.php";
require_once "func_lvs_exk_eintaegig.php";

if (isset($_GET['action'])) {
  $action = $_GET['action'];
} else {
  $action = '';
}


if ($action == '') {
  
  if ($jahrgang == "") {
    echo "Bitte zuerst <a href='jahrgang.php'>Jahrgang</a> w&auml;hlen!";
    exit;
  }
  
  # Prüfen ob der Jahrgang schon abgeschlossen wurde, dann soll der Button "Abschließen und absenden" ausgeblendet werden
  $query_closed = $db->query("SELECT count(*) Anz
                                FROM dep_doz_abschluss
                               WHERE imtuid=$uid
                                 AND jahr=$jahrgang");
  $row_closed   = $query_closed->fetch_array();
  
  if ($row_closed['Anz'] > 0) {
    $smarty->assign('abschluss_abschluss', 1);
    $smarty->assign('abschluss_error', 1);
    $smarty->assign('abschluss_error_text', 'Der aktuelle Jahrgang ist bereits abgeschlossen!');
  } else {
    $smarty->assign('abschluss_abschluss', 0);
  } // Jahrgang abgeschlossen
  # -- Fehlermeldungen -- #
  if (isset($_GET[error])) {
    
    $errorno = $_GET[error];
    
    $smarty->assign('abschluss_error', 1);
    
    $smarty->assign('abschluss_value_name', $_SESSION["abschluss_name"]);
    $smarty->assign('abschluss_value_kaid', $_SESSION["abschluss_kaid"]);
    $smarty->assign('abschluss_value_pauschale', $_SESSION['abschluss_pauschale']);
    $smarty->assign('abschluss_value_semester', $_SESSION["abschluss_semester"]);
    
    if ($errorno == 1) {
      $smarty->assign('abschluss_error_text', "Es m&uuml;ssen alle Felder ausgef&uuml;llt werden");
    }
    
    if ($errorno == 2) {
      $smarty->assign('abschluss_error_text', "Sie haben die maximale Anzahl der Abschlussarbeiten pro Semester erreicht!");
    }
  }
  
  
  if (isset($_GET['edit'])) {
    $_SESSION["abschluss_status"] = 'edit';
    $daid                         = $_GET['edit'];
    $_SESSION["abschluss_daid"]   = $daid;
  } else {
    $_SESSION["abschluss_status"] = 'neu';
  }
  
  
  # --- Wenn Werte editiert werden ------------
  if ($_SESSION["abschluss_status"] == 'edit') {
    $result_edit = $db->query("SELECT name, kaid, pauschale, semester
                                 FROM dep_deputat_abschlussarbeiten
                                WHERE daid = $daid");
    
    $row_edit = $result_edit->fetch_array();
    $smarty->assign('abschluss_value_name', "$row_edit[name]");
    $smarty->assign('abschluss_value_kaid', "$row_edit[kaid]");
    $smarty->assign('abschluss_value_pauschale', "$row_edit[pauschale]");
    $smarty->assign('abschluss_value_semester', "$row_edit[semester]");
    
  }
  # --- Wenn Werte editiert werden Ende -------
  
  if ($_GET['editende'] == 1) {
    # Editieren ist beendet, als ein update auf einen Datensatz. Dann ist der status wieder Neu, damit wird wieder ein Insert durchgefÃ¼hrt
    $_SESSION["abschluss_status"] = 'neu';
  }
  
  
  # Alle Veranstaltungsarten
  $query = "SELECT kaid, bezeichnung
              FROM dep_kat_abschlussarbeiten";
  
  $result = $db->query($query) or die("Cannot execute query");
  
  while ($row = $result->fetch_array()) {
    $table_data1[] = $row;
  }
  $smarty->assign('table_data1', $table_data1);
  
  
  # Gespeicherte Werte WS
  $query2 = "SELECT daid, name, kaid, semester, pauschale, lvs
                 FROM dep_deputat_abschlussarbeiten
                WHERE imtuid=$uid
                  AND jahr=$jahrgang
                  AND semester = 'WS'";
  
  $result2 = $db->query($query2) or die("Cannot execute query");
  
  while ($row2 = $result2->fetch_array()) {
    
    if ($row2['semester'] == 'SS') {
      $semester = "Sommersemester";
    }
    if ($row2['semester'] == 'WS') {
      $semester = "Wintersemester";
    }
    
    $query_bez_sem = $db->query("SELECT bezeichnung
                                   FROM dep_kat_abschlussarbeiten
                                   WHERE kaid =$row2[kaid]");
    $row_bez_sem   = $query_bez_sem->fetch_array();
    
    $lvs = number_format($row2['lvs'], 2, ',', '.');
    $pauschale = number_format($row2['pauschale'], 2, ',', '.');
    
    $row2['pauschale']             = $pauschale;
    $row2['lvs']             = $lvs;
    $row2['abschlussarbeit'] = $row_bez_sem['bezeichnung'];
    $row2['semesterbez']     = $semester;
    $table_data2[]           = $row2;
  }
  $smarty->assign('table_data2', $table_data2);
  # Summe LVS im WS
  $query_sumlvs_ws   = $db->query("SELECT sum(lvs) lvs
                                   FROM dep_deputat_abschlussarbeiten
                                  WHERE imtuid=$uid
                                    AND jahr=$jahrgang
                                    AND semester = 'WS'");
  $row_sumlvs_ws     = $query_sumlvs_ws->fetch_array();
  $summe_jahr_lvs_ws = number_format($row_sumlvs_ws['lvs'], 2, ',', '.');
  $smarty->assign('abschluss_value_ws_summe_lvs', $summe_jahr_lvs_ws);
  
  # Gespeicherte Werte SS
  $query3 = "SELECT daid, name, kaid, semester, pauschale, lvs
                 FROM dep_deputat_abschlussarbeiten
                WHERE imtuid=$uid
                  AND jahr=$jahrgang
                  AND semester = 'SS'";
  
  $result3 = $db->query($query3) or die("Cannot execute query");
  
  while ($row3 = $result3->fetch_array()) {
    
    if ($row3['semester'] == 'SS') {
      $semester = "Sommersemester";
    }
    if ($row3['semester'] == 'WS') {
      $semester = "Wintersemester";
    }
    
    $query_bez_sem = $db->query("SELECT bezeichnung
                                   FROM dep_kat_abschlussarbeiten
                                   WHERE kaid =$row3[kaid]");
    $row_bez_sem   = $query_bez_sem->fetch_array();
    
    $lvs = number_format($row3['lvs'], 2, ',', '.');
    $pauschale = number_format($row3['pauschale'], 2, ',', '.');
    
    $row3['pauschale']             = $pauschale;
    $row3['lvs']             = $lvs;
    $row3['abschlussarbeit'] = $row_bez_sem['bezeichnung'];
    $row3['semesterbez']     = $semester;
    $table_data3[]           = $row3;
  }
  $smarty->assign('table_data3', $table_data3);
  # Summe LVS im SS
  $query_sumlvs_ss   = $db->query("SELECT sum(lvs) lvs
                                   FROM dep_deputat_abschlussarbeiten
                                  WHERE imtuid=$uid
                                    AND jahr=$jahrgang
                                    AND semester = 'SS'");
  $row_sumlvs_ss     = $query_sumlvs_ss->fetch_array();
  $summe_jahr_lvs_ss = number_format($row_sumlvs_ss['lvs'], 2, ',', '.');
  $smarty->assign('abschluss_value_ss_summe_lvs', $summe_jahr_lvs_ss);
  
  
  
  # Max Anzahl der Abschlussarbeiten pro Semester
  $query_sumabschl = $db->query("SELECT wert1
                                 FROM dep_parameter
                                 WHERE pid =5");
  $row_summabschl  = $query_sumabschl->fetch_array();
  $summe_jahr      = number_format($row_summabschl['wert1'], 0);
  $smarty->assign('abschluss_value_max_arbeiten', $summe_jahr);
  
  
}

if ($action == 'register') {
  
  $name      = $_POST['name'];
  $kaid      = $_POST['kaid'];
  $pauschale = str_replace(',','.',str_replace('.','', $_POST['pauschale']));
  $semester  = $_POST['semester'];
  if($kaid == 1){
   # Bei Bachelorarbeit gibt es keine Pauschale
   $pauschale = 0;
  }
  $_SESSION["abschluss_name"]      = $name;
  $_SESSION["abschluss_kaid"]      = $kaid;
  $_SESSION["abschluss_pauschale"] = $pauschale;
  $_SESSION["abschluss_semester"]  = $semester;
  
  if ($name == '' or $kaid == '' or $semester == '') {
    echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=1\">";
    exit;
  }
  
  #Limit pro Semester
  $query_anz = $db->query("SELECT count(*) Anz
                             FROM dep_deputat_abschlussarbeiten
                            WHERE semester ='$semester'
                              AND imtuid=$uid
                              AND jahr=$jahrgang");
  $row_anz   = $query_anz->fetch_array();
  
  # Max Anzahl der Abschlussarbeiten pro Semester
  $query_sumabschl = $db->query("SELECT wert1
                                   FROM dep_parameter
                                  WHERE pid =5");
  $row_summabschl  = $query_sumabschl->fetch_array();
  
  if ($row_anz['Anz'] >= $row_summabschl['wert1'] AND $_SESSION["abschluss_status"] != 'edit') {
    echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=2\">";
    exit;
  }
  
  
  # Faktor pro Arbeit ermitteln
  $query_fak = $db->query("SELECT faktor
                             FROM dep_kat_abschlussarbeiten
                            WHERE kaid =$kaid");
  $row_fak   = $query_fak->fetch_array();
  $faktor    = $row_fak['faktor'];
  
  # Faktor wird mit den Wochen eines Semesters multipliziert 33Semesterwochen (2019) im Jahr. Dh. 16,5 pro Semester
  $query_multipl     = $db->query("SELECT jahr, sw/2 semesterwoche
                             FROM dep_kat_lvs
                            WHERE jahr <=$jahrgang
                              order by jahr desc
                              limit 1");
  $row_multiplikator = $query_multipl->fetch_array();
  $lvs               = $row_multiplikator['semesterwoche'] * $faktor + $pauschale;
  
  $datum = date("Y-m-d H:i:s");
  if ($_SESSION["abschluss_status"] == 'neu') {
    $sql1 = $db->query("INSERT INTO dep_deputat_abschlussarbeiten ( imtuid
                                                    , jahr
                                                    , kaid
                                                    , name
                                                    , semester
                                                    , pauschale
                                                    , lvs
                                                    , created
                                                    )
                                VALUES
                                                    ( '$uid'
                                                    , '$jahrgang'
                                                    , '$kaid'
                                                    , '$name'
                                                    , '$semester'
                                                    , '$pauschale'
                                                    , '$lvs'
                                                    , '$datum'
                                                    )
                              ");
  }
  
  if ($_SESSION["abschluss_status"] == 'edit') {
    $daid   = $_SESSION["abschluss_daid"];
    $result = $db->query("UPDATE dep_deputat_abschlussarbeiten 
                             SET name = '$name'
                               , kaid  = '$kaid'
                               , semester = '$semester'
                               , pauschale = '$pauschale'
                               , lvs = '$lvs'
                               , modify_date = '$datum'
                           WHERE daid = $daid
                         ");
    
    unset($_SESSION['abschluss_daid']);
  }
  
  # Dann bekommts beim refresh den status neu, also es wird beim Abschicken ein Insert gemacht
  $editende = 1;
  echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?editende=$editende\">";
  
}


if ($action == 'del') {
  $daid = $_GET['daid'];
  
  ## Muss man nochmals Ã¼berdenken, wenn ein Prof noch Deputate erfasst hat.
  
  $del1 = $db->query("DELETE FROM dep_deputat_abschlussarbeiten WHERE daid = $daid AND imtuid=$uid");
  
  echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "\">";
  
}

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

?>
