v1.0.0-012 : [PLAN] Fitur Edit Purchase Plan (Rencana Belanja)
Rencana pengembangan untuk memungkinkan pengeditan list rencana belanja yang belum complete (Draft/Pending).
Tanggal Update: 27 Juli 2026
Pada fitur Purchase Plan (Rencana Belanja), pengguna belum dapat mengedit rencana belanja yang telah dibuat jika statusnya masih belum selesai (incomplete seperti Draft atau Pending Approval). Hal ini menyulitkan jika ada perubahan pada tanggal belanja, penambahan barang baru, penghapusan barang yang batal dibeli, atau penyesuaian kuantitas dan harga estimasi sebelum plan tersebut dieksekusi atau disetujui.
Selain itu, ketika pengguna menambahkan item baru (yang tidak ada di master inventory database) secara manual melalui narasi AI, payload yang dikirim dari frontend belum tepat sasaran (mengirim product_name alih-alih custom_product_name), sehingga nama barang yang baru ini tidak tersimpan dengan benar di database dan mengakibatkan antarmuka menampilkan “N/A”.
- Schema Update: Membuat schema baru
PurchasePlanUpdatedisajen/app/schemas/material_control.pyuntuk menerima payload pengeditan (termasukplanned_datedan daftaritemsterbaru). - New Endpoint: Menambahkan endpoint
PUT /purchase-plans/{plan_id}disajen/app/api/v1/material_control.py. - Service Logic: Membuat fungsi pada
sajen/app/services/material_control.pyyang akan:- Memperbarui
planned_datepada tabelPurchasePlan. - Menghapus keseluruhan item yang lama.
- Memasukkan kembali daftar item yang baru sesuai dengan payload.
- Menghitung dan menyimpan ulang
total_amountestimasi belanja.
- Memperbarui
- Pada halaman
PurchasePlanForm.tsx, variabel untuk item baru harus diperbaiki agar mengisi propertycustom_product_namesesuai dengan schema yang diekspektasikan backend, bukanproduct_name. Hal ini akan mencegah data baru tersimpan kosong/N/A.
Pada tab “List Rencana Belanja”:
- Edit Tanggal Belanja: Menambahkan input Date Picker atau form inline untuk mengubah
planned_datebagi plan yang masih aktif (Draft/Pending Approval). - Aksi Item:
- Menambahkan tombol hapus (Trash) di setiap baris item (yang belum purchased).
- Menambahkan fitur edit kuantitas dan harga (sebagian sudah didukung inline, tapi perlu dihubungkan ke proses Save plan secara keseluruhan).
- Tambah Item Baru: Menyediakan antarmuka sederhana (tombol “+ Tambah Item”) di bawah daftar barang pada plan yang aktif untuk menambahkan barang ekstra.
- Action Button (Simpan Perubahan): Setelah modifikasi (tambah/edit/hapus/ubah tanggal) dilakukan, sebuah tombol Simpan Perubahan akan muncul untuk memicu pemanggilan endpoint PUT ke backend.
- Tampilan N/A: Memastikan rendering nama barang mengambil properti
custom_product_namejikaproduct_idbernilainulldan barang tidak ada di master.
Dengan langkah-langkah di atas, pengguna akan memiliki kendali penuh (CRUD) terhadap Purchase Plan yang belum selesai, serta akurasi pencatatan item baru dapat terjamin.