/home/techb158/workloadmatch.com/workloadmatch.com/BackUp/Manager
NameSizeModeActions
core/-0755rm
css/-0755rm
data/-0755rm
fonts/-0755rm
Inc/-0755rm
js/-0755rm
php/-0755rm
accesscontrol.php160390644editdlrm
AddClient.php39300644editdlrm
addcourse.php177360644editdlrm
addcoursesession.php205280644editdlrm
addcoursetime.php173050644editdlrm
addgroup - Copy.php212120644editdlrm
addgroup.php229990644editdlrm
addgroup1.php206670644editdlrm
addholiday.php180190644editdlrm
addmanager.php187650644editdlrm
addremediation.php178770644editdlrm
addretake.php219140644editdlrm
adduser.php300790644editdlrm
adduser1.php235270644editdlrm
Add_Course_Session.php65290644editdlrm
add_event.php19600644editdlrm
Add_Teacher_Unavailability.php17460644editdlrm
adminreports.php162190644editdlrm
AI_Generate_Schedule - Copy.php122170644editdlrm
AI_Generate_Schedule.php107310644editdlrm
ajax_course_group_Backup.php172700644editdlrm
ajax_course_group_Backup_1.php187420644editdlrm
ajax_fetch_schedule.php37600644editdlrm
ajax_get_group_slots.php8720644editdlrm
ajax_replace_saturday -Completed.php187390644editdlrm
ajax_replace_saturday - Copy (2).php187390644editdlrm
ajax_replace_saturday - Copy (3).php265540644editdlrm
ajax_replace_saturday - Copy (4).php266150644editdlrm
ajax_replace_saturday - Copy (5).php283740644editdlrm
ajax_replace_saturday - Copy.php134520644editdlrm
ajax_replace_saturday - Good.php172700644editdlrm
ajax_replace_saturday.php307790644editdlrm
ajax_swap_courses.php42790644editdlrm
assign_course_group-BackUp.php213310644editdlrm
assign_course_group - Copy (BackUp).php183150644editdlrm
assign_course_group - Copy.php213180644editdlrm
assign_course_group.php183150644editdlrm
assign_course_group1.php209620644editdlrm
Assign_Course_Report.php13750644editdlrm
assign_teacher_manual-1.php210950644editdlrm
assign_teacher_manual - Copy (2).php223280644editdlrm
assign_teacher_manual - Copy.php223880644editdlrm
assign_teacher_manual-Not work.php205850644editdlrm
assign_teacher_manual.php223280644editdlrm
assign_teacher_manual_force_conflicts.php223590644editdlrm
availableteacherreport.php137180644editdlrm
Available_Teacher_Report - Copy.php22360644editdlrm
Available_Teacher_Report.php76910644editdlrm
brokerreports.php163180644editdlrm
calendar - Copy (2).php168910644editdlrm
calendar - Copy.php231930644editdlrm
calendar.php306530644editdlrm
changestatus.php8650644editdlrm
Check_if_Teacher_Report.php15870644editdlrm
complete_schedule_report_by_teacher.php193120644editdlrm
courseflagtime.php34110644editdlrm
Create_Group_Schedule_Algorithm.php38280644editdlrm
Create_Schedule_Algorithm - Copy (2).php414120644editdlrm
Create_Schedule_Algorithm - Copy (3).php463520644editdlrm
Create_Schedule_Algorithm - Copy (4).php535690644editdlrm
Create_Schedule_Algorithm - Copy (5).php679560644editdlrm
Create_Schedule_Algorithm - Copy (6).php711340644editdlrm
Create_Schedule_Algorithm - Copy (7).php725290644editdlrm
Create_Schedule_Algorithm - Copy (8).php730840644editdlrm
Create_Schedule_Algorithm - Copy (9).php735770644editdlrm
Create_Schedule_Algorithm - Copy (10).php765050644editdlrm
Create_Schedule_Algorithm - Copy (11).php767640644editdlrm
Create_Schedule_Algorithm - Copy (12).php863240644editdlrm
Create_Schedule_Algorithm - Copy (13).php831330644editdlrm
Create_Schedule_Algorithm - Copy (14).php872740644editdlrm
Create_Schedule_Algorithm - Copy (get info only).php697470644editdlrm
Create_Schedule_Algorithm - Copy (with 2 course 2nd SPECIAL ).php823140644editdlrm
Create_Schedule_Algorithm - Copy.php405810644editdlrm
Create_Schedule_Algorithm.php882760644editdlrm
Create_Schedule_Algorithm_1.php414120644editdlrm
Create_Schedule_Algorithm_2.php765050644editdlrm
Create_Schedule_Algorithm_2_combined.php897640644editdlrm
Create_Schedule_Algorithm_2_combined_both_slots.php919320644editdlrm
Create_Schedule_Algorithm_2_fixed.php768290644editdlrm
Create_Schedule_Algorithm_3.php872740644editdlrm
Create_Schedule_Algorithm_4.php872740644editdlrm
dashboard-BackUp.php188060644editdlrm
dashboard.php225070644editdlrm
deleteschedulefromgroup.php168190644editdlrm
delete_course.php5800644editdlrm
delete_course_from_teacher.php49900644editdlrm
delete_course_from_teacher_backup.php30940644editdlrm
delete_event.php12120644editdlrm
delete_group.php18580644editdlrm
delete_holiday.php7150644editdlrm
delete_retake.php12760644editdlrm
delete_schedule_from_group-1.php18700644editdlrm
delete_schedule_from_group.php18500644editdlrm
delete_teacher_level.php7980644editdlrm
delete_teacher_unavailability.php13470644editdlrm
delete_timeslot.php5970644editdlrm
display_schedule-1.php188460644editdlrm
display_schedule.php188460644editdlrm
do_remove_saturday.php61700644editdlrm
edit_event.php16120644editdlrm
error_log740700644editdlrm
examschedulereport.php162670644editdlrm
Exam_Schedule_Report.php26770644editdlrm
export_absences.php12210644editdlrm
fetch_all_scheduled_courses.php63180644editdlrm
fetch_courses - BackUp.php97110644editdlrm
fetch_courses - Copy.php77190644editdlrm
fetch_courses.php91670644editdlrm
fetch_courses_for_program.php7880644editdlrm
fetch_courses_for_program_by_schedule - Copy.php22970644editdlrm
fetch_courses_for_program_by_schedule.php39350644editdlrm
fetch_courses_teacher_preference.php38520644editdlrm
fetch_course_for_added_group.php8970644editdlrm
fetch_course_hours.php6910644editdlrm
fetch_disabled_dates.php5180644editdlrm
fetch_events.php9750644editdlrm
fetch_exist_dates.php10990644editdlrm
fetch_groups_exist_in_schedule.php9560644editdlrm
fetch_groups_for_program.php8430644editdlrm
fetch_group_timeslot.php8470644editdlrm
fetch_reserve_courses.php74290644editdlrm
fetch_retake_courses.php9230644editdlrm
fetch_scheduled_courses.php21780644editdlrm
fetch_schedule_report_by_group.php54400644editdlrm
fetch_teachers_by_group.php44210644editdlrm
fetch_teachers_by_program.php18210644editdlrm
fetch_teachers_for_group.php31700644editdlrm
fetch_teacher_assignment.php247760644editdlrm
fetch_teacher_by_course.php38800644editdlrm
fetch_teacher_conflicts.php56820644editdlrm
fetch_teacher_conflicts_only.php76650644editdlrm
fetch_teacher_conflicts_only_force_conflicts.php71140644editdlrm
fetch_teacher_conflicts_showonly.php104470644editdlrm
fetch_teacher_load.php14820644editdlrm
fetch_teacher_prefrence_courses_accounting.php16060644editdlrm
find_replacement-1.php160750644editdlrm
find_replacement.php181610644editdlrm
followup.php161600644editdlrm
Generate Group Schedule.php169870644editdlrm
Generate Group Schedule 1.php181210644editdlrm
generateschedule.php157060644editdlrm
Generate_Schedule.php336200644editdlrm
generate_schedule_handler.php70950644editdlrm
Generate_Schedule_Script.php297310644editdlrm
getlang.php3260644editdlrm
getrefer.php43490644editdlrm
getstatus.php12600644editdlrm
get_groups_by_program.php6080644editdlrm
get_schedule_ai-1.php377550644editdlrm
get_schedule_ai - Copy.php364590644editdlrm
get_schedule_ai.php368550644editdlrm
get_schedule_report.php23930644editdlrm
group_schedule_form - Copy.php169940644editdlrm
group_schedule_form.php169940644editdlrm
main-header-inc.php11960644editdlrm
main-header.php166710644editdlrm
managecategory.php92330644editdlrm
managerreports.php250560644editdlrm
Preference_Accounting.php225030644editdlrm
profile.php206800644editdlrm
reference_list.php82070644editdlrm
remove_saturday_course.php195030644editdlrm
report_absence.php192870644editdlrm
report_absence_1.php61600644editdlrm
reserve_course.php189570644editdlrm
rewrite_ajax_replace_saturday.php128000644editdlrm
rewrite_Create_Schedule_Algorithm.php883180644editdlrm
rewrite_Create_Schedule_Algorithm_2.php889000644editdlrm
save_schedule.php29700644editdlrm
save_schedule_group_course.php253670644editdlrm
schedulereportbygroup.php177310644editdlrm
schedulereportbyteacher.php191110644editdlrm
scheduleteacherbygroupreport - Copy.php319860644editdlrm
scheduleteacherbygroupreport.php365560644editdlrm
scheduleteacherreport.php281500644editdlrm
schedule_report.php176640644editdlrm
Schedule_Report_by_Group.php36470644editdlrm
Schedule_Report_by_Teacher.php924330644editdlrm
selectuser.php11720644editdlrm
swapcourses.php194690644editdlrm
teacher_preference.php181820644editdlrm
teacher_preference_by_course.php192440644editdlrm
teacher_unavailability.php178350644editdlrm
test.php138950644editdlrm
test1.php218370644editdlrm
transfer_reference.php272880644editdlrm
unassigncoursereport.php160290644editdlrm
unassign_course.php190110644editdlrm
Unassign_Course_Report.php16970644editdlrm
unscheduledgroupreport.php156750644editdlrm
Unscheduled_Group_Report.php20070644editdlrm
updateclient.php147650644editdlrm
updatecourse.php216260644editdlrm
updatecoursesessionhours.php181970644editdlrm
updatecoursetime.php218310644editdlrm
updategroup - Copy.php245340644editdlrm
updategroup.php180010644editdlrm
updateholiday.php224930644editdlrm
updateteacherlevel.php245320644editdlrm
updateteacherunavailability.php141840644editdlrm
UpdateUser.php182140644editdlrm
Update_Course_Hours.php21350644editdlrm
Update_Follow_Up.php46180644editdlrm
update_reserve_course.php19340644editdlrm
update_teacher_level25080644editdlrm
update_teacher_level.php24300644editdlrm
useraccesslist.php128750644editdlrm
users.php90490644editdlrm
view_swap_log.php8940644editdlrm
Edit: /home/techb158/workloadmatch.com/workloadmatch.com/BackUp/Manager/do_remove_saturday.php (6170B)
prepare(" SELECT class_days, Weekend_Class FROM Manager_Group_Name WHERE Group_ID = ? "); $stmt->bind_param("i", $Group_ID); $stmt->execute(); return $stmt->get_result()->fetch_assoc() ?: []; } /** * Build list of holidays in that calendar year */ function get_holidays($mysqli, $Start_Date) { $holidays = []; $sql = " SELECT Event_Start, Event_End FROM Events WHERE Calendar_Year = YEAR(?) "; $stmt = $mysqli->prepare($sql); $stmt->bind_param('s', $Start_Date); $stmt->execute(); $res = $stmt->get_result(); while ($r = $res->fetch_assoc()) { $cur = new DateTime($r['Event_Start']); $end = new DateTime($r['Event_End']); while ($cur <= $end) { $holidays[$cur->format('Y-m-d')] = true; $cur->modify('+1 day'); } } return $holidays; } /** * Build list of retake dates */ function get_retake_dates($mysqli, $Program_ID, $Group_ID) { $rd = []; $stmt = $mysqli->prepare(" SELECT Retake_Date FROM Retake_Records WHERE Program_ID = ? AND Group_ID = ? "); $stmt->bind_param("ii", $Program_ID, $Group_ID); $stmt->execute(); foreach ($stmt->get_result() as $row) { $rd[$row['Retake_Date']] = true; } return $rd; } /** * Generate next ~400 valid days after $start * (skip July, holidays, retakes, non-class days) */ function generate_valid_dates($start, $classDays, $holidays, $retakes) { $out = []; $cur = new DateTime($start); for ($i = 0; $i < 400; $i++, $cur->modify('+1 day')) { $d = $cur->format('Y-m-d'); $dayName = $cur->format('l'); $month = (int)$cur->format('m'); if ($month === 7) continue; if (!in_array($dayName, $classDays)) continue; if (isset($holidays[$d]) || isset($retakes[$d])) continue; $out[] = $d; } return $out; } // 1) Validate if (empty($_POST['Schedule_ID'])) { http_response_code(400); echo json_encode(['error'=>'Missing Schedule_ID']); exit; } $scheduleID = (int)$_POST['Schedule_ID']; // 2) Fetch the session to delete (reserve flag too) $stmt = $mysqli->prepare(" SELECT Program_ID, Group_ID, Course_ID, Group_Slot_ID, Reserve_Course, Time_Slot, Start_Date, Start_Time, End_Time FROM Schedule_Course_for_Group WHERE Schedule_ID = ? "); $stmt->bind_param('i', $scheduleID); $stmt->execute(); $stmt->bind_result( $programID, $groupID, $courseID, $groupSlotID, $reserveFlag, $timeSlot, $remDate, $remStart, $remEnd ); if (!$stmt->fetch()) { http_response_code(404); echo json_encode(['error'=>'Session not found']); exit; } $stmt->close(); // 3) Delete that session $del = $mysqli->prepare(" DELETE FROM Schedule_Course_for_Group WHERE Schedule_ID = ? "); $del->bind_param('i', $scheduleID); $del->execute(); $del->close(); // 4) Gather class_days, holidays, retakes $grp = get_group_info($mysqli, $groupID); $classDays = array_map('trim', explode(',', $grp['class_days'])); if (empty((bool)$grp['Weekend_Class'])) { // no Saturdays at all $classDays = array_filter($classDays, fn($d) => $d !== 'Saturday'); } $holidays = get_holidays($mysqli, $remDate); $retakes = get_retake_dates($mysqli, $programID, $groupID); // 5) Generate all valid dates after the removed one $allValid = generate_valid_dates($remDate, $classDays, $holidays, $retakes); array_shift($allValid); // drop the very first (the one we just deleted) // 6) Shift all future sessions forward one slot $shiftStmt = $mysqli->prepare(" SELECT Schedule_ID FROM Schedule_Course_for_Group WHERE Program_ID = ? AND Group_ID = ? AND Start_Date > ? ORDER BY Start_Date, Start_Time "); $shiftStmt->bind_param('iis', $programID, $groupID, $remDate); $shiftStmt->execute(); $shiftStmt->bind_result($sid); $toShift = []; while ($shiftStmt->fetch()) { $toShift[] = $sid; } $shiftStmt->close(); $upd = $mysqli->prepare(" UPDATE Schedule_Course_for_Group SET Start_Date = ?, End_Date = ? WHERE Schedule_ID = ? "); foreach ($toShift as $i => $sid) { if (!isset($allValid[$i])) break; $newD = $allValid[$i]; $upd->bind_param('ssi', $newD, $newD, $sid); $upd->execute(); } $upd->close(); // 7) Re-append one session for the deleted course at the end // 7) Re-append one session for the deleted course at the end $inserted = 0; $newScheduleID = null; $newDate = null; if (!empty($allValid)) { $idx = count($toShift); // if that exact slot exists, use it; otherwise fall back to the last valid date $newDate = $allValid[$idx] ?? end($allValid); // lookup Course_Name $nm = $mysqli->prepare("SELECT Course_Name FROM Courses WHERE Course_ID = ?"); $nm->bind_param('i', $courseID); $nm->execute(); $nm->bind_result($courseName); $nm->fetch(); $nm->close(); // re-insert $ins = $mysqli->prepare(" INSERT INTO Schedule_Course_for_Group (Program_ID,Course_ID,Group_ID,Group_Slot_ID,Course_Name, Reserve_Course,Time_Slot,Start_Date,End_Date, Start_Time,End_Time,Assigned,Last_Updated) VALUES (?,?,?,?,?, ?,?,?,?, ?,?, 0, NOW()) "); $ins->bind_param( 'iiiisissssss', $programID, $courseID, $groupID, $groupSlotID, $courseName, $reserveFlag, $timeSlot, $newDate, $newDate, $remStart, $remEnd ); if ($ins->execute()) { $inserted = 1; $newScheduleID = $ins->insert_id; } $ins->close(); } // 8) Return JSON echo json_encode([ 'deleted' => true, 'shifted' => count($toShift), 'added' => $inserted, 'new_schedule_id' => $newScheduleID, 'new_date' => $newDate ]);