function isWeekDay($date) { $day = findDayFromDate($date); switch ($day) { // return false for saturday/sunday case "Sat": case "Sun": return false; break; // otherwise return true // otherwise return true default: return true; break; } // switch }
function deleteRecurringBooking($conn, $inputstring) { echo "<p id='log'>"; try { // input string is of form "bookingid,resource,bookedbyid" // so this needs to be exploded into its constituent parts $str_explode = explode(",", $inputstring); $bookingid = $str_explode[0]; $resource = $str_explode[1]; $bookedbyid = $str_explode[2]; // first grabs information from recurringbookings record before deleting it $sqlGetBookings = "SELECT * FROM RecurringBookings\n WHERE BookingID={$bookingid}"; $resultGetBookings = mysqli_query($conn, $sqlGetBookings); while ($row = mysqli_fetch_assoc($resultGetBookings)) { $startdate = $row["StartDate"]; $enddate = $row["EndDate"]; $recurday = $row["RecurDay"]; $recurperiod = $row["RecurPeriod"]; $isweekly = $row["isWeekly"]; $isbiweekly = $row["isBiweekly"]; // gets whether booking is multiple periods or not if ($row["isMultiplePeriods"] == 1) { $ismultipleperiods = true; } else { $ismultipleperiods = false; } // else } // while // creates sql statement to delete record from recurringbookings $sqlDeleteFromBookings = "DELETE FROM RecurringBookings\n WHERE BookingID={$bookingid}"; // deletes from recurringbookings $resultDeleteFromBookings = mysqli_query($conn, $sqlDeleteFromBookings); if (!$resultGetBookings) { throw new Exception("Error deleting record from recurring bookings table<br>"); } // if // sets today date $today = date("Ymd"); // initialise current date $currentdate = $today; // create counter for number of records deleted $counter = 0; // Loops through each day between now and end date while (strtotime($currentdate) <= strtotime($enddate)) { // If booking is multiple periods if ($ismultipleperiods) { $periodsselected = []; // Creates an array of all selected periods for ($i = 0; $i < strlen($recurperiod); $i++) { array_push($periodsselected, $recurperiod[$i]); } // for // now deletes each period one by one using array foreach ($periodsselected as $p) { // if current day is the correct day if (findDayFromDate($currentdate) == $recurday) { $sqlSelectRecordByDate = "SELECT * FROM {$resource}\n WHERE BookingDate={$currentdate}\n AND BookedByID={$bookedbyid}\n AND BookingPeriod={$p}"; $resultSelectRecordByDate = mysqli_query($conn, $sqlSelectRecordByDate); // if this query returns a record if (mysqli_num_rows($resultSelectRecordByDate) > 0) { // delete it $sqlDeleteRecordByDate = "DELETE FROM {$resource}\n WHERE BookingDate={$currentdate}\n AND BookedByID={$bookedbyid}\n AND BookingPeriod={$p}"; $resultDeleteRecordByDate = mysqli_query($conn, $sqlDeleteRecordByDate); if (!$resultDeleteRecordByDate) { echo "Problem deleting record on date {$currentdate}<br>" . mysqli_error($conn) . "<br>"; } else { $counter++; } // else } // if } // if } // foreach } else { // if current day is the correct day if (findDayFromDate($currentdate) == $recurday) { $sqlSelectRecordByDate = "SELECT * FROM {$resource}\n WHERE BookingDate={$currentdate}\n AND BookedByID={$bookedbyid}\n AND BookingPeriod={$recurperiod}"; $resultSelectRecordByDate = mysqli_query($conn, $sqlSelectRecordByDate); // if this query returns a record if (mysqli_num_rows($resultSelectRecordByDate) > 0) { // delete it $sqlDeleteRecordByDate = "DELETE FROM {$resource}\n WHERE BookingDate={$currentdate}\n AND BookedByID={$bookedbyid}\n AND BookingPeriod={$recurperiod}"; $resultDeleteRecordByDate = mysqli_query($conn, $sqlDeleteRecordByDate); if (!$resultDeleteRecordByDate) { echo "Problem deleting record on date {$currentdate}<br>" . mysqli_error($conn) . "<br>"; } // if } // if } // if } // else // increment current date $currentdate = strtotime("+1 day", strtotime($currentdate)); $currentdate = date("Ymd", $currentdate); } // while if ($counter > 1) { echo "Deleted " . $counter . " bookings<br>"; } else { echo "Deleted " . $counter . "booking<br>"; } // else } catch (Exception $e) { echo "<b>An error occured:</b><br>"; echo $e->getMessage(); } finally { echo "<br><button id='dismiss'>Dismiss</button>"; echo "</p>"; } // finally }