Flutter: fitur Tambah Saham (tab Saham + form kode/perusahaan/sektor)
- Tab baru 'Saham' di NavigationBar (daftar master saham dari saat.saham) - FAB konteks: di tab Saham buka form Tambah Saham, di tab lain catat transaksi - EditSahamScreen: form tambah saham baru (kode ticker, perusahaan, sektor) - StockService: method addSaham(), updateSaham(), hapusSaham() ke Odoo
This commit is contained in:
@@ -15,6 +15,35 @@ class StockService {
|
||||
return (res as List).map((e) => Saham.fromOdoo(e as Map<String, dynamic>)).toList();
|
||||
}
|
||||
|
||||
// Tambah saham baru ke Odoo saat.saham.create
|
||||
Future<int> addSaham({
|
||||
required String kode,
|
||||
String? perusahaan,
|
||||
String? sektor,
|
||||
}) async {
|
||||
final vals = <String, dynamic>{
|
||||
'name': kode,
|
||||
if (perusahaan != null && perusahaan.isNotEmpty) 'perusahaan': perusahaan,
|
||||
if (sektor != null && sektor.isNotEmpty) 'sector': sektor,
|
||||
};
|
||||
final res = await client.executeKwd('saat.saham', 'create', args: [vals]);
|
||||
return (res as num).toInt();
|
||||
}
|
||||
|
||||
// Update data saham (perusahaan, sektor)
|
||||
Future<void> updateSaham(int id, {String? perusahaan, String? sektor}) async {
|
||||
final vals = <String, dynamic>{
|
||||
if (perusahaan != null) 'perusahaan': perusahaan,
|
||||
if (sektor != null) 'sector': sektor,
|
||||
};
|
||||
await client.executeKwd('saat.saham', 'write', args: [[id], vals]);
|
||||
}
|
||||
|
||||
// --- Hapus saham (optional) ---
|
||||
Future<void> hapusSaham(int id) async {
|
||||
await client.executeKwd('saat.saham', 'unlink', args: [[id]]);
|
||||
}
|
||||
|
||||
// ---- Portofolio ----
|
||||
Future<List<Portfolio>> listPortofolio() async {
|
||||
final fields = [
|
||||
|
||||
Reference in New Issue
Block a user