-
+
User Management
-
Manage users and roles (coming soon).
-
Go to Users
+
Manage users and roles.
+
Go to Users
+
+
+
+
+
+
+
+
Role Management
+
Define user roles and permissions.
+
Go to Roles
+
+
+
+
+
+
+
+
Tank Management
+
Manage fuel tanks and inventory.
+
Go to Tanks
+
+
+
+
+
+
+
+
Pump Management
+
Manage fuel pumps.
+
Go to Pumps
+
+
+
+
diff --git a/nozzles.php b/nozzles.php
new file mode 100644
index 0000000..f9871d7
--- /dev/null
+++ b/nozzles.php
@@ -0,0 +1,280 @@
+prepare("INSERT INTO nozzles (name, pump_id, tank_id) VALUES (?, ?, ?)");
+ $stmt->execute([$name, $pump_id, $tank_id]);
+ $_SESSION['notification'] = ['text' => 'Nozzle added successfully!', 'type' => 'success'];
+ } catch (PDOException $e) {
+ $_SESSION['notification'] = ['text' => 'Error adding nozzle: ' . $e->getMessage(), 'type' => 'danger'];
+ }
+ } else {
+ $_SESSION['notification'] = ['text' => 'All fields are required.', 'type' => 'warning'];
+ }
+ }
+ // Edit Nozzle
+ elseif (isset($_POST['edit_nozzle'])) {
+ $id = $_POST['nozzle_id'];
+ $name = trim($_POST['name']);
+ $pump_id = $_POST['pump_id'];
+ $tank_id = $_POST['tank_id'];
+ if (!empty($name) && !empty($pump_id) && !empty($tank_id) && !empty($id)) {
+ try {
+ $stmt = $db->prepare("UPDATE nozzles SET name = ?, pump_id = ?, tank_id = ? WHERE id = ?");
+ $stmt->execute([$name, $pump_id, $tank_id, $id]);
+ $_SESSION['notification'] = ['text' => 'Nozzle updated successfully!', 'type' => 'success'];
+ } catch (PDOException $e) {
+ $_SESSION['notification'] = ['text' => 'Error updating nozzle: ' . $e->getMessage(), 'type' => 'danger'];
+ }
+ } else {
+ $_SESSION['notification'] = ['text' => 'All fields and ID are required.', 'type' => 'warning'];
+ }
+ }
+ header("Location: nozzles.php");
+ exit;
+}
+
+// Soft Delete Nozzle
+if (isset($_GET['action']) && $_GET['action'] === 'delete' && isset($_GET['id'])) {
+ try {
+ $db = db();
+ $stmt = $db->prepare("UPDATE nozzles SET deleted_at = NOW() WHERE id = ?");
+ $stmt->execute([$_GET['id']]);
+ $_SESSION['notification'] = ['text' => 'Nozzle deleted successfully!', 'type' => 'success'];
+ } catch (PDOException $e) {
+ $_SESSION['notification'] = ['text' => 'Error deleting nozzle: ' . $e->getMessage(), 'type' => 'danger'];
+ }
+ header("Location: nozzles.php");
+ exit;
+}
+
+if (isset($_SESSION['notification'])) {
+ $notification = $_SESSION['notification'];
+ unset($_SESSION['notification']);
+}
+
+$db = db();
+$nozzles = $db->query("SELECT n.*, p.name as pump_name, t.name as tank_name FROM nozzles n JOIN pumps p ON n.pump_id = p.id JOIN tanks t ON n.tank_id = t.id WHERE n.deleted_at IS NULL ORDER BY n.created_at DESC")->fetchAll(PDO::FETCH_ASSOC);
+$pumps = $db->query("SELECT * FROM pumps WHERE deleted_at IS NULL")->fetchAll(PDO::FETCH_ASSOC);
+$tanks = $db->query("SELECT * FROM tanks")->fetchAll(PDO::FETCH_ASSOC);
+$page_title = "Nozzle Management";
+?>
+
+
+
+
+
+
= htmlspecialchars($page_title) ?> - Petrol Pump Management
+
+
+
+
+
+
+
+
+
= htmlspecialchars($page_title) ?>
+
+
+
+
+
+
+
+
+ | Name |
+ Pump |
+ Tank |
+ Created At |
+ Actions |
+
+
+
+
+
+ | = htmlspecialchars($nozzle['name']) ?> |
+ = htmlspecialchars($nozzle['pump_name']) ?> |
+ = htmlspecialchars($nozzle['tank_name']) ?> |
+ = date('d M, Y', strtotime($nozzle['created_at'])) ?> |
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Are you sure you want to delete this nozzle?
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/prices.php b/prices.php
new file mode 100644
index 0000000..f040737
--- /dev/null
+++ b/prices.php
@@ -0,0 +1,268 @@
+prepare("INSERT INTO prices (tank_id, price, effective_date) VALUES (?, ?, ?)");
+ $stmt->execute([$tank_id, $price, $effective_date]);
+ $_SESSION['notification'] = ['text' => 'Price added successfully!', 'type' => 'success'];
+ } catch (PDOException $e) {
+ $_SESSION['notification'] = ['text' => 'Error adding price: ' . $e->getMessage(), 'type' => 'danger'];
+ }
+ } else {
+ $_SESSION['notification'] = ['text' => 'All fields are required.', 'type' => 'warning'];
+ }
+ }
+ // Edit Price
+ elseif (isset($_POST['edit_price'])) {
+ $id = $_POST['price_id'];
+ $tank_id = $_POST['tank_id'];
+ $price = $_POST['price'];
+ $effective_date = $_POST['effective_date'];
+ if (!empty($tank_id) && !empty($price) && !empty($effective_date) && !empty($id)) {
+ try {
+ $stmt = $db->prepare("UPDATE prices SET tank_id = ?, price = ?, effective_date = ? WHERE id = ?");
+ $stmt->execute([$tank_id, $price, $effective_date, $id]);
+ $_SESSION['notification'] = ['text' => 'Price updated successfully!', 'type' => 'success'];
+ } catch (PDOException $e) {
+ $_SESSION['notification'] = ['text' => 'Error updating price: ' . $e->getMessage(), 'type' => 'danger'];
+ }
+ } else {
+ $_SESSION['notification'] = ['text' => 'All fields and ID are required.', 'type' => 'warning'];
+ }
+ }
+ header("Location: prices.php");
+ exit;
+}
+
+// Soft Delete Price
+if (isset($_GET['action']) && $_GET['action'] === 'delete' && isset($_GET['id'])) {
+ try {
+ $db = db();
+ $stmt = $db->prepare("UPDATE prices SET deleted_at = NOW() WHERE id = ?");
+ $stmt->execute([$_GET['id']]);
+ $_SESSION['notification'] = ['text' => 'Price deleted successfully!', 'type' => 'success'];
+ } catch (PDOException $e) {
+ $_SESSION['notification'] = ['text' => 'Error deleting price: ' . $e->getMessage(), 'type' => 'danger'];
+ }
+ header("Location: prices.php");
+ exit;
+}
+
+if (isset($_SESSION['notification'])) {
+ $notification = $_SESSION['notification'];
+ unset($_SESSION['notification']);
+}
+
+$db = db();
+$prices = $db->query("SELECT pr.*, t.name as tank_name, ft.name as fuel_type_name FROM prices pr JOIN tanks t ON pr.tank_id = t.id JOIN fuel_types ft ON t.fuel_type_id = ft.id WHERE pr.deleted_at IS NULL ORDER BY pr.effective_date DESC")->fetchAll(PDO::FETCH_ASSOC);
+$tanks = $db->query("SELECT t.id, t.name, ft.name as fuel_type_name FROM tanks t JOIN fuel_types ft ON t.fuel_type_id = ft.id WHERE t.deleted_at IS NULL")->fetchAll(PDO::FETCH_ASSOC);
+$page_title = "Price Management";
+?>
+
+
+
+
+
+
= htmlspecialchars($page_title) ?> - Petrol Pump Management
+
+
+
+
+
+
+
+
+
= htmlspecialchars($page_title) ?>
+
+
+
+
+
+
+
+
+ | Tank |
+ Price |
+ Effective Date |
+ Actions |
+
+
+
+
+
+ | = htmlspecialchars($price['tank_name'] . ' (' . $price['fuel_type_name'] . ')') ?> |
+ ₹ = htmlspecialchars(number_format($price['price'], 2)) ?> |
+ = date('d M, Y', strtotime($price['effective_date'])) ?> |
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Are you sure you want to delete this price record? This is a soft delete.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pumps.php b/pumps.php
new file mode 100644
index 0000000..edd11ab
--- /dev/null
+++ b/pumps.php
@@ -0,0 +1,256 @@
+prepare("INSERT INTO pumps (name, bunk_id) VALUES (?, ?)");
+ $stmt->execute([$name, $bunk_id]);
+ $_SESSION['notification'] = ['text' => 'Pump added successfully!', 'type' => 'success'];
+ } catch (PDOException $e) {
+ $_SESSION['notification'] = ['text' => 'Error adding pump: ' . $e->getMessage(), 'type' => 'danger'];
+ }
+ } else {
+ $_SESSION['notification'] = ['text' => 'Pump name and bunk are required.', 'type' => 'warning'];
+ }
+ }
+ // Edit Pump
+ elseif (isset($_POST['edit_pump'])) {
+ $id = $_POST['pump_id'];
+ $name = trim($_POST['name']);
+ $bunk_id = $_POST['bunk_id'];
+ if (!empty($name) && !empty($bunk_id) && !empty($id)) {
+ try {
+ $stmt = $db->prepare("UPDATE pumps SET name = ?, bunk_id = ? WHERE id = ?");
+ $stmt->execute([$name, $bunk_id, $id]);
+ $_SESSION['notification'] = ['text' => 'Pump updated successfully!', 'type' => 'success'];
+ } catch (PDOException $e) {
+ $_SESSION['notification'] = ['text' => 'Error updating pump: ' . $e->getMessage(), 'type' => 'danger'];
+ }
+ } else {
+ $_SESSION['notification'] = ['text' => 'Pump name, bunk and ID are required.', 'type' => 'warning'];
+ }
+ }
+ header("Location: pumps.php");
+ exit;
+}
+
+// Soft Delete Pump
+if (isset($_GET['action']) && $_GET['action'] === 'delete' && isset($_GET['id'])) {
+ try {
+ $db = db();
+ $stmt = $db->prepare("UPDATE pumps SET deleted_at = NOW() WHERE id = ?");
+ $stmt->execute([$_GET['id']]);
+ $_SESSION['notification'] = ['text' => 'Pump deleted successfully!', 'type' => 'success'];
+ } catch (PDOException $e) {
+ $_SESSION['notification'] = ['text' => 'Error deleting pump: ' . $e->getMessage(), 'type' => 'danger'];
+ }
+ header("Location: pumps.php");
+ exit;
+}
+
+if (isset($_SESSION['notification'])) {
+ $notification = $_SESSION['notification'];
+ unset($_SESSION['notification']);
+}
+
+$db = db();
+$pumps = $db->query("SELECT p.*, b.name as bunk_name FROM pumps p JOIN bunks b ON p.bunk_id = b.id WHERE p.deleted_at IS NULL ORDER BY p.created_at DESC")->fetchAll(PDO::FETCH_ASSOC);
+$bunks = $db->query("SELECT * FROM bunks WHERE deleted_at IS NULL")->fetchAll(PDO::FETCH_ASSOC);
+$page_title = "Pump Management";
+?>
+
+
+
+
+
+
= htmlspecialchars($page_title) ?> - Petrol Pump Management
+
+
+
+
+
+
+
+
+
= htmlspecialchars($page_title) ?>
+
+
+
+
+
+
+
+
+ | Name |
+ Bunk |
+ Created At |
+ Actions |
+
+
+
+
+
+ | = htmlspecialchars($pump['name']) ?> |
+ = htmlspecialchars($pump['bunk_name']) ?> |
+ = date('d M, Y', strtotime($pump['created_at'])) ?> |
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Are you sure you want to delete this pump?
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/roles.php b/roles.php
new file mode 100644
index 0000000..f46bd37
--- /dev/null
+++ b/roles.php
@@ -0,0 +1,286 @@
+prepare("INSERT INTO roles (name, description) VALUES (?, ?)");
+ $stmt->execute([$name, $description]);
+ $_SESSION['notification'] = ['text' => 'Role added successfully!', 'type' => 'success'];
+ } catch (PDOException $e) {
+ $_SESSION['notification'] = ['text' => 'Error adding role: ' . $e->getMessage(), 'type' => 'danger'];
+ }
+ } else {
+ $_SESSION['notification'] = ['text' => 'Role name is required.', 'type' => 'warning'];
+ }
+ }
+ // Edit Role
+ elseif (isset($_POST['edit_role'])) {
+ $id = $_POST['role_id'];
+ $name = trim($_POST['name']);
+ $description = trim($_POST['description']);
+
+ if (!empty($name) && !empty($id)) {
+ try {
+ $stmt = $db->prepare("UPDATE roles SET name = ?, description = ? WHERE id = ?");
+ $stmt->execute([$name, $description, $id]);
+ $_SESSION['notification'] = ['text' => 'Role updated successfully!', 'type' => 'success'];
+ } catch (PDOException $e) {
+ $_SESSION['notification'] = ['text' => 'Error updating role: ' . $e->getMessage(), 'type' => 'danger'];
+ }
+ } else {
+ $_SESSION['notification'] = ['text' => 'Role name and ID are required.', 'type' => 'warning'];
+ }
+ }
+ header("Location: roles.php");
+ exit;
+}
+
+// Delete Role
+if (isset($_GET['action']) && $_GET['action'] === 'delete' && isset($_GET['id'])) {
+ try {
+ $db = db();
+ // Check if any user is assigned this role
+ $stmt = $db->prepare("SELECT COUNT(*) FROM users WHERE role_id = ?");
+ $stmt->execute([$_GET['id']]);
+ if ($stmt->fetchColumn() > 0) {
+ $_SESSION['notification'] = ['text' => 'Cannot delete role. It is currently assigned to one or more users.', 'type' => 'warning'];
+ } else {
+ $stmt = $db->prepare("DELETE FROM roles WHERE id = ?");
+ $stmt->execute([$_GET['id']]);
+ $_SESSION['notification'] = ['text' => 'Role deleted successfully!', 'type' => 'success'];
+ }
+ } catch (PDOException $e) {
+ $_SESSION['notification'] = ['text' => 'Error deleting role: ' . $e->getMessage(), 'type' => 'danger'];
+ }
+ header("Location: roles.php");
+ exit;
+}
+
+
+if (isset($_SESSION['notification'])) {
+ $notification = $_SESSION['notification'];
+ unset($_SESSION['notification']);
+}
+
+try {
+ $db = db();
+ $stmt = $db->query("SELECT id, name, description, created_at FROM roles ORDER BY name ASC");
+ $roles = $stmt->fetchAll();
+} catch (PDOException $e) {
+ $roles = [];
+ $notification = ['text' => 'Error fetching roles: ' . $e->getMessage(), 'type' => 'danger'];
+}
+
+$page_title = "Role Management";
+?>
+
+
+
+
+
+
= htmlspecialchars($page_title) ?> - Petrol Pump Management
+
+
+
+
+
+
+
+
+
= htmlspecialchars($page_title) ?>
+
+
+
+
+
+
+
+
+ | Name |
+ Description |
+ Created At |
+ Actions |
+
+
+
+
+
+ | No roles found. |
+
+
+
+
+ | = htmlspecialchars($role['name']) ?> |
+ = htmlspecialchars($role['description']) ?> |
+ = date('d M, Y', strtotime($role['created_at'])) ?> |
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Are you sure you want to delete this role? This action cannot be undone.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tanks.php b/tanks.php
new file mode 100644
index 0000000..0473346
--- /dev/null
+++ b/tanks.php
@@ -0,0 +1,294 @@
+prepare("INSERT INTO tanks (name, bunk_id, fuel_type_id, capacity) VALUES (?, ?, ?, ?)");
+ $stmt->execute([$name, $bunk_id, $fuel_type_id, $capacity]);
+ $_SESSION['notification'] = ['text' => 'Tank added successfully!', 'type' => 'success'];
+ } catch (PDOException $e) {
+ $_SESSION['notification'] = ['text' => 'Error adding tank: ' . $e->getMessage(), 'type' => 'danger'];
+ }
+ } else {
+ $_SESSION['notification'] = ['text' => 'All fields are required.', 'type' => 'warning'];
+ }
+ }
+ // Edit Tank
+ elseif (isset($_POST['edit_tank'])) {
+ $id = $_POST['tank_id'];
+ $name = trim($_POST['name']);
+ $bunk_id = $_POST['bunk_id'];
+ $fuel_type_id = $_POST['fuel_type_id'];
+ $capacity = $_POST['capacity'];
+
+ if (!empty($name) && !empty($bunk_id) && !empty($fuel_type_id) && !empty($capacity) && !empty($id)) {
+ try {
+ $stmt = $db->prepare("UPDATE tanks SET name = ?, bunk_id = ?, fuel_type_id = ?, capacity = ? WHERE id = ?");
+ $stmt->execute([$name, $bunk_id, $fuel_type_id, $capacity, $id]);
+ $_SESSION['notification'] = ['text' => 'Tank updated successfully!', 'type' => 'success'];
+ } catch (PDOException $e) {
+ $_SESSION['notification'] = ['text' => 'Error updating tank: ' . $e->getMessage(), 'type' => 'danger'];
+ }
+ } else {
+ $_SESSION['notification'] = ['text' => 'All fields are required.', 'type' => 'warning'];
+ }
+ }
+ header("Location: tanks.php");
+ exit;
+}
+
+// Delete Tank
+if (isset($_GET['action']) && $_GET['action'] === 'delete' && isset($_GET['id'])) {
+ try {
+ $db = db();
+ $stmt = $db->prepare("DELETE FROM tanks WHERE id = ?");
+ $stmt->execute([$_GET['id']]);
+ $_SESSION['notification'] = ['text' => 'Tank deleted successfully!', 'type' => 'success'];
+ } catch (PDOException $e) {
+ $_SESSION['notification'] = ['text' => 'Error deleting tank: ' . $e->getMessage(), 'type' => 'danger'];
+ }
+ header("Location: tanks.php");
+ exit;
+}
+
+if (isset($_SESSION['notification'])) {
+ $notification = $_SESSION['notification'];
+ unset($_SESSION['notification']);
+}
+
+$db = db();
+$tanks = $db->query("SELECT t.*, b.name as bunk_name, ft.name as fuel_type_name FROM tanks t JOIN bunks b ON t.bunk_id = b.id JOIN fuel_types ft ON t.fuel_type_id = ft.id ORDER BY t.created_at DESC")->fetchAll(PDO::FETCH_ASSOC);
+$bunks = $db->query("SELECT * FROM bunks")->fetchAll(PDO::FETCH_ASSOC);
+$fuel_types = $db->query("SELECT * FROM fuel_types")->fetchAll(PDO::FETCH_ASSOC);
+$page_title = "Tank Management";
+?>
+
+
+
+
+
+
= htmlspecialchars($page_title) ?> - Petrol Pump Management
+
+
+
+
+
+
+
+
+
= htmlspecialchars($page_title) ?>
+
+
+
+
+
+
+
+
+ | Name |
+ Bunk |
+ Fuel Type |
+ Capacity (L) |
+ Actions |
+
+
+
+
+
+ | = htmlspecialchars($tank['name']) ?> |
+ = htmlspecialchars($tank['bunk_name']) ?> |
+ = htmlspecialchars($tank['fuel_type_name']) ?> |
+ = htmlspecialchars(number_format($tank['capacity'])) ?> |
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Are you sure you want to delete this tank?
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/users.php b/users.php
new file mode 100644
index 0000000..b6e421b
--- /dev/null
+++ b/users.php
@@ -0,0 +1,329 @@
+prepare("INSERT INTO users (username, password, role_id, bunk_id) VALUES (?, ?, ?, ?)");
+ $stmt->execute([$username, $hashed_password, $role_id, $bunk_id]);
+ $_SESSION['notification'] = ['text' => 'User added successfully!', 'type' => 'success'];
+ } catch (PDOException $e) {
+ $_SESSION['notification'] = ['text' => 'Error adding user: ' . $e->getMessage(), 'type' => 'danger'];
+ }
+ } else {
+ $_SESSION['notification'] = ['text' => 'Username, password, and role are required.', 'type' => 'warning'];
+ }
+ }
+ // Edit User
+ elseif (isset($_POST['edit_user'])) {
+ $id = $_POST['user_id'];
+ $username = trim($_POST['username']);
+ $role_id = $_POST['role_id'];
+ $bunk_id = !empty($_POST['bunk_id']) ? $_POST['bunk_id'] : null;
+ $password = $_POST['password'];
+
+ if (!empty($username) && !empty($role_id) && !empty($id)) {
+ try {
+ if (!empty($password)) {
+ $hashed_password = password_hash($password, PASSWORD_BCRYPT);
+ $stmt = $db->prepare("UPDATE users SET username = ?, role_id = ?, bunk_id = ?, password = ? WHERE id = ?");
+ $stmt->execute([$username, $role_id, $bunk_id, $hashed_password, $id]);
+ } else {
+ $stmt = $db->prepare("UPDATE users SET username = ?, role_id = ?, bunk_id = ? WHERE id = ?");
+ $stmt->execute([$username, $role_id, $bunk_id, $id]);
+ }
+ $_SESSION['notification'] = ['text' => 'User updated successfully!', 'type' => 'success'];
+ } catch (PDOException $e) {
+ $_SESSION['notification'] = ['text' => 'Error updating user: ' . $e->getMessage(), 'type' => 'danger'];
+ }
+ } else {
+ $_SESSION['notification'] = ['text' => 'Username, role, and ID are required.', 'type' => 'warning'];
+ }
+ }
+ header("Location: users.php");
+ exit;
+}
+
+// Delete User (Soft Delete)
+if (isset($_GET['action']) && $_GET['action'] === 'delete' && isset($_GET['id'])) {
+ try {
+ $db = db();
+ $stmt = $db->prepare("UPDATE users SET deleted_at = NOW() WHERE id = ?");
+ $stmt->execute([$_GET['id']]);
+ $_SESSION['notification'] = ['text' => 'User deleted successfully!', 'type' => 'success'];
+ } catch (PDOException $e) {
+ $_SESSION['notification'] = ['text' => 'Error deleting user: ' . $e->getMessage(), 'type' => 'danger'];
+ }
+ header("Location: users.php");
+ exit;
+}
+
+if (isset($_SESSION['notification'])) {
+ $notification = $_SESSION['notification'];
+ unset($_SESSION['notification']);
+}
+
+// Fetch roles and bunks for dropdowns
+$roles = db()->query("SELECT * FROM roles")->fetchAll(PDO::FETCH_ASSOC);
+$bunks = db()->query("SELECT * FROM bunks WHERE deleted_at IS NULL")->fetchAll(PDO::FETCH_ASSOC);
+$users = db()->query("SELECT u.*, r.name as role_name, b.name as bunk_name FROM users u JOIN roles r ON u.role_id = r.id LEFT JOIN bunks b ON u.bunk_id = b.id WHERE u.deleted_at IS NULL ORDER BY u.created_at DESC")->fetchAll(PDO::FETCH_ASSOC);
+
+$page_title = "User Management";
+?>
+
+
+
+
+
+
= htmlspecialchars($page_title) ?> - Petrol Pump Management
+
+
+
+
+
+
+
+
+
= htmlspecialchars($page_title) ?>
+
+
+
+
+
+
+
+
+ | ID |
+ Username |
+ Role |
+ Assigned Bunk |
+ Created At |
+ Actions |
+
+
+
+
+
+ | No users found. |
+
+
+
+
+ | = htmlspecialchars($user['id']) ?> |
+ = htmlspecialchars($user['username']) ?> |
+ = htmlspecialchars($user['role_name']) ?> |
+ = htmlspecialchars($user['bunk_name'] ?? 'N/A') ?> |
+ = htmlspecialchars(date('Y-m-d H:i', strtotime($user['created_at']))) ?> |
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Are you sure you want to delete this user? This action cannot be undone.
+
+
+
+
+
+
+
+
+
+
+
+
+