# Alur Retur Penjualan Obat

Dokumentasi ini menjelaskan prosedur standar operasional (SOP) dan logika sistem dalam menangani retur obat yang sudah dibayar (**Paid**<span style="white-space: pre-wrap;">). Alur ini menggunakan metode </span>**Re-open &amp; Adjustment**, di mana data transaksi lama tetap dipertahankan untuk kebutuhan audit, sementara resep diaktifkan kembali untuk proses koreksi.

#### 1. Diagram Alur (Sequence Diagram)

Berikut adalah visualisasi urutan logika sistem saat proses retur dilakukan:

[![Alur Retur Penjualan Obat.png](https://docs.oxytech.id/uploads/images/gallery/2026-04/scaled-1680-/alur-retur-penjualan-obat.png)](https://docs.oxytech.id/uploads/images/gallery/2026-04/alur-retur-penjualan-obat.png)

#### 2. Penjelasan Tahapan Alur

##### Fase 1: Proses Retur (Kondisi Awal: Lunas/Paid)

Tahap ini dilakukan ketika pasien mengembalikan obat atau terjadi kesalahan input setelah pembayaran selesai.

1. **Pemicu (Trigger):**<span style="white-space: pre-wrap;"> Staf Farmasi/Apoteker menekan tombol </span>**'Retur'**<span style="white-space: pre-wrap;"> pada Menu Penjualan untuk transaksi yang dimaksud.</span>
2. **Update Stok:**<span style="white-space: pre-wrap;"> Sistem secara otomatis melakukan </span>**Stock In**<span style="white-space: pre-wrap;"> (menambah kembali jumlah stok) ke </span>**Tabel Stok**<span style="white-space: pre-wrap;"> berdasarkan item yang diretur.</span>
3. **Penyesuaian Billing:**<span style="white-space: pre-wrap;"> Sistem mengakses </span>**Tabel Pembayaran**<span style="white-space: pre-wrap;"> dan melakukan reset pada komponen </span>`<span class="editor-theme-code">tagihan_obat</span>`<span style="white-space: pre-wrap;"> menjadi nol (0).</span>
    - **Catatan:**<span style="white-space: pre-wrap;"> Komponen tagihan lain seperti Lab atau Administrasi tetap ada dan tidak berubah.</span>
4. **Perubahan Status Penjualan:**<span style="white-space: pre-wrap;"> Status pada </span>**Tabel Penjualan**<span style="white-space: pre-wrap;"> berubah dari </span>`<span class="editor-theme-code">Paid</span>`<span style="white-space: pre-wrap;"> menjadi </span>**`<strong class="editor-theme-bold editor-theme-code">Returned</strong>`**. Data ini tidak dihapus agar jejak audit keuangan tetap terjaga.
5. **Re-Open Resep:**<span style="white-space: pre-wrap;"> Sistem mengubah status pada </span>**Tabel Resep**<span style="white-space: pre-wrap;"> menjadi </span>**`<strong class="editor-theme-bold editor-theme-code">Ready/Open</strong>`**. Hal ini memungkinkan resep tersebut muncul kembali di daftar antrean farmasi seolah-olah belum diproses.
6. **Selesai:**<span style="white-space: pre-wrap;"> Sistem memberikan notifikasi kepada user bahwa proses retur berhasil.</span>

##### Fase 2: Alur Kirim Ulang (Koreksi)

Tahap ini dilakukan jika pasien membutuhkan penggantian obat atau koreksi jumlah obat.

11. **Kirim ke Penjualan:**<span style="white-space: pre-wrap;"> Staf Farmasi memproses kembali resep yang statusnya sudah </span>`<span class="editor-theme-code">Ready</span>`<span style="white-space: pre-wrap;"> tersebut ke Menu Penjualan.</span>
12. **Record Baru:**<span style="white-space: pre-wrap;"> Sistem membuat baris data (</span>**record**<span style="white-space: pre-wrap;">) baru di </span>**Tabel Penjualan**<span style="white-space: pre-wrap;"> dengan </span>**ID Baru**. Ini penting agar sistem bisa membedakan antara transaksi awal yang diretur dengan transaksi hasil koreksi.
13. **Update Billing Baru:**<span style="white-space: pre-wrap;"> Nilai obat yang baru dihitung oleh sistem dan memperbarui tagihan di </span>**Tabel Pembayaran**.

#### 3. Keunggulan Alur Ini

- **Audit Trail Terjaga:**<span style="white-space: pre-wrap;"> Tidak ada data yang dihapus (</span>**hard delete**). Semua riwayat transaksi (baik yang sukses maupun yang diretur) tersimpan di database.
- **Integritas Data Medis:**<span style="white-space: pre-wrap;"> Resep dokter tetap menjadi rujukan utama. Proses koreksi hanya terjadi di lapisan penjualan tanpa merusak data pemeriksaan awal.</span>
- **Efisiensi Operasional:**<span style="white-space: pre-wrap;"> Bagian farmasi tidak perlu meminta dokter menginput ulang resep. Cukup melakukan retur, dan resep siap diproses kembali.</span>