function CreateNewDatabase($destroyExistingDB = false, $createWithTestData = false) { if ($destroyExistingDB) { DropDB(); } CreateDB(); UseDB(); CreateDateTable(); CreatePublicHolidayTable(); CreateAbsenceTypeTable(); CreateCompanyRoleTable(); CreateEmployeeTable(); CreateApprovedAbsenceBookingTable(); CreateApprovedAbsenceDateTable(); CreateAdHocAbsenceRequestTable(); CreateMainVacationRequestTable(); // CreateDefaultRecords("admin", "*****@*****.**","Zaq12wsx","2015-01-01", 19); if ($createWithTestData) { $annualLeave = CreateAbsenceType("Annual Leave", 1, 1); $training = CreateAbsenceType("Training", 0, 1); $sickness = CreateAbsenceType("Sickness", 0, 0); $compasionate = CreateAbsenceType("Compasionate Leave", 0, 1); $cashier = CreateCompanyRole("Cashier", 3); $customerAdvisor = CreateCompanyRole("Customer Advisor", 2); $manager = CreateCompanyRole("Manager", 1); $filter[COMP_ROLE_NAME] = "Admin"; $results = RetrieveCompanyRoles($filter); $admin = $results[0]; $steveBrookstein = CreateEmployee("Steve Brookstein", "*****@*****.**", "Zaq12wsx", "2005-01-01", 20, NULL, $cashier[COMP_ROLE_ID], 0, 0); $shayneWard = CreateEmployee("Shane Ward", "*****@*****.**", "Zaq12wsx", "2006-01-01", 20, NULL, $cashier[COMP_ROLE_ID], 0, 0); $leonJackson = CreateEmployee("Leon Jackson", "*****@*****.**", "Zaq12wsx", "2008-01-01", 20, NULL, $manager[COMP_ROLE_ID], 0, 0); $alexandraBurke = CreateEmployee("Alexandra Burke", "*****@*****.**", "Zaq12wsx", "2009-01-01", 20, NULL, $cashier[COMP_ROLE_ID], 0, 0); $joeMcElderry = CreateEmployee("Joe McElderry", "*****@*****.**", "Zaq12wsx", "2010-01-01", 20, NULL, $customerAdvisor[COMP_ROLE_ID], 0, 0); $mattCardle = CreateEmployee("Matt Cardle", "*****@*****.**", "Zaq12wsx", "2011-01-01", 20, NULL, $customerAdvisor[COMP_ROLE_ID], 0, 0); $jamesArthur = CreateEmployee("James Arthur", "*****@*****.**", "Zaq12wsx", "2012-01-01", 20, NULL, $customerAdvisor[COMP_ROLE_ID], 0, 0); $samBailey = CreateEmployee("Sam Bailey", "*****@*****.**", "Zaq12wsx", "2013-01-01", 20, NULL, $customerAdvisor[COMP_ROLE_ID], 0, 0); $benHaenow = CreateEmployee("Ben Haenow", "*****@*****.**", "Zaq12wsx", "2014-01-01", 20, NULL, $manager[COMP_ROLE_ID], 0, 1); $dates = RetrieveDates(); if (count($dates) == 0) { date_default_timezone_set('UTC'); // Start date $date = '2015-01-01'; // End date $end_date = '2055-12-31'; while (strtotime($date) <= strtotime($end_date)) { CreateDate($date, NULL); $date = date("Y-m-d", strtotime("+1 day", strtotime($date))); } } $dateID = RetrieveDateIDByDate("2015-04-03"); $goodFriday = CreatePublicHoliday("Good Friday", $dateID); $dateID = RetrieveDateIDByDate("2015-04-06"); $easterMonday = CreatePublicHoliday("Easter Monday", $dateID); $dateID = RetrieveDateIDByDate("2015-05-04"); $earlyMay = CreatePublicHoliday("Early May Bank Holiday", $dateID); $dateID = RetrieveDateIDByDate("2015-05-25"); $springHoliday = CreatePublicHoliday("Spring Bank Holiday", $dateID); $dateID = RetrieveDateIDByDate("2015-08-31"); $summerHoliday = CreatePublicHoliday("Summer Bank Holiday", $dateID); $dateID = RetrieveDateIDByDate("2015-12-25"); $christmasDay = CreatePublicHoliday("Christmas Day", $dateID); $dateID = RetrieveDateIDByDate("2015-12-28"); $boxingDay = CreatePublicHoliday("Boxing Day (substitute day)", $dateID); $request = CreateMainVactionRequest($steveBrookstein[EMP_ID], "2015-01-10", "2015-01-15", "2015-02-10", "2015-02-15"); $request = CreateMainVactionRequest($shayneWard[EMP_ID], "2015-01-10", "2015-01-15", "2015-02-10", "2015-02-15"); $request = CreateMainVactionRequest($leonJackson[EMP_ID], "2015-01-10", "2015-01-15", "2015-02-10", "2015-02-15"); $request = CreateMainVactionRequest($alexandraBurke[EMP_ID], "2015-01-10", "2015-01-15", "2015-02-10", "2015-02-15"); $request = CreateMainVactionRequest($joeMcElderry[EMP_ID], "2015-01-10", "2015-01-15", "2015-02-10", "2015-02-15"); $request = CreateMainVactionRequest($jamesArthur[EMP_ID], "2015-01-10", "2015-01-15", "2015-02-10", "2015-02-15"); $request = CreateMainVactionRequest($mattCardle[EMP_ID], "2015-01-10", "2015-01-15", "2015-02-10", "2015-02-15"); $request = CreateMainVactionRequest($samBailey[EMP_ID], "2015-01-10", "2015-01-15", "2015-02-10", "2015-02-15"); $request = CreateMainVactionRequest($benHaenow[EMP_ID], "2015-01-10", "2015-01-15", "2015-02-10", "2015-02-15"); $request = CreateAdHocAbsenceRequest($steveBrookstein[EMP_ID], "2015-03-10", "2015-03-15", $annualLeave[ABS_TYPE_ID]); $request = CreateAdHocAbsenceRequest($shayneWard[EMP_ID], "2015-03-10", "2015-03-15", $annualLeave[ABS_TYPE_ID]); $request = CreateAdHocAbsenceRequest($leonJackson[EMP_ID], "2015-03-10", "2015-03-15", $sickness[ABS_TYPE_ID]); $request = CreateAdHocAbsenceRequest($alexandraBurke[EMP_ID], "2015-03-10", "2015-03-15", $training[ABS_TYPE_ID]); $request = CreateAdHocAbsenceRequest($joeMcElderry[EMP_ID], "2015-03-10", "2015-03-15", $training[ABS_TYPE_ID]); $request = CreateAdHocAbsenceRequest($mattCardle[EMP_ID], "2015-03-10", "2015-03-15", $training[ABS_TYPE_ID]); $request = CreateAdHocAbsenceRequest($jamesArthur[EMP_ID], "2015-03-10", "2015-03-15", $training[ABS_TYPE_ID]); $request = CreateAdHocAbsenceRequest($samBailey[EMP_ID], "2015-03-10", "2015-03-15", $compasionate[ABS_TYPE_ID]); $request = CreateAdHocAbsenceRequest($benHaenow[EMP_ID], "2015-03-10", "2015-03-15", $compasionate[ABS_TYPE_ID]); $leonaLewis = CreateEmployee("Leona Lewis", "*****@*****.**", "Zaq12wsx", "2007-01-01", 20, NULL, $admin[COMP_ROLE_ID], 1, 1); $request = CreateAdHocAbsenceRequest($leonaLewis[EMP_ID], "2015-03-10", "2015-03-15", $sickness[ABS_TYPE_ID]); $request = CreateMainVactionRequest($leonaLewis[EMP_ID], "2015-01-10", "2015-01-15", "2015-02-10", "2015-02-15"); $request = CreateApprovedAbsenceBooking($leonaLewis[EMP_ID], "2015-04-01", "2015-04-10", $training[ABS_TYPE_ID]); } }
function CreateApprovedAbsenceBooking($employeeID, $absenceStartDate, $absenceEndDate, $absenceTypeID) { $statusMessage = ""; $absenceBooking = NULL; //-------------------------------------------------------------------------------- // Validate Input parameters //-------------------------------------------------------------------------------- $inputIsValid = TRUE; //ensure employee exists in the database. $record = RetrieveEmployeeByID($employeeID); if ($record == NULL) { $statusMessage .= "Unable to locate employee in database.</br>"; error_log("employeeID passed to CreateApprovedAbsenceBooking " . " does not exist in the database. ID=" . $employeeID); $inputIsValid = FALSE; } if (!isValidDate($absenceStartDate)) { $statusMessage .= "Start date is not a valid date.</br>"; error_log("absenceStartDate passed to CreateApprovedAbsenceBooking " . " is invalid. date=" . $absenceStartDate); $inputIsValid = FALSE; } if (!isValidDate($absenceEndDate)) { $statusMessage .= "End date is not a valid date.</br>"; error_log("absenceEndDate passed to CreateApprovedAbsenceBooking " . " is invalid. date=" . $absenceEndDate); $inputIsValid = FALSE; } if (strtotime($absenceEndDate) < strtotime($absenceStartDate)) { $statusMessage .= "end Date is before start Date.</br>"; error_log("End Date is before Start Date."); $inputIsValid = FALSE; } //ensure absence type exists in the database. $record = RetrieveAbsenceTypeByID($absenceTypeID); if ($record == NULL) { $statusMessage .= "Unable to locate absence type in database.</br>"; error_log("absenceTypeID passed to CreateApprovedAbsenceBooking " . " does not exist in the database. ID=" . $absenceTypeID); $inputIsValid = FALSE; } //-------------------------------------------------------------------------------- // Only attempt to insert a record in the database if the input parameters are ok. //-------------------------------------------------------------------------------- $booking = NULL; if ($inputIsValid) { $booking[APPR_ABS_BOOKING_ID] = NULL; $booking[APPR_ABS_EMPLOYEE_ID] = $employeeID; $booking[APPR_ABS_START_DATE] = $absenceStartDate; $booking[APPR_ABS_END_DATE] = $absenceEndDate; $booking[APPR_ABS_ABS_TYPE_ID] = $absenceTypeID; $success = sqlInsertApprovedAbsenceBooking($booking); if (!$success) { $statusMessage .= "Unexpected error when inserting to database." . "Contact your system administrator.</br>"; $inputIsValid = false; error_log("Failed to create Approved Absence Booking."); $booking = NULL; } // Set timezone date_default_timezone_set('UTC'); // Start date $date = $absenceStartDate; // End date while (strtotime($date) <= strtotime($absenceEndDate)) { $dateID = RetrieveDateIDByDate($date); if ($dateID != NULL) { $result = CreateApprovedAbsenceBookingDate($dateID, $booking[APPR_ABS_BOOKING_ID]); } else { $statusMessage .= "Unable to locate Date of {$date} in database.</br>"; $inputIsValid = false; error_log("Unable to find date record. Date=" . $date); } $date = date("Y-m-d", strtotime("+1 day", strtotime($date))); } if ($inputIsValid) { $statusMessage .= "Record created successfully.</br>"; } } GenerateStatus($inputIsValid, $statusMessage); return $booking; }
<?php include 'sessionmanagement.php'; if (!$isAdministrator) { header('Location: index.php'); exit; } if (isset($_POST["submit"])) { ClearStatus(); $dateID = RetrieveDateIDByDate($_POST["date"]); $holiday = CreatePublicHoliday($_POST["name"], $dateID); } if (isset($_POST["amend"])) { ClearStatus(); $url = "Location:editpublicholiday.php?ID=" . $_POST["amend"]; header($url); } if (isset($_POST["delete"])) { ClearStatus(); DeletePublicHoliday($_POST["delete"]); } function DisplayPublicHolidayTableBody() { $holidays = RetrievePublicHolidays(); if ($holidays != NULL) { foreach ($holidays as $holiday) { $date = RetrieveDateByID($holiday[PUB_HOL_DATE_ID]); echo "<tr>"; echo "<td>" . $holiday[PUB_HOL_ID] . "</td>"; echo "<td>" . $holiday[PUB_HOL_NAME] . "</td>"; echo "<td>" . $holiday[PUB_HOL_DATE_ID] . "</td>";