135 lines
6.2 KiB
PHP
135 lines
6.2 KiB
PHP
<?php
|
|
require_once 'includes/header.php';
|
|
require_once 'db/config.php';
|
|
|
|
// Handle form submission for adding a new nozzle
|
|
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['add_nozzle'])) {
|
|
$nozzle_name = trim($_POST['nozzle_name']);
|
|
$pump_id = trim($_POST['pump_id']);
|
|
|
|
if (!empty($nozzle_name) && !empty($pump_id)) {
|
|
try {
|
|
$pdoconn = db();
|
|
$pdoconn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
|
$sql = "INSERT INTO nozzles (nozzle_name, pump_id) VALUES (:nozzle_name, :pump_id)";
|
|
$stmt = $pdoconn->prepare($sql);
|
|
$stmt->bindParam(':nozzle_name', $nozzle_name);
|
|
$stmt->bindParam(':pump_id', $pump_id);
|
|
$stmt->execute();
|
|
$success_message = "Nozzle added successfully!";
|
|
} catch (PDOException $e) {
|
|
$error_message = "Error adding nozzle: " . $e->getMessage();
|
|
}
|
|
} else {
|
|
$error_message = "Nozzle name and pump are required.";
|
|
}
|
|
}
|
|
|
|
// Fetch pumps for the dropdown
|
|
try {
|
|
$pdoconn = db();
|
|
$pumps_stmt = $pdoconn->query("SELECT id, pump_number FROM pumps ORDER BY pump_number");
|
|
$pumps = $pumps_stmt->fetchAll(PDO::FETCH_ASSOC);
|
|
} catch (PDOException $e) {
|
|
$pumps = [];
|
|
$page_error = "Error fetching pumps: " . $e->getMessage();
|
|
}
|
|
|
|
// Fetch existing nozzles with their pump and bunk
|
|
try {
|
|
$pdoconn = db();
|
|
$nozzles_stmt = $pdoconn->query("
|
|
SELECT n.id, n.nozzle_name, p.pump_number, b.name as bunk_name
|
|
FROM nozzles n
|
|
JOIN pumps p ON n.pump_id = p.id
|
|
JOIN bunks b ON p.bunk_id = b.id
|
|
ORDER BY b.name, p.pump_number, n.nozzle_name
|
|
");
|
|
$nozzles = $nozzles_stmt->fetchAll(PDO::FETCH_ASSOC);
|
|
} catch (PDOException $e) {
|
|
$nozzles = [];
|
|
$page_error = "Error fetching nozzles: " . $e->getMessage();
|
|
}
|
|
|
|
?>
|
|
|
|
<div class="container-fluid">
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
<div class="card">
|
|
<div class="card-header">
|
|
<h4 class="card-title">Manage Nozzles</h4>
|
|
</div>
|
|
<div class="card-body">
|
|
<?php if (isset($success_message)): ?>
|
|
<div class="alert alert-success"><?php echo $success_message; ?></div>
|
|
<?php endif; ?>
|
|
<?php if (isset($error_message)): ?>
|
|
<div class="alert alert-danger"><?php echo $error_message; ?></div>
|
|
<?php endif; ?>
|
|
<?php if (isset($page_error)): ?>
|
|
<div class="alert alert-danger"><?php echo $page_error; ?></div>
|
|
<?php endif; ?>
|
|
|
|
<div class="row">
|
|
<div class="col-md-4">
|
|
<h5>Add New Nozzle</h5>
|
|
<form method="POST" action="nozzles.php">
|
|
<div class="mb-3">
|
|
<label for="nozzle_name" class="form-label">Nozzle Name</label>
|
|
<input type="text" class="form-control" id="nozzle_name" name="nozzle_name" required>
|
|
</div>
|
|
<div class="mb-3">
|
|
<label for="pump_id" class="form-label">Assign to Pump</label>
|
|
<select class="form-select" id="pump_id" name="pump_id" required>
|
|
<option value="">Select Pump</option>
|
|
<?php foreach ($pumps as $pump): ?>
|
|
<option value="<?php echo htmlspecialchars($pump['id']); ?>">
|
|
<?php echo htmlspecialchars($pump['pump_number']); ?>
|
|
</option>
|
|
<?php endforeach; ?>
|
|
</select>
|
|
</div>
|
|
<button type="submit" name="add_nozzle" class="btn btn-primary">Add Nozzle</button>
|
|
</form>
|
|
</div>
|
|
<div class="col-md-8">
|
|
<h5>Existing Nozzles</h5>
|
|
<div class="table-responsive">
|
|
<table class="table table-bordered table-hover">
|
|
<thead>
|
|
<tr>
|
|
<th>ID</th>
|
|
<th>Nozzle Name</th>
|
|
<th>Pump</th>
|
|
<th>Bunk</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<?php if (empty($nozzles)): ?>
|
|
<tr>
|
|
<td colspan="4" class="text-center">No nozzles found.</td>
|
|
</tr>
|
|
<?php else: ?>
|
|
<?php foreach ($nozzles as $nozzle): ?>
|
|
<tr>
|
|
<td><?php echo htmlspecialchars($nozzle['id']); ?></td>
|
|
<td><?php echo htmlspecialchars($nozzle['nozzle_name']); ?></td>
|
|
<td><?php echo htmlspecialchars($nozzle['pump_number']); ?></td>
|
|
<td><?php echo htmlspecialchars($nozzle['bunk_name']); ?></td>
|
|
</tr>
|
|
<?php endforeach; ?>
|
|
<?php endif; ?>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<?php require_once 'includes/footer.php'; ?>
|