Lanjut ke konten
Samkarsa Logbook

Jualan v1.5.0-088: Perombakan UI/UX Rencana Belanja Cerdas & AI SmartNote Depletion Estimator

Penyempurnaan total modul Rencana Belanja (Purchase Plan) dengan AI SmartNote, kalkulasi interval sisa stok buffer 10%, UI modern, dan i18N 100%.

3mnt baca

Modul Rencana Belanja (Purchase Plan) pada sistem Blonjo & Sajen membutuhkan pembaruan menyeluruh untuk meningkatkan produktivitas pemilik toko dalam merencanakan kulakan barang dagangan:

  1. Penyempurnaan i18N: Menghilangkan teks hardcoded dan memastikan 100% kamus translasi bilingual (Indonesia & English) siap pakai di seluruh komponen rencana belanja.
  2. Perombakan UI/UX: Tampilan modern, bersih, responsif, dengan layout grid intuitif, laser scan animation, serta toolbar terpadu untuk perekaman suara dan input teks.
  3. SmartNote AI Parsing & Depletion Estimator:
    • Kemampuan mengekstrak target tanggal rencana belanja (misal: “besok”, “lusa”, “hari senin”, “tanggal 15”).
    • Melakukan data grounding ke database riwayat kulakan historis (Transaction type PURCHASE & InventoryLog).
    • Menerapkan Aturan Depletion Buffer 10%: Mengasumsikan saat siklus pembelian tiba, stok tersisa adalah 10% dari qty belanja terakhir (QlastQ_{last}). Laju konsumsi harian dihitung dengan: Rburn=0.90×QlastΔtavgR_{burn} = \frac{0.90 \times Q_{last}}{\Delta t_{avg}} Estimasi sisa stok pada target date: Sest=max⁡(0,Qlast−(Rburn×Δt))S_{est} = \max\left(0, Q_{last} - (R_{burn} \times \Delta t)\right) Rekomendasi Qty Belanja Baru: Qrec=max⁡(1,round(Qlast−Sest))Q_{rec} = \max\left(1, \text{round}(Q_{last} - S_{est})\right)

  • Endpoint Baru: POST /material-control/smart-plan-parse pada app/api/v1/material_control.py.
  • Service Logic: Fungsi parse_smart_purchase_plan di app/services/material_control.py yang membaca riwayat kulakan tenant, menghitung rata-rata interval antar-transaksi, laju konsumsi harian, estimasi sisa stok, status kritis/rendah/aman, dan total estimasi anggaran.
  • Schema Pydantic: Penambahan SmartPlanParseRequest dan SmartPlanParseResponse pada app/schemas/material_control.py.

  • Overhaul PurchasePlanForm.tsx:
    • Integrasi SmartNote Textarea dengan dukungan Quick Prompts, Voice Dictation, dan Laser Scanning animation saat AI bekerja.
    • Tabel interaktif dengan inline editing Qty & Unit Price, badge status sisa stok (Kritis ≤10%, Rendah ≤30%, Aman, Item Baru), badge SKU, tanggal beli terakhir, dan supplier.
    • Dialog penambahan custom item secara langsung.
    • Card ringkasan total estimasi anggaran dengan opsi kirim draf PO via WhatsApp / Email.
  • Update RecommendedPurchase.tsx:
    • Tombol CTA navigasi langsung ke SmartNote AI Planner di header.
  • Dukungan i18N 100%:
    • Penambahan key kamus translasi lengkap (mc_plan_*) untuk Bahasa Indonesia dan Bahasa Inggris di blonjo/src/lib/i18n.ts.

  • Deteksi Komoditas Jamak: Saat prompt SmartNote menyebutkan nama komoditas seperti “beras, gula, bawang dan Gandum”, parser secara otomatis mengambil seluruh varian produk yang biasa dibeli pada transaksi kulakan terakhir (misalnya 4 varian beras dari Toko Beras Adi Rasa, varian terigu dari CV Surabaya / SPI Solo, dan varian bawang dari Toko Budi Bawang).
  • Category Alias Mapping: Memastikan pencarian komoditas “gandum” mengarah secara tepat ke kategori GANDUM (tepung terigu & kanji), dan tidak tercampur dengan kategori SNACK (seperti biskuit) atau kategori lain di invoice campuran.
  • Filter Ketat Invoice: Membatasi ekstraksi item dalam transaksi kulakan terakhir agar hanya menyertakan varian produk dalam rumpun kategori yang diminta.

  • Build Validasi: npm run build pada blonjo dan build container sajen-api berhasil tanpa error.
  • Simulasi Data Riil di VPS: Teruji menggunakan prompt “buat rencana belanja besok untuk pembelian beras, gula, bawang dan Gandum” terhadap database transaksi riil:
    • Beras (Adi Rasa & Budi Bawang): BERAS PREMIUM SIIP (111.72 kg, Status Low), BERAS MENTHIK WANGI (10.71 kg), BERAS KETAN LADANG (2.61 kg).
    • Gula (CV. Surabaya): GULA NUSAKITA (1 sak, Rp 850.000).
    • Bawang (Budi Bawang & Sales Brambang): BAWANG KATING (14.03 kg, Status Low) & BAWANG MERAH BREBES (5 kg, Status Critical).
    • Gandum / Terigu (SPI Solo & CV. Surabaya): SGTG BIRU TRANSP 1KG (2 pcs) & CAKRA/K TPG TRANS 1KG (1 kg).
    • Total Anggaran Terhitung: Rp 3.678.411.