168 lines
8.7 KiB
PHP
168 lines
8.7 KiB
PHP
<?php
|
|
require_once __DIR__ . '/includes/header.php';
|
|
|
|
$pdo = db();
|
|
$message = '';
|
|
$customer_message = '';
|
|
$vehicle_message = '';
|
|
|
|
// Handle form submission for adding a new customer
|
|
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['add_customer'])) {
|
|
$name = trim($_POST['name']);
|
|
$contact = trim($_POST['contact']);
|
|
$address = trim($_POST['address']);
|
|
$credit_limit = trim($_POST['credit_limit']);
|
|
|
|
if (!empty($name)) {
|
|
try {
|
|
$stmt = $pdo->prepare("INSERT INTO credit_customers (name, contact, address, credit_limit) VALUES (?, ?, ?, ?)");
|
|
$stmt->execute([$name, $contact, $address, $credit_limit]);
|
|
$customer_message = '<div class="alert alert-success">Customer added successfully!</div>';
|
|
} catch (PDOException $e) {
|
|
$customer_message = '<div class="alert alert-danger">Error: ' . $e->getMessage() . '</div>';
|
|
}
|
|
} else {
|
|
$customer_message = '<div class="alert alert-warning">Customer name is required.</div>';
|
|
}
|
|
}
|
|
|
|
// Handle form submission for adding a new vehicle
|
|
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['add_vehicle'])) {
|
|
$customer_id = $_POST['customer_id'];
|
|
$vehicle_number = trim($_POST['vehicle_number']);
|
|
|
|
if (!empty($customer_id) && !empty($vehicle_number)) {
|
|
try {
|
|
$stmt = $pdo->prepare("INSERT INTO vehicles (customer_id, vehicle_number) VALUES (?, ?)");
|
|
$stmt->execute([$customer_id, $vehicle_number]);
|
|
$vehicle_message = '<div class="alert alert-success">Vehicle added successfully!</div>';
|
|
} catch (PDOException $e) {
|
|
$vehicle_message = '<div class="alert alert-danger">Error: ' . $e->getMessage() . '</div>';
|
|
}
|
|
} else {
|
|
$vehicle_message = '<div class="alert alert-warning">Vehicle number is required.</div>';
|
|
}
|
|
}
|
|
|
|
|
|
// Fetch all customers
|
|
$customers_stmt = $pdo->query("SELECT * FROM credit_customers ORDER BY name");
|
|
$customers = $customers_stmt->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
// Fetch all vehicles and group by customer
|
|
$vehicles_stmt = $pdo->query("SELECT * FROM vehicles ORDER BY vehicle_number");
|
|
$all_vehicles = $vehicles_stmt->fetchAll(PDO::FETCH_ASSOC);
|
|
$vehicles_by_customer = [];
|
|
foreach ($all_vehicles as $vehicle) {
|
|
$vehicles_by_customer[$vehicle['customer_id']][] = $vehicle;
|
|
}
|
|
|
|
?>
|
|
|
|
<div class="row">
|
|
<!-- Customer Management -->
|
|
<div class="col-md-12">
|
|
<div class="card">
|
|
<div class="card-header">
|
|
<h4>Manage Credit Customers</h4>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="row">
|
|
<div class="col-md-8">
|
|
<h5>Existing Customers</h5>
|
|
<table class="table table-striped table-hover">
|
|
<thead class="table-dark">
|
|
<tr>
|
|
<th>Name</th>
|
|
<th>Contact</th>
|
|
<th>Address</th>
|
|
<th>Credit Limit</th>
|
|
<th>Vehicles</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<?php if (empty($customers)): ?>
|
|
<tr>
|
|
<td colspan="5" class="text-center">No customers found.</td>
|
|
</tr>
|
|
<?php else: ?>
|
|
<?php foreach ($customers as $customer): ?>
|
|
<tr>
|
|
<td><?php echo htmlspecialchars($customer['name']); ?></td>
|
|
<td><?php echo htmlspecialchars($customer['contact']); ?></td>
|
|
<td><?php echo htmlspecialchars($customer['address']); ?></td>
|
|
<td><?php echo htmlspecialchars($customer['credit_limit']); ?></td>
|
|
<td>
|
|
<?php
|
|
$vehicles = $vehicles_by_customer[$customer['id']] ?? [];
|
|
if (!empty($vehicles)) {
|
|
foreach ($vehicles as $vehicle) {
|
|
echo htmlspecialchars($vehicle['vehicle_number']) . '<br>';
|
|
}
|
|
} else {
|
|
echo 'No vehicles';
|
|
}
|
|
?>
|
|
</td>
|
|
</tr>
|
|
<?php endforeach; ?>
|
|
<?php endif; ?>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="col-md-4">
|
|
<div class="card mb-3">
|
|
<div class="card-body">
|
|
<h5 class="card-title">Add New Customer</h5>
|
|
<?php echo $customer_message; ?>
|
|
<form action="credit_customers.php" method="POST">
|
|
<div class="mb-3">
|
|
<label for="name" class="form-label">Customer Name</label>
|
|
<input type="text" class="form-control" id="name" name="name" required>
|
|
</div>
|
|
<div class="mb-3">
|
|
<label for="contact" class="form-label">Contact</label>
|
|
<input type="text" class="form-control" id="contact" name="contact">
|
|
</div>
|
|
<div class="mb-3">
|
|
<label for="address" class="form-label">Address</label>
|
|
<textarea class="form-control" id="address" name="address" rows="2"></textarea>
|
|
</div>
|
|
<div class="mb-3">
|
|
<label for="credit_limit" class="form-label">Credit Limit</label>
|
|
<input type="number" step="0.01" class="form-control" id="credit_limit" name="credit_limit">
|
|
</div>
|
|
<button type="submit" name="add_customer" class="btn btn-primary">Add Customer</button>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
<div class="card">
|
|
<div class="card-body">
|
|
<h5 class="card-title">Add Vehicle to Customer</h5>
|
|
<?php echo $vehicle_message; ?>
|
|
<form action="credit_customers.php" method="POST">
|
|
<div class="mb-3">
|
|
<label for="customer_id" class="form-label">Customer</label>
|
|
<select class="form-select" id="customer_id" name="customer_id" required>
|
|
<option value="">Select a Customer</option>
|
|
<?php foreach ($customers as $customer): ?>
|
|
<option value="<?php echo $customer['id']; ?>"><?php echo htmlspecialchars($customer['name']); ?></option>
|
|
<?php endforeach; ?>
|
|
</select>
|
|
</div>
|
|
<div class="mb-3">
|
|
<label for="vehicle_number" class="form-label">Vehicle Number</label>
|
|
<input type="text" class="form-control" id="vehicle_number" name="vehicle_number" required>
|
|
</div>
|
|
<button type="submit" name="add_vehicle" class="btn btn-info">Add Vehicle</button>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<?php require_once __DIR__ . '/includes/footer.php'; ?>
|