Files
2026-09-16 23:20:08 +07:00

68 lines
3.1 KiB
PHP

<?php
session_start();
require_once '../includes/db.php';
require_once '../includes/api_helper.php';
require_once '../includes/logger.php';
require_once '../includes/notifier.php';
if (!isset($_SESSION['user_id'])) {
jsonResponse(false, 'Unauthorized', [], 401);
}
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
jsonResponse(false, 'Invalid request method');
}
$id = $_POST['id'] ?? '';
$first_name = trim($_POST['first_name'] ?? '');
$last_name = trim($_POST['last_name'] ?? '');
$phone = trim($_POST['phone'] ?? '');
$status = $_POST['status'] ?? 'available';
// New HR fields
$hr_cid = trim($_POST['hr_cid'] ?? '');
$sex = trim($_POST['sex'] ?? '');
$position = trim($_POST['position'] ?? '');
$department = trim($_POST['department'] ?? '');
$person_type = trim($_POST['person_type'] ?? '');
$license_type = trim($_POST['license_type'] ?? '');
$license_expiry_date = trim($_POST['license_expiry_date'] ?? '');
if (empty($license_expiry_date)) {
$license_expiry_date = null;
}
if (empty($first_name) || empty($last_name)) {
jsonResponse(false, 'กรุณากรอกชื่อและนามสกุล');
}
// Generate random avatar if empty
$avatar = 'https://ui-avatars.com/api/?name=' . urlencode($first_name . ' ' . $last_name) . '&background=random';
try {
if (empty($id)) {
// สร้างใหม่
$stmt = $pdo->prepare("INSERT INTO drivers (first_name, last_name, phone, status, avatar, hr_cid, sex, position, department, person_type, license_type, license_expiry_date) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
$stmt->execute([$first_name, $last_name, $phone, $status, $avatar, $hr_cid, $sex, $position, $department, $person_type, $license_type, $license_expiry_date]);
$newId = $pdo->lastInsertId();
logActivity("Create Driver ({$first_name} {$last_name})", 'drivers', $newId);
notifyEvent('driver', "👤 แจ้งเตือนพนักงานขับรถ\nมีพนักงานใหม่เพิ่มเข้าระบบ: {$first_name} {$last_name}");
jsonResponse(true, 'เพิ่มพนักงานใหม่สำเร็จ');
} else {
// แก้ไข
$stmt = $pdo->prepare("UPDATE drivers SET first_name=?, last_name=?, phone=?, status=?, avatar=?, hr_cid=?, sex=?, position=?, department=?, person_type=?, license_type=?, license_expiry_date=? WHERE id=?");
$stmt->execute([$first_name, $last_name, $phone, $status, $avatar, $hr_cid, $sex, $position, $department, $person_type, $license_type, $license_expiry_date, $id]);
logActivity("Update Driver ({$first_name} {$last_name})", 'drivers', $id);
notifyEvent('driver', "👤 แจ้งเตือนพนักงานขับรถ\nแก้ไขข้อมูลพนักงาน: {$first_name} {$last_name}");
jsonResponse(true, 'แก้ไขข้อมูลพนักงานสำเร็จ');
}
} catch (PDOException $e) {
jsonResponse(false, 'Database Error: ' . $e->getMessage());
}
?>