<?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_teilzeit.php"; # Livedarstellung der Rest LVS wird es nicht geben. Es wird im Jahresabschluss angezeigt
#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;
  }

  if (isset($_GET[error])) {
    
    $errorno = $_GET[error];
    
    $smarty->assign('tz_error', 1);
    
    $smarty->assign('tz_value_umfang', $_SESSION["tz_umfang"]);
    $smarty->assign('tz_value_beginn', $_SESSION["tz_beginn"]);

    if ($errorno == 1) {
      $smarty->assign('tz_error_text', "Es m&uuml;ssen Umfang und Beginndatum ausgewählt werden! ");
    }
    
    if ($errorno == 3) {
      # ungültiges Datum
      $smarty->assign('tz_error_text', "Das eingegebene Datum ist nicht korrekt. Bitte korrigieren Sie das Datum!");
    }
    if ($errorno == 4) {
      $smarty->assign('tz_error_text', "Das Datum ist bereits vorhanden!<br>Bearbeiten Sie ggf. das vorhandene Datum mit dem Bleistiftsymbol.");
    }
    $jahrgang2 = $jahrgang+1;
    if ($errorno == 5) {
      $smarty->assign('tz_error_text', "Das Datum ist außerhalb des Jahrgangs!<br>Datum muss im Bereich 01.09.$jahrgang - 31.08.$jahrgang2 liegen.");
    }
    if ($errorno == 6) {
      $smarty->assign('tz_error_text', "Wenn eine Schwerbehinderung erfasst wurde, darf keine Teilzeit erfasst werden.<br> Setzen Sie sich mit dem Administrator in Verbindung, <b>sobald Sie das aktuelle Jahr abgeschlossen haben.</b>");
    }
  }
  
  if (isset($_GET['edit'])) {
    $_SESSION["tz_status"] = 'edit';
    $deid                    = $_GET['edit'];
    $_SESSION["tz_deid"]    = $deid;
  } else {
    $_SESSION["tz_status"] = 'neu';
  }

  # --- Wenn Werte editiert werden ------------
  if ($_SESSION["tz_status"] == 'edit') {

    $result_edit = $db->query("SELECT deid, date_format(beginn, '%d.%m.%Y') beginn, prozent
                                   FROM dep_deputat_ermaessigung
                                  WHERE deid = $deid
                                    AND art = 'Teilzeit'");
    $row_edit    = $result_edit->fetch_array();
    $smarty->assign('tz_value_umfang', "$row_edit[prozent]");
    $smarty->assign('tz_value_beginn', "$row_edit[beginn]");
    
  }
  # --- 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["tz_status"] = 'neu';
  }

  
  
  # Gespeicherte Werte
  # Was ist die Standard LVS
  $query_baselvs = $db->query("SELECT lvs
                                 FROM dep_kat_lvs
                                WHERE jahr <=$jahrgang
                                ORDER BY jahr desc
                                LIMIT 1");
  $row_baselvs = $query_baselvs->fetch_array();
  $baselvs = $row_baselvs['lvs'];
  $smarty->assign('tz_baselvs', $baselvs);
  
  $jahrgang2 = $jahrgang+1;
  $max_dat = $jahrgang2.'-09-01';
  $query2 = "SELECT deid, date_format(beginn, '%d.%m.%Y') beginn_form, prozent, beginn
                 FROM dep_deputat_ermaessigung
                WHERE imtuid=$uid
                  AND jahr=$jahrgang
                  AND beginn < '$max_dat'
                  AND art = 'Teilzeit'
                ORDER BY beginn ASC";
  $result2 = $db->query($query2) or die("Cannot execute query2");
  
  while ($row2 = $result2->fetch_array()) {
    $prozent = $row2['prozent']*100;
    $row2['prozent']           = $prozent;
    $table_data2[]             = $row2;
  }
  $smarty->assign('table_data2', $table_data2);

}
#$lvs= number_format(lvs_teilzeit($uid,$jahrgang), 2, ',', '.');
#$smarty->assign('tz_value_lvs', $lvs);


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

$umfang = $_POST['umfang'];
$beginn = preg_replace('/^(\\d{2})\\.(\\d{2})\\.(\\d{4})$/', '$3-$2-$1', $_POST['beginn_teilzeit']);


$_SESSION["tz_umfang"]           = $umfang;
$_SESSION["tz_beginn"]           = $_POST['beginn_teilzeit'];

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

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


if ($beginn == '' OR $umfang == '') {
    if($_SESSION["tz_status"] == 'neu'){
      echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=1\">";
    }else{
      echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=1&edit=$_SESSION[tz_deid]\">";
    }
    exit;
}

/* Teilzeiten werden immer nur ganze Monate vergeben*/
$year_start = substr($beginn,0,4);
$mon_start  = substr($beginn,5,2);
$day_start  = '01';  #substr($beginn,8,2);
$save_beginn = "$year_start-$mon_start-$day_start";

# Doppeltes Datum prüfen
$query_beginndop = $db->query("SELECT count(*) Anz
                                 FROM dep_deputat_ermaessigung
                                WHERE beginn = '$save_beginn'
                                  AND imtuid = $uid
                                  AND art = 'Teilzeit'");
$row_beginndop   = $query_beginndop->fetch_array();
if($row_beginndop['Anz'] > 0 AND $_SESSION["tz_status"] != 'edit'){
  echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?
  4\">";
  exit;    
}

# Datum außerhalb des Jahrgangs 01.09.-31.08
if(strtotime($save_beginn) > strtotime("$jahrgang2-08-31") OR strtotime($save_beginn) < strtotime("$jahrgang-09-01")){
  if($_SESSION["tz_status"] == 'neu'){
    echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=5\">";
  }else{
    echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=5&edit=$_SESSION[tz_deid]\">";
  }
  exit;    
}

$result_tz = $db->query("SELECT count(*) Anz
                            FROM dep_deputat_ermaessigung
                           WHERE jahr = '$jahrgang'
                             AND art = 'Schwerbehinderung'
                             AND imtuid=$uid
                             AND prozent > 0");
$row_tz    = $result_tz->fetch_array();
if($row_tz['Anz']>0){
  if($_SESSION["tz_status"] == 'neu'){
    echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=6\">";
  }else{
    echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=6&edit=$_SESSION[tz_deid]\">";
  }
  exit;    
}

# Datum vor Schuljahr, dann Schuljahrbeginn
 if($dat_ende >= $dat_max or $ende_funktion == ''){
   $ende_funktion = $jahrgang2."-08-31";
 }

# Datum nach Schulnahrbeginn > 01.09, dann wird 100% zugrunde gelegt ab 01.09
# Prüfen, ob ein Datum ab 01.09. vorliegt

#$beginn = $jahrgang."-09-01";
#$query_beginn = $db->query("SELECT count(*) Anz
#                                FROM dep_deputat_ermaessigung
#                               WHERE beginn = '$beginn'
#                                 AND imtuid = $uid
#                                 AND art = 'Teilzeit'");
#$row_beginn   = $query_beginn->fetch_array();
#if($row_beginn['Anz'] == 0 AND $beginn != $save_beginn){
#
## Wenn er zu kein beginn erfasst hat und dies auch aktuell nicht vor hat, dann Startwert auf 100 % setzen. Prof kann den Wert nachträglich bearbeiten
#    $sql1 = $db->query("INSERT INTO dep_deputat_ermaessigung ( jahr
#                                                  , beginn
#                                                  , imtuid
#                                                  , art
#                                                  , prozent
#                                                  , sort_order
#                                                  , created
#                                                  )
#                                VALUES
#                                                  ( '$jahrgang'
#                                                  , '$beginn'
#                                                  , '$uid'
#                                                  , 'Teilzeit'
#                                                  , '1.00'
#                                                  , 4
#                                                  , '$datum'
#                                                  )
#                      ");
#
#}

$datum = date("Y-m-d H:i:s");
  if ($_SESSION["tz_status"] == 'neu') {
    $sql1 = $db->query("INSERT INTO dep_deputat_ermaessigung ( jahr
                                                  , beginn
                                                  , imtuid
                                                  , art
                                                  , prozent
                                                  , sort_order
                                                  , created
                                                  )
                                VALUES
                                                  ( '$jahrgang'
                                                  , '$save_beginn'
                                                  , '$uid'
                                                  , 'Teilzeit'
                                                  , '$umfang'
                                                  , 4
                                                  , '$datum'
                                                  )
                      ");


  }
  
  if ($_SESSION["tz_status"] == 'edit') {
    $deid    = $_SESSION["tz_deid"];
    $result = $db->query("UPDATE dep_deputat_ermaessigung 
                             SET beginn = '$save_beginn'
                               , prozent = '$umfang'
                               , modify_date = '$datum'
                           WHERE deid = $deid
                             AND art = 'Teilzeit'
                         ");
  }
  $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 AND art = 'Teilzeit'");
  
  echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "\">";
}

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

?>