Type above and press Enter to search. Press Close to cancel.
# DOKUMEN FLOW UNTUK USER - SISTEM POINT OF SALES (POS)
## A. FITUR-FITUR SISTEM
### 1. Manajemen Autentikasi & Pengguna
- **Login/Logout**: Masuk dan keluar dari sistem menggunakan email dan password
- **Registrasi**: Pendaftaran pengguna baru
- **Manajemen User**:
- Lihat daftar pengguna
- Tambah pengguna baru dengan assign role
- Edit data pengguna dan role
- Hapus pengguna
- Cari pengguna berdasarkan nama
- **Manajemen Role**:
- Lihat daftar role
- Tambah role baru
- Edit role dan permission-nya
- Hapus role
- **Manajemen Permission**:
- Lihat daftar permission
- Tambah permission baru
- Edit permission
- Hapus permission
### 2. Manajemen Kategori Produk
- **Lihat Daftar Kategori**: Daftar semua kategori dengan gambar dan deskripsi
- **Tambah Kategori**: Tambah kategori baru dengan gambar dan deskripsi
- **Edit Kategori**: Edit nama, deskripsi, dan gambar kategori
- **Hapus Kategori**: Hapus kategori dari sistem
- **Cari Kategori**: Pencarian kategori berdasarkan nama
### 3. Manajemen Produk
- **Lihat Daftar Produk**: Daftar semua produk dengan informasi lengkap
- **Tambah Produk**:
- Input barcode unik
- Input nama, deskripsi, harga beli, harga jual, stok
- Pilih kategori produk
- Upload gambar produk
- **Edit Produk**: Edit semua informasi produk termasuk update gambar
- **Hapus Produk**: Hapus produk dari sistem
- **Cari Produk**: Pencarian produk berdasarkan nama
### 4. Manajemen Pelanggan
- **Lihat Daftar Pelanggan**: Daftar semua pelanggan
- **Tambah Pelanggan**: Input nama, nomor telepon (unik), dan alamat
- **Edit Pelanggan**: Edit data pelanggan
- **Hapus Pelanggan**: Hapus pelanggan dari sistem
- **Cari Pelanggan**: Pencarian pelanggan berdasarkan nama
### 5. Sistem Transaksi Penjualan
- **Scan/Input Barcode**:
- Scan barcode produk menggunakan scanner atau input manual
- Sistem mencari produk secara otomatis
- **Keranjang Belanja**:
- Tambah produk ke keranjang dengan kuantitas
- Lihat daftar produk di keranjang
- Update kuantitas produk
- Hapus item dari keranjang
- Lihat total belanja
- **Pilih Pelanggan**: Pilih pelanggan dari daftar (opsional, bisa kosong)
- **Pembayaran**:
- Input diskon (jika ada)
- Input uang tunai
- Sistem hitung kembalian otomatis
- Validasi uang tunai harus cukup
- **Proses Transaksi**:
- Generate invoice otomatis
- Simpan transaksi
- Update stok produk otomatis
- Hitung profit otomatis
- **Cetak Struk**: Cetak struk transaksi dengan detail lengkap
### 6. Dashboard
- **Statistik**: Lihat widget statistik (Total Kategori, Produk, Transaksi, Pengguna)
---
## B. JENIS PENGGUNA (USER ROLES)
### 1. Super Admin
- **Email**: arya@gmail.com
- **Password**: password
- **Hak Akses**:
- ✅ Akses penuh ke semua fitur
- ✅ Manajemen user, role, dan permission
- ✅ Manajemen kategori, produk, dan pelanggan
- ✅ Akses transaksi penjualan
- ✅ Dashboard
### 2. Cashier (Kasir)
- **Email**: cashier@gmail.com
- **Password**: password
- **Hak Akses**:
- ❌ Tidak dapat akses manajemen user, role, permission
- ❌ Tidak dapat akses manajemen kategori, produk, pelanggan
- ✅ Hanya dapat akses transaksi penjualan
- ✅ Dapat melakukan transaksi penjualan
### 3. Role Lainnya
Sistem mendukung berbagai role dengan permission berbeda:
- **users-access**: Role untuk manajemen pengguna
- **roles-access**: Role untuk manajemen role
- **permission-access**: Role untuk manajemen permission
- **categories-access**: Role untuk manajemen kategori
- **products-access**: Role untuk manajemen produk
- **customers-access**: Role untuk manajemen pelanggan
- **transactions-access**: Role untuk transaksi penjualan
Setiap role dapat memiliki permission detail (create, update, delete) sesuai kebutuhan bisnis.
---
## C. FLOW BISNIS (BUSINESS PROCESS FLOW)
### 1. Flow Setup Awal Sistem (Untuk Admin)
#### A. Setup Kategori Produk
```
1. Login sebagai Admin
↓
2. Masuk ke menu "Kategori"
↓
3. Klik "Tambah Kategori"
↓
4. Input data kategori:
- Nama kategori (contoh: "Makanan", "Minuman", "Snack")
- Deskripsi kategori
- Upload gambar kategori
↓
5. Klik "Simpan"
↓
6. Kategori berhasil ditambahkan
↓
7. Ulangi untuk kategori lainnya
```
#### B. Setup Produk
```
1. Masuk ke menu "Produk"
↓
2. Klik "Tambah Produk"
↓
3. Input data produk:
- Barcode (unik, contoh: "1234567890123")
- Nama produk
- Deskripsi produk
- Pilih kategori
- Harga beli (contoh: 5000)
- Harga jual (contoh: 7000)
- Stok awal (contoh: 100)
- Upload gambar produk
↓
4. Klik "Simpan"
↓
5. Produk berhasil ditambahkan
↓
6. Ulangi untuk produk lainnya
```
#### C. Setup Pelanggan (Opsional)
```
1. Masuk ke menu "Pelanggan"
↓
2. Klik "Tambah Pelanggan"
↓
3. Input data pelanggan:
- Nama pelanggan
- Nomor telepon (harus unik)
- Alamat
↓
4. Klik "Simpan"
↓
5. Pelanggan berhasil ditambahkan
```
#### D. Setup User Kasir
```
1. Masuk ke menu "Users"
↓
2. Klik "Tambah User"
↓
3. Input data user:
- Nama kasir
- Email (harus unik)
- Password
- Pilih role "transactions-access"
↓
4. Klik "Simpan"
↓
5. User kasir berhasil dibuat
```
---
### 2. Flow Transaksi Penjualan (Untuk Kasir)
#### A. Memulai Transaksi Baru
```
1. Login sebagai Kasir
↓
2. Masuk ke menu "Transaksi"
↓
3. Halaman transaksi terbuka dengan keranjang kosong
```
#### B. Menambah Produk ke Keranjang
```
1. Di bagian "Tambah Data Produk":
↓
2. Scan barcode produk menggunakan barcode scanner
ATAU
Input barcode secara manual di field "Scan/Input Barcode Produk"
↓
3. Tekan Enter atau klik di luar field
↓
4. Sistem mencari produk:
✅ Jika produk ditemukan:
- Nama produk muncul di field "Produk"
- Stok tersedia ditampilkan
❌ Jika produk tidak ditemukan:
- Field "Produk" tetap kosong
- Tidak dapat menambah ke keranjang
↓
5. Input kuantitas yang ingin dibeli (default: 1)
↓
6. Cek stok tersedia (sistem validasi otomatis)
↓
7. Klik tombol "Tambah"
↓
8. Produk berhasil ditambahkan ke keranjang
↓
9. Total belanja otomatis terupdate
```
#### C. Mengelola Keranjang
```
1. Lihat daftar produk di keranjang (tabel "Keranjang")
↓
2. Untuk menghapus item:
- Klik tombol hapus (icon trash) pada item yang ingin dihapus
- Item langsung terhapus dari keranjang
- Total belanja otomatis terupdate
↓
3. Untuk menambah produk yang sama:
- Scan/input barcode produk yang sama
- Input kuantitas tambahan
- Klik "Tambah"
- Sistem otomatis update qty produk yang sudah ada di keranjang
```
#### D. Memilih Pelanggan (Opsional)
```
1. Di bagian "Transaksi":
↓
2. Field "Kasir" otomatis terisi dengan nama kasir yang login
↓
3. Di field "Pelanggan":
- Klik dropdown "Pelanggan"
- Cari pelanggan (jika banyak) atau pilih langsung
- Pilih pelanggan
ATAU
- Biarkan kosong (untuk walk-in customer)
```
#### E. Proses Pembayaran
```
1. Di bagian "Pembayaran":
↓
2. Lihat "Total Belanja" (otomatis dari keranjang)
↓
3. Input "Diskon" (jika ada, contoh: 5000)
- Sistem otomatis hitung: Grand Total = Total Belanja - Diskon
↓
4. Input "Bayar" (uang tunai yang diterima, contoh: 100000)
↓
5. Sistem otomatis hitung "Kembalian":
- Kembalian = Bayar - Grand Total
- Jika Bayar < Grand Total, tombol "Bayar" disabled
↓
6. Pastikan kembalian >= 0 (uang tunai cukup)
↓
7. Klik tombol "Bayar"
↓
8. Sistem validasi:
✅ Jika uang tunai >= grand total:
- Proses transaksi
❌ Jika uang tunai < grand total:
- Tampilkan notifikasi error
- Transaksi tidak dapat diproses
```
#### F. Proses Transaksi
```
1. Setelah klik "Bayar" dan validasi berhasil:
↓
2. Sistem generate invoice number (format: TRX-XXXXXXXXXX)
↓
3. Sistem simpan transaksi ke database:
- Data transaksi (invoice, cashier, customer, cash, change, discount, grand_total)
- Detail transaksi (setiap produk di keranjang)
- Profit per item (harga jual - harga beli) × qty
↓
4. Sistem update stok produk:
- Untuk setiap produk di keranjang:
Stok baru = Stok lama - Qty terjual
↓
5. Sistem hapus semua item di keranjang
↓
6. Redirect ke halaman "Cetak Struk"
↓
7. Tampilkan struk transaksi dengan detail lengkap:
- Invoice number
- Tanggal dan waktu transaksi
- Nama kasir
- Nama pelanggan (jika ada)
- Daftar produk (nama, qty, harga, subtotal)
- Total belanja
- Diskon
- Grand total
- Uang tunai
- Kembalian
↓
8. Transaksi selesai
↓
9. Kasir dapat:
- Cetak struk (print)
- Kembali ke halaman transaksi untuk transaksi baru
```
---
### 3. Flow Manajemen Produk (Untuk Admin/User dengan Permission)
#### A. Lihat Daftar Produk
```
1. Masuk ke menu "Produk"
↓
2. Lihat daftar produk dalam bentuk tabel:
- Gambar produk
- Nama produk
- Kategori
- Harga beli
- Harga jual
- Stok
- Aksi (Edit, Hapus)
↓
3. Gunakan search box untuk mencari produk berdasarkan nama
↓
4. Gunakan pagination untuk melihat halaman berikutnya
```
#### B. Tambah Produk Baru
```
1. Di halaman daftar produk, klik "Tambah Produk"
↓
2. Form tambah produk terbuka
↓
3. Input semua field yang wajib:
- Barcode (harus unik, tidak boleh sama dengan produk lain)
- Nama produk
- Deskripsi
- Pilih kategori (dropdown)
- Harga beli (angka)
- Harga jual (angka)
- Stok (angka)
- Upload gambar (file image)
↓
4. Klik "Simpan"
↓
5. Validasi:
✅ Jika semua field valid:
- Produk berhasil disimpan
- Redirect ke halaman daftar produk
❌ Jika ada field yang tidak valid:
- Tampilkan pesan error
- Form tetap terbuka untuk perbaikan
```
#### C. Edit Produk
```
1. Di halaman daftar produk, klik tombol "Edit" pada produk yang ingin diedit
↓
2. Form edit produk terbuka dengan data produk terisi
↓
3. Edit field yang ingin diubah:
- Barcode (dapat diubah, tapi harus tetap unik)
- Nama, deskripsi, kategori, harga, stok
- Gambar (opsional, jika tidak diubah tetap pakai gambar lama)
↓
4. Klik "Simpan"
↓
5. Produk berhasil diupdate
↓
6. Redirect ke halaman daftar produk
```
#### D. Hapus Produk
```
1. Di halaman daftar produk, klik tombol "Hapus" pada produk yang ingin dihapus
↓
2. Konfirmasi penghapusan (biasanya via SweetAlert)
↓
3. Jika dikonfirmasi:
- Produk dihapus dari database
- Gambar produk juga dihapus dari storage
- Redirect ke halaman daftar produk
```
---
### 4. Flow Manajemen Kategori (Untuk Admin)
#### A. Lihat Daftar Kategori
```
1. Masuk ke menu "Kategori"
↓
2. Lihat daftar kategori dalam bentuk card/grid:
- Gambar kategori
- Nama kategori
- Deskripsi
- Aksi (Edit, Hapus)
↓
3. Gunakan search box untuk mencari kategori berdasarkan nama
↓
4. Gunakan pagination untuk melihat halaman berikutnya
```
#### B. Tambah Kategori Baru
```
1. Di halaman daftar kategori, klik "Tambah Kategori"
↓
2. Form tambah kategori terbuka
↓
3. Input semua field:
- Nama kategori
- Deskripsi
- Upload gambar kategori
↓
4. Klik "Simpan"
↓
5. Kategori berhasil ditambahkan
↓
6. Redirect ke halaman daftar kategori
```
#### C. Edit Kategori
```
1. Di halaman daftar kategori, klik tombol "Edit"
↓
2. Form edit kategori terbuka
↓
3. Edit nama dan deskripsi
↓
4. Update gambar (opsional)
↓
5. Klik "Simpan"
↓
6. Kategori berhasil diupdate
```
#### D. Hapus Kategori
```
1. Di halaman daftar kategori, klik tombol "Hapus"
↓
2. Konfirmasi penghapusan
↓
3. Kategori dihapus (gambar juga dihapus)
```
---
### 5. Flow Manajemen Pelanggan (Untuk Admin/User dengan Permission)
#### A. Lihat Daftar Pelanggan
```
1. Masuk ke menu "Pelanggan"
↓
2. Lihat daftar pelanggan dalam bentuk tabel:
- Nama pelanggan
- Nomor telepon
- Alamat
- Aksi (Edit, Hapus)
↓
3. Gunakan search box untuk mencari pelanggan berdasarkan nama
↓
4. Gunakan pagination untuk melihat halaman berikutnya
```
#### B. Tambah Pelanggan Baru
```
1. Di halaman daftar pelanggan, klik "Tambah Pelanggan"
↓
2. Form tambah pelanggan terbuka
↓
3. Input semua field:
- Nama pelanggan
- Nomor telepon (harus unik)
- Alamat
↓
4. Klik "Simpan"
↓
5. Validasi:
✅ Jika nomor telepon unik:
- Pelanggan berhasil ditambahkan
❌ Jika nomor telepon sudah ada:
- Tampilkan error "Nomor telepon sudah terdaftar"
```
#### C. Edit Pelanggan
```
1. Di halaman daftar pelanggan, klik tombol "Edit"
↓
2. Form edit pelanggan terbuka
↓
3. Edit data pelanggan
↓
4. Klik "Simpan"
↓
5. Pelanggan berhasil diupdate
```
#### D. Hapus Pelanggan
```
1. Di halaman daftar pelanggan, klik tombol "Hapus"
↓
2. Konfirmasi penghapusan
↓
3. Pelanggan dihapus dari sistem
```
---
### 6. Flow Manajemen User & Role (Untuk Super Admin)
#### A. Lihat Daftar User
```
1. Masuk ke menu "Users"
↓
2. Lihat daftar user dalam bentuk tabel:
- Avatar (jika ada)
- Nama user
- Email
- Role(s)
- Aksi (Edit, Hapus)
↓
3. Gunakan search box untuk mencari user berdasarkan nama
↓
4. Gunakan pagination untuk melihat halaman berikutnya
```
#### B. Tambah User Baru
```
1. Di halaman daftar user, klik "Tambah User"
↓
2. Form tambah user terbuka
↓
3. Input data user:
- Nama
- Email (harus unik)
- Password
- Pilih role(s) dari checkbox/dropdown
↓
4. Klik "Simpan"
↓
5. User berhasil dibuat dengan role yang dipilih
```
#### C. Edit User
```
1. Di halaman daftar user, klik tombol "Edit"
↓
2. Form edit user terbuka
↓
3. Edit nama user
↓
4. Update password (opsional, jika dikosongkan tidak diubah)
↓
5. Update role assignment
↓
6. Klik "Simpan"
↓
7. User berhasil diupdate
```
#### D. Hapus User
```
1. Di halaman daftar user, klik tombol "Hapus"
↓
2. Konfirmasi penghapusan
↓
3. User dihapus dari sistem
↓
4. Dapat juga hapus multiple user sekaligus (jika fitur tersedia)
```
---
## RINGKASAN FLOW UTAMA
### Untuk Admin:
1. Setup kategori produk
2. Setup produk dengan barcode
3. Setup pelanggan (opsional)
4. Setup user kasir dengan role yang sesuai
### Untuk Kasir:
1. Login ke sistem
2. Masuk ke halaman transaksi
3. Scan/input barcode produk
4. Tambah produk ke keranjang dengan qty
5. Pilih pelanggan (opsional)
6. Input diskon dan uang tunai
7. Proses pembayaran
8. Cetak struk transaksi
### Untuk Admin (Manajemen):
1. Kelola kategori, produk, pelanggan
2. Kelola user dan role
3. Monitor transaksi dan profit