/home/techb158/workloadmatch.com/Admin
Edit: /home/techb158/workloadmatch.com/Admin/managers.php (21524B)
prepare("SELECT Manager_ID FROM manager_profile WHERE Email = ? LIMIT 1");
$chk->bind_param('s', $email);
$chk->execute();
$chk->store_result();
if ($chk->num_rows > 0) {
set_flash_msg('A manager with this email already exists.', 'danger');
$chk->close();
header('Location: managers.php'); exit();
}
$chk->close();
$stmt = $mysqli->prepare("INSERT INTO manager_profile (Manager_ID, Admin_ID, Master_ID, First_Name, Last_Name, Email, Phone, Password, salt, User_Access, Reg_Date, role_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, 1, NOW(), ?)");
$stmt->bind_param('sssssssssi', $managerId, $adminId, $masterId, $fname, $lname, $email, $phone, $password, $salt, $roleId);
if ($stmt->execute()) {
set_flash_msg("Manager '$fname $lname' created successfully.", 'success');
log_activity($mysqli, 'create', 'manager', $managerId, "$fname $lname");
} else {
set_flash_msg('Error creating manager: ' . $stmt->error, 'danger');
}
$stmt->close();
header('Location: managers.php'); exit();
}
if (isset($_POST['edit_manager'])) {
$mid = $_POST['mid'];
$fname = $_POST['first_name'];
$lname = $_POST['last_name'];
$email = $_POST['email'];
$phone = $_POST['phone'] ?? '';
$masterId = $_POST['master_id'];
$roleId = !empty($_POST['role_id']) ? (int)$_POST['role_id'] : null;
$stmt = $mysqli->prepare("UPDATE manager_profile SET First_Name=?, Last_Name=?, Email=?, Phone=?, Master_ID=?, role_id=? WHERE Manager_ID=?");
$stmt->bind_param('sssssss', $fname, $lname, $email, $phone, $masterId, $roleId, $mid);
if ($stmt->execute()) {
set_flash_msg("Manager '$fname $lname' updated successfully.", 'success');
log_activity($mysqli, 'edit', 'manager', $mid, "$fname $lname");
} else {
set_flash_msg('Error updating manager.', 'danger');
}
$stmt->close();
header('Location: managers.php'); exit();
}
if (isset($_POST['transfer_master'])) {
$mid = $_POST['mid'];
$newMasterId = $_POST['master_id'];
$stmt = $mysqli->prepare("UPDATE manager_profile SET Master_ID=? WHERE Manager_ID=?");
$stmt->bind_param('ss', $newMasterId, $mid);
if ($stmt->execute()) {
set_flash_msg("Manager transferred to new Master successfully.", 'success');
log_activity($mysqli, 'transfer', 'manager', $mid, "Manager #$mid", "Transferred to Master $newMasterId");
}
$stmt->close();
header('Location: managers.php'); exit();
}
if (isset($_GET['toggle']) && isset($_GET['mid'])) {
$mid = $_GET['mid'];
$stmt = $mysqli->prepare("SELECT User_Access, First_Name, Last_Name FROM manager_profile WHERE Manager_ID=?");
$stmt->bind_param('s', $mid);
$stmt->execute();
$stmt->bind_result($current, $fn, $ln);
$stmt->fetch();
$stmt->close();
if ($current !== null) {
$newStatus = $current == 1 ? 0 : 1;
toggle_user_status($mysqli, 'manager_profile', 'Manager_ID', $mid, $newStatus);
$action = $newStatus == 1 ? 'enable' : 'disable';
set_flash_msg("Manager '$fn $ln' " . ($newStatus == 1 ? 'enabled' : 'disabled') . '.', 'success');
log_activity($mysqli, $action, 'manager', $mid, "$fn $ln");
}
header('Location: managers.php'); exit();
}
if (isset($_GET['delete']) && isset($_GET['mid'])) {
$mid = $_GET['mid'];
$stmt = $mysqli->prepare("SELECT First_Name, Last_Name FROM manager_profile WHERE Manager_ID=?");
$stmt->bind_param('s', $mid);
$stmt->execute();
$stmt->bind_result($fn, $ln);
$stmt->fetch();
$stmt->close();
$stmt = $mysqli->prepare("UPDATE manager_profile SET User_Access=9, archived=1 WHERE Manager_ID=?");
$stmt->bind_param('s', $mid);
if ($stmt->execute()) {
set_flash_msg("Manager '$fn $ln' archived.", 'success');
log_activity($mysqli, 'delete', 'manager', $mid, "$fn $ln");
} else {
$stmt->close();
$stmt = $mysqli->prepare("DELETE FROM manager_profile WHERE Manager_ID=?");
$stmt->bind_param('s', $mid);
$stmt->execute();
set_flash_msg("Manager '$fn $ln' deleted.", 'success');
log_activity($mysqli, 'delete', 'manager', $mid, "$fn $ln");
}
if ($stmt) $stmt->close();
header('Location: managers.php'); exit();
}
// Counts
$totalStmt = $mysqli->query("SELECT COUNT(*) FROM manager_profile WHERE User_Access != 9");
$total = $totalStmt->fetch_row()[0];
$activeStmt = $mysqli->query("SELECT COUNT(*) FROM manager_profile WHERE User_Access = 1");
$active = $activeStmt->fetch_row()[0];
$disabledStmt = $mysqli->query("SELECT COUNT(*) FROM manager_profile WHERE User_Access = 0");
$disabled = $disabledStmt->fetch_row()[0];
?>
Admin | Manager Management
| Manager ID |
Name |
Email |
Phone |
Master |
Teachers |
Status |
Role |
Actions |
prepare("SELECT m.Manager_ID, m.First_Name, m.Last_Name, m.Email, m.Phone, m.Master_ID, m.User_Access, m.role_id, CONCAT(mst.First_Name,' ',mst.Last_Name) AS MasterName FROM manager_profile m LEFT JOIN master_profile mst ON m.Master_ID = mst.Master_ID WHERE m.User_Access != 9 ORDER BY m.First_Name");
$q->execute();
$res = $q->get_result();
while ($row = $res->fetch_assoc()) {
$mid = htmlspecialchars($row['Manager_ID']);
$name = htmlspecialchars($row['First_Name'] . ' ' . $row['Last_Name']);
$email = htmlspecialchars($row['Email']);
$phone = htmlspecialchars($row['Phone'] ?? '');
$master = htmlspecialchars($row['MasterName'] ?? 'None');
$masterId = htmlspecialchars($row['Master_ID'] ?? '');
$roleId = $row['role_id'];
$roleName = $roleId ? get_role_name($mysqli, $roleId) : 'None';
$tCount = 0;
$tc = $mysqli->prepare("SELECT COUNT(*) FROM teacher_profile WHERE Manager_ID = ?");
if ($tc) { $tc->bind_param('s', $mid); $tc->execute(); $tc->bind_result($tCount); $tc->fetch(); $tc->close(); }
if ($row['User_Access'] == 1) {
$statusBadge = 'Active';
$toggleLabel = 'Disable';
$toggleClass = 'btn-warning';
$toggleIcon = 'fa-ban';
} else {
$statusBadge = 'Disabled';
$toggleLabel = 'Enable';
$toggleClass = 'btn-success';
$toggleIcon = 'fa-check';
}
$fname = htmlspecialchars($row['First_Name']);
$lname = htmlspecialchars($row['Last_Name']);
echo "
| $mid |
$name |
$email |
$phone |
$master |
$tCount |
$statusBadge |
$roleName |
$toggleLabel
|
";
}
$q->close();
?>