diff --git a/addons/saat_invest/models/portofolio.py b/addons/saat_invest/models/portofolio.py
index 1fc56be..a1b94e2 100644
--- a/addons/saat_invest/models/portofolio.py
+++ b/addons/saat_invest/models/portofolio.py
@@ -38,7 +38,7 @@ class SaatPortofolio(models.Model):
def action_recalculate(self):
"""Rekalkulasi semua posisi portofolio dari transaksi. Return dict ringkas."""
self.env['saat.portofolio'].search([]).unlink()
- trans = self.env['saat.transaksi'].search([], order='tanggal, id')
+ trans = self.env['saat.transaksi'].search([('state', '=', 'done')], order='tanggal, id')
per_saham = {}
for t in trans:
a = per_saham.setdefault(t.saham_id.id, {
diff --git a/addons/saat_invest/models/transaksi.py b/addons/saat_invest/models/transaksi.py
index 67cac6d..9692007 100644
--- a/addons/saat_invest/models/transaksi.py
+++ b/addons/saat_invest/models/transaksi.py
@@ -30,6 +30,11 @@ class SaatTransaksi(models.Model):
# IDR
return self.env.ref('base.IDR', raise_if_not_found=False) or self.env.company.currency_id
+ state = fields.Selection([
+ ('done', 'Selesai'),
+ ('cancel', 'Dibatalkan'),
+ ], string="Status", default='done', required=True, copy=False)
+
@api.depends('tanggal', 'tipe', 'saham_id')
def _compute_name(self):
for r in self:
@@ -50,6 +55,14 @@ class SaatTransaksi(models.Model):
if r.harga < 0:
raise models.ValidationError("Harga tidak boleh negatif.")
+ def action_cancel(self):
+ self.write({'state': 'cancel'})
+ return True
+
+ def action_set_to_done(self):
+ self.write({'state': 'done'})
+ return True
+
# --- auto-sync portofolio: setiap transaksi berubah, portofolio diperbarui ---
def _resync_portofolio(self):
"""Rekalkulasi portofolio dari seluruh transaksi (idempoten)."""
diff --git a/addons/saat_invest/views/transaksi_views.xml b/addons/saat_invest/views/transaksi_views.xml
index be341c2..5c4ba9a 100644
--- a/addons/saat_invest/views/transaksi_views.xml
+++ b/addons/saat_invest/views/transaksi_views.xml
@@ -4,7 +4,7 @@
saat.transaksi.list
saat.transaksi
-
+
@@ -12,6 +12,7 @@
+
@@ -21,6 +22,11 @@
saat.transaksi