Skip to main content

Versi 1

FieldIsi
Dokumen IDVBS-PJL-006
DeskripsiPencatatan pesanan penjualan (Sales Order) dari customer tanpa metode pembayaran, dengan status draft/final, penyelesaian, pesan ulang, dan penerusan ke invoice penjualan dari Sales Order
Nomor Revisi1
Tanggal2026-10-04
KeteranganDokumentasi baseline dari dokumentasi fitur demo dan kode FE

1. Ringkasan​

a. In scope​

  • User melihat daftar Sales Order (tanggal, nomor invoice, customer, cabang, status)
  • User melihat ringkasan pesanan belum diproses dan pesanan selesai 30 hari terakhir
  • User memfilter daftar berdasarkan nomor invoice, tanggal, customer, cabang, dan status (selesai / draft / belum selesai)
  • User membuat Sales Order: tanggal, customer, cabang, sales, dan baris barang, disimpan sebagai draft atau final, tanpa metode pembayaran
  • User mengubah Sales Order draft dan dapat langsung meneruskannya ke penjualan
  • User meneruskan Sales Order final ke invoice penjualan dari Sales Order
  • User menyelesaikan Sales Order (membatalkan sisa qty), atau memesan ulang sisa barang lalu menutup SO lama
  • User menghapus Sales Order draft dan mencetak Sales Order

b. Catatan​

c. Kesimpulan​

  • [FE] -
  • [BE] -

2. Functional Requirement​

KodeDeskripsi
FR-01Sistem menampilkan daftar Sales Order dengan kolom tanggal, nomor invoice, customer, cabang, dan status
FR-02Sistem menampilkan ringkasan pesanan belum diproses dan selesai 30 hari terakhir bagi user dengan hak ringkasan
FR-03User dapat memfilter daftar berdasarkan nomor invoice, tanggal, customer, cabang, dan status
FR-04User dapat membuat Sales Order dengan baris barang tanpa metode pembayaran, sebagai draft atau final
FR-05User dapat mengubah Sales Order draft
FR-06User dapat meneruskan Sales Order final berstatus belum selesai ke invoice penjualan dari SO
FR-07User dapat menyelesaikan Sales Order dengan membatalkan sisa qty yang belum terkirim
FR-08User dapat memesan ulang sisa barang ke Sales Order baru sekaligus menutup SO lama
FR-09User dapat menghapus Sales Order draft dan mencetak Sales Order final

3. Use Case List​

KodeDeskripsi
UC-01Melihat daftar dan ringkasan Sales Order
UC-02Memfilter daftar Sales Order
UC-03Membuat Sales Order
UC-04Mengubah Sales Order draft
UC-05Meneruskan Sales Order ke penjualan
UC-06Menyelesaikan Sales Order
UC-07Memesan ulang sisa barang dan menutup Sales Order
UC-08Menghapus Sales Order draft
UC-09Mencetak Sales Order

4. Use Case Scenario​

UC-01 : Melihat daftar dan ringkasan Sales Order​

AktorUser dengan hak lihat Sales Order
DeskripsiUser melihat daftar SO dan ringkasan pesanan
PrekondisiUser sudah login
Brand aktif
Alur utama1. User membuka menu Sales Order.
2. Sistem menampilkan ringkasan pesanan belum diproses dan selesai 30 hari terakhir.
3. Sistem menampilkan daftar SO.
Alur negatif- Jika tidak ada data, tampil daftar kosong.
- Jika gagal memuat ringkasan, nilai ringkasan 0.
Bisnis rule- Ringkasan hanya untuk hak #summary-penjualan.
- Tanpa hak lihat semua (#so all), daftar dibatasi SO user sendiri.
- Nilai belum diproses dihitung dari sisa qty SO; nilai selesai dari qty terkirim.
PostkondisiDaftar dan ringkasan tampil
TriggerUser membuka menu Sales Order
Kode FRFR-01
FR-02

UC-02 : Memfilter daftar Sales Order​

AktorUser dengan hak lihat Sales Order
DeskripsiUser menyaring daftar SO
PrekondisiHalaman daftar terbuka
Alur utama1. User mencari nomor invoice atau membuka Filter.
2. User memilih tanggal, customer, cabang, dan/atau status.
3. Sistem memuat ulang daftar.
Alur negatif- Jika tidak ada data cocok, tampil daftar kosong.
Bisnis rule- Status draft = SO belum final; belum selesai = SO final yang masih memiliki sisa qty; selesai = SO final yang sudah ditutup.
PostkondisiDaftar tampil sesuai filter
TriggerUser mengubah filter
Kode FRFR-03

UC-03 : Membuat Sales Order​

AktorUser dengan hak tambah Sales Order
DeskripsiUser mencatat pesanan customer
PrekondisiUser memiliki hak #so basic
Alur utama1. User klik Tambah.
2. User mengisi tanggal, customer, cabang, dan sales.
3. User menambah baris barang (barang, satuan, qty, harga, diskon, keterangan).
4. User klik Simpan Draft atau Simpan Final, lalu konfirmasi untuk final.
5. Sistem membuat SO dengan status belum selesai.
Alur negatif- Jika informasi belum valid, muncul "Tolong lengkapi form dengan benar!".
- Jika rincian belum valid, muncul "Isi terlebih dahulu Form Rincian Barang/Jasa dengan benar!".
- Jika gagal, muncul "Gagal membuat Sales Order. error : ...".
Bisnis rule- SO tidak memiliki metode pembayaran; pembayaran dipilih saat SO diteruskan ke penjualan.
- Sales adalah karyawan dengan peran sales / marketing.
- Setiap baris otomatis disetujui dan sisa qty SO awal = qty pesanan.
PostkondisiSO tersimpan sebagai draft atau final
TriggerUser klik Simpan
Kode FRFR-04

UC-04 : Mengubah Sales Order draft​

AktorUser dengan hak tambah Sales Order
DeskripsiUser memperbarui SO yang masih draft
PrekondisiSO berstatus draft
Alur utama1. User memilih Edit.
2. Sistem memuat SO dan barisnya.
3. User mengubah data lalu menyimpan draft, final, atau simpan sekaligus buat penjualan.
4. Sistem memperbarui SO.
5. Jika memilih buat penjualan, sistem membuka form penjualan dari SO.
Alur negatif- Validasi informasi dan rincian sama seperti pembuatan SO.
Bisnis rule- Edit hanya tersedia untuk SO draft.
PostkondisiSO terbarui
TriggerUser klik Edit lalu Simpan
Kode FRFR-05

UC-05 : Meneruskan Sales Order ke penjualan​

AktorUser dengan hak tambah penjualan
DeskripsiUser membuat invoice penjualan dari SO final
PrekondisiSO final berstatus belum selesai
User memiliki hak #penjualan basic
Alur utama1. User memilih "Masukkan Penjualan atas SO ini".
2. Sistem membuka form penjualan dari Sales Order dengan SO terpilih.
3. Proses berlanjut di fitur Transaksi Penjualan (VBS-PJL-001).
Alur negatif- Menu tidak tampil untuk SO draft atau SO selesai.
Bisnis rule- Pembayaran dipilih di invoice penjualan, bukan di SO.
PostkondisiForm penjualan dari SO terbuka
TriggerUser klik Masukkan Penjualan atas SO ini
Kode FRFR-06

UC-06 : Menyelesaikan Sales Order​

AktorUser dengan hak tambah Sales Order
DeskripsiUser menutup SO dan membatalkan sisa qty yang belum terkirim
PrekondisiSO final berstatus belum selesai
Alur utama1. User memilih "Selesaikan SO".
2. Sistem meminta konfirmasi "Selesaikan Sales Order?".
3. User mengonfirmasi.
4. Sistem mengubah status SO menjadi selesai dan mencatat sisa qty sebagai dibatalkan.
5. Muncul "Sales Order Berhasil diselesaikan".
Alur negatif- Jika gagal, muncul "Gagal Selesaikan Sales Order. Error: ...".
Bisnis rule- Sisa qty SO setiap baris dicatat sebagai qty_cancelled.
PostkondisiSO berstatus selesai
TriggerUser klik Selesaikan SO
Kode FRFR-07

UC-07 : Memesan ulang sisa barang dan menutup Sales Order​

AktorUser dengan hak tambah Sales Order
DeskripsiUser memindahkan sisa barang SO lama ke SO baru (back order)
PrekondisiSO final berstatus belum selesai dengan sisa qty
Alur utama1. User memilih "Pesan Ulang & Tutup SO".
2. Sistem menampilkan baris SO beserta sisa qty.
3. User memilih barang yang akan dipesan ulang lalu klik Pesan Ulang.
4. Sistem membuka form SO baru dengan barang terpilih.
5. User menyimpan SO baru.
6. Sistem membuat SO baru lalu memperbarui SO lama dengan referensi back order.
Alur negatif- Jika SO lama gagal dimuat, muncul pesan error dan modal tertutup.
- Jika simpan gagal, muncul "Gagal membuat Sales Order. error : ...".
Bisnis rule- Sisa qty barang yang dipesan ulang dicatat dibatalkan di SO lama.
PostkondisiSO baru tersimpan dan SO lama tertutup untuk barang terpilih
TriggerUser klik Pesan Ulang & Tutup SO
Kode FRFR-08

UC-08 : Menghapus Sales Order draft​

AktorUser dengan hak draft Sales Order
DeskripsiUser menghapus SO draft
PrekondisiSO berstatus draft
Alur utama1. User memilih Hapus.
2. Sistem meminta konfirmasi "Hapus Invoice ...".
3. User mengonfirmasi.
4. Sistem menghapus SO dan menampilkan "Invoice Sales Order Berhasil dihapus".
Alur negatif- Jika gagal, muncul "Gagal Menghapus Invoice Sales Order. Error: ...".
Bisnis rule- Hapus hanya untuk SO draft dan hak draft #so.
PostkondisiSO terhapus
TriggerUser klik Hapus
Kode FRFR-09

UC-09 : Mencetak Sales Order​

AktorUser dengan hak reprint Sales Order
DeskripsiUser mencetak dokumen SO
PrekondisiSO berstatus final
Alur utama1. User memilih Cetak Nota.
2. Sistem menandai SO tercetak dan memuat detail SO.
3. Sistem menampilkan modal cetak.
Alur negatif- Jika gagal, modal cetak tidak tampil.
Bisnis rule- Cetak ulang mengikuti hak reprint dan riwayat cetak.
PostkondisiSO tercetak
TriggerUser klik Cetak Nota
Kode FRFR-09

5. Data Flow Diagram​

DFD-01​

6. Sequence Diagram​

SD-01 — UC-01 : Melihat daftar dan ringkasan Sales Order​

SD-02 — UC-02 : Memfilter daftar Sales Order​

SD-03 — UC-03 : Membuat Sales Order​

SD-04 — UC-04 : Mengubah Sales Order draft​

SD-05 — UC-05 : Meneruskan Sales Order ke penjualan​

SD-06 — UC-06 : Menyelesaikan Sales Order​

SD-07 — UC-07 : Memesan ulang sisa barang dan menutup Sales Order​

SD-08 — UC-08 : Menghapus Sales Order draft​

SD-09 — UC-09 : Mencetak Sales Order​

7. Table Schema​

8. API Schema​

EndpointStatusPerubahan
GET /invoice-soexisting-
GET /invoice-so/:idexisting-
POST /invoice-soexisting-
PUT /invoice-so/:idexisting-
PUT /invoice-so/invoice-only/:idexisting-
DELETE /invoice-so/:idexisting-
POST /laporan-penjualan/invoice-soreportexisting-