<?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;
  }
  
  # Gespeicherte Funktionen
  $query1 = "SELECT dkeid, bezeichnung, grundlage
               FROM dep_kat_ermaessigung
              WHERE grundlage IN ('§ 11 LVVO')
              ORDER BY dkeid ASC";
  
  $result1 = $db->query($query1) or die("Cannot execute query2");
  
  while ($row1 = $result1->fetch_array()) {
    $table_data1[]             = $row1;
  }
  $smarty->assign('table_data1', $table_data1);
  
  if (isset($_GET['edit'])) {
    $_SESSION["freistrekto_status"] = 'edit';
    $deid                    = $_GET['edit'];
    $_SESSION["freistrekto_deid"]   = $deid;
  } else {
    $_SESSION["freistrekto_status"] = 'neu';
  }
  
  # -- Fehlermeldungen -- #
  if (isset($_GET[error])) {
    
    $errorno = $_GET[error];
    
    $smarty->assign('freistrekto_error', 1);
    
    $smarty->assign('freistrekto_value_funktion', $_SESSION["freistrekto_value_funktion"]);
    $smarty->assign('freistrekto_value_std', $_SESSION["freistrekto_value_sws"]);
    $smarty->assign('freistrekto_value_datumvon', $_SESSION["freistrekto_value_beginn_funktion"]);
    $smarty->assign('freistrekto_value_datumbis', $_SESSION["freistrekto_value_ende_funktion"]);
 
    if ($errorno == 3) {
      # ungültiges Datum
      $smarty->assign('freistrekto_error_text', "Das eingegebene Datum ist nicht korrekt. Bitte korrigieren Sie das Datum!");
    }
  }

  
  # --- Wenn Werte editiert werden ------------
  if ($_SESSION["freistrekto_status"] == 'edit') {
    $result_edit = $db->query("SELECT deid, funktion, date_format(beginn, '%d.%m.%Y') beginn, date_format(ende, '%d.%m.%Y') ende, sws, lvs
                                 FROM dep_deputat_ermaessigung
                                WHERE deid = $deid");
    $row_edit    = $result_edit->fetch_array();
    $smarty->assign('freistrekto_status', $_SESSION["freistrekto_status"]);
    $smarty->assign('freistrekto_value_funktion', "$row_edit[funktion]");
    $smarty->assign('freistrekto_value_datumvon', "$row_edit[beginn]");
    $smarty->assign('freistrekto_value_datumbis', "$row_edit[ende]");
    $smarty->assign('freistrekto_value_std', "$row_edit[sws]");
    $smarty->assign('freistrekto_value_hinweise', "$row_edit[lvs]");
    
  }
  # --- 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["freistrekto_status"] = 'neu';
  }

  
  
  
  
  
  
  # Gespeicherte Werte
  $query2 = "SELECT deid, funktion, date_format(beginn, '%d.%m.%Y') beginn, date_format(ende, '%d.%m.%Y') ende, sws, lvs
                 FROM dep_deputat_ermaessigung
                WHERE imtuid=$uid
                  AND jahr=$jahrgang
                  AND art ='Deputatsermäßigung aufgrund einer Funktion/Beauftragung (§ 11 LVVO)'
                ORDER BY deid ASC";
  
  $result2 = $db->query($query2) or die("Cannot execute query2");
  
  while ($row2 = $result2->fetch_array()) {
    $query_funktion = $db->query("SELECT bezeichnung
                                   FROM dep_kat_ermaessigung
                                     WHERE dkeid = '$row2[funktion]'");
    $row_funktion   = $query_funktion->fetch_array();
  
    $lvs                       = number_format($row2['lvs'], 2, ',', '.');
    $row2['lvs']               = $lvs;
    $row2['funktion']          = $row_funktion['bezeichnung'];
    $sws                       = number_format($row2['sws'], 2, ',', '.');
    $row2['sws']               = $sws;
    $table_data2[]             = $row2;
  }
  $smarty->assign('table_data2', $table_data2);
  
  # Jahressumme
  $query_jahrsum = $db->query("SELECT sum(lvs) summe_jahr
                                   FROM dep_deputat_ermaessigung
                                   WHERE imtuid=$uid
                                     AND art ='Deputatsermäßigung aufgrund einer Funktion/Beauftragung (§ 11 LVVO)'
                                     AND jahr=$jahrgang");
  $row_jahrsum   = $query_jahrsum->fetch_array();
  $summe_jahr    = number_format($row_jahrsum['summe_jahr'], 2, ',', '.');
  $smarty->assign('freistrekto_value_summe_jahr', $summe_jahr);
  
}


if ($action == 'save') {
$jahrgang2 = $jahrgang+1;

$funktion = $_POST['funktion'];
$sws      = str_replace(',','.',str_replace('.','', $_POST['sws']));

$beginn = preg_replace('/^(\\d{2})\\.(\\d{2})\\.(\\d{4})$/', '$3-$2-$1', $_POST['beginn_funktion']);
if($beginn == ''){
 $beginn = $jahrgang."-09-01";
}

$ende = preg_replace('/^(\\d{2})\\.(\\d{2})\\.(\\d{4})$/', '$3-$2-$1', $_POST['ende_funktion']);
if($ende == ''){
 $ende = $jahrgang2."-08-31";
}


$_SESSION["freistrekto_value_funktion"]          = $funktion;
$_SESSION["freistrekto_value_sws"]               = $sws;
$_SESSION["freistrekto_value_beginn_funktion"]   = $_POST['beginn_funktion'];
$_SESSION["freistrekto_value_ende_funktion"]     = $_POST['ende_funktion'];

function validateDate($date, $format = 'Y-m-d')
{
    $d = DateTime::createFromFormat($format, $date);
    return $d && $d->format($format) == $date;
}

if(!validateDate($beginn)){
  echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=3\">";
  exit;    
}

if(!validateDate($ende)){
  echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=3\">";
  exit;    
}

$lvs = $_POST['lvs'];
  $datum = date("Y-m-d H:i:s");
  if ($_SESSION["freistrekto_status"] == 'neu') {
    $sql1 = $db->query("INSERT INTO dep_deputat_ermaessigung ( imtuid
                                                             , jahr
                                                             , art
                                                             , funktion
                                                             , beginn
                                                             , ende
                                                             , sws
                                                             , lvs
                                                             , sort_order
                                                             , created
                                                             )
                                VALUES
                                                             ( '$uid'
                                                             , '$jahrgang'
                                                             , 'Deputatsermäßigung aufgrund einer Funktion/Beauftragung (§ 11 LVVO)'
                                                             , '$funktion'
                                                             , '$beginn'
                                                             , '$ende'
                                                             , '$sws'
                                                             , '$lvs'
                                                             , 5
                                                             , '$datum'
                                                             )
                              ");
  }
  
  if ($_SESSION["freistrekto_status"] == 'edit') {
    $deid   = $_SESSION["freistrekto_deid"];

    $result = $db->query("UPDATE dep_deputat_ermaessigung 
                                 SET funktion = '$funktion'
                                   , beginn  = '$beginn'
                                   , ende     = '$ende'
                                   , sws = '$sws'
                                   , lvs = '$lvs'
                                   , modify_date = '$datum'
                              WHERE deid = $deid
                         ");
    
    unset($_SESSION['freistrekto_deid']);
  }
  # 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') {
  $deid = $_GET['deid'];
  
  ## Muss man nochmals Ã¼berdenken, wenn ein Prof noch Deputate erfasst hat.
  $del1 = $db->query("DELETE FROM dep_deputat_ermaessigung WHERE deid = $deid AND imtuid=$uid");
  
  echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "\">";
}

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

?>