septian_airpanaswebsite/flowcharts/payment-verification-flowch...

361 lines
8.1 KiB
Markdown

# Flowchart - Fitur Verifikasi Pembayaran Admin
## Daftar Isi
1. [Lihat Daftar Order Tiket](#1-lihat-daftar-order-tiket)
2. [Lihat Detail Order Tiket](#2-lihat-detail-order-tiket)
3. [Konfirmasi Pembayaran Tiket](#3-konfirmasi-pembayaran-tiket)
4. [Tolak Pembayaran Tiket](#4-tolak-pembayaran-tiket)
5. [Verifikasi Pembayaran Booking](#5-verifikasi-pembayaran-booking)
---
## 1. Lihat Daftar Order Tiket
### Deskripsi
Flowchart untuk admin melihat daftar semua order tiket.
### Flowchart
```
START
{User sudah login?}
├─ NO → [Redirect ke halaman login] → END
└─ YES ↓
{User adalah admin?}
├─ NO → [Error 403: Unauthorized] → END
└─ YES ↓
[Admin mengakses menu "Order Tiket"]
[Query database: ambil semua ticket_orders]
[Include relasi: user]
[Urutkan: terbaru ke terlama (latest)]
[Tampilkan tabel order tiket:]
- Kode Order
- Nama User
- Tanggal Kunjungan
- Total Qty
- Total Harga
- Status (pending/confirmed/rejected)
- Aksi (Detail)
[Tampilkan badge warna sesuai status:]
- Pending: Kuning
- Confirmed: Hijau
- Rejected: Merah
END
```
---
## 2. Lihat Detail Order Tiket
### Deskripsi
Flowchart untuk admin melihat detail order tiket dan bukti pembayaran.
### Flowchart
```
START
[Admin klik tombol "Detail" pada order]
[Query database: ambil ticket_order berdasarkan ID]
[Include relasi:]
- user
- items.ticket
{Order ditemukan?}
├─ NO → [Error 404: Order tidak ditemukan] → END
└─ YES ↓
[Tampilkan halaman detail order]
[Tampilkan informasi order:]
- Kode Order
- Nama User
- Email User
- Tanggal Kunjungan
- Total Qty
- Total Harga
- Status
- Tanggal Order
[Tampilkan daftar tiket yang dibeli:]
- Kode Tiket
- Jenis Tiket
- Harga
- QR Code
- Status Dipakai
{Bukti pembayaran ada?}
├─ NO → [Tampilkan pesan: "Belum upload bukti"]
└─ YES ↓
[Tampilkan bukti pembayaran (gambar/PDF)]
{Status = 'pending'?}
├─ YES → [Tampilkan tombol:]
│ - "Konfirmasi Pembayaran" (hijau)
│ - "Tolak Pembayaran" (merah)
│ ↓
│ END
├─ Status = 'confirmed' → [Tampilkan badge: "Sudah Dikonfirmasi"]
│ ↓
│ [Tampilkan info:]
│ - Dikonfirmasi oleh: nama admin
│ - Tanggal konfirmasi
│ ↓
│ END
└─ Status = 'rejected' → [Tampilkan badge: "Ditolak"]
[Tampilkan alasan penolakan]
END
```
---
## 3. Konfirmasi Pembayaran Tiket
### Deskripsi
Flowchart untuk admin mengkonfirmasi pembayaran tiket.
### Flowchart
```
START
[Admin di halaman detail order]
[Admin memeriksa bukti pembayaran]
{Bukti pembayaran valid?}
├─ NO → [Admin klik "Tolak Pembayaran"] → [Lihat flowchart #4]
└─ YES ↓
[Admin klik tombol "Konfirmasi Pembayaran"]
[Tampilkan konfirmasi SweetAlert:]
"Yakin ingin konfirmasi pembayaran?"
{Admin konfirmasi?}
├─ NO (Batal) → [Tutup dialog] → END
└─ YES ↓
[Query database: ambil ticket_order berdasarkan ID]
{Order ditemukan?}
├─ NO → [Error: Order tidak ditemukan] → END
└─ YES ↓
[Update tabel ticket_orders:]
- status = 'confirmed'
- confirmed_at = waktu sekarang
- confirmed_by = admin_id yang login
- rejection_note = null
[Simpan perubahan ke database]
[Tampilkan notifikasi sukses:]
"Order tiket berhasil dikonfirmasi"
[Refresh halaman detail order]
[Tampilkan badge "Confirmed"]
[Hide tombol konfirmasi/tolak]
END
```
---
## 4. Tolak Pembayaran Tiket
### Deskripsi
Flowchart untuk admin menolak pembayaran tiket dengan alasan.
### Flowchart
```
START
[Admin di halaman detail order]
[Admin memeriksa bukti pembayaran]
{Bukti pembayaran tidak valid?}
├─ NO → [Admin klik "Konfirmasi"] → [Lihat flowchart #3]
└─ YES ↓
[Admin klik tombol "Tolak Pembayaran"]
[Tampilkan modal form penolakan]
[Tampilkan textarea untuk alasan penolakan]
[Admin mengetik alasan penolakan]
[Admin klik "Submit"]
<Validasi input>
{Alasan penolakan terisi?}
├─ NO → [Error: "Alasan penolakan wajib diisi"]
│ ↓
│ [Kembali ke modal]
│ ↓
│ END
└─ YES ↓
[Query database: ambil ticket_order berdasarkan ID]
{Order ditemukan?}
├─ NO → [Error: Order tidak ditemukan] → END
└─ YES ↓
[Update tabel ticket_orders:]
- status = 'rejected'
- confirmed_by = admin_id yang login
- rejection_note = alasan dari admin
[Simpan perubahan ke database]
[Tampilkan notifikasi sukses:]
"Order tiket ditolak"
[Refresh halaman detail order]
[Tampilkan badge "Rejected"]
[Tampilkan alasan penolakan]
[Hide tombol konfirmasi/tolak]
END
```
---
## 5. Verifikasi Pembayaran Booking
### Deskripsi
Flowchart untuk admin memverifikasi pembayaran booking pendopo.
### Flowchart
```
START
[Admin mengakses menu "Booking"]
[Query database: ambil semua bookings]
[Include relasi: user, place]
[Urutkan: terbaru ke terlama]
[Tampilkan tabel booking:]
- Kode Booking
- Nama User
- Tempat
- Tanggal Booking
- Total Harga
- Status
- Aksi (Detail)
[Admin klik "Detail" pada booking]
[Query database: ambil booking berdasarkan ID]
[Tampilkan detail booking:]
- Kode Booking
- Nama Pengunjung
- Nomor Telepon
- Alamat
- Tanggal Booking
- Total Harga
- Catatan
- Bukti Pembayaran
{Status = 'pending'?}
├─ YES → [Tampilkan tombol:]
│ - "Konfirmasi" (hijau)
│ - "Tolak" (merah)
│ ↓
│ [Admin klik salah satu tombol]
│ ↓
│ {Klik Konfirmasi?}
│ ├─ YES → [Update status = 'confirmed']
│ │ ↓
│ │ [Set confirmed_at = now()]
│ │ ↓
│ │ [Set confirmed_by = admin_id]
│ │ ↓
│ │ [Notifikasi: "Booking dikonfirmasi"]
│ │ ↓
│ │ END
│ │
│ └─ NO (Tolak) → [Tampilkan form alasan]
│ ↓
│ [Admin input alasan]
│ ↓
│ [Update status = 'rejected']
│ ↓
│ [Set rejection_note]
│ ↓
│ [Notifikasi: "Booking ditolak"]
│ ↓
│ END
└─ NO (confirmed/rejected) → [Tampilkan status saja]
[Hide tombol aksi]
END
```
---
## Panduan Membuat di Draw.io
### Simbol Flowchart
1. **Terminator** (Oval) - START/END
2. **Process** (Rectangle) - Proses/aksi
3. **Decision** (Diamond) - Kondisi/percabangan
4. **Data** (Parallelogram) - Input/Output
5. **Database** (Cylinder) - Operasi database
6. **Manual Input** (Parallelogram with slanted top) - Input manual admin
### Warna yang Disarankan
- **START/END**: Hijau teal (#14B8A6)
- **Process**: Biru muda (#E3F2FD)
- **Decision**: Kuning (#FFF59D)
- **Database Operation**: Ungu muda (#E1BEE7)
- **Admin Action**: Biru tua muda (#BBDEFB)
- **Confirm**: Hijau muda (#C8E6C9)
- **Reject**: Merah muda (#FFCDD2)
- **Pending**: Kuning muda (#FFF9C4)
### Tips
- Gunakan swimlane untuk memisahkan Admin dan System
- Tandai proses verifikasi dengan warna khusus
- Gunakan connector yang jelas untuk decision branch
- Tambahkan notes untuk status order
---
**Dibuat**: 25 Februari 2026
**Fitur**: Verifikasi Pembayaran Admin
**Sistem**: Banyu Biru Ticketing & Booking System