Initial commit

This commit is contained in:
Porawit Dongwang
2026-09-16 23:20:08 +07:00
commit 0041668dbb
32577 changed files with 3687927 additions and 0 deletions
@@ -0,0 +1,72 @@
<?php
session_start();
require_once '../includes/db.php';
require_once '../includes/api_helper.php';
require_once '../includes/notifier.php';
require_once '../includes/logger.php';
if (!isset($_SESSION['user_id'])) {
jsonResponse(false, 'Unauthorized', [], 401);
}
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
jsonResponse(false, 'Invalid request method');
}
$vehicle_id = $_POST['vehicle_id'] ?? null;
$repair_date = $_POST['repair_date'] ?? null;
$description = trim($_POST['description'] ?? '');
$mileage = empty($_POST['mileage']) ? null : (int)$_POST['mileage'];
$cost = empty($_POST['cost']) ? null : (float)$_POST['cost'];
$garage = trim($_POST['garage'] ?? '');
if (!$vehicle_id || !$repair_date || empty($description)) {
jsonResponse(false, 'กรุณากรอกข้อมูลที่จำเป็นให้ครบถ้วน (วันที่ และ รายละเอียด)');
}
try {
$stmt = $pdo->prepare("INSERT INTO maintenance_records (vehicle_id, repair_date, description, mileage, cost, garage) VALUES (?, ?, ?, ?, ?, ?)");
$stmt->execute([$vehicle_id, $repair_date, $description, $mileage, $cost, $garage]);
$maintenance_record_id = $pdo->lastInsertId();
// Handle file uploads if any
$upload_msg = '';
if (isset($_FILES['documents']) && !empty($_FILES['documents']['name'][0])) {
$uploadDir = '../uploads/maintenance/';
if (!is_dir($uploadDir)) mkdir($uploadDir, 0755, true);
$successFiles = 0;
foreach ($_FILES['documents']['tmp_name'] as $key => $tmp_name) {
if ($_FILES['documents']['error'][$key] === UPLOAD_ERR_OK) {
$original_name = basename($_FILES['documents']['name'][$key]);
$file_size = $_FILES['documents']['size'][$key];
$file_type = mime_content_type($tmp_name);
$ext = strtolower(pathinfo($original_name, PATHINFO_EXTENSION));
if ($ext === 'pdf' && $file_type === 'application/pdf' && $file_size <= 10 * 1024 * 1024) {
$new_filename = uniqid('maint_') . '_' . time() . '.pdf';
$dest_path = $uploadDir . $new_filename;
if (move_uploaded_file($tmp_name, $dest_path)) {
$docStmt = $pdo->prepare("INSERT INTO maintenance_documents (maintenance_record_id, original_name, file_name, file_path) VALUES (?, ?, ?, ?)");
$docStmt->execute([$maintenance_record_id, $original_name, $new_filename, 'uploads/maintenance/' . $new_filename]);
$successFiles++;
}
}
}
}
if ($successFiles > 0) $upload_msg = " (และแนบเอกสาร $successFiles ไฟล์)";
}
// Fetch vehicle plate for notification
$vehStmt = $pdo->prepare("SELECT license_plate FROM vehicles WHERE id = ?");
$vehStmt->execute([$vehicle_id]);
$veh = $vehStmt->fetch();
$plate = $veh ? $veh['license_plate'] : "ID {$vehicle_id}";
notifyEvent('maintenance', "🛠 แจ้งเตือนซ่อมบำรุง\nมีการบันทึกประวัติการซ่อมรถ ทะเบียน: {$plate}\nรายละเอียด: {$description}");
jsonResponse(true, 'บันทึกประวัติการซ่อมสำเร็จ' . $upload_msg);
} catch (PDOException $e) {
jsonResponse(false, 'Database Error: ' . $e->getMessage());
}
?>