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
}
示例#2
0
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
}