function CountStaffOnLeave($roleID, $date) { //Assume no staff on leave to begin with. $countOfStaffOnLeave = 0; //Retrieve the date record from the database. $dateRecord = RetrieveDateRecordByDate($date); if ($dateRecord != NULL) { //Retrieve all approved absence bookings for this date. $dateID = $dateRecord[DATE_TABLE_DATE_ID]; $filter[APPR_ABS_BOOK_DATE_DATE_ID] = $dateID; $bookingsForDate = RetrieveApprovedAbsenceBookingDates($filter); if ($bookingsForDate != NULL) { //One or more bookings exist. itterate through them. foreach ($bookingsForDate as $bookingDate) { //Using the absence booking record, obtain the employee //record from the database $absenceBooking = RetrieveApprovedAbsenceBookingByID($bookingDate[APPR_ABS_BOOK_DATE_ABS_BOOK_ID]); if ($absenceBooking != NULL) { $staffMember = RetrieveEmployeeByID($absenceBooking[APPR_ABS_EMPLOYEE_ID]); //----------------------------------------------------- // Check to see if this member of staff performs the // same role as the role of the employee requesting this // leave. If so, add one to the count of staff on leave. //----------------------------------------------------- if ($staffMember[EMP_COMPANY_ROLE] == $roleID) { $countOfStaffOnLeave = $countOfStaffOnLeave + 1; } } else { error_log("Unknown absence booking id of " . $bookingDate[APPR_ABS_BOOK_DATE_ABS_BOOK_ID]); } } } } else { error_log("Unknown date of {$date}"); } return $countOfStaffOnLeave; }
<?php include 'sessionmanagement.php'; $request = array(); if ($_GET["ID"] != NULL) { $request = RetrieveApprovedAbsenceBookingByID($_GET["ID"]); } if (isset($_POST["cancel"])) { $url = "Location:adminApprovedAbsenceBookings.php"; header($url); } if (isset($_POST["update"])) { DeleteApprovedAbsenceBooking($_GET["ID"]); $success = CreateApprovedAbsenceBooking($_POST["employeeID"], $_POST["startDate"], $_POST["endDate"], $_POST["absenceType"]); if ($success) { $url = "Location:adminApprovedAbsenceBookings.php"; header($url); } } function GenerateEmployeeSelect($request) { $employees = RetrieveEmployees(); if ($employees != NULL) { echo '<select class="form-control" name="employeeID">'; foreach ($employees as $Employee) { if ($Employee[EMP_ID] == $request[APPR_ABS_EMPLOYEE_ID]) { echo '<option selected="selected" ' . 'value="' . $Employee[EMP_ID] . '">' . $Employee[EMP_NAME] . '</option>'; } else { echo '<option value="' . $Employee[EMP_ID] . '">' . $Employee[EMP_NAME] . '</option>'; } }
function DeleteApprovedAbsenceBooking($ID) { $result = 0; $approvedAbsenceBooking = RetrieveApprovedAbsenceBookingByID($ID); if ($approvedAbsenceBooking != NULL) { $sql = "DELETE FROM approvedAbsenceBookingTable WHERE approvedAbsenceBookingID=" . $ID . ";"; $result = performSQL($sql); $filter[APPR_ABS_BOOK_DATE_ABS_BOOK_ID] = $ID; $approvedAbsenceBookingDates = RetrieveApprovedAbsenceBookingDates($filter); foreach ((array) $approvedAbsenceBookingDates as $approvedAbsenceBookingDate) { DeleteApprovedAbsenceBookingDate($approvedAbsenceBookingDate[APPR_ABS_BOOK_DATE_ID]); } } GenerateStatus(true, "Record successfully deleted."); return $result; }
function UpdateApprovedAbsenceBookingDate($fields) { //-------------------------------------------------------------------------------- // Validate Input parameters //-------------------------------------------------------------------------------- $inputIsValid = TRUE; $validID = false; $countOfFields = 0; foreach ($fields as $key => $value) { if ($key == APPR_ABS_BOOK_DATE_ID) { $record = RetrieveApprovedAbsenceBookingDateByID($value); if ($record != NULL) { $validID = true; $countOfFields++; } } else { if ($key == APPR_ABS_BOOK_DATE_DATE_ID) { $countOfFields++; $record = RetrieveDateByID($value); if ($record == NULL) { error_log("Invalid APPR_ABS_BOOK_DATE_DATE_ID passed to " . "UpdateApprovedAbsenceBookingDate. Value=" . $value); $inputIsValid = FALSE; } } else { if ($key == APPR_ABS_BOOK_DATE_ABS_BOOK_ID) { $countOfFields++; $record = RetrieveApprovedAbsenceBookingByID($value); if ($record == NULL) { error_log("Invalid APPR_ABS_BOOKING_ID passed to " . "UpdateApprovedAbsenceBookingDate. Value=" . $value); $inputIsValid = FALSE; } } else { error_log("Invalid field passed to UpdateApprovedAbsenceBookingDate." . " {$key}=" . $key); $inputIsValid = FALSE; } } } } if (!$validID) { error_log("No valid ID supplied in call to UpdateApprovedAbsenceBookingDate."); $inputIsValid = FALSE; } if ($countOfFields < 2) { error_log("Insufficent fields supplied in call to UpdateApprovedAbsenceBookingDate."); $inputIsValid = FALSE; } //-------------------------------------------------------------------------------- // Only attempt to update a record in the database if the input parameters are ok. //-------------------------------------------------------------------------------- $success = false; if ($inputIsValid) { $success = performSQLUpdate(APPROVED_ABSENCE_BOOKING_DATE, APPR_ABS_BOOK_DATE_ID, $fields); } return $success; }