124 lines
4.8 KiB
PHP
124 lines
4.8 KiB
PHP
<?php
|
|
declare(strict_types=1);
|
|
|
|
require_once __DIR__ . '/includes/db_init.php';
|
|
require_once __DIR__ . '/includes/layout.php';
|
|
|
|
ensure_tables();
|
|
$pdo = db();
|
|
|
|
$id = isset($_GET['id']) ? (int)$_GET['id'] : 0;
|
|
|
|
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['disposisi_submit'])) {
|
|
$tujuan = $_POST['tujuan_departemen'] ?? '';
|
|
$instruksi = $_POST['instruksi'] ?? '';
|
|
if (!empty($tujuan)) {
|
|
$stmt = $pdo->prepare("INSERT INTO disposisi_surat_masuk (surat_masuk_id, tujuan_departemen, instruksi) VALUES (?, ?, ?)");
|
|
$stmt->execute([$id, $tujuan, $instruksi]);
|
|
}
|
|
}
|
|
|
|
$stmt = $pdo->prepare("SELECT * FROM surat_masuk WHERE id = ?");
|
|
$stmt->execute([$id]);
|
|
$row = $stmt->fetch();
|
|
|
|
$disposisi = [];
|
|
if ($row) {
|
|
$stmtDispo = $pdo->prepare("SELECT * FROM disposisi_surat_masuk WHERE surat_masuk_id = ? ORDER BY created_at DESC");
|
|
$stmtDispo->execute([$id]);
|
|
$disposisi = $stmtDispo->fetchAll();
|
|
}
|
|
|
|
render_header('Detail Surat Masuk', 'masuk');
|
|
?>
|
|
|
|
<div class="row g-4">
|
|
<div class="col-lg-8">
|
|
<div class="card border-0 shadow-sm mb-4">
|
|
<div class="card-header bg-white py-3 fw-bold">Detail Surat Masuk</div>
|
|
<div class="card-body p-4">
|
|
<?php if (!$row): ?>
|
|
<div class="empty-state">Data surat masuk tidak ditemukan.</div>
|
|
<?php else: ?>
|
|
<div class="row g-3">
|
|
<div class="col-md-6">
|
|
<div class="text-muted small">Tanggal Surat</div>
|
|
<div class="fw-semibold text-dark"><?= h($row['tanggal_surat']) ?></div>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<div class="text-muted small">Nomor Surat</div>
|
|
<div class="fw-semibold text-dark"><?= h($row['nomor_surat'] ?? '-') ?></div>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<div class="text-muted small">Pengirim</div>
|
|
<div class="fw-semibold text-dark"><?= h($row['pengirim']) ?></div>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<div class="text-muted small">Departemen Tujuan</div>
|
|
<div class="fw-semibold text-dark"><?= h($row['departemen_tujuan']) ?></div>
|
|
</div>
|
|
<div class="col-12">
|
|
<div class="text-muted small">Perihal</div>
|
|
<div class="fw-semibold text-dark"><?= h($row['perihal']) ?></div>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<div class="text-muted small">Status</div>
|
|
<span class="badge bg-light text-dark border"><?= h($row['status']) ?></span>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<div class="text-muted small">Lampiran</div>
|
|
<?php if (!empty($row['file_path'])): ?>
|
|
<a class="btn btn-sm btn-outline-primary" href="/<?= h($row['file_path']) ?>" target="_blank" rel="noopener">Download File</a>
|
|
<?php else: ?>
|
|
<span class="text-muted">Tidak ada lampiran.</span>
|
|
<?php endif; ?>
|
|
</div>
|
|
</div>
|
|
<?php endif; ?>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="card border-0 shadow-sm">
|
|
<div class="card-header bg-white py-3 fw-bold">Riwayat Disposisi</div>
|
|
<div class="card-body p-0">
|
|
<ul class="list-group list-group-flush">
|
|
<?php if (empty($disposisi)): ?>
|
|
<li class="list-group-item text-muted p-4">Belum ada disposisi.</li>
|
|
<?php else: ?>
|
|
<?php foreach ($disposisi as $d): ?>
|
|
<li class="list-group-item p-4">
|
|
<div class="d-flex justify-content-between mb-1">
|
|
<span class="badge bg-primary"><?= h($d['tujuan_departemen']) ?></span>
|
|
<small class="text-muted"><?= h($d['created_at']) ?></small>
|
|
</div>
|
|
<p class="mb-0 text-dark"><?= h($d['instruksi']) ?></p>
|
|
</li>
|
|
<?php endforeach; ?>
|
|
<?php endif; ?>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-lg-4">
|
|
<div class="card border-0 shadow-sm mb-4">
|
|
<div class="card-header bg-white py-3 fw-bold">Buat Disposisi</div>
|
|
<div class="card-body p-4">
|
|
<form method="POST">
|
|
<div class="mb-3">
|
|
<label class="form-label">Tujuan Departemen</label>
|
|
<input type="text" name="tujuan_departemen" class="form-control" required>
|
|
</div>
|
|
<div class="mb-3">
|
|
<label class="form-label">Instruksi</label>
|
|
<textarea name="instruksi" class="form-control" rows="3" required></textarea>
|
|
</div>
|
|
<button type="submit" name="disposisi_submit" class="btn btn-primary w-100">Simpan Disposisi</button>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
<a href="/surat_masuk.php" class="btn btn-light border w-100">Kembali ke Daftar</a>
|
|
</div>
|
|
</div>
|
|
|
|
<?php render_footer(); ?>
|