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; }
<?php include_once "../templates/headerA.php"; ?> <style type="text/css"> <?php include_once $root . "/templates/stylesheetsIE9.php"; ?> </style> <?php include_once "../templates/headerB.php"; include_once "../templates/bodyA.php"; //passwortprüfung: if (checkPass($benutzername, $passwort, $unterkunft_id, $link)) { $betten = getBetten($unterkunft_id, $zimmer_id, $link); $bettenKinder = getBettenKinder($unterkunft_id, $zimmer_id, $link); $linkName = getLink($unterkunft_id, $zimmer_id, $link); $haustiere = getHaustiere($unterkunft_id, $zimmer_id, $link); ?> <div class="panel panel-default"> <div class="panel-heading"> <h2><?php echo getUebersetzung("Zimmer/Appartement/Wohnung/etc. bearbeiten", $sprache, $link); ?> </h2> </div> <div class="panel-body"> <form action="./zimmerAendernDurchfuehren.php" method="post" name="zimmerAendern" id="zimmerAendern" target="_self" class="form-horizontal">
?> <tr class="standardSchrift"> <td><?php echo getUebersetzung("Anzahl Erwachsene", $sprache, $link); ?> </td> <td> <select name="anzahlErwachsene" id="anzahlErwachsene"> <?php //es können nur soviele ausgewählt werden wie betten im zimmer //vorhanden sind: $anzahlBetten = getBetten($unterkunft_id, $zimmer_id, $link); $anzahlBetten += 1; $anzahlBetten -= 1; //integer! $anzahlKinderBetten = getBettenKinder($unterkunft_id, $zimmer_id, $link); $st = 1; if ($anzahlKinderBetten > 0) { $st = 0; } for ($i = $st; $i <= $anzahlBetten; $i++) { ?> <option value="<?php echo $i; ?> " <?php if ($i == 2) { echo "selected"; } ?> ><?php