". $SchichtID . "
"; $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 "". $SchichtID . "
"; $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 //////////////////////////////////////////////////////// ?> '); } else { // Fehlermeldungen ausgeben: echo '
'; } } 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 '
'; } } /// 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 "

Schichten Hinzufügen geordnet nach"; echo ""; echo "

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

"; echo ''; echo ""; echo ""; echo "\n\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
$MeinVon $MeinBis"; // debug time strings // write the field for each day echo "\n"; } echo ""; //Zeitbereich tr $db_erg = AlleSchichtenImZeitbereich($db_link, $MeinVon, $MeinBis, $HelferLevel); //echo ""; // debug $OldTag = ""; $OldWas = ""; // um Zeilen mit von mir belegten Schichten hervorzuheben $MeineDienste = SchichtIdArrayEinesHelfers($db_link, $HelferID); //print_r($MeineDienste); echo "
" . "Alle Schichten der Con (" . $iBelegteSchichtenCount . "/" . $iAlleSchichtenCount . ")
" . "$Text" . "
AlleSchichtenImZeitbereich(db_link,$Von,$Bis,$HelferLevel);
\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 namer. 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 "
next table
\n"; echo "\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 ""; echo "\n"; } $db_erg_helfer = BeteiligteHelfer($db_link, $zeile['SchichtID']); // get the people who are already signed up for this shift // 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 ""; echo ""; echo ""; 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 ""; echo ""; } else {//if there is no more shift to fill in, we fill the rest of the row with empty fields echo ""; } $OldWas = $Was; } } echo "
$Was ($TagKurz)
$Was
$Ab - $Bis
$Helfername$Was
$Ab-$Bis
$Helfername$Was
$Ab-$Bis
\n"; // old table, remove later mysqli_free_result($db_erg); ?>