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.).
- 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 (
- Integrasi Penuh pada
ParsePreview.tsx:- Mengganti seluruh teks statis/hardcoded bahasa Indonesia dengan hook
useTranslation()(t(...)). - Menyelaraskan fungsi
getAccountNameagar 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”.
- Mengganti seluruh teks statis/hardcoded bahasa Indonesia dengan hook
- Integrasi pada
ConfirmJournalDialog.tsx&DuplicateWarningDialog.tsx:- Mengikat
DialogDescriptionket('tx_confirm_desc'). - Menerjemahkan nama akun pada dropdown dan baris entri jurnal (
t(entry.account.name)/t(acc.name)). - Mengintegrasikan translasi pada
DuplicateWarningDialoguntuk judul modal, ringkasan transaksi duplikat, dan foto nota.
- Mengikat
- 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, objekparsed_datadari backend tidak menyertakan fieldtype_labeldantype_color. - Frontend pada
useSmartNote.tssebelumnya memiliki fallback statistype_label: baseParsed.type_label || 'Pengeluaran', sehingga label badge selalu tampil sebagai “Pengeluaran” berwarna merah (rose).
- Ketika backend AI berhasil memetakan input “Pendapatan Penjualan tunai…” menjadi
- Solusi Implementasi:
- Menyelaraskan mapping tipe transaksi pada
useSmartNote.tsdanParsePreview.tsxmenggunakan aturanTYPE_RULES. - Apabila
transaction_typeterdeteksi"sales", sistem otomatis menetapkan label “Penjualan Barang / Toko” (atau “Sales”) dengan aksen hijau emerald (bg-emerald-500/15 text-emerald-400). - Apabila
transaction_typeterdeteksi"income", sistem menetapkan label “Pendapatan Non-Usaha / Jasa” dengan aksen cyan.
- Menyelaraskan mapping tipe transaksi pada
- Build Frontend:
pnpm --filter blonjo-ui buildberhasil dengan 0 Errors / 0 Warnings. - Deployment: Kontainer
jualan-blonjo-uidiperbarui dan aktif di server produksi.