diff --git a/admin_truck_owner_edit.php b/admin_truck_owner_edit.php
index f8da63e..56f862c 100644
--- a/admin_truck_owner_edit.php
+++ b/admin_truck_owner_edit.php
@@ -22,8 +22,8 @@ $flash = null;
$stmt = db()->prepare("
SELECT u.id, u.email, u.full_name, u.status, u.role,
p.phone, p.address_line, p.country_id, p.city_id,
- p.truck_type, p.load_capacity, p.plate_no, p.bank_account, p.bank_name, p.bank_branch,
- p.id_card_path, p.truck_pic_path, p.registration_path
+ p.bank_account, p.bank_name, p.bank_branch,
+ p.id_card_path, p.is_company
FROM users u
LEFT JOIN truck_owner_profiles p ON u.id = p.user_id
WHERE u.id = ? AND u.role = 'truck_owner'
@@ -31,6 +31,10 @@ $stmt = db()->prepare("
$stmt->execute([$userId]);
$owner = $stmt->fetch();
+$trucks = db()->prepare("SELECT * FROM trucks WHERE user_id = ?");
+$trucks->execute([$userId]);
+$ownerTrucks = $trucks->fetchAll();
+
if (!$owner) {
if ($isAjax) {
echo json_encode(['success' => false, 'message' => 'Owner not found']);
@@ -50,36 +54,21 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { validate_csrf_token();
$countryId = (int)($_POST['country_id'] ?? 0);
$cityId = (int)($_POST['city_id'] ?? 0);
$addressLine = trim($_POST['address_line'] ?? '');
-
- $truckType = trim($_POST['truck_type'] ?? '');
- $loadCapacity = trim($_POST['load_capacity'] ?? '');
- $plateNo = trim($_POST['plate_no'] ?? '');
$status = trim($_POST['status'] ?? '');
$password = $_POST['password'] ?? '';
$bankAccount = trim($_POST['bank_account'] ?? '');
$bankName = trim($_POST['bank_name'] ?? '');
$bankBranch = trim($_POST['bank_branch'] ?? '');
+ $isCompany = isset($_POST['is_company']) ? 1 : 0;
if ($fullName === '') $errors[] = 'Full name is required.';
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) $errors[] = 'Valid email is required.';
if ($phone === '') $errors[] = 'Phone number is required.';
if (!in_array($status, ['pending', 'active', 'rejected'], true)) $errors[] = 'Invalid status.';
- if ($truckType === '' || $loadCapacity === '' || $plateNo === '') {
- $errors[] = 'Truck type, load capacity, and plate number are required.';
- } elseif (!is_numeric($loadCapacity) || (float)$loadCapacity <= 0) {
- $errors[] = 'Load capacity must be a positive number.';
- }
-
if ($countryId <= 0 || $cityId <= 0) {
$errors[] = 'Please select country and city.';
- } else {
- $cityCheck = db()->prepare("SELECT COUNT(*) FROM cities WHERE id = ? AND country_id = ?");
- $cityCheck->execute([$cityId, $countryId]);
- if ((int)$cityCheck->fetchColumn() === 0) {
- $errors[] = 'Selected city does not belong to selected country.';
- }
}
if (!$errors) {
@@ -97,57 +86,21 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { validate_csrf_token();
$stmtProfile = db()->prepare("
UPDATE truck_owner_profiles
SET phone = ?, address_line = ?, country_id = ?, city_id = ?,
- truck_type = ?, load_capacity = ?, plate_no = ?,
- bank_account = ?, bank_name = ?, bank_branch = ?
+ bank_account = ?, bank_name = ?, bank_branch = ?, is_company = ?
WHERE user_id = ?
");
- $stmtProfile->execute([$phone, $addressLine, $countryId, $cityId, $truckType, $loadCapacity, $plateNo, $bankAccount, $bankName, $bankBranch, $userId]);
+ $stmtProfile->execute([$phone, $addressLine, $countryId, $cityId, $bankAccount, $bankName, $bankBranch, $isCompany, $userId]);
db()->commit();
$flash = 'Truck Owner profile updated successfully.';
-
- // If AJAX, return success immediately
- if ($isAjax) {
- header('Content-Type: application/json');
- echo json_encode(['success' => true, 'message' => $flash]);
- exit;
- }
-
- // Refresh data for non-ajax
- $owner['full_name'] = $fullName;
- $owner['email'] = $email;
- $owner['status'] = $status;
- $owner['phone'] = $phone;
- $owner['address_line'] = $addressLine;
- $owner['country_id'] = $countryId;
- $owner['city_id'] = $cityId;
- $owner['truck_type'] = $truckType;
- $owner['load_capacity'] = $loadCapacity;
- $owner['plate_no'] = $plateNo;
- $owner['bank_account'] = $bankAccount;
- $owner['bank_name'] = $bankName;
- $owner['bank_branch'] = $bankBranch;
-
} catch (Throwable $e) {
db()->rollBack();
- if (stripos($e->getMessage(), 'Duplicate entry') !== false) {
- $errors[] = 'This email is already in use by another account.';
- } else {
- $errors[] = 'Failed to update truck owner profile. Please try again.';
- }
+ $errors[] = 'Failed to update truck owner profile. Please try again.';
}
}
-
- if ($isAjax && $errors) {
- header('Content-Type: application/json');
- echo json_encode(['success' => false, 'message' => implode('
', $errors)]);
- exit;
- }
}
$idCards = json_decode($owner['id_card_path'] ?? '[]', true) ?: [];
-$regs = json_decode($owner['registration_path'] ?? '[]', true) ?: [];
-$pic = $owner['truck_pic_path'];
// -- OUTPUT START --
if (!$isAjax):
@@ -159,12 +112,9 @@ if (!$isAjax):
Update profile information for = e($owner['full_name']) ?>.
-| Truck Type | +Load Capacity (T) | +Plate No | +
|---|---|---|
| = e($truck['truck_type']) ?> | += e($truck['load_capacity']) ?> | += e($truck['plate_no']) ?> | +