39401-vm/service.php
2026-03-30 17:47:50 +00:00

99 lines
4.3 KiB
PHP

<?php
declare(strict_types=1);
require_once __DIR__ . '/includes/layout.php';
require_user_login();
$id = isset($_GET['id']) ? (int) $_GET['id'] : 0;
$service = $id > 0 ? fetch_service_by_id_for_user(current_user_id(), $id) : null;
if (!$service) {
http_response_code(404);
}
render_page_start([
'title' => $service ? 'Detail reminder servis' : 'Catatan tidak ditemukan',
'description' => 'Lihat detail item servis kendaraan beserta status reminder dan jadwal servis berikutnya.',
'page' => 'detail',
'robots' => 'noindex, nofollow',
]);
render_flash(consume_flash());
?>
<section class="py-4 py-lg-5">
<div class="container">
<?php if (!$service): ?>
<div class="surface-card text-center py-5">
<span class="eyebrow">404</span>
<h1 class="section-title mt-2">Catatan servis tidak ditemukan</h1>
<p class="text-secondary mb-4">Catatan ini mungkin bukan milik akun kamu, atau link yang dibuka sudah tidak valid.</p>
<a class="btn btn-dark" href="<?= e(app_url('dashboard.php')) ?>">Kembali ke dashboard</a>
</div>
<?php else: ?>
<?php $state = due_state($service['next_due_date'] ?? null); ?>
<div class="row g-4 align-items-start">
<div class="col-lg-8">
<div class="surface-card detail-card">
<div class="d-flex flex-column flex-md-row justify-content-between align-items-md-start gap-3 mb-4">
<div>
<span class="eyebrow">Detail reminder privat</span>
<h1 class="section-title mt-2 mb-2"><?= e($service['vehicle_name']) ?></h1>
<p class="text-secondary mb-0"><?= e($service['service_name']) ?><?= !empty($service['plate_number']) ? ' · ' . e($service['plate_number']) : '' ?></p>
</div>
<span class="status-pill <?= e($state['class']) ?> large"><?= e($state['label']) ?></span>
</div>
<div class="row g-3 mb-4">
<div class="col-md-4">
<div class="detail-box">
<div class="detail-label">Jenis kendaraan</div>
<div class="detail-value"><?= e($service['vehicle_category']) ?></div>
</div>
</div>
<div class="col-md-4">
<div class="detail-box">
<div class="detail-label">Servis terakhir</div>
<div class="detail-value"><?= e(date('d M Y', strtotime((string) $service['last_service_date']))) ?></div>
</div>
</div>
<div class="col-md-4">
<div class="detail-box">
<div class="detail-label">Servis berikutnya</div>
<div class="detail-value"><?= e(date('d M Y', strtotime((string) $service['next_due_date']))) ?></div>
</div>
</div>
</div>
<div class="surface-subsection mb-4">
<h2 class="h6 mb-3">Ringkasan reminder</h2>
<div class="detail-metadata stacked">
<span>Interval pengingat: <?= (int) $service['reminder_interval_days'] ?> hari</span>
<span>Status dashboard: <?= e($state['description']) ?></span>
<span>Kilometer terakhir: <?= $service['odometer_km'] ? number_format((int) $service['odometer_km']) . ' km' : 'Belum dicatat' ?></span>
</div>
</div>
<div class="surface-subsection">
<h2 class="h6 mb-3">Catatan servis</h2>
<p class="text-secondary mb-0"><?= $service['notes'] ? e($service['notes']) : 'Belum ada catatan tambahan untuk item servis ini.' ?></p>
</div>
</div>
</div>
<div class="col-lg-4">
<div class="surface-card side-panel mb-3">
<h2 class="h6 mb-3">Aksi cepat</h2>
<div class="d-grid gap-2">
<a class="btn btn-dark" href="<?= e(app_url('dashboard.php')) ?>">Tambah reminder lain</a>
<a class="btn btn-outline-secondary" href="<?= e(app_url()) ?>">Kembali ke beranda</a>
</div>
</div>
<div class="surface-card muted-panel">
<h2 class="h6 mb-2">Privasi akun</h2>
<p class="small text-secondary mb-0">Halaman detail ini hanya menampilkan catatan milik akun yang sedang login, jadi data user lain tidak ikut terlihat.</p>
</div>
</div>
</div>
<?php endif; ?>
</div>
</section>
<?php render_page_end(); ?>