Lanjut ke konten
Samkarsa Logbook

jualan v1.5.0-056 : Standardisasi Komprehensif i18n Transaksi, COA Account Names & Perbaikan Resolusi Tipe SmartNote

Penerapan multi-bahasa (i18n EN/ID) secara menyeluruh pada modul Transaksi, komponen ParsePreview, ConfirmJournalDialog, DuplicateWarningDialog, translasi nama akun COA (Cash, COGS, Sales Revenue, dll.), serta perbaikan sinkronisasi type_label dan type_color dari backend.

2mnt baca

Pembaruan ini berfokus pada standarisasi lokalisasi multi-bahasa (i18n) di seluruh antarmuka pencatatan transaksi, modal konfirmasi jurnal, peringatan duplikasi, translasi nama akun bagan akun (COA Account Names), serta penyelesaian masalah inkonsistensi penentuan tipe transaksi (Transaction Type Label & Color) pada hasil analisa SmartNote AI.


  • Ekspansi Kamus Terjemahan (i18n.ts):
    • Menambahkan kamus lengkap untuk field transaksi, label form, tabel baris item, popover autocomplete, status akurasi (High/Medium/Low Accuracy), petunjuk low-confidence, peringatan duplikasi AI (AI Duplicate Warning), dan deskripsi konfirmasi jurnal (tx_confirm_desc).
    • Menambahkan kamus translasi nama akun COA (Kas -> Cash, Beban Pokok Penjualan (HPP) -> Cost of Goods Sold (COGS), Pendapatan Penjualan -> Sales Revenue, Persediaan Barang Dagang -> Inventory - Merchandise, dll.).
  • Integrasi Penuh pada ParsePreview.tsx:
    • Mengganti seluruh teks statis/hardcoded bahasa Indonesia dengan hook useTranslation() (t(...)).
    • Menyelaraskan fungsi getAccountName agar otomatis menerjemahkan nama akun COA sesuai bahasa aktif.
    • Label form: Tipe / Type, Nama Pemasok / Supplier Name, Tanggal Transaksi / Transaction Date, Total Nominal / Total Amount, Metode Pembayaran / Payment Method, Jatuh Tempo / Due Date, Deskripsi / Description.
    • Header tabel item: No, Nama Barang / Item Name, Jml / Qty, Satuan / Unit, Harga Satuan / Unit Price, Total Harga / Total Price.
    • Helper & Popover: “Pilih dari Master Katalog”, “Ketik / pilih barang…”, “Tambah Item Manual”, “Hapus baris item ini”, “Item kustom baru tetap tersimpan”.
  • Integrasi pada ConfirmJournalDialog.tsx & DuplicateWarningDialog.tsx:
    • Mengikat DialogDescription ke t('tx_confirm_desc').
    • Menerjemahkan nama akun pada dropdown dan baris entri jurnal (t(entry.account.name) / t(acc.name)).
    • Mengintegrasikan translasi pada DuplicateWarningDialog untuk judul modal, ringkasan transaksi duplikat, dan foto nota.
  • Integrasi pada SmartNoteTab.tsx & ManualEntryTab.tsx:
    • Tooltip tombol aksi: Kamera (Foto / Scan), Upload Nota / File, Input Suara (Voice Input).
    • Teks fase animasi scanning OCR (“Mengunggah gambar…”, “AI Vision memindai…”) dan AI Parsing (“Menganalisa konteks…”, “Menyusun jurnal…”).
    • Badge tingkat akurasi parsing (Akurasi Tinggi / Sedang / Rendah).
    • Dropdown akun manual entry terikat ke t(acc.name).

  • Akar Masalah:
    • Ketika backend AI berhasil memetakan input “Pendapatan Penjualan tunai…” menjadi transaction_type: "sales" dan menghasilkan jurnal penjualan yang benar, objek parsed_data dari backend tidak menyertakan field type_label dan type_color.
    • Frontend pada useSmartNote.ts sebelumnya memiliki fallback statis type_label: baseParsed.type_label || 'Pengeluaran', sehingga label badge selalu tampil sebagai “Pengeluaran” berwarna merah (rose).
  • Solusi Implementasi:
    • Menyelaraskan mapping tipe transaksi pada useSmartNote.ts dan ParsePreview.tsx menggunakan aturan TYPE_RULES.
    • Apabila transaction_type terdeteksi "sales", sistem otomatis menetapkan label “Penjualan Barang / Toko” (atau “Sales”) dengan aksen hijau emerald (bg-emerald-500/15 text-emerald-400).
    • Apabila transaction_type terdeteksi "income", sistem menetapkan label “Pendapatan Non-Usaha / Jasa” dengan aksen cyan.

  • Build Frontend: pnpm --filter blonjo-ui build berhasil dengan 0 Errors / 0 Warnings.
  • Deployment: Kontainer jualan-blonjo-ui diperbarui dan aktif di server produksi.