<?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";
#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('beh_error', 1);
    
    $smarty->assign('beh_value_behinderungsgrad', $_SESSION["beh_behinderungsgrad"]*100);

    
    if ($errorno == 1) {
      $smarty->assign('beh_error_text', "Es muß die prozentuale Ermäßigung angegeben werden! ");
    }
    if ($errorno == 2) {
      $smarty->assign('beh_error_text', "Der Behinderungsgrad muss zwischen 0 und 100% liegen! ");
    }
    if ($errorno == 3) {
      $smarty->assign('beh_error_text', "Das eingegebene Datum ist nicht korrekt. Bitte korrigieren Sie das Datum!");
    }
    if ($errorno == 4) {
      $smarty->assign('beh_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('beh_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('beh_error_text', "Wenn eine Teilzeit erfasst wurde, darf keine Schwerbehinderung 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["beh_status"] = 'edit';
    $deid                    = $_GET['edit'];
    $_SESSION["beh_deid"]    = $deid;
  } else {
    $_SESSION["beh_status"] = 'neu';
  }


  # --- Wenn Werte editiert werden ------------
  if ($_SESSION["beh_status"] == 'edit') {
    $result_edit = $db->query("SELECT deid, date_format(beginn, '%d.%m.%Y') beginn, prozent*100 behinderungsgrad
                                   FROM dep_deputat_ermaessigung
                                  WHERE deid = $deid");
    $row_edit    = $result_edit->fetch_array();
    $smarty->assign('beh_value_behinderungsgrad', "$row_edit[behinderungsgrad]");
    $smarty->assign('beh_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["beh_status"] = 'neu';
  }

  # Gespeicherte Werte
  $query2 = "SELECT deid, date_format(beginn, '%d.%m.%Y') beginn_form, prozent behinderungsgrad, beginn
                 FROM dep_deputat_ermaessigung
                WHERE imtuid=$uid
                  AND art = 'Schwerbehinderung'
                  AND jahr=$jahrgang
                ORDER BY beginn ASC";
  $result2 = $db->query($query2) or die("Cannot execute query2:<br>$query2<br>");
  
  while ($row2 = $result2->fetch_array()) {
    $behinderungsgrad = number_format($row2['behinderungsgrad']*100, 1, ',', '.');
    $row2['behinderungsgrad']           = $behinderungsgrad;
    $table_data2[]             = $row2;
  }
  $smarty->assign('table_data2', $table_data2);

}



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

$behinderungsgrad      = str_replace(',','.',str_replace('.','', $_POST['behinderung']))/100;
$beginn = preg_replace('/^(\\d{2})\\.(\\d{2})\\.(\\d{4})$/', '$3-$2-$1', $_POST['beginn_behinderung']);

$_SESSION["beh_behinderungsgrad"]           = $behinderungsgrad;
$_SESSION["beh_beginn"]           = $_POST['beginn_behinderung'];

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

if ($_POST['behinderung'] == "" ) {
    if($_SESSION["beh_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[beh_deid]\">";
    }
    exit;
}

if ($behinderungsgrad < 0 or $behinderungsgrad > 1 ) {
    # Außerhalb den Werten
    if($_SESSION["beh_status"] == 'neu'){
      echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=2\">";
    }else{
      echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=2&edit=$_SESSION[beh_deid]\">";
    }
    exit;
}

if(!validateDate($beginn)){
  if($_SESSION["beh_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[beh_deid]\">";
  }
  exit;    
}

/* Schwerbehinderungen 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 = 'Schwerbehinderung'");
$row_beginndop   = $query_beginndop->fetch_array();
if($row_beginndop['Anz'] > 0 AND $_SESSION["beh_status"] != 'edit'){
  if($_SESSION["beh_status"] == 'neu'){
    echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=4\">";
  }else{
    echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=4&edit=$_SESSION[beh_deid]\">";
  }
  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["beh_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[beh_deid]\">";
  }
  exit;    
}



$result_beh = $db->query("SELECT count(*) Anz
                            FROM dep_deputat_ermaessigung
                           WHERE jahr = '$jahrgang'
                             AND art = 'Teilzeit'
                             AND imtuid=$uid
                             AND prozent < 1");
$row_beh    = $result_beh->fetch_array();
if($row_beh['Anz']>0){
  if($_SESSION["beh_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[beh_deid]\">";
  }
  exit;    
}


# 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 = 'Schwerbehinderung'");
#$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 0 % 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'
#                                                  , 'Schwerbehinderung'
#                                                  , '0'
#                                                  , 3
#                                                  , '$datum'
#                                                  )
#                      ");
#
#}

$datum = date("Y-m-d H:i:s");
if ($_SESSION["beh_status"] == 'neu') {


    $sql1 = $db->query("INSERT INTO dep_deputat_ermaessigung ( jahr
                                                             , imtuid
                                                             , art
                                                             , beginn
                                                             , prozent
                                                             , sort_order
                                                             , created
                                                             )
                                           VALUES
                                                             ( '$jahrgang'
                                                             , '$uid'
                                                             , 'Schwerbehinderung'
                                                             , '$save_beginn'
                                                             , '$behinderungsgrad'
                                                             , 3
                                                             , '$datum'
                                                             )
                      ");

}

  
  if ($_SESSION["beh_status"] == 'edit') {
    $deid    = $_SESSION["beh_deid"];
    $result = $db->query("UPDATE dep_deputat_ermaessigung 
                             SET beginn = '$save_beginn'
                               , prozent = '$behinderungsgrad'
                               , modify_date = '$datum'
                              WHERE deid = $deid
                         ");
  }
  $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");

?>