## 1. Pendahuluan

### Tentang UMI Cell

UMI Cell adalah sistem manajemen toko HP berbasis web yang dirancang untuk memudahkan pengelolaan bisnis HP, meliputi:

- ✅ Manajemen Produk dengan Multi-Cabang & Multi-Harga
- ✅ Transaksi Pembelian & Penjualan
- ✅ Service & Reparasi HP dengan Tracking Status
- ✅ Manajemen Pelanggan & Supplier
- ✅ Laporan Laba Rugi, Stok, dan Kinerja
- ✅ QR Code untuk Produk & Transaksi
- ✅ Import Produk via Excel

### Kebutuhan Sistem

Komponen | Spesifikasi
--- | ---
Web Server | Apache/Nginx + PHP 8.1+
Database | MySQL 5.7+ / MariaDB
Browser | Chrome, Firefox, Edge (versi terbaru)
Kamera (Optional) | Untuk fitur scan QR Code

## 2. Login & Akses

### Cara Login

Langkah 1: Buka browser dan akses URL aplikasi (contoh: https://codekilat.my.id/umi-cell/)
Langkah 2: Masukkan `Email` dan `Password`
Langkah 3: Klik tombol Login

### Tipe User & Hak Akses

Role | Akses & Wewenang
--- | ---
Super Admin | Akses penuh ke semua fitur, manage user & cabang
Admin | Kelola transaksi, produk, service, dan laporan
Kasir | Input transaksi penjualan & pembelian
Teknisi | Kelola service, update status service
Customer | Cek status service

⚠️ Keamanan: Jaga kerahasiaan password. Logout setelah selesai. Jangan share akun.

## 3. Data Master

### 3.1 Kategori Produk

Pengelompokan produk berdasarkan jenis (Smartphone, Aksesoris, Sparepart, dll)

#### Menambah Kategori

Langkah 1: Klik menu Master Data → Kategori
Langkah 2: Klik + Tambah Kategori
Langkah 3: Isi form:

- Nama Kategori - Wajib diisi (contoh: "Smartphone")
- Deskripsi - Wajib diisi (deskripsi kategori)

Langkah 4: Klik Simpan

### 3.2 Merek

Daftar merek produk (Samsung, Xiaomi, iPhone, Oppo, dll)

#### Menambah Merek

Langkah 1: Klik menu Master Data → Merek
Langkah 2: Klik + Tambah Merek
Langkah 3: Isi Nama Merek (wajib)
Langkah 4: Klik Simpan

### 3.3 Supplier

Data pemasok produk

#### Menambah Supplier

Langkah 1: Klik menu Master Data → Supplier
Langkah 2: Klik + Tambah Supplier
Langkah 3: Isi form:

- Nama Supplier - Wajib
- NO WhatsApp - Wajib
- Alamat - Wajib
- Email - Opsional

Langkah 4: Klik Simpan

### 3.4 Customer

Database pelanggan

#### Menambah Customer

Langkah 1: Klik menu Master Data → Customer
Langkah 2: Klik + Tambah Customer
Langkah 3: Isi form:

- Nama Customer - Wajib
- NO WhatsApp - Wajib
- Alamat - Wajib
- Email - Wajib

Langkah 4: Klik Simpan

### 3.5 Cabang (Branch)

Data cabang toko (untuk multi-branch)

#### Menambah Cabang

Langkah 1: Klik menu Master Data → Cabang
Langkah 2: Klik + Tambah Cabang
Langkah 3: Isi form:

- Nama Cabang - Wajib
- Alamat - Wajib
- NO WhatsApp - Wajib

Langkah 4: Klik Simpan
💡 Penting: Pastikan data master sudah lengkap sebelum input produk atau transaksi.

## 4. Manajemen Produk

### 4.1 Tambah Produk Manual

Fitur produk menggunakan sistem Multi-Cabang dengan Stok & Harga per Cabang

Langkah 1: Klik menu Produk
Langkah 2: Klik + Tambah Produk
Langkah 3: Isi form dengan sistem 3 Tab

#### 📋 Tab 1: Data Produk

Field | Tipe | Wajib | Keterangan
--- | --- | --- | ---
Nama Produk | Text | ✅ Ya | Nama lengkap produk
Kategori | Dropdown | ✅ Ya | Pilih kategori dari master
Merek | Dropdown | ✅ Ya | Pilih merek dari master
Satuan Unit | Text | ✅ Ya | Contoh: pcs, box, unit
Minimal Stok | Number | ✅ Ya | Batas minimum stok (min: 0)
Deskripsi | Textarea | ❌ Tidak | Deskripsi produk

#### 📦 Tab 2: Stok per Cabang

Tambahkan stok untuk setiap cabang:

Field | Tipe | Wajib | Keterangan
--- | --- | --- | ---
Cabang | Dropdown | ✅ Ya | Pilih cabang
Jumlah Stok | Number | ✅ Ya | Qty stok (min: 0)

⚠️ Validasi:

- Minimal 1 stok cabang harus ditambahkan
- Tidak boleh ada duplikasi cabang yang sama
- Cabang di Tab 2 HARUS sama dengan cabang di Tab 3

#### 💰 Tab 3: Harga per Cabang

Tambahkan harga untuk setiap cabang:

Field | Tipe | Wajib | Keterangan
--- | --- | --- | ---
Cabang | Dropdown | ✅ Ya | Pilih cabang (harus sama dengan Tab 2)
Harga Beli | Number | ✅ Ya | Modal/HPP produk (min: 0)
Harga Jual | Number | ✅ Ya | Harga jual ke customer (min: 0)

⚠️ Validasi:

- Minimal 1 harga cabang harus ditambahkan
- Tidak boleh duplikasi cabang
- Cabang di Tab 3 HARUS sinkron dengan Tab 2

Langkah 4: Setelah semua tab terisi, klik Simpan
✨ QR Code Otomatis: Sistem akan generate QR Code unik untuk setiap produk.

### 4.2 Import Produk dari Excel

Langkah 1: Di halaman Produk, klik Import Excel
Langkah 2: Download template Excel dengan klik Download Template
Langkah 3: Isi data produk di Excel sesuai kolom:

- Nama Produk - Wajib
- Kategori - Nama kategori yang sudah ada di master
- Merek - Nama merek yang sudah ada di master
- Unit - Satuan (pcs, box, dll)
- Cabang - Nama cabang
- Harga Beli - Harga modal
- Harga Jual - Harga jual
- Stok - Jumlah stok
- Stok Minimal - Batas minimum
- Deskripsi - Opsional

Langkah 4: Upload file Excel
Langkah 5: Klik Proses Import
🚨 Penting Sebelum Import:

- Pastikan kategori dan merek sudah ada di database
- Pastikan cabang sudah dibuat
- Format angka harus numerik (tidak boleh ada huruf)
- Tidak boleh ada data duplikat
- Barcode akan digenerate otomatis oleh sistem

### 4.3 Scan QR Code Produk

Langkah 1: Di halaman Produk, klik Scan QR Code
Langkah 2: Pilih metode:

- Tab "Input Manual" - Ketik/paste barcode lalu Enter
- Tab "Scan dengan Kamera" - Aktifkan kamera dan arahkan ke QR Code

Langkah 3: Sistem otomatis redirect ke halaman detail produk

### 4.4 Download QR Code Produk

Langkah 1: Buka detail produk (klik nama produk)
Langkah 2: Klik Unduh QR Code (JPG)
Langkah 3: File JPG akan didownload (bisa dicetak dan ditempel di produk)

### 4.5 Detail Produk (Show)

Halaman detail produk menampilkan:

- ✅ QR Code produk (dapat diunduh)
- ✅ Informasi: Nama, Kategori, Merek, Unit, Min Stock, Deskripsi
- ✅ Total Stok - Dengan indikator warna:
  - 🟢 Hijau: Stok aman (≥ min stock)
  - 🟡 Kuning: Stok rendah (< min stock)
  - 🔴 Merah: Stok habis (0)
- ✅ Nilai Stok - Total harga beli × quantity
- ✅ Tabel Stok per Cabang - Stok, status, nilai per cabang
- ✅ Tabel Harga per Cabang - Harga beli, jual, margin (Rp & %), tanggal efektif
- ✅ Statistik - Total stok, nilai total, tersedia di berapa cabang

Rumus Kalkulasi:
Margin (Rp) = Harga Jual - Harga Beli
Margin (%) = ((Harga Jual - Harga Beli) / Harga Beli) × 100%
Nilai Stok = Harga Beli × Quantity

## 5. Transaksi Pembelian

### 5.1 Buat Transaksi Pembelian

Langkah 1: Klik menu Transaksi → Pembelian
Langkah 2: Klik + Buat Pembelian
Langkah 3: Isi form informasi pembelian

#### 📋 Form Informasi Pembelian

Field | Tipe | Wajib | Keterangan
--- | --- | --- | ---
No. Pembelian | Text | - | Auto-generate, readonly
Supplier | Dropdown | ✅ Ya | Pilih dari master supplier
Cabang | Dropdown | ✅ Ya | Cabang tujuan pembelian
Tanggal Pembelian | Date | ✅ Ya | Default: hari ini
Catatan | Textarea | ❌ Tidak | Catatan tambahan

Langkah 4: Tambah produk dengan 2 metode:

#### 📦 Metode 1: Pilih Produk (Tab 1)

a. Pilih cabang terlebih dahulu (dropdown produk aktif setelah cabang dipilih)
b. Pilih produk dari dropdown (format: Kode - Nama - Merek (Stok: xxx))
c. Masukkan Qty (jumlah yang dibeli, min: 1)
d. Harga akan auto-load dari database, bisa diubah manual
e. Subtotal = Qty × Harga (auto calculate)
f. Klik + Tambah

#### 📷 Metode 2: Scan QR Code (Tab 2)

a. Klik tab "Scan dengan Kamera"
b. Aktifkan kamera dan scan QR Code produk
c. Produk otomatis ditambahkan ke tabel

#### 📊 Tabel Detail Produk

Kolom | Keterangan
--- | ---
Produk | Nama produk (display only)
Stok | Stok tersedia di cabang (display only)
Qty | Jumlah yang dibeli (editable, min: 1)
Harga | Harga beli per unit (editable, min: 0)
Subtotal | Qty × Harga (auto calculate)
Aksi | Tombol hapus baris

Langkah 5: Ulangi untuk produk lain
Langkah 6: Cek Total Pembelian (auto sum dari semua subtotal)
Langkah 7: Klik Simpan Pembelian
✨ Otomatis: Stok produk akan bertambah setelah pembelian disimpan.
🚨 Validasi:

- Supplier dan Cabang wajib dipilih
- Minimal 1 produk harus ditambahkan
- Total pembelian harus > 0

### 5.2 Halaman Index Pembelian

Menampilkan daftar semua pembelian dengan kolom:

- No. Pembelian
- Tanggal
- Supplier
- Cabang
- Total
- Status (Badge: Pending🟡, Completed🟢, Cancelled🔴)
- User (yang input)
- Aksi (Detail, Edit, Delete)

### 5.3 Detail Pembelian (Show)

Menampilkan informasi lengkap:

- QR Code pembelian (dapat diunduh JPG)
- Tabel detail produk yang dibeli
- Informasi pembelian lengkap
- Tombol: Cetak Faktur (PDF)

## 6. Transaksi Penjualan

### 6.1 Buat Transaksi Penjualan

Langkah 1: Klik menu Transaksi → Penjualan
Langkah 2: Klik + Buat Penjualan
Langkah 3: Isi form informasi penjualan

#### 📋 Form Informasi Penjualan

Field | Tipe | Wajib | Keterangan
--- | --- | --- | ---
No. Penjualan | Text | - | Auto-generate, readonly
Cabang | Dropdown | ✅ Ya | Cabang penjualan
Customer | Dropdown | ❌ Tidak | Default: Umum
Tanggal Penjualan | Date | ✅ Ya | Default: hari ini
Metode Pembayaran | Dropdown | ✅ Ya | cash, transfer, credit
Catatan | Textarea | ❌ Tidak | Catatan tambahan

#### 💳 Metode Pembayaran

Metode | Badge | Keterangan
--- | --- | ---
Tunai (cash) | Cash | Pembayaran tunai
Transfer (transfer) | Transfer | Transfer bank
Kredit (credit) | Credit | Hutang/tempo

Langkah 4: Tambah produk (sama seperti pembelian, ada 2 metode)

#### 📦 Metode Input Produk

Tab 1: Pilih Produk - Dropdown select produk

Tab 2: Scan QR Code - Input manual atau scan dengan kamera

#### 📊 Tabel Detail Produk Penjualan

Kolom | Keterangan
--- | ---
Produk | Nama produk
Stok | Stok tersedia
Qty | Jumlah jual (max = stok tersedia)
Harga | Harga jual per unit (editable)
Diskon | Diskon per item (min: 0)
Subtotal | (Qty × Harga) - Diskon
Aksi | Hapus baris

Langkah 5: Isi informasi total

#### 💰 Kalkulasi Total Penjualan

Field | Tipe | Keterangan
--- | --- | ---
Subtotal | Display | Sum dari semua subtotal items
Diskon | Number | Diskon global (opsional, min: 0)
Pajak | Number | Pajak global (opsional, min: 0)
Total Pembayaran | Display | Subtotal - Diskon + Pajak

Rumus Kalkulasi:
Subtotal Item = (Qty × Harga) - Diskon Item
Subtotal = Sum dari semua Subtotal Item
Total Pembayaran = Subtotal - Diskon Global + Pajak
Langkah 6: Klik Simpan Penjualan
✨ Otomatis: Stok produk akan berkurang dan profit dihitung otomatis.
🚨 Validasi:

- Cabang dan Metode Pembayaran wajib dipilih
- Minimal 1 produk harus ditambahkan
- Qty tidak boleh melebihi stok tersedia

### 6.2 Detail Penjualan (Show)

Menampilkan:

- Detail produk yang dijual
- Total: Subtotal, Diskon, Pajak, Total
- Informasi penjualan lengkap
- QR Code penjualan (download JPG)
- Tombol: Cetak Faktur PDF

## 7. Service HP

### 7.1 Buat Pesanan Service

Langkah 1: Klik menu Service
Langkah 2: Klik + Buat Service
Langkah 3: Isi form dengan 4 Card

#### 📱 Card 1: Informasi Perangkat

Field | Tipe | Wajib | Keterangan
--- | --- | --- | ---
Jenis Perangkat | Dropdown | ✅ Ya | Handphone, Tablet, Laptop, Smartwatch, Lainnya
Merek | Text | ✅ Ya | Contoh: Samsung, iPhone, Xiaomi
Model | Text | ✅ Ya | Contoh: Galaxy S23, iPhone 14 Pro
IMEI | Text | ❌ Tidak | Nomor IMEI perangkat

#### 🔧 Card 2: Keluhan & Diagnosa

Field | Tipe | Wajib | Keterangan
--- | --- | --- | ---
Keluhan Pelanggan | Textarea | ✅ Ya | Deskripsi masalah yang dialami customer
Diagnosa Teknisi | Textarea | ❌ Tidak | Hasil diagnosa awal (bisa diisi nanti)

#### 🔩 Card 3: Spare Part Yang Digunakan

Dapat menambahkan beberapa spare part:

Field | Tipe | Keterangan
--- | --- | ---
Spare Part | Dropdown | Pilih dari master produk
Qty | Number | Jumlah (min: 1)
Harga Satuan | Number | Auto-fill dari harga jual produk
Subtotal | Display | Qty × Harga Satuan (auto calculate)

Tombol: + Tambah Spare Part dan Hapus

#### 📋 Card 4: Informasi Service

Field | Tipe | Wajib | Keterangan
--- | --- | --- | ---
Tanggal Service | Date | ✅ Ya | Default: hari ini
Customer | Dropdown | ✅ Ya | Pilih dari master customer
Cabang | Dropdown | ✅ Ya | Pilih cabang
Teknisi | Display | - | Auto: user yang login
Prioritas | Dropdown | ❌ Tidak | normal, urgent, very urgent
Estimasi Selesai | Datetime-local | ❌ Tidak | Target selesai
Biaya Jasa Service | Number | ❌ Tidak | Default: 0
Total Biaya Spare Part | Display | - | Sum dari spare part (auto)
Estimasi Total Biaya | Display | - | Biaya Jasa + Spare Part
Uang Muka (DP) | Number | ❌ Tidak | Default: 0
Catatan | Textarea | ❌ Tidak | Catatan tambahan

Rumus Kalkulasi Service:
Total Biaya Spare Part = Sum dari (Qty × Harga Satuan)
Estimasi Total Biaya = Biaya Jasa + Total Biaya Spare Part
Sisa Pembayaran = Estimasi Total Biaya - DP
Langkah 4: Klik Simpan
✨ QR Code Service: Setiap service mendapat QR Code untuk tracking status.

### 7.2 Status Service (Lifecycle)

Urutan status service dari awal sampai selesai:

No | Status | Badge | Keterangan
--- | --- | --- | ---
1 | Menunggu Diagnosa | Menunggu | Service baru masuk, belum diperiksa
2 | Sedang Diagnosa | Diagnosa | Teknisi sedang cek masalah
3 | Menunggu Persetujuan | Persetujuan | Menunggu customer approve biaya
4 | Menunggu Spare Part | Spare Part | Menunggu spare part datang
5 | Dalam Pengerjaan | Pengerjaan | Sedang dikerjakan teknisi
6 | Quality Control | QC | Pengecekan kualitas hasil service
7 | Siap Diambil | Siap Diambil | Service selesai, menunggu diambil customer
8 | Selesai | Selesai | Sudah diambil customer
9 | Dibatalkan | Dibatalkan | Service dibatalkan

### 7.3 Update Status Service

Langkah 1: Buka detail service (klik no. service)
Langkah 2: Di bagian bawah halaman, lihat form Update Status
Langkah 3: Pilih status baru dari dropdown
Langkah 4: Tambahkan catatan progres (opsional)
Langkah 5: Klik Update Status
💡 Riwayat Status: Setiap perubahan status tercatat dalam timeline dengan tanggal, status, notes, dan user yang mengupdate.

### 7.4 Detail Service (Show)

Halaman detail menampilkan:

- ✅ Informasi Perangkat: Jenis, Merek, Model, IMEI
- ✅ Keluhan & Diagnosa
- ✅ Spare Part yang Digunakan (tabel)
- ✅ Riwayat Status: Timeline lengkap dengan tanggal, status, notes, user
- ✅ Informasi Service: No, Tanggal, Customer, Cabang, Teknisi, Prioritas, Status, Estimasi, Catatan
- ✅ Biaya Service:
  - Biaya Jasa
  - Biaya Spare Part
  - Total
  - DP (Down Payment)
  - Sisa Pembayaran
- ✅ Form Update Status (jika belum selesai/dibatalkan)
- ✅ QR Code Service (download JPG)
- ✅ Tombol: Print Nota

### 7.5 Customer Cek Status Service

Customer bisa cek status tanpa login:

Langkah 1: Buka URL: `/customer`
Langkah 2: Scan QR Code service atau masukkan nomor service
Langkah 3: Status dan progres akan ditampilkan

## 8. Laporan

### 8.1 Laporan Laba Rugi (Profit Loss)

Analisa keuntungan dan kerugian bisnis

#### 📅 Filter

Filter | Wajib | Keterangan
--- | --- | ---
Tanggal Mulai | ✅ Ya | Tanggal awal periode
Tanggal Akhir | ✅ Ya | Tanggal akhir periode
Cabang | ❌ Tidak | Semua Cabang / pilih cabang tertentu

#### 📊 Informasi yang Ditampilkan

1. Summary Cards:

- Total Penjualan (total_revenue)
- HPP / Harga Pokok Penjualan (total_cogs)
- Laba Kotor (gross_profit)
- Laba Bersih (net_profit)

2. Additional Metrics:

- Margin Laba (%)
- Total Diskon
- Total Pajak

3. Grafik:

- Grafik Penjualan & Pembelian (Line chart harian)

4. Top 10 Produk Terlaris:

- Produk, Qty Terjual, Total Penjualan, Total Laba

5. Top 10 Customer:

- Customer, Total Transaksi, Total Pembelian, Rata-rata Pembelian

6. Laporan Laba Rugi (Detail):

PENDAPATAN
- Penjualan
- Diskon Penjualan
- Pajak
= Total Pendapatan Bersih
HARGA POKOK PENJUALAN (HPP)
- HPP
= LABA KOTOR
= LABA BERSIH

7. Laporan Laba Rugi Per Produk:

- Nota, Nama Item, Total Jual, Harga Pokok, Potongan, Laba Kotor, Laba %

#### 🧮 Rumus Kalkulasi Laba Rugi

Total Revenue: Sum dari sale amount
Total COGS (HPP): Sum dari (qty × purchase_price) per item
Gross Profit: Total Revenue - Total COGS
Net Profit: Gross Profit (belum ada operational cost)
Profit Margin: (Gross Profit / Total Revenue) × 100%
Laba Per Produk: (Selling Price - Purchase Price) × Qty - Discount
Laba % Per Produk: ((Selling Price - Purchase Price) / Purchase Price) × 100%

#### 📤 Export

- Export PDF - Laporan dalam format PDF
- Export Excel - Laporan dalam format Excel (tersedia untuk laporan utama dan per produk)

### 8.2 Laporan Daftar Item (Product List)

Daftar seluruh produk beserta nilai aset

#### 📅 Filter

Filter | Keterangan
--- | ---
Cabang | Semua Cabang / pilih cabang tertentu

#### 📊 Kolom yang Ditampilkan

- Kode (B-xxxx)
- Nama Produk
- Kategori
- Merek
- Total Stok
- Stok Min
- Harga Beli
- Harga Jual
- Deskripsi
- Aset (Harga Beli × Qty) - Per produk dan Total keseluruhan

Rumus Nilai Aset:
Nilai Aset per Produk = Harga Beli × Total Stok
Total Nilai Aset = Sum dari semua Nilai Aset per Produk

#### 📤 Export

- Export PDF

### 8.3 Laporan Pendapatan Service

Analisa pendapatan dari service HP

#### 📅 Filter

Filter | Wajib
--- | ---
Tanggal Mulai | ✅ Ya
Tanggal Akhir | ✅ Ya
Cabang | ❌ Tidak

#### 📊 Summary Cards

- Total Pendapatan
- Biaya Jasa Service
- Biaya Spare Part
- Sisa Pembayaran (belum lunas)

#### 📈 Additional Metrics

- Down Payment (DP) - Total DP yang sudah diterima
- Rata-rata DP (%) - Persentase rata-rata DP dari total biaya
- Rata-rata Nilai per Service - Average revenue per service

#### 📊 Grafik

- Tren Pendapatan Harian (Line chart)

#### 📋 Tabel

1. Pendapatan Per Cabang:

- Cabang, Jumlah Service, Biaya Jasa, Biaya Spare Part, Total, Persentase

2. Detail Transaksi Service:

- No Service, Tanggal, Customer, Device, Cabang, Biaya Jasa, Biaya Spare Part, Total, DP, Sisa

Rumus Kalkulasi Service:
Total Pendapatan = Biaya Jasa + Biaya Spare Part
Sisa Pembayaran = Total Pendapatan - DP
Rata-rata DP (%) = (Total DP / Total Pendapatan) × 100%
Rata-rata Nilai per Service = Total Pendapatan / Jumlah Service

#### 📤 Export

- Export PDF
- Export Excel

### 8.4 Laporan Service Berdasarkan Status

Monitoring distribusi status service

#### 📅 Filter

- Tanggal Mulai
- Tanggal Akhir
- Cabang

#### 📊 Summary

- Total Service
- Selesai
- Tertunda (service >3 hari dari estimasi)
- Siap Diambil

#### 📊 Visualisasi

- Pie Chart: Distribusi Status Service (persentase tiap status)
- Tabel Statistik: Status, Jumlah, Total Nilai

#### 📋 Detail Khusus

1. Service Tertunda: Service yang melebihi estimasi selesai lebih dari 3 hari

2. Service Siap Diambil: Service dengan status "siap diambil"

3. Detail Semua Service: Lengkap semua status

#### 📤 Export

- Export PDF
- Export Excel

### 8.5 Laporan Kinerja Teknisi

Evaluasi performa teknisi

#### 📅 Filter

Filter | Keterangan
--- | ---
Tanggal Mulai | Wajib
Tanggal Akhir | Wajib
Teknisi | Opsional (bisa semua atau pilih teknisi tertentu)
Cabang | Opsional

#### 📊 Summary Cards

- Total Service
- Selesai
- Jumlah Teknisi
- Total Pendapatan

#### 📊 Grafik

- Bar Chart Kinerja (Stacked: Selesai, Dalam Proses, Dibatalkan) per teknisi

#### 📋 Statistik Per Teknisi

Kolom | Keterangan
--- | ---
Teknisi | Nama teknisi
Total Service | Jumlah service yang ditangani
Selesai | Jumlah service yang sudah selesai
Dalam Proses | Service yang sedang dikerjakan
Dibatalkan | Service yang dibatalkan
Success Rate (%) | Persentase keberhasilan (dengan warna badge)
Avg. Durasi (hari) | Rata-rata lama pengerjaan
Total Pendapatan | Total revenue dari service yang ditangani

Rumus Kalkulasi Kinerja Teknisi:
Success Rate (%): (Selesai / Total Service) × 100%
Avg. Durasi (hari): Rata-rata dari (Tanggal Selesai - Tanggal Service) untuk service yang sudah selesai
Total Pendapatan: Sum dari (Biaya Jasa + Biaya Spare Part) untuk semua service teknisi tersebut
Warna Badge Success Rate:
- 🟢 Hijau: Success Rate ≥ 80%
- 🟡 Kuning: Success Rate 60-79%
- 🔴 Merah: Success Rate < 60%

#### 📤 Export

- Export PDF
- Export Excel

## 9. Tips & Troubleshooting

### 9.1 Tips Penggunaan

#### 🎯 Best Practices

- Siapkan Master Data Dulu - Buat kategori, merek, supplier, customer, dan cabang sebelum input produk
- Import Excel untuk Bulk - Gunakan fitur import Excel untuk input produk massal (lebih cepat)
- Perhatikan Stok & Harga per Cabang - Pastikan cabang di Tab Stok = cabang di Tab Harga
- Cek Stok Harian - Monitor stok menipis setiap hari dari dashboard
- Update Status Service - Update progres service berkala agar customer informed
- Cetak QR Code - Print QR Code dan tempel di produk untuk scan cepat saat transaksi
- Rekap Laporan Bulanan - Export laporan laba rugi setiap akhir bulan untuk evaluasi
- Backup Data Rutin - Backup database minimal 1 minggu sekali

#### ⚡ Shortcut Cepat

- Scan QR di Penjualan - Gunakan scan QR saat transaksi untuk input produk lebih cepat
- Filter Tanggal - Manfaatkan filter tanggal di semua laporan
- Search Box - Gunakan search untuk cari produk/customer/transaksi cepat
- Export Excel - Export laporan ke Excel untuk analisa lebih lanjut di spreadsheet

### 9.2 Troubleshooting

#### ❌ Masalah: QR Code Tidak Tergenerate

Solusi:

- Pastikan library BaconQrCode sudah terinstall (cek composer)
- Periksa permission folder `public/qrcodes` (harus writable)
- Restart web server
- Cek log error di `storage/logs/laravel.log`

#### ❌ Masalah: Import Excel Gagal

Solusi:

- Pastikan format Excel sesuai template yang didownload
- Cek kategori dan merek sudah ada di database
- Cek cabang sudah dibuat
- Pastikan tidak ada data duplikat
- Periksa format angka (harga & stok harus numerik, tidak boleh ada huruf)
- Jangan ada baris kosong di tengah data
- Nama kategori, merek, cabang harus sama persis dengan yang ada di database (case sensitive)

#### ❌ Masalah: Cabang di Stok & Harga Tidak Sinkron

Solusi:

- Saat tambah produk, pastikan cabang di Tab 2 (Stok) sama dengan Tab 3 (Harga)
- Jika sudah terlanjur, edit produk dan tambahkan cabang yang kurang
- Validasi sistem akan menolak jika cabang tidak sinkron

#### ❌ Masalah: Stok Tidak Update Setelah Transaksi

Solusi:

- Periksa transaksi sudah tersimpan dengan benar (cek di index)
- Cek tidak ada error saat simpan transaksi
- Refresh halaman produk (Ctrl + F5)
- Periksa log error di server
- Pastikan cabang di transaksi ada di produk

#### ❌ Masalah: Qty Penjualan Melebihi Stok

Solusi:

- Sistem akan otomatis validasi qty tidak boleh > stok tersedia
- Jika tetap bisa, berarti ada bug - hubungi developer
- Cek stok di cabang yang dipilih (bukan total stok semua cabang)

#### ❌ Masalah: Kamera QR Tidak Muncul

Solusi:

- Pastikan browser mendukung akses kamera (Chrome, Firefox, Edge recommended)
- Berikan permission kamera saat diminta browser
- Gunakan HTTPS (jika deploy online, localhost bisa HTTP)
- Coba browser lain jika masih tidak bisa
- Pastikan kamera tidak sedang digunakan aplikasi lain

#### ❌ Masalah: Laporan Tidak Muncul / Kosong

Solusi:

- Periksa filter tanggal sudah benar
- Pastikan ada data di periode yang dipilih
- Cek filter cabang (jika pilih cabang tertentu, pastikan ada data di cabang tersebut)
- Clear cache browser (Ctrl + Shift + Del)
- Coba periode tanggal yang berbeda untuk testing

#### ❌ Masalah: Tidak Bisa Login

Solusi:

- Periksa email dan password benar
- Pastikan akun tidak dinonaktifkan (hubungi admin)
- Clear cookies browser
- Coba browser lain atau mode incognito
- Hubungi admin untuk reset password jika lupa

#### ❌ Masalah: Margin/Laba Negatif di Laporan

Solusi:

- Periksa harga jual < harga beli (rugi)
- Cek apakah ada diskon terlalu besar
- Review harga jual produk yang margin-nya negatif
- Sesuaikan harga jual agar profit positif

### 9.3 Keamanan Data

#### 🔒 Praktik Keamanan

- Gunakan password kuat (minimal 8 karakter, kombinasi huruf besar-kecil-angka-simbol)
- Jangan share password antar user
- Logout setelah selesai menggunakan aplikasi
- Jangan akses dari komputer publik/warnet
- Ganti password secara berkala (3-6 bulan sekali)
- Backup database ke storage eksternal (Google Drive, Dropbox, dll)
- Gunakan HTTPS jika deploy online (SSL Certificate)

### 9.4 Maintenance Rutin

Periode | Aktivitas yang Harus Dilakukan
--- | ---
Harian | - Cek stok menipis dari dashboard - Update status service yang sedang berjalan - Review transaksi hari ini
Mingguan | - Backup database - Review laporan penjualan minggu ini - Cek service yang tertunda - Update harga produk jika ada perubahan
Bulanan | - Export laporan laba rugi lengkap - Analisa profit per produk - Inventory check (stock opname) - Review kinerja teknisi - Evaluasi produk slow-moving
3 Bulan | - Ganti password semua user - Cleanup data lama (transaksi >1 tahun ke arsip) - Optimize database (VACUUM/OPTIMIZE TABLE) - Review & update master data

### 9.5 FAQ (Frequently Asked Questions)

#### ❓ Apakah bisa ubah harga produk setelah dibuat?

Jawab: Ya, bisa. Edit produk → Tab 3 (Harga per Cabang) → ubah harga beli/jual → simpan. Perubahan harga tidak mempengaruhi transaksi yang sudah lewat.

#### ❓ Bagaimana cara tambah cabang baru untuk produk yang sudah ada?

Jawab: Edit produk → Tab 2 (tambah stok cabang baru) → Tab 3 (tambah harga cabang baru) → simpan. Pastikan cabang yang ditambah di Tab 2 dan Tab 3 sama.

#### ❓ Apakah bisa hapus transaksi yang sudah disimpan?

Jawab: Tergantung role user. Admin/Super Admin bisa hapus transaksi. Namun sebaiknya jangan hapus untuk menjaga integritas data. Jika ada kesalahan, buat transaksi koreksi.

#### ❓ Bagaimana cara melihat history perubahan harga produk?

Jawab: Di halaman detail produk → Tabel Harga per Cabang → ada kolom "Tanggal Efektif" yang menunjukkan kapan harga terakhir diupdate.

#### ❓ Apakah laporan bisa difilter per kasir/teknisi?

Jawab: Laporan kinerja teknisi bisa filter per teknisi. Untuk laporan penjualan per kasir, belum tersedia filter (tapi data kasir ditampilkan di tabel transaksi).

#### ❓ Bagaimana cara handle produk yang ada di 2 cabang dengan harga berbeda?

Jawab: Sistem sudah support Multi-Harga per Cabang. Di Tab 3, tambahkan harga untuk masing-masing cabang dengan nilai yang berbeda.

#### ❓ Apakah bisa cetak label QR Code dalam jumlah banyak sekaligus?

Jawab: Saat ini harus download QR Code satu per satu dari halaman detail produk. Untuk cetak massal, bisa gunakan software label printing eksternal.