dieser seite muss übergeben werden: Unterkunft PK_ID ($unterkunft_id) Zimmer PK_ID ($zimmer_id) Datum: $vonTag,$vonMonat,$vonJahr $bisTag,$bisMonat,$bisJahr die seite verwendet anfrage/send.php um das ausgefüllte formular zu versenden */ //alle reservierungen im angegebenen zeitraum entfernen, //auch jene die diesen zeitraum "Überschneiden": $vonDatum = parseDateFormular($vonTag, $vonMonat, $vonJahr); $bisDatum = parseDateFormular($bisTag, $bisMonat, $bisJahr); //alle eintraege in diesem zeitraum löschen: deleteReservationWithDate($zimmer_id, $vonDatum, $bisDatum, $link); $resu = getChildRooms($zimmer_id); if (!empty($resu)) { while ($d = mysqli_fetch_array($resu)) { $child = $d['PK_ID']; deleteReservationWithDate($child, $vonDatum, $bisDatum, $link); } } include_once "../../templates/headerA.php"; ?> <style type="text/css"> <?php include_once $root . "/templates/stylesheetsIE9.php"; ?> </style> <?php include_once "../../templates/headerB.php";
/** * @author coster * @date 30.9.06 * Hilfsfunktionen für die Gesamtübersicht */ function printResAdmin($zimmer_id, $i, $month, $year, $saAktiviert, $link) { global $unterkunft_id; if (getDayName($i, $month, $year) == "SA" && $saAktiviert) { $isSamstag = true; } else { $isSamstag = false; } $status = getStatus($zimmer_id, $i, $month, $year, $link); if (sizeof($status) < 1 && hasChildRooms($zimmer_id) && getPropertyValue(RES_HOUSE, $unterkunft_id, $link) == "true") { //if room is a parent, check if the child has another status: $childs = getChildRooms($zimmer_id); while ($c = mysqli_fetch_array($childs)) { $child_zi_id = $c['PK_ID']; $status = getStatus($child_zi_id, $i, $month, $year, $link); if (sizeof($status) > 0) { break; } } } ///////////////////////////////////////////////////////// //urlauberwechsel genau an diesem tag: ///////////////////////////////////////////////////////// if (isset($status) && sizeof($status) > 1) { //an diesem tag ist ein urlauberwechsel: ?> <table border="0" cellspacing="0" cellpadding="0" width="100%"> <tr> <td class="<?php echo parseStatus($status[0], $isSamstag); ?> " align="right" width="50%"></td> <td class="<?php echo parseStatus($status[1], $isSamstag); ?> " align="right" width="50%"> </td> </tr> </table> <?php } else { if (isset($status) && sizeof($status) == 1) { //schauen ob der letzte tag halb-frei ist: $nTag = $i + 1; $nMonat = $month; $nJahr = $year; $anzahlTage = getNumberOfDays($month, $year); if ($nTag > $anzahlTage) { $nTag = 1; $nMonat = $month + 1; } //ende if tag zu gross if ($nMonat > 12) { $nMonat = 1; $nJahr = $year + 1; } //ende if monat zu gross $nStatus = getStatus($zimmer_id, $nTag, $nMonat, $nJahr, $link); if (sizeof($nStatus) < 1 && hasChildRooms($zimmer_id) && getPropertyValue(RES_HOUSE, $unterkunft_id, $link) == "true") { //if room is a parent, check if the child has another status: $childs = getChildRooms($zimmer_id); while ($c = mysqli_fetch_array($childs)) { $child_zi_id = $c['PK_ID']; $nStatus = getStatus($child_zi_id, $nTag, $nMonat, $nJahr, $link); if (sizeof($nStatus) > 0) { break; } } } //if (!(isset($nStatus)) && isset($status)){ if (sizeof($nStatus) == 0) { //am nächsten tag ist es frei: ?> <table border="0" cellspacing="0" cellpadding="0" width="100%"> <tr> <td class="<?php echo parseStatus($status[0], $isSamstag); ?> " align="right" width="50%"> </td> <td class="<?php echo parseStatus(0, $isSamstag); ?> " align="right" width="50%"></td> </tr> </table> <?php } else { //schauen ob der tag vorher frei ist: $vTag = $i - 1; $vMonat = $month; $vJahr = $year; if ($vTag < 1) { $vMonat = $month - 1; if ($vMonat < 1) { $vMonat = 12; $vJahr = $year - 1; } //ende if monat zu klein $vTag = getNumberOfDays($vMonat, $vJahr); } //ende if tag zu klein $vStatus = getStatus($zimmer_id, $vTag, $vMonat, $vJahr, $link); if (sizeof($vStatus) < 1 && hasChildRooms($zimmer_id) && getPropertyValue(RES_HOUSE, $unterkunft_id, $link) == "true") { //if room is a parent, check if the child has another status: $childs = getChildRooms($zimmer_id); while ($c = mysqli_fetch_array($childs)) { $child_zi_id = $c['PK_ID']; $vStatus = getStatus($child_zi_id, $vTag, $vMonat, $vJahr, $link); if (sizeof($vStatus) > 0) { break; } } } if (sizeof($vStatus) == 0) { //am vorherigen tag ist es frei: ?> <table border="0" cellspacing="0" cellpadding="0" width="100%"> <tr> <td class="<?php echo parseStatus(0, $isSamstag); ?> " align="right" width="50%"></td> <td class="<?php echo parseStatus($status[0], $isSamstag); ?> " align="right" width="50%"> </td> </tr> </table> <?php } else { ?> <?php } } //ende else schauen ob tag vorher frei } else { //tag ausgeben: ?> <?php } } //ende else tag ausgeben }
function getFreieZimmer($unterkunft_id, $anzahlErwachsene, $anzahlKinder, $anzahlZimmer, $haustiere, $vonTag, $vonMonat, $vonJahr, $bisTag, $bisMonat, $bisJahr, $link) { //leeres array erzeugen zum speichern der freien zimmer: $freieZimmer = array(); //variable zum zaehlen der erwachsenenBetten, kinderBetten, freie zimmer $bettenErw = 0; $bettenKin = 0; $freieZi = 0; //reservierungs-funktionen einbinden: include_once "../include/reservierungFunctions.php"; //zimmer-funktionen hinzufügen: include_once "../include/zimmerFunctions.php"; //properties hinzufügen: include_once "../include/propertiesFunctions.php"; //alle zimmer der unterkunft auslesen und prüfen ob es im angegebenen zeitraum noch frei ist: $query = "\n\t\t\tSELECT \n\t\t\tPK_ID\t\t\n\t\t\tFROM\n\t\t\tRezervi_Zimmer\n\t\t\tWHERE\n\t\t\tFK_Unterkunft_ID = '{$unterkunft_id}'\t\n\t\t\tORDER BY\n\t\t\tZimmernr\n\t\t"; $res = mysqli_query($link, $query); while ($d = mysqli_fetch_array($res)) { //zimmer-id holen: $zi_id = $d["PK_ID"]; //wenn die suche nach erwachsenen oder kindern nach zimmern gefiltert //werden soll (z. b. ferienhäuser nur mit bestimmter personenanzahl): //dont check it if the accomodation has rooms and subrooms: if (!hasParentRooms($unterkunft_id)) { if (getPropertyValue(SUCHFILTER_ZIMMER, $unterkunft_id, $link) == "true") { if ($anzahlErwachsene > -1) { if (getBetten($unterkunft_id, $zi_id, $link) < $anzahlErwachsene) { continue; } } if ($anzahlKinder > -1) { if (getBettenKinder($unterkunft_id, $zi_id, $link) < $anzahlKinder) { continue; } } } } if (!isRoomTaken($zi_id, $vonTag, $vonMonat, $vonJahr, $bisTag, $bisMonat, $bisJahr, $link)) { //zimmer ist noch frei - dem array hinzufügen: $freieZimmer[] = $zi_id; $freieZi++; //zaehlen wie viele erwachsene und kinder platz haben: $bettenErw = $bettenErw + getBetten($unterkunft_id, $zi_id, $link); //echo("anzahlBetten insgesamt Erw =".$bettenErw."<br/>"); $bettenKin = $bettenKin + getBettenKinder($unterkunft_id, $zi_id, $link); //echo("anzahlBetten insgesamt Kin =".$bettenKin."<br/>"); } } if ($anzahlErwachsene > -1) { //checken ob genug betten fuer erwachsene frei sind: if ($anzahlErwachsene > $bettenErw) { //es sind nicht genug betten fuer erwachsene frei! $freieZimmer[0] = -1; } } if ($anzahlKinder > -1) { //wieviele betten sind noch frei wenn ich die erwachsenen reingelegt habe? if ($anzahlErwachsene > -1) { $insgesamtBettenFrei = $bettenErw + $bettenKin - $anzahlErwachsene; } else { $insgesamtBettenFrei = $bettenErw + $bettenKin; } //checken ob genug betten fuer kinder frei sind: if ($anzahlKinder > $insgesamtBettenFrei) { //echo("nicht genug betten fuer kinder!<br/>"); $freieZimmer[0] = -2; } } if ($anzahlZimmer > -1) { //checken ob genug zimmer insgesamt frei sind: if ($anzahlZimmer > $freieZi) { $freieZimmer[0] = -3; } } //check if a parent-child relation exists and remove the parent if the child is not free: $freeRooms = array(); if (count($freieZimmer) > 0 && hasParentRooms($unterkunft_id) && getPropertyValue(RES_HOUSE, $unterkunft_id, $link) == "true") { global $root; include_once $root . "/include/zimmerFunctions.php"; foreach ($freieZimmer as $freeRoom) { $count = 0; $count2 = 0; //is the room a parent room? if (hasChildRooms($freeRoom)) { //the room is a parent room, check if ALL the children are free rooms $childs = getChildRooms($freeRoom); while ($c = mysqli_fetch_array($childs)) { $count2++; for ($i = 0; $i < count($freieZimmer); $i++) { if ($freieZimmer[$i] == $c['PK_ID']) { $count++; } } } if ($count == $count2) { $freeRooms[] = $freeRoom; } } else { $freeRooms[] = $freeRoom; } } } else { if (count($freieZimmer) > 0 && hasParentRooms($unterkunft_id) && getPropertyValue(RES_HOUSE, $unterkunft_id, $link) != "true") { global $root; include_once $root . "/include/zimmerFunctions.php"; include_once $root . "/include/reservierungFunctions.php"; foreach ($freieZimmer as $freeRoom) { $count = 0; $count2 = 0; //is the room a parent room? if (hasChildRooms($freeRoom)) { //the room is a parent room, check if ALL the children are occupied: $childs = getChildRooms($freeRoom); $allOcc = true; while ($c = mysqli_fetch_array($childs)) { $chid = $c['PK_ID']; //if the child is not occupied -> set to false! $taken = isRoomTaken($chid, $vonTag, $vonMonat, $vonJahr, $bisTag, $bisMonat, $bisJahr, $link); if (!$taken) { $allOcc = false; break; } } if (!$allOcc) { $freeRooms[] = $freeRoom; } } else { $freeRooms[] = $freeRoom; } } } else { $freeRooms = $freieZimmer; } } //checken ob genug zimmer insgesamt frei sind: if (count($freeRooms) < 1) { $freeRooms[0] = -3; } return $freeRooms; }
function insertAnfrage($zimmer_id, $gast_id, $vonTag, $vonMonat, $vonJahr, $bisTag, $bisMonat, $bisJahr, $status, $anzahlErwachsene, $anzahlKinder, $haustiere, $pension, $link) { if ($vonMonat < 10 && strlen($vonMonat) <= 1) { $vonMonat = "0" . $vonMonat; } if ($bisMonat < 10 && strlen($bisMonat) <= 1) { $bisMonat = "0" . $bisMonat; } if ($vonTag < 10 && strlen($vonTag) <= 1) { $vonTag = "0" . $vonTag; } if ($bisTag < 10 && strlen($bisTag) <= 1) { $bisTag = "0" . $bisTag; } $vonDatum = $vonJahr . "-" . $vonMonat . "-" . $vonTag; $bisDatum = $bisJahr . "-" . $bisMonat . "-" . $bisTag; //get the current timestamp in mysql format: $timestamp = generateMySqlTimestamp(); //daten eintragen: $query = "insert into \n\t\t\t\tRezervi_Reservierung\n\t\t\t\t(FK_Zimmer_ID,FK_Gast_ID,Datum_von,Datum_bis,Status,Erwachsene,Kinder,Pension,ANFRAGEDATUM)\n\t\t\t\tVALUES\t\t\t\t\n\t\t\t\t('{$zimmer_id}','{$gast_id}','{$vonDatum}','{$bisDatum}','{$status}','{$anzahlErwachsene}','{$anzahlKinder}','{$pension}','{$timestamp}')\n\t\t \t "; $res = mysqli_query($link, $query); if (!$res) { echo "die Anfrage {$query} scheitert"; } //also insert reservations of child rooms, if exists: global $root; include_once $root . '/include/zimmerFunctions.php'; $res = getChildRooms($zimmer_id); if (!empty($res)) { while ($d = mysqli_fetch_array($res)) { insertAnfrage($d['PK_ID'], $gast_id, $vonTag, $vonMonat, $vonJahr, $bisTag, $bisMonat, $bisJahr, $status, $anzahlErwachsene, $anzahlKinder, $haustiere, $pension, $link); } } }
</tr> </table> <?php } else { //zuerst mal prüfen ob datum und so passt: //variableninitialisierungen: $datumVon = parseDateFormular($vonTag, $vonMonat, $vonJahr); $datumBis = parseDateFormular($bisTag, $bisMonat, $bisJahr); //wenn nicht ok: //1. zimmer ist zu dieser zeit belegt: $taken = false; if (!isset($zimmer_ids)) { $taken = isRoomTaken($zimmer_id, $vonTag, $vonMonat, $vonJahr, $bisTag, $bisMonat, $bisJahr, $link); //if the room is a parent room, check if the child rooms are taken: if (!$taken && hasChildRooms($zimmer_id)) { $childs = getChildRooms($zimmer_id); while ($c = mysqli_fetch_array($childs)) { $child_zi_id = $c['PK_ID']; $taken = isRoomTaken($child_zi_id, $vonTag, $vonMonat, $vonJahr, $bisTag, $bisMonat, $bisJahr, $link); if ($taken) { break; } } } } if ($taken) { ?> <table border="0" cellpadding="0" cellspacing="0" class="tableColor"> <tr> <td><p class="standardSchriftBold"><?php echo getUebersetzung("Zu dieser Zeit ist es belegt!", $sprache, $link);
function showMonth($month, $year, $unterkunft_id, $zimmer_id, $sprache, $saAktiviert, $link) { //anzahl der tage des monats: $anzahlTage = getNumberOfDays($month, $year); ?> <?php for ($i = 1; $i <= $anzahlTage; $i++) { $res_id = getReservierungID($zimmer_id, $i, $month, $year, $link); $statusString = getStatusString($zimmer_id, $i, $month, $year, $saAktiviert, $link); $gast_id = -1; ?> <div class="row"> <!-- wochentag anzeigen --> <div class="col-sm-1"> <label class="control-label"> <?php echo getUebersetzung(getDayName($i, $month, $year), $sprache, $link); ?> </label> </div> <!-- datum anzeigen --> <div class="col-sm-1 <?php echo $statusString; ?> "> <label class="control-label"> <?php printResAdmin($zimmer_id, $i, $month, $year, $saAktiviert, $link); ?> </label> </div> <!-- gast anzeigen --> <div class="col-sm-3"> <?php if ($statusString != "frei") { ?> <?php //gast-id auslesen: //$gast_id = getReservierungGastID($zimmer_id,$i,$month,$year,$link); $gast_ids = getReservierungGastIDs($zimmer_id, $i, $month, $year, $link); while ($h = mysqli_fetch_array($gast_ids)) { $gast_id = $h["FK_Gast_ID"]; //if child rooms available, check also childs: if (($gast_id == 1 || empty($gast_id)) && getPropertyValue(RES_HOUSE, $unterkunft_id, $link) == "true" && hasChildRooms($zimmer_id)) { //if room is a parent, check if the child has another status: $childs = getChildRooms($zimmer_id); while ($c = mysqli_fetch_array($childs)) { $child_zi_id = $c['PK_ID']; $gast_id = getReservierungGastID($child_zi_id, $i, $month, $year, $link); if ($gast_id != 1 && $gast_id != "") { break; } } } //gast-namen ausgeben: if ($gast_id != 1 && $gast_id != "") { ?> <a href="./gastInfo/index.php?gast_id=<?php echo $gast_id; ?> &zimmer_id=<?php echo $zimmer_id; ?> &jahr=<?php echo $year; ?> &monat=<?php echo $month; ?> "> <?php echo getGuestNachname($gast_id, $link); ?> </a> <?php echo ", "; echo getGuestOrt($gast_id, $link); echo ", EW " . getErwachsene($res_id, $link) . ", K " . getKinder($res_id, $link) . ", " . getPension($res_id, $link); } else { if ($gast_id == "") { } else { echo getUebersetzung("anonymer Gast", $sprache, $link); } } } //ende while gast ids } else { echo " "; } ?> </div> </div> <?php } //ende for ?> <?php }
function printResAdminAJAX($zimmer_id, $i, $month, $year, $saAktiviert, $link, $unterkunft_id) { //global $unterkunft_id; $response = ""; $status = getStatus($zimmer_id, $i, $month, $year, $link); if (sizeof($status) < 1 && hasChildRooms($zimmer_id) && getPropertyValue(RES_HOUSE, $unterkunft_id, $link) == "true") { //if room is a parent, check if the child has another status: $childs = getChildRooms($zimmer_id); while ($c = mysqli_fetch_array($childs)) { $child_zi_id = $c['PK_ID']; $status = getStatus($child_zi_id, $i, $month, $year, $link); if (sizeof($status) > 0) { break; } } } if (getDayName($i, $month, $year) == "SA" && $saAktiviert) { $isSamstag = true; } else { $isSamstag = false; } if (isset($status) && sizeof($status) > 1) { //an diesem tag ist ein urlauberwechsel: $response .= "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" width=\"100%\">"; $response .= "<tr>"; $response .= "<td class=\"" . parseStatus($status[0], $isSamstag) . "\" align=\"right\" width=\"50%\">"; $response .= $i; $response .= "</td>"; $response .= "<td class=\"" . parseStatus($status[1], $isSamstag) . "\" align=\"right\" width=\"50%\"> "; $response .= "</td>"; $response .= "</tr>"; $response .= "</table>"; } else { if (isset($status) && sizeof($status) == 1) { //schauen ob der letzte tag halb-frei ist: $nTag = $i + 1; $nMonat = $month; $nJahr = $year; $anzahlTage = getNumberOfDays($month, $year); if ($nTag > $anzahlTage) { $nTag = 1; $nMonat = $month + 1; } //ende if tag zu gross if ($nMonat > 12) { $nMonat = 1; $nJahr = $year + 1; } //ende if monat zu gross $nStatus = getStatus($zimmer_id, $nTag, $nMonat, $nJahr, $link); //echo("nächster Tag: ");var_dump($nStatus); if (sizeof($nStatus) < 1 && getPropertyValue(RES_HOUSE, $unterkunft_id, $link) == "true" && hasChildRooms($zimmer_id)) { //if room is a parent, check if the child has another status: $childs = getChildRooms($zimmer_id); while ($c = mysqli_fetch_array($childs)) { $child_zi_id = $c['PK_ID']; $nStatus = getStatus($child_zi_id, $nTag, $nMonat, $nJahr, $link); if (sizeof($nStatus) > 0) { break; } } } if (sizeof($nStatus) == 0) { $response .= "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" width=\"100%\">"; $response .= "<tr>"; $response .= "<td class=\"" . parseStatus($status[0], $isSamstag) . "\" align=\"right\" width=\"50%\">"; $response .= "</td>"; $response .= "<td class=\"frei\" align=\"right\" width=\"50%\"> "; $response .= $i; $response .= "</td>"; $response .= "</tr>"; $response .= "</table>"; } else { //schauen ob der tag vorher frei ist: $vTag = $i - 1; $vMonat = $month; $vJahr = $year; if ($vTag < 1) { $vMonat = $month - 1; if ($vMonat < 1) { $vMonat = 12; $vJahr = $year - 1; } //ende if monat zu klein $vTag = getNumberOfDays($vMonat, $vJahr); } //ende if tag zu klein $vStatus = getStatus($zimmer_id, $vTag, $vMonat, $vJahr, $link); if (sizeof($vStatus) < 1 && hasChildRooms($zimmer_id) && getPropertyValue(RES_HOUSE, $unterkunft_id, $link) == "true") { //if room is a parent, check if the child has another status: $childs = getChildRooms($zimmer_id); while ($c = mysqli_fetch_array($childs)) { $child_zi_id = $c['PK_ID']; $vStatus = getStatus($child_zi_id, $vTag, $vMonat, $vJahr, $link); if (sizeof($vStatus) > 0) { break; } } } if (sizeof($vStatus) == 0) { //am vorherigen tag ist es frei: $response .= "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" width=\"100%\">"; $response .= "<tr>"; $response .= "<td class=\"frei\" align=\"right\" width=\"50%\">"; $response .= $i; $response .= "</td>"; $response .= "<td class=\"" . parseStatus($status[0], $isSamstag) . "\" align=\"right\" width=\"50%\"> "; $response .= "</td>"; $response .= "</tr>"; $response .= "</table>"; } else { $response .= $i; } } //ende else schauen ob tag vorher frei } else { //tag ausgeben: $response .= $i; } } //ende else tag ausgeben return $response; }