KTN-16
| Field | Isi |
|---|---|
| Dokumen ID | KTN-16 |
| Deskripsi | Finishing penjualan kasir: penerapan ambang batas kena pajak dan optimalisasi tampilan untuk tablet |
| Nomor Revisi | 1 |
| Tanggal | 2026-10-04 |
| Keterangan | Finishing penjualan kasir untuk Kurnia Tani |
1. Ringkasan
a. In scope
- Ambang batas kena pajak (
qty_minimal_pajak) diterapkan pada penjualan kasir - Snapshot
qty_minimal_pajaktersimpan pada barisPenjualanshasil kasir - Optimalisasi tampilan penjualan kasir agar nyaman dipakai di tablet
b. Catatan
- Aturan ambang batas mengikuti KTN-04 (
SKU_Konversis.qty_minimal_pajak, perbandingan dalam satuan terkecil) - Fokus dokumen ini adalah penyelesaian / finishing penjualan kasir, bukan mengubah master ambang batas
c. Kesimpulan
- [FE] Terapkan logika ambang batas kena pajak pada alur penjualan kasir (tampil + hitung PPN baris)
- [FE] Optimasi layout / interaksi penjualan kasir untuk layar tablet
- [BE] Create / finalize penjualan kasir menerima
qty_minimal_pajakper baris dan menerapkan PPN vs ambang batas
2. Functional Requirement
| Kode | Deskripsi |
|---|---|
| FR-01 | Penjualan kasir menerapkan ambang batas kena pajak per baris barang |
| FR-02 | Baris Penjualans dari kasir menyimpan qty_minimal_pajak |
| FR-03 | Jika qty baris (satuan terkecil) melewati qty_minimal_pajak, PPN baris wajib diterapkan |
| FR-04 | Tampilan penjualan kasir dioptimasi untuk penggunaan tablet |
| FR-05 | Alur kasir (pilih barang, nota, bayar) tetap dapat dijalankan penuh di tablet |
3. Use Case List
| Kode | Deskripsi |
|---|---|
| UC-01 | Menerapkan ambang batas kena pajak pada penjualan kasir |
| UC-02 | Menyimpan penjualan kasir dengan PPN sesuai ambang batas |
| UC-03 | Menggunakan penjualan kasir pada tampilan tablet |
4. Use Case Scenario
UC-01 : Menerapkan ambang batas kena pajak pada penjualan kasir
| Aktor | Kasir |
| Deskripsi | Saat menambah barang di kasir, sistem memakai ambang batas kena pajak untuk menentukan PPN baris |
| Prekondisi | - Pengguna terautentikasi - Hak akses penjualan kasir - Master barang / konversi sudah punya qty_minimal_pajak bila diperlukan |
| Alur utama | 1. Kasir membuka penjualan kasir. 2. Kasir menambah barang ke nota. 3. Sistem mengambil qty_minimal_pajak dari konversi satuan terkait.4. Sistem menampilkan / menghitung apakah baris kena PPN berdasarkan qty vs ambang batas. 5. Kasir melanjutkan ke pembayaran. |
| Alur negatif | - Jika gagal memuat data barang / konversi, ambang batas tidak tersedia dan muncul pesan error. - Jika brand tidak PKP ( default_pengusaha_kena_pajak = 0), logika ambang batas diabaikan. |
| Bisnis rule | - Aturan sama dengan KTN-04: bandingkan qty satuan terkecil dengan qty_minimal_pajak.- Ambang pajak per baris, bukan per nota. |
| Postkondisi | Nota kasir menampilkan perhitungan PPN sesuai ambang batas |
| Trigger | Kasir menambah / mengubah qty barang di kasir |
| Kode FR | FR-01 FR-03 |
UC-02 : Menyimpan penjualan kasir dengan PPN sesuai ambang batas
| Aktor | Kasir |
| Deskripsi | Kasir menyelesaikan transaksi; sistem menyimpan baris penjualan beserta qty_minimal_pajak dan PPN |
| Prekondisi | Nota kasir sudah terisi Metode bayar dipilih |
| Alur utama | 1. Kasir menyelesaikan pembayaran / simpan transaksi kasir. 2. Sistem mengirim baris penjualan termasuk qty_minimal_pajak.3. BE memastikan PPN baris sesuai ambang batas. 4. Transaksi kasir tersimpan. |
| Alur negatif | - Jika validasi gagal, transaksi tidak tersimpan. - Jika brand non-PKP, logika ambang dilewati. |
| Bisnis rule | - qty_minimal_pajak ikut tersimpan di Penjualans.- Qty melewati ambang → PPN diterapkan; jika tidak, PPN baris tidak diterapkan. |
| Postkondisi | Invoice kasir tersimpan dengan ambang batas dan PPN benar |
| Trigger | Kasir bayar / simpan transaksi |
| Kode FR | FR-01 FR-02 FR-03 |
UC-03 : Menggunakan penjualan kasir pada tampilan tablet
| Aktor | Kasir |
| Deskripsi | Kasir menjalankan alur penjualan kasir pada perangkat tablet dengan tampilan yang dioptimasi |
| Prekondisi | - Pengguna terautentikasi - Hak akses penjualan kasir - Perangkat tablet / viewport tablet |
| Alur utama | 1. Kasir membuka penjualan kasir di tablet. 2. Sistem menampilkan layout yang disesuaikan untuk tablet (area pilih barang, nota, bayar mudah disentuh). 3. Kasir memilih barang, meninjau nota, dan menyelesaikan pembayaran tanpa hambatan tampilan. |
| Alur negatif | - Jika elemen penting terpotong / sulit disentuh, dianggap belum memenuhi optimalisasi tablet. - Jika gagal memuat halaman, muncul pesan error. |
| Bisnis rule | - Optimalisasi mencakup keterbacaan, ukuran kontrol sentuh, dan alur pilih → nota → bayar di viewport tablet. - Fungsi bisnis kasir tetap sama; yang diubah adalah presentasi / UX. |
| Postkondisi | Alur kasir dapat diselesaikan nyaman di tablet |
| Trigger | Kasir membuka penjualan kasir di tablet |
| Kode FR | FR-04 FR-05 |
5. Data Flow Diagram
DFD-01 — Finishing penjualan kasir
6. Sequence Diagram
SD-01 — UC-01 : Menerapkan ambang batas kena pajak pada penjualan kasir
SD-02 — UC-02 : Menyimpan penjualan kasir dengan PPN sesuai ambang batas
SD-03 — UC-03 : Menggunakan penjualan kasir pada tampilan tablet
7. Table Schema
8. API Schema
| Endpoint | Status | Perubahan |
|---|---|---|
POST /invoice-penjualan | changed | Penjualan kasir menerima qty_minimal_pajak per baris + logika PPN vs ambang batas |
POST /penjualan/penjualan-only | changed | Bila dipakai kasir: terima / jaga konsistensi qty_minimal_pajak dan PPN baris |
GET /barang/:id | existing | Sumber SKU_Konversis.qty_minimal_pajak (dari KTN-04) |