Library flutter_esc_pos_utils mengirim ESC a (align) di tengah
baris
pada generator.row(), menyebabkan kolom right-aligned tercetak di
baris baru. Ganti semua row() campuran left+right alignment
dengan
text() + _padRow() (manual space padding 32 char) agar tidak ada
perintah ESC a di tengah baris.
- Tambah helper _padRow(left, right) untuk padding 32 karakter
- Item: deskripsi 1 baris (width 12), qty×price + total 1 baris
- Subtotal, TOTAL, BAYAR, KEMBALI/TIP, KURANG: text() + _padRow()
Multi-Grup Sumber & UI:
- Model ReceiptGroup: satu struk bisa punya banyak grup sumber (
revenue)
- Tombol "Tambah Sumber" dengan dashed border (max 10 grup)
- Hapus label "Dari:" di SourceAccountSelector (chip saja)
- Default 1 grup kosong di ReceiptProvider constructor &
_resetState
Akun Tujuan ke Config:
- Pindah DestinationAccountSelector dari receipt body ke Config
screen
- Persist & load via SharedPreferences (permanen, tidak di-reset)
- Dropdown auto-load dari cache/mirror saat buka Config
- Tombol "Sinkronisasi Manual" sekarang simpan ke mirror &
refresh dropdown
Batch Send via SubmissionTask:
- Model SubmissionTask: konteks per-grup (group/tip +
destination + date)
- TransactionSubmissionDialog refactor: terima
List<SubmissionTask>
- Helper buildTasksFromReceipt &
buildTasksFromAllUnsubmittedReceipts
- LocalReceiptsScreen: tombol "Kirim Semua Nota" + post-process
status
Bug Fix:
- copyWith sentinel pattern: field nullable (tipSourceAccount,
destinationAccount, fireflyUrl, accessToken) kini bisa di-set
ke null
- Tip dapat dibersihkan dengan "Batal Tip" & reset antar
transaksi
- Hapus tombol "Muat Akun" (redundan dgn Sinkronisasi Manual)
Lainnya:
- Date picker untuk tanggal transaksi
- Font courier prime caching via CourierStyles
- Perf: compute() untuk decode image, cancel stream bluetooth,
fix rebuild loop
- External link: <queries> AndroidManifest + skip canLaunchUrl
- Layout cetak: hapus Ke:, sederhanakan separator grup, hapus
TIP: TIDAK
- Hapus TransactionLinksScreen, ganti inline copy/open di popup
This commit removes the confusing default account mapping feature and implements a more reliable offline-first account mirroring system. The changes include:
BREAKING CHANGES:
- Remove all default account mapping functionality (saveDefaultAccount, getDefaultAccount, etc.)
- Simplify account selection to use direct account choice instead of default mapping
FEATURES:
- Implement account mirroring system that stores all FireFly III accounts locally
- Add offline-first approach: server accounts > mirrored accounts > fallback
- Automatic account sync when connection is available
- Manual sync capability in config screen
- Enhanced offline reliability - app works completely without server connection
IMPROVEMENTS:
- Faster startup times using local account cache
- More predictable account selection behavior
- Reduced confusion about which accounts are being used
- Better error handling for offline scenarios
- Simplified architecture without complex default mapping logic
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Mengimplementasikan ReceiptScreen dengan pola provider untuk manajemen state yang lebih baik. Memisahkan logika bisnis ke service terpisah dan membuat widget komponen yang reusable untuk struk. Menambahkan fitur konfigurasi informasi toko dan teks kustom (disclaimer, thank you note, pantun).
• Replace StrukTextGenerator with EscPosPrintService to support image printing
• Add loading indicator during print process to prevent UI freeze
• Fix Uint8List type issues for printer compatibility
• Improve error handling with proper state management
• Users can now print selected store logo on thermal receipts
- Menambahkan pengecekan koneksi Bluetooth real-time untuk memastikan status koneksi akurat
- Memperbaiki tombol 'Cetak Struk' untuk menggunakan pengecekan koneksi yang benar
- Menambahkan mekanisme koneksi ulang otomatis jika printer terputus
- Meningkatkan fungsi pencetakan dengan penanganan error yang lebih baik dan percobaan ulang
- Menambahkan logging detail di plugin Bluetooth Print (Java) untuk debugging
- Menyesuaikan format struk untuk kompatibilitas printer termal
- Menghapus file yang tidak digunakan (printer_setup_screen.dart, settings_screen.dart)
- Menambahkan fitur WebView untuk menampilkan transaksi Firefly III