Retur

Mencatat barang kembali dari pengiriman dan memutuskan Restok atau Buang di Meja Retur

Modul Retur digunakan untuk mencatat barang yang kembali dari pembeli setelah pengeluaran dikirim, lalu memutuskan nasib setiap unit: Restok (kembali ke stok) atau Buang. Seluruh proses dikerjakan di satu halaman kerja bernama Meja Retur — dan stok hanya berubah saat finalisasi, bukan saat retur dibuat.


Alur Proses Retur

_____________________________________________________________________
|                       ALUR RETUR                                   |
|____________________________________________________________________|
|                                                                    |
|   Pengeluaran        Catat barang       Meja Retur                 |
|   (Shipping)  ---->   kembali    ---->   (alokasi per unit)        |
|                          |                    |                    |
|                          |                    v                    |
|                          |             Finalisasi Retur            |
|                          |                    |                    |
|                          |          +---------+----------+         |
|                          |          v                    v        |
|                          |      SELESAI             DIBATALKAN    |
|                          |   (stok Restok naik,     (pengeluaran   |
|                          |    read-only)             balik ke      |
|                          |                            Shipping)    |
|____________________________________________________________________|

Penjelasan Alur:

  1. Catat barang kembali — pilih pengeluaran sumber dan isi jumlah unit yang kembali. Stok belum berubah.
  2. Meja Retur — periksa barang fisik, alokasikan tiap unit ke Restok atau Buang, pilih lokasi restok, serta tandai kondisi dan foto bila perlu. Semua bisa diubah-ubah di sini.
  3. Finalisasi Retur — satu transaksi atomik: stok Restok naik, retur terkunci permanen.
  4. Riwayat Retur — tampilan audit read-only setelah finalisasi/dibatalkan.

Status Retur

StatusArtiBisa Diedit?
Perlu ditanganiRetur baru dibuat, menunggu dikerjakan di Meja Retur✅ Ya, sepenuhnya
SelesaiSudah difinalisasi. Stok Restok sudah masuk❌ Read-only
DibatalkanRetur dibatalkan permanen❌ Read-only

Aturan Penting Retur

Sebelum mulai, pahami tiga aturan ini:

  1. Sumber harus status Shipping. Retur hanya bisa dibuat dari pengeluaran yang sedang dikirim — bukan Draft, Packing, Delivered, ataupun yang sudah punya Retur.
  2. Satu Pengeluaran = satu Retur. Unit yang tidak dicatat kembali saat pembuatan tidak bisa ditambah lewat Retur kedua. Pastikan semua barang kembali tercatat.
  3. Stok hanya berubah saat finalisasi. Membuat retur, mengisi alokasi, dan menekan Simpan tidak menyentuh stok sama sekali.

Membuat Retur (Catat Barang Kembali)

Ada dua jalan masuk:

  • Dari detail pengeluaran Shipping — klik tombol "Buat Retur". Sumber sudah terisi otomatis. (Cara yang disarankan)
  • Dari menu Retur — klik "Catat barang kembali", lalu cari/pindai nomor pengeluaran (hanya pengeluaran Shipping yang muncul).

Form Catat Barang Kembali:

FieldKeteranganWajib
Pengeluaran AsalPengeluaran shipping yang jadi sumber✅ Ya
Tanggal ReturDefault hari ini✅ Ya
Gudang ReturDefault gudang asal pengiriman✅ Ya
Jumlah kembaliPer baris item: unit yang kembali (0 = tidak termasuk)✅ Ya
KeteranganCatatan tambahan❌ Tidak

Perilaku penting:

  • Setiap baris menampilkan jumlah yang dikirim (Dikirim N) — jumlah kembali maksimal sebesar itu
  • Bisa pindai SKU untuk langsung lompat ke baris yang dimaksud
  • Jika sebagian unit tidak dicatat kembali, sistem akan meminta konfirmasi
  • Klik "Buat Retur & mulai tangani" → status pengeluaran berubah menjadi Retur, dan Anda diarahkan langsung ke Meja Retur

Catatan: Membuat Retur belum mengubah stok apa pun. Anda bisa mengerjakannya nanti tanpa tekanan waktu.


Meja Retur: Mengalokasikan Restok dan Buang

Meja Retur adalah satu-satunya halaman kerja retur. Semua di sini dapat diedit bebas sampai Anda menekan Finalisasi.

Struktur Halaman

  1. Kolom pindai di atas — pindai atau ketik SKU barang lalu tekan Enter untuk langsung lompat ke kartu barangnya
  2. Kartu per barang — berisi alokasi, lokasi, kondisi, alasan, dan foto
  3. Bilah aksi menempel di bawah — ringkasan alokasi, tombol Simpan dan Finalisasi Retur

Alokasi per Unit (Inti dari Meja Retur)

Setiap barang yang kembali harus dialokasikan secara eksplisit ke dua kolom:

KolomArtiEfek ke Stok
RestokBarang layak kembali disimpanNaik saat finalisasi
BuangBarang rusak/tidak layak simpanTidak kembali ke stok

Aturannya: Restok + Buang = Jumlah kembali untuk setiap barang.

  • Baris campuran valid — misal dari 10 unit: Restok 7 + Buang 3
  • Jika ada unit yang belum dialokasikan, muncul peringatan Z unit belum dialokasikan. dan finalisasi terkunci
  • Tidak ada "sisa otomatis jadi Buang" — setiap unit harus diputuskan secara eksplisit

Lokasi Restok

Jika Restok > 0, wajib pilih lokasi penyimpanan tujuan (cari atau pindai kode lokasi). Satu baris barang = satu lokasi restok.

Penanda Kondisi (Opsional)

Tandai kondisi barang sebagai Rusak, Salah kirim, atau Beda pesanan — atau biarkan tidak ditandai. Ini hanya penanda untuk memudahkan penelusuran, bukan penentuan nasib barang (yang menentukan adalah alokasi Restok/Buang).

Alasan dan Foto Bukti (Opsional)

  • Alasan — catatan bebas maksimal 500 karakter per barang
  • Foto bukti — ambil langsung dari kamera. Foto ini privat: hanya terlihat oleh tim internal Anda, tidak bisa dibagikan ke pembeli atau pihak luar

Simpan vs Finalisasi

TombolFungsi
SimpanMenyimpan progres tanpa mengubah stok. Kapan pun bisa dilanjutkan lagi
Finalisasi ReturMengunci retur permanen + mengeksekusi perubahan stok (lihat bawah)

Finalisasi Retur

Tombol Finalisasi Retur aktif hanya jika:

  1. Semua barang teralokasi penuh (Restok + Buang = Jumlah kembali di semua baris)
  2. Setiap baris dengan Restok > 0 sudah punya lokasi restok
  3. Tidak ada foto yang masih dalam proses unggah

Saat ditekan, muncul dialog ringkasan berisi total unit Restok (beserta lokasinya), total Buang, dan peringatan wajib:

Stok naik untuk Restok saat finalisasi. Setelah difinalisasi, retur tidak dapat diubah.

Yang terjadi saat finalisasi (satu transaksi atomik):

AspekPerubahan
StokUnit Restok masuk ke lokasi terpilih sebagai lot baru (Returned Lot)
ReturStatus menjadi Selesai, read-only permanen
Pengeluaran sumberTetap berstatus Retur sebagai jejak audit

Kasus khusus semua Buang: jika Restok total = 0 (semua unit dibuang), dialog menampilkan kotak konfirmasi tambahan — "Saya memahami tidak ada unit yang dikembalikan ke stok" — yang harus dicentang dulu sebelum finalisasi bisa dilanjutkan.

⚠️ Perhatian: Finalisasi tidak bisa dibatalkan. Jika ternyata salah, jalur satu-satunya adalah membatalkan Retur (dengan konsekuensinya — lihat bawah).


Membatalkan Retur

Di halaman retur (Meja Retur maupun Riwayat), klik tombol merah "Batalkan Retur" di bagian header, lalu isi alasan pembatalan (wajib, minimal 5 karakter) dan konfirmasi.

Efek pembatalan:

Kondisi ReturEfek
Belum difinalisasi (Perlu ditangani)Tidak ada stok yang berubah. Pengeluaran sumber kembali ke status Shipping — bisa dibuat Retur baru bila diperlukan
Sudah difinalisasi dengan RestokStok hasil Restok dibalik sesuai catatan pembatalan (lot tetap disimpan untuk audit)
Lot hasil Restok sudah terpakaiPembatalan ditolak — sistem mengarahkan ke Penyesuaian Stok untuk koreksi manual

⚠️ Pembatalan permanen. Retur tidak dapat dibuka kembali.


Daftar Retur

Halaman menu Retur adalah antrean kerja dengan tiga tab chip:

TabIsi
Perlu ditanganiRetur yang masih dikerjakan (default terbuka, urut dari yang tertua)
SelesaiRetur final
DibatalkanRetur batal

Fitur daftar:

  • Pencarian nomor Retur / nomor Pengeluaran / SKU
  • Filter kondisi, sumber pengeluaran, dan rentang tanggal
  • Aksi baris: Tangani (buka Meja Retur) atau Lihat riwayat (retur final/batal)

Riwayat Retur (Setelah Finalisasi/Batal)

Retur yang sudah final menampilkan halaman audit read-only:

  • Ringkasan hasil — berapa unit masuk stok saat finalisasi, atau "tidak ada perubahan stok" jika semua Buang
  • Persamaan alokasiN kembali = X Restok + Y Buang per barang
  • Jejak Returned Lot — lot hasil restok yang bisa dilacak
  • Foto privat — terkunci, tidak bisa dibagikan
  • Timeline lengkap — siapa (nama, bukan ID) melakukan apa dan kapan (waktu lokal)
  • Untuk retur batal yang pengeluarannya sudah balik ke Shipping: tombol "Buat Retur pengganti"

Contoh Skenario Penggunaan

Skenario 1: Barang Rusak Sebagian

Situasi: Pembeli mengirim balik 10 strip obat — 7 strip kering, 3 strip basah.

Langkah:

  1. Dari detail pengeluaran Shipping, klik Buat Retur
  2. Isi Jumlah kembali = 10, klik Buat Retur & mulai tangani
  3. Di Meja Retur: alokasikan Restok 7, Buang 3
  4. Pilih lokasi restok untuk 7 unit, tandai kondisi Rusak, foto bukti strip basah
  5. Finalisasi Retur → 7 unit masuk stok, selesai

Skenario 2: Semua Unit Hancur

Situasi: 10 unit semuanya rusak parah, tidak ada yang layak simpan.

Langkah:

  1. Buat Retur dengan Jumlah kembali = 10
  2. Di Meja Retur: Restok 0, Buang 10
  3. Saat finalisasi, centang konfirmasi "Saya memahami tidak ada unit yang dikembalikan ke stok"
  4. Finalisasi → retur selesai tanpa perubahan stok — jejak kerusakan tetap tercatat

Skenario 3: Salah Buat Retur

Situasi: Retur dibuat di pengeluaran yang salah.

Langkah:

  1. Buka Retur tersebut (tab Perlu ditangani)
  2. Klik tombol Batalkan Retur di header, isi alasan, konfirmasi
  3. Pengeluaran sumber otomatis kembali ke Shipping
  4. Buat Retur yang benar dari pengeluaran yang tepat

Tips Retur

1. Catat Semua Unit yang Kembali Sekaligus

Karena satu pengeluaran hanya bisa punya satu retur, jangan menunda unit yang "mungkin" kembali — catat semuanya saat membuat retur. Unit yang tidak tercatat tidak bisa ditambah kemudian.

2. Gunakan Foto Bukti untuk Barang Rusak

Foto kondisi barang saat retur adalah bukti internal terkuat saat ada perselisihan dengan pembeli atau kurir.

3. Jangan Tunda Finalisasi Terlalu Lama

Retur yang menggantung di "Perlu ditangani" membuat pengeluaran sumber terkunci di status Retur. Setelah barang selesai diperiksa, langsung finalisasi.

4. Pindai SKU untuk Kerja Cepat

Di Meja Retur, pindai barcode barang untuk langsung lompat dan mengisi nilai Restok-nya — jauh lebih cepat daripada scroll manual, terutama untuk retur banyak baris.


Selanjutnya: Manajemen Stok →