<?php
// Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden
SESSION_START();
require_once 'konfiguration.php';
require 'SQL.php';
$db_link = ConnectDB();
require '_login.php';

if ($AdminStatus != 1) {
    //Seite nur fuer Admins. Weiter zu index.php und exit, wenn kein Admin
    echo '<!doctype html><head><meta http-equiv="Refresh" content="0; URL=index.php" /></head></html>';
    exit;
}
?>
<!doctype html>
<html>
 <head>
  <title>testAlle Helferschichten</title>
  <link rel="stylesheet" href="css/style_desktop.css" media="screen and (min-width:781px)"/>
  <link rel="stylesheet" href="css/style_mobile.css" media="screen and (max-width:780px)"/>
  <meta name="viewport" content="width=480" />

 </head>
 <body>
 <button name="BackHelferdaten" value="1"  onclick="window.location.href = 'index.php';"><b>&larrhk;</b></button>   
 <!--h1> Alle Schichten Ausdruck</h1-->
<div style="width: 100%;">
<?php

/// Detailinformation zu ausgewaehlten Schicht Holen
////////////////////////////////////////////////////////
if (isset($_POST['CloseInfo'])) {
    unset($InfoMeineSchichtID);
    unset($InfoAlleSchichtID);
}
if (isset($_POST['InfoMeineSchichtID'])) {
    $InfoMeineSchichtID = $_POST['InfoMeineSchichtID'];
    unset($InfoAlleSchichtID);
   //echo "<b>". $SchichtID . "</b><br>";

    $zeile = DetailSchicht($db_link, $InfoMeineSchichtID);

    $Was = $zeile['Was'];
    $Wo = $zeile['Wo'];
    $Dauer = $zeile['Dauer'];
    $Leiter = $zeile['Name'];
    $LeiterHandy =  $zeile['Handy'];
    $LeiterEmail =  $zeile['Email'];
    $Info = $zeile['Info'];
}


if (isset($_GET['InfoAlleSchichtID'])) {
    $InfoAlleSchichtID = $_GET['InfoAlleSchichtID'];
    unset($InfoMeineSchichtID);
   //echo "<b>". $SchichtID . "</b><br>";

    $zeile = DetailSchicht($db_link, $InfoAlleSchichtID);

    $Was = $zeile['Was'];
    $Wo = $zeile['Wo'];
    $Dauer = $zeile['Dauer'];
    $Leiter = $zeile['Name'];
    $LeiterHandy =  $zeile['Handy'];
    $LeiterEmail =  $zeile['Email'];
    $Info = $zeile['Info'];



   // Beteiligte Helfer Holen
    $db_erg = BeteiligteHelfer($db_link, $InfoAlleSchichtID);


    $x = 0;

    while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
        $MitHelferID[$x] = $zeile['HelferID'];
        $MitHelfer[$x] = $zeile['Name'];
        $MitHelferHandy[$x] = $zeile['Handy'];
        $x++;
    }
}

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



// Helferliste Anzeigen
////////////////////////////////////////////////////////

?>


<?php



// Neu Schicht fuer Helfer Eintragen
///////////////////////////////////////////////////////////
if (isset($_POST['plusschicht'])) {
    $messages = [];
    $SchichtId = $_POST['plusschicht'];

   // Eingaben überprüfen:

   //  if(!preg_match('/^[a-zA-Z]+[a-zA-Z0-9._]+$/', $HelferName)) {
   //    $messages[] = 'Bitte prüfen Sie die eingegebenen Namen';
   //  }


    if (empty($messages)) {
       // Helfer Schicht zuweisen
        $db_erg = HelferSchichtZuweisen($db_link, $HelferID, $SchichtId);

       // Erfolg vermelden und Skript beenden, damit Formular nicht erneut ausgegeben wird
        $HelferName = '';
        $HelferEmail = '';
        $HelferHandy = '';
       //die('<div class="Helfer wurde angelegt.</div>');
    } else {
       // Fehlermeldungen ausgeben:
        echo '<div class="error"><ul>';
        foreach ($messages as $message) {
            echo '<li>' . htmlspecialchars($message) . '</li>';
        }
        echo '</ul></div>';
    }
}

if (isset($_POST['minusschicht'])) {
// Mich aus Schicht entfernen
        $messages = [];

        $SchichtID = $_POST['minusschicht'];

    if (empty($messages)) {
            // Helfer aus Schicht entfernen
            $db_erg = HelferVonSchichtLoeschen_SchichtID($db_link, $HelferID, $SchichtID);
    } else {
            // Fehlermeldungen ausgeben:
            echo '<div class="error"><ul>';
        foreach ($messages as $message) {
                echo '<li>' . htmlspecialchars($message) . '</li>';
        }
            echo '</ul></div>';
    }
}

/// Ausgabe auf Deutsch umstellen
/////////////////////////////////////////////////////////////////////////

    DatenbankAufDeutsch($db_link);


// Zusammenfassung Eigener Schichten
 $db_erg = SchichtenSummeEinesHelfers($db_link, $HelferID);
 $zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC);

/// Schichten Auswahl
////////////////////////////////////////////////////////
if ($addschicht == '0') {
    echo "<p><b>Schichten Hinzufügen geordnet nach</b>";
    echo "<button name='addschicht' value='1'>Tage</button>";
    echo "<button name='addschicht' value='2'>Dienste</button></p>";
}


// fuer Anzahlanzeige in Ueberschrift
$iAlleSchichtenCount = AlleSchichtenCount($db_link);
$iBelegteSchichtenCount = AlleBelegteSchichtenCount($db_link);

    //echo "<p><button name='addschicht' value='0'><b>&larrhk;</b></button></p>";
    echo '<table  class="commontable">';
    echo "<tr class='header'>";
    echo "<th colspan='7'>" . "Alle Schichten der Con (";
    echo $iBelegteSchichtenCount . "/" . $iAlleSchichtenCount . ")</th></tr>";

echo "\n<tr class='header'>\n"; // Zeitbereich tr

// Zeitbereich: -1 davor, 0 kein Limit, 1-N Tag N der Con, 1000: nach der Con
$ZeitBereichWerte = ZEITBEREICHWERTE;
$ZeitBereichFelder = count($ZeitBereichWerte);
$ZeitBereichFeldBreite = round(100 / $ZeitBereichFelder); // % width for style

$format = 'Y-m-d';

// iterate over all days plus "before" and "after"
// Wenn TAG_DAUER=4, dann sind die Werte 1-4 die Tage der Con
// ZeitBereichWerte = [-1, 0, 1, 2, 3, 4, 1000]
// -1: davor, 0: alle, 1-4: Tag 1-4, 1000: danach
foreach ($ZeitBereichWerte as &$EinZeitBereich) {
    if ($EinZeitBereich > 0 && $EinZeitBereich <= TAGE_DAUER) {
        $PlusTage = $EinZeitBereich - 1;
      //TODO: only if locale DE
        $day = $start_date->add(new DateInterval("P{$PlusTage}D"));
        $Wochentag = $TageNamenDeutsch[date_format($day, 'w')];

        $Text = "$Wochentag (Tag{$EinZeitBereich})";
        $Von = date_format($day, $format) . " 00:00:00";
        $Bis = date_format($day, $format) . " 23:59:59";
    } elseif ($EinZeitBereich == -1) {
        $Text = 'Davor';
        $Von = "2000-01-01 00:00:00";
        $Bis = date_format($start_date, $format) . " 00:00:00";
    } elseif ($EinZeitBereich == 0) {
        $Text = 'Alle' ;
        $Von = "2000-01-01 00:00:00";
        $Bis = "3000-01-01 00:00:00";
    } elseif ($EinZeitBereich == 1000) {
        $Text = 'Danach';
           $tage_dauer = TAGE_DAUER;
           $day = $start_date->add(new DateInterval("P{$tage_dauer}D"));
        $Von = date_format($day, $format) . " 00:00:00";
        $Bis = "3000-01-01 00:00:00";
    }
  // highlight the selected time range
    if ($EinZeitBereich == $ZeitBereich) {
        $color = 'background-color:#0000FF; ' ;
        $MeinVon = $Von;
        $MeinBis = $Bis;
    } else {
        $color = '';
    }
  //$Text="$Text <br>$MeinVon $MeinBis"; // debug time strings

  // write the field for each day
    echo "<th style='width:{$ZeitBereichFeldBreite}%; $color' ";
    echo "onclick='window.location.href=\"TeilnehmerSchichtenAusdruck.php?ZeitBereich={$EinZeitBereich}\";'>";
    echo "$Text" . "</th>\n";
}
echo "</tr>"; //Zeitbereich tr

$db_erg = AlleSchichtenImZeitbereich($db_link, $MeinVon, $MeinBis, $HelferLevel);
//echo "<tr><th class=header> AlleSchichtenImZeitbereich(db_link,$Von,$Bis,$HelferLevel);</th></tr>"; // debug

$OldTag = "";
$OldWas = "";
// um Zeilen mit von mir belegten Schichten hervorzuheben
$MeineDienste = SchichtIdArrayEinesHelfers($db_link, $HelferID);
//print_r($MeineDienste);

echo "</table>\n";

// Table to print out the shifts for people to enter their name in.
// If a shift is already taken, the name is printed out.
// The table prints just one day, specified via Zeitbereich. The heading above wrote out the day.
// the table is sorted by shift type (Was) first and then by time (Ab).
// "Was" is printed in the middle together with two-letter day and time.
// the first and the 5th (last) column also contain two-letter day and time for people to tear off and take with them.
// the 2nd and 4th column are for the name.
// if the shift is already taken, the name is printed in, else the field is empty to write in.
// we iterate over all tasks (Was) and then over Ist and Soll for each task,
// filling one field for each Ist or Soll and filling in the name in Ist and leave it empty if it is Soll.
echo "<br>next table<br>\n";
echo "<table class='commontable'>\n";
// $db_erg ist aus AlleSchichtenImZeitbereich
// und gibt zurueck  Was, Ab, Bis, Ist, Tag, Soll - Ist und Soll sind die HelferStunden
$OldWas = "";
while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
    $Tag = $zeile['Tag']; //this should be set above, because we only look at one day
    $Ab  = $zeile['Ab'];
    $Bis = $zeile['Bis'];
    $Ist = $zeile['Ist'];
    $Soll = $zeile['Soll'];
    $Was = $zeile['Was'];
    $TagKurz = substr($Tag, 0, 2);
    if (substr($Ab, 0, 2) == substr($Bis, 0, 2)) {
        $Bis = substr($Bis, 2);
    } // if start and end time are on the same day, we only print the end time
    if ($Was != $OldWas) {
        echo "<tr class='header'>";
        echo "<th colspan=5 style='text-align:center'>$Was ($TagKurz)</th></tr>\n";
    }
    // get the people who are already signed up for this shift
    $db_erg_helfer = BeteiligteHelfer($db_link, $zeile['SchichtID']);
  // Wir geben zwei Helfer pro Zeile fuer die selbe Schicht aus
    while ($Soll > 0) {
        $Soll = $Soll - 1;
        $HelferZeile = mysqli_fetch_array($db_erg_helfer, MYSQLI_ASSOC);
        if (isset($HelferZeile['Name'])) {
            $Helfername = $HelferZeile['Name'];
        } else {
            $Helfername = '';
        }
        echo "<tr><td>$Was <br>$Ab - $Bis </td>";
        echo "<td>$Helfername</td>";
        echo "<td>$Was <br>$Ab-$Bis</td>";
        if ($Soll > 0) { // zweite Spalte nur ausgeben, wenn noch eine Schicht offen ist
            $Soll = $Soll - 1;
            $HelferZeile = mysqli_fetch_array($db_erg_helfer, MYSQLI_ASSOC); // get the next person
            if (isset($HelferZeile['Name'])) {
                $Helfername = $HelferZeile['Name'];
            } else {
                $Helfername = '';
            }
            echo "<td>$Helfername</td>";
            echo "<td>$Was <br>$Ab-$Bis</td><tr>";
        } else {//if there is no more shift to fill in, we fill the rest of the row with empty fields
            echo "<td></td><td></td></tr>";
        }
        $OldWas = $Was;
    }
}
echo "</table>\n";


// old table, remove later

mysqli_free_result($db_erg);


?>

 <!--/form--> 
 </div>

 </body>
</html>
