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

51 lines
2.1 KiB
PHP

<?php
// config.php
$host = 'localhost';
$db = 'asset_tracker';
$user = 'root';
$pass = '@Samui@10742';
try {
$pdo = new PDO("mysql:host=$host;dbname=$db;charset=utf8mb4", $user, $pass, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
]);
} catch (PDOException $e) {
die("Database Connection Failed: " . $e->getMessage());
}
// ฟังก์ชันคำนวณ % Progress ตามขั้นตอน Workflow
function getProgressByStatus($status)
{
return match ($status) {
'รอการยืนยันแผน' => 15,
'อยู่ระหว่างดำเนินการ' => 50,
'ใบส่งซื้อ/ทำสัญญา' => 85,
'ดำเนินการเสร็จสิ้น' => 100,
default => 0
};
}
// ฟังก์ชันประเมินสถานะ Timeline สี (เขียว, เหลือง, แดง)
function getTimelineBadge($dueDate, $status)
{
if ($status === 'ดำเนินการเสร็จสิ้น') {
return '<span class="badge bg-success"><i class="bi bi-check-circle"></i> เสร็จสิ้น</span>';
}
if (empty($dueDate)) {
return '<span class="badge bg-secondary">ยังไม่ระบุวัน</span>';
}
$today = new DateTime();
$due = new DateTime($dueDate);
$diff = $today->diff($due)->days * ($today > $due ? -1 : 1);
if ($diff < 0) {
return '<span class="badge bg-danger"><i class="bi bi-exclamation-triangle"></i> ล่าช้า (' . abs($diff) . ' วัน)</span>';
} elseif ($diff <= 15) {
return '<span class="badge bg-warning text-dark"><i class="bi bi-clock-history"></i> ใกล้กำหนด (เหลือ ' . $diff . ' วัน)</span>';
} else {
return '<span class="badge bg-success"><i class="bi bi-calendar-check"></i> ตรงเวลา (เหลือ ' . $diff . ' วัน)</span>';
}
}