Lanjut ke konten
Samkarsa Logbook

v1.0.0-012 : [PLAN] Fitur Edit Purchase Plan (Rencana Belanja)

Rencana pengembangan untuk memungkinkan pengeditan list rencana belanja yang belum complete (Draft/Pending).

Jualan,Blonjo,Sajen2mnt baca

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 PurchasePlanUpdate di sajen/app/schemas/material_control.py untuk menerima payload pengeditan (termasuk planned_date dan daftar items terbaru).
  • New Endpoint: Menambahkan endpoint PUT /purchase-plans/{plan_id} di sajen/app/api/v1/material_control.py.
  • Service Logic: Membuat fungsi pada sajen/app/services/material_control.py yang akan:
    • Memperbarui planned_date pada tabel PurchasePlan.
    • Menghapus keseluruhan item yang lama.
    • Memasukkan kembali daftar item yang baru sesuai dengan payload.
    • Menghitung dan menyimpan ulang total_amount estimasi belanja.

  • Pada halaman PurchasePlanForm.tsx, variabel untuk item baru harus diperbaiki agar mengisi property custom_product_name sesuai dengan schema yang diekspektasikan backend, bukan product_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_date bagi 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_name jika product_id bernilai null dan 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.