362 lines
20 KiB
PHP
362 lines
20 KiB
PHP
<?php #pgs/dienste/index.php
|
|
|
|
$tpl = array(
|
|
"main" => tplExtrSection(tplLoadFile("pgs/dienste/main.html"), "DIENSTE"),
|
|
"show" => "",
|
|
"list" => ""
|
|
);
|
|
|
|
//die("Wartung");
|
|
|
|
addStyle("pgs/dienste/main.css");
|
|
|
|
// Anleitung zeigen
|
|
$tpl["show"] = tplExtrSection($tpl["main"], "###DIENSTE.SHOW###");
|
|
|
|
if ($userID = lgnCheckLogin($mysqli)) {
|
|
// Abteilungen und Gruppen abrufen
|
|
$res = $mysqli->query("SELECT l.Abteilungen, a.Name FROM link_Abteilungen_Personal l LEFT JOIN Abteilungen a ON a.ID=l.Abteilungen WHERE l.Personal='".$userID."'");
|
|
$abteilungen = array();
|
|
$abteilungenIDs = array();
|
|
while ($row = $res->fetch_assoc()) {
|
|
$abteilungen[] = $row["Name"];
|
|
$abteilungenIDs[] = $row["Abteilungen"];
|
|
}
|
|
$res = $mysqli->query("SELECT l.Personalgruppen, p.Name FROM link_Personal_Personalgruppen l LEFT JOIN Personalgruppen p ON p.ID=l.Personalgruppen WHERE l.Personal='".$userID."'");
|
|
$gruppenIDs = array(null);
|
|
while ($row = $res->fetch_assoc()) {
|
|
$gruppen[] = $row["Name"];
|
|
$gruppenIDs[] = $row["Personalgruppen"];
|
|
}
|
|
|
|
// Terminaktion abarbeiten
|
|
$confirm = "";
|
|
if (isset($input["termin"], $input["action"], $input["secToken"]) && $input["secToken"]==$_SESSION["secTokenVerify"]) {
|
|
$qry = "SELECT t.ID tID, t.Beginn, t.Ausgelost, IF(t.Beginn<NOW(), 1, 0) vorbei, tpv.MaxTeilnehmer, d.Abteilung, t.Personalgruppe, b.Name privName, "
|
|
."(SELECT COUNT(*) FROM Terminteilnahmen tln WHERE Termin=t.ID AND Status>=1) num, "
|
|
."(SELECT Status FROM Terminteilnahmen tln WHERE Termin=t.ID AND Personal = ?) Status "
|
|
.", (SELECT COUNT(*) FROM Terminteilnahmen t4 LEFT JOIN Termine t5 ON t5.ID=t4.Termin "
|
|
." WHERE t4.Personal=? AND t5.ID!=t.ID AND t5.Terminart=t.Terminart "
|
|
." AND t5.Beginn BETWEEN t.Beginn - INTERVAL 7 DAY AND t.Beginn + INTERVAL 7 DAY) naheDienste "
|
|
."FROM Termine t "
|
|
."LEFT JOIN Dienstpläne d ON d.ID=t.Dienstplan "
|
|
."LEFT JOIN Terminplatzvergabe tpv ON tpv.ID=t.Platzvergabe "
|
|
."LEFT JOIN Terminarten ta ON ta.ID = t.Terminart "
|
|
."LEFT JOIN Berechtigungen b ON ta.Verwaltungsrecht = b.ID "
|
|
."WHERE t.ID = ?";
|
|
if ($stmt = $mysqli->prepare($qry)) {
|
|
$stmt->bind_param("iii", $userID, $userID, $input["termin"]);
|
|
$stmt->execute();
|
|
$row = $stmt->get_result()->fetch_assoc();
|
|
$stmt->close();
|
|
|
|
// Mögliche Rechte zum Bearbeiten
|
|
$possiblePrivileges = array("DARF_DIENSTE_VERWALTEN");
|
|
if (null!==$row["privName"]) {
|
|
$possiblePrivileges[] = $row["privName"];
|
|
}
|
|
// Unprivilegierte Aktionen
|
|
if ("join"==$input["action"] && "0"==$row["vorbei"] &&
|
|
((in_array($row["Abteilung"], $abteilungenIDs) && in_array($row["Personalgruppe"], $gruppenIDs) && intVal($row["naheDienste"])==0) || lgnCheckRight($mysqli, $possiblePrivileges, $userID))) {
|
|
// Möchte beitreten
|
|
if ($row["Ausgelost"]=="1" && (intVal($row["num"])<intVal($row["MaxTeilnehmer"]) || "0"==$row["MaxTeilnehmer"])) {
|
|
$mysqli->query("REPLACE INTO Terminteilnahmen (Termin, Personal, Status) VALUES ('".$row["tID"]."', '".$userID."', 1)");
|
|
informParticipantFromID($mysqli, $row["tID"], $userID, true);
|
|
markOrSendParticipantsList($mysqli, $row["tID"]);
|
|
} else {
|
|
$mysqli->query("REPLACE INTO Terminteilnahmen (Termin, Personal, Status) VALUES ('".$row["tID"]."', '".$userID."', 0)");
|
|
}
|
|
} else if ("leave"==$input["action"] && "0"==$row["vorbei"]) {
|
|
// Möchte verlassen
|
|
$mysqli->query("DELETE FROM Terminteilnahmen WHERE Termin = ".$row["tID"]." AND Personal = ".$userID);
|
|
if (1==$mysqli->affected_rows && "1"==$row["Ausgelost"]) {
|
|
markOrSendParticipantsList($mysqli, $row["tID"]);
|
|
}
|
|
} else if (lgnCheckRight($mysqli, $possiblePrivileges) || "2"==$row["Status"]) {
|
|
// Privilegierte Aktionen
|
|
|
|
if ("remove"==$input["action"]) {
|
|
// Teilnehmer soll entfernt werden
|
|
if (isset($input["target"], $input["confirm"])) {
|
|
// Entferne Teilnehmer
|
|
$qry = "DELETE FROM Terminteilnahmen WHERE Termin = ? AND Personal = ?";
|
|
if ($stmt = $mysqli->prepare($qry)) {
|
|
$stmt->bind_param("ii", $row["tID"], $input["target"]);
|
|
$stmt->execute();
|
|
if (1==$stmt->affected_rows && "1"==$row["Ausgelost"]) {
|
|
informParticipantFromID($mysqli, $row["tID"], $input["target"], false);
|
|
markOrSendParticipantsList($mysqli, $row["tID"]);
|
|
}
|
|
}
|
|
}
|
|
} else if ("add"==$input["action"] && isset($input["target"], $input["stage"], $input["confirm"])) {
|
|
// Teilnehmer soll hinzugefügt werden
|
|
$qry = "REPLACE INTO Terminteilnahmen VALUES (?, ?, ?)";
|
|
if ($stmt = $mysqli->prepare($qry)) {
|
|
$stmt->bind_param("iii", $row["tID"], $input["target"], $input["stage"]);
|
|
$stmt->execute();
|
|
if (1==$stmt->affected_rows && "1"==$row["Ausgelost"]) {
|
|
informParticipantFromID($mysqli, $row["tID"], $input["target"], true);
|
|
markOrSendParticipantsList($mysqli, $row["tID"]);
|
|
}
|
|
}
|
|
}
|
|
if (("edit"==$input["action"] || "add"==$input["action"]) && (!isset($input["confirm"]) || "addmore"==$input["confirm"])) {
|
|
// Bestätigung abfragen
|
|
$addqry = "SELECT p.ID,Vornamen,Nachnamen,tln.Status FROM Personal p LEFT JOIN Terminteilnahmen tln ON tln.Personal=p.ID AND tln.Termin = ".$row["tID"]." ";
|
|
if (isset($input["target"]) && !isset($input["confirm"])) {
|
|
$addqry.= "WHERE p.ID = ? ";
|
|
$confirm = "Teilnahmestatus des Kameraden ändern zu?<br />";
|
|
} else {
|
|
$confirm = "Kameraden zum Termin hinzufügen?<br />";
|
|
}
|
|
$addqry.= "ORDER BY Nachnamen ASC, Vornamen ASC";
|
|
if ($stmt = $mysqli->prepare($addqry)) {
|
|
if (isset($input["target"]) && !isset($input["confirm"])) {
|
|
$stmt->bind_param("i", $input["target"]);
|
|
}
|
|
$stmt->execute();
|
|
$addres = $stmt->get_result();
|
|
//$stmt->close();
|
|
$confirm.= "<form method='get' action='?page=###PAGEMAIN###'><select name='target'>";
|
|
$status = 1;
|
|
while ($addrow = $addres->fetch_assoc()) {
|
|
$confirm.= "<option value='".$addrow["ID"]."'>".$addrow["Nachnamen"].", ".$addrow["Vornamen"]."</option>\n";
|
|
if ("edit"==$input["action"]) {
|
|
$status = $addrow["Status"];
|
|
}
|
|
}
|
|
$confirm.= "</select><br /><input type=hidden name='termin' value='".$row["tID"]."' />"
|
|
.("add"==$input["action"]
|
|
? "<input type=hidden name='action' value='add' />"
|
|
: "<input type=radio name='action' value='remove' /> Entfernen<br /><input type=radio name='action' value='add' checked />")
|
|
."<select name='stage'><option value='0'".($status=="0" ? " selected" : "").">Warteliste</option>"
|
|
.("1"==$row["Ausgelost"] ? "<option value='1'".($status=="1" || $status===null ? " selected" : "").">Teilnehmer</option>" : "")
|
|
."<option value='2'".($status=="2" ? " selected" : "").">Leitend</option></select><br />"
|
|
."<button type=submit name='confirm' value='addone'>Bestätigen</button><br />"
|
|
.("add"==$input["action"] ? "<button type=submit name='confirm' value='addmore'>Bestätigen und mehr hinzufügen</button>" : "")
|
|
."<input type=hidden name='secToken' value='###SECTOKEN###' /></form>";
|
|
} else {
|
|
addError("Mysql", $mysqli->error);
|
|
}
|
|
}
|
|
|
|
} // /Privilegierte Aktionen
|
|
} // /Termin existiert
|
|
// TODO: Corona-Unterweisung
|
|
// INSERT IGNORE INTO link_Ausbildungen_Personal SELECT DISTINCT 9, Personal FROM Terminteilnahmen t WHERE Status=1
|
|
} // /Terminaktion
|
|
|
|
// Termine auflisten und Anmeldestatus anzeigen
|
|
$tpl["list"] = tplExtrSection($tpl["main"], "###DIENSTE.LIST###");
|
|
|
|
// Bestätigungen anzeigen oder verstecken
|
|
if ($confirm!="") {
|
|
$confirm_tpl = tplExtrSection($tpl["list"], "###DIENSTE.LIST.CONFIRM###");
|
|
$confirm = tplReplMarker($confirm_tpl, "###DIENSTE.LIST.CONFIRM.TEXT###", $confirm);
|
|
}
|
|
$tpl["list"] = tplReplSection($tpl["list"], "###DIENSTE.LIST.CONFIRM###", $confirm);
|
|
|
|
$monthsback = $input["monthsback"] ?? 0;
|
|
$tpl["list"] = tplReplMarker($tpl["list"], "###DIENSTE.LIST.DEPARTMENTS###", implode(", ", $abteilungen));
|
|
$tpl["list"] = tplReplMarker($tpl["list"], "###DIENSTE.LIST.GROUPS###", implode(", ", $gruppen));
|
|
$tpl["list"] = tplReplMarker($tpl["list"], "###DIENSTE.LIST.NEWMONTHSBACK###", $monthsback+2);
|
|
|
|
$dnst_list_entry_tpl = tplExtrSection($tpl["list"], "###DIENSTE.LIST.ENTRY###");
|
|
$dnst_list_entry = "";
|
|
$qry = "SELECT t.ID, t.Beginn, t.Ende, t.Ort, t.Thema, t.Verantwortliche, t.Ausgelost, t.Personalgruppe, IF(t.Beginn<NOW(), 1, 0) vorbei, pv.MaxTeilnehmer, "
|
|
."ta.Name taName, tln.Status, ab.ID abID, ab.Name abName, pg.Name pgName, b.Name privName "
|
|
.", (SELECT COUNT(*) FROM Terminteilnahmen t2 WHERE t2.Termin=t.ID AND t2.Status>=1) numDabei "
|
|
.", (SELECT COUNT(*) FROM Terminteilnahmen t3 WHERE t3.Termin=t.ID AND t3.Status=0) numWill "
|
|
.", (SELECT COUNT(*) FROM Terminteilnahmen t4 LEFT JOIN Termine t5 ON t5.ID=t4.Termin "
|
|
." WHERE t4.Personal=? AND t5.ID!=t.ID AND t5.Terminart=t.Terminart "
|
|
." AND t5.Beginn BETWEEN t.Beginn - INTERVAL 7 DAY AND t.Beginn + INTERVAL 7 DAY) naheDienste "
|
|
."FROM Termine t "
|
|
."LEFT JOIN Terminplatzvergabe pv ON pv.ID=t.Platzvergabe "
|
|
."LEFT JOIN Terminarten ta ON ta.ID=t.Terminart "
|
|
."LEFT JOIN Berechtigungen b ON b.ID=ta.Verwaltungsrecht "
|
|
."LEFT JOIN Dienstpläne d ON d.ID=t.Dienstplan "
|
|
."LEFT JOIN Abteilungen ab ON ab.ID=d.Abteilung "
|
|
."LEFT JOIN Personalgruppen pg ON pg.ID=t.Personalgruppe "
|
|
."LEFT JOIN Terminteilnahmen tln ON t.ID=tln.Termin AND tln.Personal = ? "
|
|
."WHERE t.Ende > NOW() - INTERVAL ? MONTH "
|
|
."ORDER BY t.Beginn ASC ";
|
|
if ($stmt = $mysqli->prepare($qry)) {
|
|
$stmt->bind_param("iii", $userID, $userID, $monthsback);
|
|
$stmt->execute();
|
|
$res = $stmt->get_result();
|
|
while ($row = $res->fetch_assoc()) {
|
|
$entry = $dnst_list_entry_tpl;
|
|
$restrictions = $row["MaxTeilnehmer"]!==null && $row["MaxTeilnehmer"]>0 ? "Auf ".$row["MaxTeilnehmer"]." Plätze begrenzt!" : "Keine Platzbegrenzung.";
|
|
$terminPrivileges = $row["privName"]!==null ? array("DARF_DIENSTE_VERWALTEN", $row["privName"]) : "DARF_DIENSTE_VERWALTEN";
|
|
$replace = array(
|
|
"###DIENSTE.LIST.ENTRY.ID###" => $row["ID"],
|
|
"###DIENSTE.LIST.ENTRY.BEGIN###" => $row["Beginn"],
|
|
"###DIENSTE.LIST.ENTRY.BEGIN.DATE###" => strftime("%a, %d.%m.%Y", strtotime($row["Beginn"])),
|
|
"###DIENSTE.LIST.ENTRY.BEGIN.TIME###" => strftime("%H:%M", strtotime($row["Beginn"])),
|
|
"###DIENSTE.LIST.ENTRY.END###" => $row["Ende"],
|
|
"###DIENSTE.LIST.ENTRY.END.DATE###" => strftime("%d.%m.%Y", strtotime($row["Ende"])),
|
|
"###DIENSTE.LIST.ENTRY.END.TIME###" => strftime("%H:%M", strtotime($row["Ende"])),
|
|
"###DIENSTE.LIST.ENTRY.TYPE###" => $row["taName"],
|
|
"###DIENSTE.LIST.ENTRY.DEPARTMENT###" => $row["abName"],
|
|
"###DIENSTE.LIST.ENTRY.TOPIC###" => $row["Thema"],
|
|
"###DIENSTE.LIST.ENTRY.RESTRICTIONS###" => $restrictions
|
|
);
|
|
|
|
if ((in_array($row["abID"], $abteilungenIDs) && in_array($row["Personalgruppe"], $gruppenIDs)) || lgnCheckRight($mysqli, $terminPrivileges)) {
|
|
$linkJoin = "<a href='?main=###PAGEMAIN###&termin=".$row["ID"]."&action=join&secToken=###SECTOKEN###'><li class='dienste_button'>###NAME### <img src='res/add.png' /></li></a>";
|
|
$linkLeave = "<a href='?main=###PAGEMAIN###&termin=".$row["ID"]."&action=leave&secToken=###SECTOKEN###'><li class='dienste_button'>###NAME### <img src='res/cancel.png' /></li></a>";
|
|
if (intVal($row["naheDienste"])>0) {
|
|
$replace["###DIENSTE.LIST.ENTRY.ALLOWED###"] = "<img src='res/warn.png' />";
|
|
} else {
|
|
$replace["###DIENSTE.LIST.ENTRY.ALLOWED###"] = "<img src='res/check.png' />";
|
|
}
|
|
$replace["###DIENSTE.LIST.ENTRY.ACTION###"] = "";
|
|
$replace["###DIENSTE.LIST.ENTRY.ACTIONNAME###"] = "";
|
|
if ($row["vorbei"]=="0" && $row["Ausgelost"]=="0") {
|
|
// Noch nicht ausgelost
|
|
if ("1"==$row["Status"] || "2"==$row["Status"]) {
|
|
// Abmeldung
|
|
$replace["###DIENSTE.LIST.ENTRY.ACTION###"] = tplReplMarker($linkLeave, "###NAME###", "Abmelden");
|
|
} else if (intVal($row["naheDienste"])==0 || lgnCheckRight($mysqli, $terminPrivileges)) {
|
|
// Anmeldung
|
|
$replace["###DIENSTE.LIST.ENTRY.ACTION###"] = tplReplMarker($linkJoin, "###NAME###", "Anmelden");
|
|
}
|
|
} else if ($row["vorbei"]=="0") {
|
|
// Auslosung bereits geschehen, Dienst aber noch nicht gestartet
|
|
if ("1"==$row["Status"] || "2"==$row["Status"]) {
|
|
// Dabei: Abmeldung möglich
|
|
$replace["###DIENSTE.LIST.ENTRY.ACTION###"] = tplReplMarker($linkLeave, "###NAME###", "Abmelden");
|
|
} else if (("0"==$row["MaxTeilnehmer"] || $row["numDabei"]<$row["MaxTeilnehmer"]) && (intVal($row["naheDienste"])==0 || lgnCheckRight($mysqli, $terminPrivileges))) {
|
|
// Nicht dabei und Plätze frei: Mitmachen möglich
|
|
$replace["###DIENSTE.LIST.ENTRY.ACTION###"] = tplReplMarker($linkJoin, "###NAME###", "Mitmachen");
|
|
} else if ($row["Status"]==null && (intVal($row["naheDienste"])==0 || lgnCheckRight($mysqli, $terminPrivileges))) {
|
|
// Nicht auf Warteliste und keine Plätze frei: Warteliste möglich
|
|
$replace["###DIENSTE.LIST.ENTRY.ACTION###"] = tplReplMarker($linkJoin, "###NAME###", "Warteliste eintragen");
|
|
}
|
|
}
|
|
} else {
|
|
$reason = in_array($row["abID"], $abteilungenIDs) ? "Kein Mitglied der Gruppe: ".$row["pgName"] : "Falsche Abteilung: ".$row["abName"];
|
|
$replace["###DIENSTE.LIST.ENTRY.ALLOWED###"] = "<img src='res/uncheck.png' title='".$reason."' />";
|
|
$replace["###DIENSTE.LIST.ENTRY.ACTION###"] = "";
|
|
}
|
|
if ("2" == $row["Status"] || lgnCheckRight($mysqli, $terminPrivileges)) {
|
|
$replace["###DIENSTE.LIST.ENTRY.ACTION###"].= "<a href='?main=###PAGEMAIN###&termin=".$row["ID"]."&action=add&secToken=###SECTOKEN###'>"
|
|
."<li class='dienste_button'>Teilnehmer hinzufügen <img src='res/add.png' /></li></a> ";
|
|
}
|
|
// Kandidatenliste
|
|
$cqry = "SELECT p.*,GROUP_CONCAT(a.Kürzel) ausb, tln.Status "
|
|
."FROM Terminteilnahmen tln "
|
|
."LEFT JOIN Personal p ON p.ID=tln.Personal "
|
|
."LEFT JOIN link_Ausbildungen_Personal l ON l.Personal=p.ID LEFT JOIN Ausbildungen a ON a.ID=l.Ausbildungen "
|
|
."WHERE tln.Termin = '".$row["ID"]."' GROUP BY p.ID ORDER BY tln.Status DESC, p.Pool DESC, p.Nachnamen ASC, a.ID ASC";
|
|
$cres = $mysqli->query($cqry);
|
|
$chosen = array();
|
|
$want = array();
|
|
$responsibles = array();
|
|
if ($cres) {
|
|
while ($cand = $cres->fetch_assoc()) {
|
|
$name = substr($cand["Vornamen"],0,1).". ".$cand["Nachnamen"];
|
|
$line = $name;
|
|
$ausb = explode(",", $cand["ausb"]);
|
|
$feats = "";
|
|
if (in_array("KF", $ausb)) { //Kraftfahrer
|
|
//$feats.= "🚒"; // <- There is a unicode fire engine in between the quotes
|
|
$feats.= "<img src='res/truck.png' />";
|
|
}
|
|
/*if (in_array("CU", $ausb)) { //Corono Unterweisung
|
|
$feats.= "☣️"; // <- There is a unicode biohazard symbol in between the quotes
|
|
}*/
|
|
if ($feats != "") {
|
|
$line.= " "./*"(".*/$feats/*.")"*/;
|
|
}
|
|
|
|
$line = "<a href='?main=###PAGEMAIN###&termin=".$row["ID"]."&action=edit&target=".$cand["ID"]."&secToken=###SECTOKEN###'><li>".$line." <img src='res/edit.png' /></li></a>";
|
|
switch ($cand["Status"]) {
|
|
case "2":
|
|
$responsibles[] = $name;
|
|
$chosen[] = "<b>".$line."</b>";
|
|
break;
|
|
case "1":
|
|
$chosen[] = $line;
|
|
break;
|
|
case "0":
|
|
$want[] = $line;
|
|
break;
|
|
}
|
|
}
|
|
$cres->close();
|
|
} else {
|
|
addError("mysql", $mysqli->error);
|
|
}
|
|
$replace["###DIENSTE.LIST.ENTRY.RESPONSIBLES###"] = implode(" / ", $responsibles);
|
|
$candidates = "";
|
|
if (lgnCheckRight($mysqli, $terminPrivileges) || 2 == $row["Status"]) {
|
|
$candidates = tplExtrSection($entry, "###DIENSTE.LIST.ENTRY.CANDIDATES###");
|
|
if (count($want)>0) {
|
|
$candidates = tplReplMarker($candidates, "###DIENSTE.LIST.ENTRY.CANDIDATES.WANT###", implode("", $want));
|
|
} else {
|
|
$candidates = tplReplSection($candidates, "###DIENSTE.LIST.ENTRY.CANDIDATES.HASJOIN###", "");
|
|
}
|
|
if (count($chosen)>0) {
|
|
$candidates = tplReplMarker($candidates, "###DIENSTE.LIST.ENTRY.CANDIDATES.CHOSEN###", implode("", $chosen));
|
|
} else {
|
|
$candidates = tplReplSection($candidates, "###DIENSTE.LIST.ENTRY.CANDIDATES.HASREST###", "");
|
|
}
|
|
}
|
|
$entry = tplReplSection($entry, "###DIENSTE.LIST.ENTRY.CANDIDATES###", $candidates);
|
|
|
|
//Anmeldung
|
|
if ((!in_array($row["abID"], $abteilungenIDs) || !in_array($row["Personalgruppe"], $gruppenIDs)) && !lgnCheckRight($mysqli, $terminPrivileges)) {
|
|
// Keine Anmeldung zugelassen, da falsche Gruppe
|
|
$answer = "FOREIGN";
|
|
$entry = tplReplSection($entry, "###DIENSTE.LIST.ENTRY.REGISTRATION###", "");
|
|
} else if ($row["MaxTeilnehmer"]===null) {
|
|
// Es gibt gar keine Anmeldung, der Dienst ist für alle offen
|
|
$entry = tplReplSection($entry, "###DIENSTE.LIST.ENTRY.CANDIDATES.HASREST###", "");
|
|
$entry = tplReplSection($entry, "###DIENSTE.LIST.ENTRY.CANDIDATES.HASJOIN###", "");
|
|
$entry = tplReplSection($entry, "###DIENSTE.LIST.ENTRY.REGISTRATION###", "");
|
|
$answer = "NOLOTTERY";
|
|
} else {
|
|
// Anmeldung ist möglich bzw. erwünscht
|
|
if ($row["MaxTeilnehmer"]=="0") {
|
|
// Gibt aber keine Beschränkung, daher Warteliste ausblenden
|
|
$entry = tplReplSection($entry, "###DIENSTE.LIST.ENTRY.CANDIDATES.HASJOIN###", "");
|
|
}
|
|
$freePlaces = intVal($row["MaxTeilnehmer"]) - intVal($row["numDabei"]);
|
|
if ("1"==$row["Ausgelost"] && $freePlaces>0) {
|
|
$entry = tplReplMarker($entry, "###DIENSTE.LIST.ENTRY.FREE.NUM###", $freePlaces);
|
|
} else {
|
|
$entry = tplReplSection($entry, "###DIENSTE.LIST.ENTRY.FREE###", "");
|
|
}
|
|
|
|
if (2 == $row["Status"]) {
|
|
$answer = "LEAD";
|
|
} else if (1 === $row["Status"] || (0 === $row["Status"] && 0 === $row["MaxTeilnehmer"])) {
|
|
// TODO: Teilnehmer bei Diensten ohne Begrenzung auf Dabei setzen, nicht auf Will
|
|
$answer = "CAN";
|
|
} else if (0 === $row["Status"] && 1 === $row["Ausgelost"]) {
|
|
$answer = "WAIT";
|
|
} else if (0 === $row["Status"] && 0 === $row["Ausgelost"]) {
|
|
$answer = "WANTS";
|
|
} else {
|
|
$answer = "ADD";
|
|
}
|
|
}
|
|
$entry = tplReplSection($entry, "###DIENSTE.LIST.ENTRY.COMES", tplExtrSection($entry, "###DIENSTE.LIST.ENTRY.COMES.".$answer."###"));
|
|
$dnst_list_entry.= tplReplMarkerArray($entry, $replace);
|
|
}
|
|
$stmt->close();
|
|
} else {
|
|
$dnst_list_entry = $mysqli->error;
|
|
}
|
|
|
|
$tpl["list"] = tplReplSection($tpl["list"], "###DIENSTE.LIST.ENTRY###", $dnst_list_entry);
|
|
}
|
|
|
|
$tpl["main"] = tplReplSection($tpl["main"], "###DIENSTE.SHOW###", $tpl["show"]);
|
|
$tpl["main"] = tplReplSection($tpl["main"], "###DIENSTE.LIST###", $tpl["list"]);
|
|
$tpl["main"] = tplReplSection($tpl["main"], "###DIENSTE.LIST###", $tpl["list"]);
|
|
$output["main"] = $tpl["main"];
|
|
|
|
?>
|