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

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


if ($action == '') {
  
  if (isset($_GET['edit'])) {
    $_SESSION["termine_status"] = 'edit';
    $tm_id                    = $_GET['edit'];
    $_SESSION["termine_tm_id"]   = $tm_id;
  } else {
    $_SESSION["termine_status"] = 'neu';
  }
  
  # -- Fehlermeldungen -- #
  if (isset($_GET['error'])) {
    
    $errorno = $_GET['error'];
    
    $smarty->assign('termine_error', 1);
    
    $smarty->assign('termine_value_datum', $_SESSION["termine_value_tm_datum"]);
    $smarty->assign('termine_value_zeit', $_SESSION["termine_value_tm_zeit"]);
    $smarty->assign('termine_value_tm_standort', $_SESSION["termine_value_tm_standort"]);
    $smarty->assign('termine_value_tm_plaetze', $_SESSION["termine_value_tm_plaetze"]);
    $smarty->assign('termine_value_tm_raum', $_SESSION["termine_value_tm_raum"]);
    $smarty->assign('termine_value_tm_referenznr', $_SESSION["termine_value_tm_referenznr"]);
 
    if ($errorno == 3) {
      # ungültiges Datum
      $smarty->assign('termine_error_text', "Das eingegebene Datum ist nicht korrekt. Bitte korrigieren Sie das Datum!");
    }
  }
  
  # --- Wenn Werte editiert werden ------------
  if ($_SESSION["termine_status"] == 'edit') {
    $result_edit = $db->query("SELECT tm_id, date_format(tm_datum, '%d.%m.%Y') datum, date_format(tm_datum, '%H:%i') zeit, tm_standort, tm_plaetze, tm_raum, tm_referenznr
                                 FROM dvm_termine
                                WHERE tm_id = $tm_id");
    $row_edit    = $result_edit->fetch_array();
    $smarty->assign('termine_value_datum', "$row_edit[datum]");
    $smarty->assign('termine_value_zeit', "$row_edit[zeit]");
    $smarty->assign('termine_value_tm_standort', "$row_edit[tm_standort]");
    $smarty->assign('termine_value_tm_plaetze', "$row_edit[tm_plaetze]");
    $smarty->assign('termine_value_tm_raum', "$row_edit[tm_raum]");
    $smarty->assign('termine_value_tm_referenznr', "$row_edit[tm_referenznr]");
    
  }
  # --- 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["termine_status"] = 'neu';
  }


  # Gespeicherte Werte
  $query1 = "SELECT tm_id, date_format(tm_datum, '%d.%m.%Y') datum, date_format(tm_datum, '%H:%i') zeit, tm_standort, tm_plaetze, tm_raum, tm_referenznr
               FROM dvm_termine
              WHERE tm_datum > now()
              ORDER BY tm_datum ASC, zeit ASC";
  
  $result1 = $db->query($query1) or die("Cannot execute query1");
  
  while ($row1 = $result1->fetch_array()) {
    if($row1['tm_standort'] == 'L'){
      $standort = 'Ludwigsburg';
    }
    if($row1['tm_standort'] == 'K'){
      $standort = 'Kehl';
    }
    $restplatz = get_restplatz($row1['tm_id']);
    if($restplatz != $row1['tm_plaetze']){
      $disable = 0;
    }else{
      $disable = 1;
    }
    $row1['restplatz']         = $restplatz;
    $row1['tm_disable']        = $disable;
    $row1['standort_form']     = $standort;
    $table_data1[]             = $row1;
  }
  $smarty->assign('table_data1', $table_data1);
  
}


if ($action == 'save') {

$tm_datum        = $_POST['tm_datum'];
$tm_zeit         = $_POST['tm_zeit'];
$tm_plaetze      = $_POST['tm_plaetze'];
$tm_standort     = $_POST['tm_standort'];
$tm_raum         = $_POST['tm_raum'];
$tm_referenznr   = trim($_POST['tm_referenznr']);


$_SESSION["termine_value_tm_datum"]         = $tm_datum;
$_SESSION["termine_value_tm_zeit"]          = $tm_zeit;
$_SESSION["termine_value_tm_plaetze"]       = $tm_plaetze;
$_SESSION["termine_value_tm_standort"]      = $tm_standort;
$_SESSION["termine_value_tm_raum"]          = $tm_raum;
$_SESSION["termine_value_tm_referenznr"]    = $tm_referenznr;

$tm_datum_form = preg_replace('/^(\\d{2})\\.(\\d{2})\\.(\\d{4})$/', '$3-$2-$1', $tm_datum);
$testdatum = $tm_datum_form." ".$tm_zeit.":00";
$_SESSION["termine_value_tm_testdatum"]    = $testdatum;
function validateDate($date, $format = 'Y-m-d')
{
    $d = DateTime::createFromFormat($format, $date);
    return $d && $d->format($format) == $date;
}

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


  #$datum = date("Y-m-d H:i:s");
  if ($_SESSION["termine_status"] == 'neu') {
    $sql1 = $db->query("INSERT INTO dvm_termine ( tm_datum
                                                , tm_standort
                                                , tm_plaetze
                                                , tm_raum
                                                , tm_referenznr
                                                )
                                VALUES
                                                ( '$testdatum'
                                                , '$tm_standort'
                                                , '$tm_plaetze'
                                                , '$tm_raum'
                                                , '$tm_referenznr'
                                                )
                              ");
  }
  
  if ($_SESSION["termine_status"] == 'edit') {
    $tm_id   = $_SESSION["termine_tm_id"];

    # Prüfen, ob zu diesem Termin bereits Kandidaten gebucht sind. Wenn ja, dann Weiterleitung zum Mailanschreiben und dann Termin ändern
    $result_vorh = $db->query("SELECT count(*) Anz
                                 FROM dvm_term_kand
                                WHERE tm_id ='$tm_id'
                             ");
    $row_vorh    = $result_vorh->fetch_array();
    
    # Prüfen, ob der Kandidat angeschrieben werden muss. Nur bei einer Änderung der Anzahl muss der Kandidat nicht extra informiert werden
    $result_vorh1 = $db->query("SELECT count(*) Anz
                                 FROM dvm_termine
                                WHERE tm_id ='$tm_id'
                                  AND (tm_datum != '$testdatum'
                                       OR tm_standort != '$tm_standort'
                                       OR tm_raum != '$tm_raum'
                                       OR tm_referenznr != '$tm_referenznr'
                                      )
                             ");
    $row_vorh1    = $result_vorh1->fetch_array();
    if($row_vorh['Anz'] != 0 AND $row_vorh1['Anz'] != 0){
      echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?action=mailterminupdate\">";
      exit;
    }else{
      $result = $db->query("UPDATE dvm_termine 
                               SET tm_datum = '$testdatum'
                                 , tm_standort  = '$tm_standort'
                                 , tm_plaetze     = '$tm_plaetze'
                                 , tm_raum = '$tm_raum'
                                 , tm_referenznr = '$tm_referenznr'
                            WHERE tm_id = $tm_id
                           ");
    
      unset($_SESSION['termine_tm_id']);
    }
  
  }
  # 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') {
  $tm_id = $_GET['tm_id'];
  
  $del1 = $db->query("DELETE FROM dvm_termine WHERE tm_id = $tm_id");
  
  echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "\">";
}

if ($action == 'mailterminupdate') {
  $tm_id   = $_SESSION["termine_tm_id"];
  
  # Gespeicherte Werte
  $query1 = "SELECT mail
               FROM dvm_kandidat
              WHERE ka_id IN (SELECT ka_id
                                FROM dvm_term_kand
                               WHERE tm_id = $tm_id)
              ORDER BY nachname ASC";
  
  $result1 = $db->query($query1) or die("Cannot execute query1");
  
  while ($row1 = $result1->fetch_array()) {
     $mail .= "$row1[mail], ";
  }
  $mail_lubu = get_parameter(8);
  $mail_kehl = get_parameter(7);
  
  $mail_an = "$mail_kehl, $mail_lubu";
  $mail_bcc = substr(trim($mail),0,-1);
  $smarty->assign('mtupd_mailadressen_an', "$mail_an");
  $smarty->assign('mtupd_mailadressen_bcc', "$mail_bcc");

}

if ($action == 'mailsenden2') {

  $tm_id          = $_SESSION["termine_tm_id"];
  $tm_plaetze     = $_SESSION["termine_value_tm_plaetze"];
  $tm_standort    = $_SESSION["termine_value_tm_standort"];
  $tm_raum        = $_SESSION["termine_value_tm_raum"];
  $tm_referenznr  = $_SESSION["termine_value_tm_referenznr"];
  $testdatum      = $_SESSION["termine_value_tm_testdatum"];
  $empfaenger_an  = $_POST['empfaenger_an'];
  $empfaenger_bcc = $_POST['empfaenger_bcc'];
  $betreff        = $_POST['betreff'];
  $text           = $_POST['text'];
  $absender       = $_POST['absender'];
  
  if($absender == 'Kehl'){
   $sendermail = get_parameter(7);
   $sender     = 'Hochschule Kehl';
  }
  
  if($absender == 'Ludwigsburg'){
   $sendermail = get_parameter(8);
   $sender     = 'Hochschule Ludwigsburg';
  }
  
  # Update
  $result = $db->query("UPDATE dvm_termine 
                           SET tm_datum = '$testdatum'
                             , tm_standort  = '$tm_standort'
                             , tm_plaetze     = '$tm_plaetze'
                             , tm_raum = '$tm_raum'
                             , tm_referenznr = '$tm_referenznr'
                        WHERE tm_id = $tm_id
                      ");
  
  $query_termin = $db->query("SELECT date_format(tm_datum, '%d.%m.%Y um %H:%i Uhr') tm_datum, tm_standort, tm_raum, tm_plaetze, tm_referenznr FROM dvm_termine WHERE tm_id='$tm_id'");
  $row_termin = $query_termin->fetch_array();
    if($row_termin['tm_standort'] == 'L'){
      $standort = 'Ludwigsburg - Reuteallee 36, 71634 Ludwigsburg';
    }
    
    if($row_termin['tm_standort'] == 'K'){
      $standort = 'Kehl - Kinzigallee 1, 77694 Kehl';
    }
  $text = $text."
  <br>
  <br>
  Neue Daten:<br>
          <table>
          <tr>
             <td valign='top'>
               <font face='Arial' size='2'>
                 <b>Testtag:</b>
               </font>
             </td>
             <td valign='top'>
               <font face='Arial' size='2'>
                 $row_termin[tm_datum]
               </font>
             </td>
          </tr>
          <tr>
             <td valign='top'>
               <font face='Arial' size='2'>
                 <b>Hochschule:</b>
               </font>
             </td>
             <td valign='top'>
               <font face='Arial' size='2'>
                 $standort
               </font>
             </td>
          </tr>
          <tr>
             <td valign='top'>
               <font face='Arial' size='2'>
                 <b>Gebäude / Raum:</b>
               </font>
             </td>
             <td valign='top'>
               <font face='Arial' size='2'>
                 $row_termin[tm_raum]
               </font>
             </td>
          </tr>

  </table>
  ";
  
  #echo "
  #From: $sender - $sendermail<br>
  #$empfaenger<br>
  #$betreff<br>
  #$text<br>
  #$hochschule<br>";
  #exit;
  
  
  
  ## Mailversand:
  $headers = "From: $sender <$sendermail>\r\n";
  $headers .= "MIME-Version: 1.0\r\n";
  $headers .= "Content-type: text/html; charset=utf-8\r\n";
  $headers .= "Bcc: $empfaenger_bcc\n"; 
  
  $return     = @mail($empfaenger_an, $betreff, $text, $headers);
  
  if ($return) {
    $smarty->assign('mail_senderg', "Die Mail wurde verschickt!");
  } else {
    $smarty->assign('mail_senderg', "Die Mail konnte nicht verschickt werden!<br>Prüfen Sie die Mailadressen.");
  }



    
  unset($_SESSION['termine_tm_id']);
  $editende = 1;
  echo "<meta http-equiv=\"refresh\" content=\"2; URL=" . $_SERVER['PHP_SELF'] . "?editende=$editende\">";  
}

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

?>