feat: dukung penjualan produk per timbangan
Produk kini punya cara jual `unit` (cacah) atau `weight` (timbangan), mengikuti kontrak backend di docs/integration-weight-based-products.md. - tipe SellBy, domain/infrastructure unit baru, dan endpoint /api/v1/units - dialog input berat saat produk timbangan ditambahkan ke keranjang - tiap penimbangan jadi baris keranjang sendiri; total baris dihitung berat x harga satuan, sedangkan produk cacah tetap digabung - request ke backend mengirim quantity 1 dan membawa berat - migrasi DB v3: kolom sell_by, unit_id, unit_name, unit_abbreviation di tabel products supaya satuan tetap tampil saat offline - tampilan keranjang, struk, split bill, void, dan refund memakai berat - test/weight_based_products_test.dart menutup perilaku di atas (9 test) Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -17,7 +17,7 @@ class DatabaseHelper {
|
||||
|
||||
return await openDatabase(
|
||||
path,
|
||||
version: 2,
|
||||
version: 3,
|
||||
onCreate: _onCreate,
|
||||
onUpgrade: _onUpgrade,
|
||||
);
|
||||
@@ -42,7 +42,11 @@ class DatabaseHelper {
|
||||
metadata TEXT,
|
||||
is_active INTEGER,
|
||||
created_at TEXT,
|
||||
updated_at TEXT
|
||||
updated_at TEXT,
|
||||
sell_by TEXT DEFAULT 'unit',
|
||||
unit_id TEXT,
|
||||
unit_name TEXT,
|
||||
unit_abbreviation TEXT
|
||||
)
|
||||
''');
|
||||
|
||||
@@ -114,6 +118,17 @@ class DatabaseHelper {
|
||||
'ALTER TABLE products ADD COLUMN print_to_checker INTEGER DEFAULT 0',
|
||||
);
|
||||
}
|
||||
|
||||
// Produk timbangan: cara jual dan satuan ikut disimpan lokal supaya POS
|
||||
// tetap bisa menampilkan "4,2 ons" saat offline.
|
||||
if (oldVersion < 3) {
|
||||
await db.execute(
|
||||
"ALTER TABLE products ADD COLUMN sell_by TEXT DEFAULT 'unit'",
|
||||
);
|
||||
await db.execute('ALTER TABLE products ADD COLUMN unit_id TEXT');
|
||||
await db.execute('ALTER TABLE products ADD COLUMN unit_name TEXT');
|
||||
await db.execute('ALTER TABLE products ADD COLUMN unit_abbreviation TEXT');
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> close() async {
|
||||
|
||||
Reference in New Issue
Block a user