summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indoteknik_custom/models/tukar_guling.py25
1 files changed, 20 insertions, 5 deletions
diff --git a/indoteknik_custom/models/tukar_guling.py b/indoteknik_custom/models/tukar_guling.py
index e214e268..36819ad4 100644
--- a/indoteknik_custom/models/tukar_guling.py
+++ b/indoteknik_custom/models/tukar_guling.py
@@ -22,7 +22,6 @@ class TukarGuling(models.Model):
('debit_memo', 'Debit Memo'),
('lain_lain', 'Lain-lain')])
- # ✅ PERBAIKAN: Ganti 'states' dengan 'state'
state = fields.Selection(string='Status', selection=[
('draft', 'Draft'),
('waiting', 'Waiting for Approval'),
@@ -30,7 +29,6 @@ class TukarGuling(models.Model):
('cancel', 'Canceled')
], default='draft', tracking=True, required=True)
- # ✅ NEW: Line items
line_ids = fields.One2many('tukar.guling.line', 'tukar_guling_id', string='Product Lines')
@api.constrains('line_ids', 'state')
@@ -44,6 +42,7 @@ class TukarGuling(models.Model):
"""Helper method untuk validasi product lines"""
self.ensure_one()
+
# Check ada product lines
if not self.line_ids:
raise UserError("Belum ada product lines yang ditambahkan!")
@@ -74,16 +73,15 @@ class TukarGuling(models.Model):
# Reset fields penting saat duplicate
default.update({
- 'name': 'New', # Akan auto-generate sequence baru
+ 'name': 'New',
'state': 'draft',
'date': fields.Datetime.now(),
- # ba_num dan out_num tidak di-reset, user bisa edit manual
})
# Copy record dengan default values
new_record = super(TukarGuling, self).copy(default)
- # Re-sequence line items untuk record baru
+ # Re-sequence line items record baru
if new_record.line_ids:
for i, line in enumerate(new_record.line_ids):
line.sequence = (i + 1) * 10
@@ -100,12 +98,29 @@ class TukarGuling(models.Model):
def action_submit(self):
self.ensure_one()
+ # cek bu out sudah diisi atau blm
+ if not self.out_num:
+ raise UserError("BU/Out harus diisi!")
+
+ # cek return type
+ # if not self.return_type:
+ # raise UserError("Return Type harus diisi!")
+
if self.state != 'draft':
raise UserError("Hanya status Draft saja yang bisa di submit")
self.state = 'waiting'
def action_approve(self):
self.ensure_one()
+
+ # cek bu out sudah diisi atau blm
+ if not self.out_num:
+ raise UserError("BU/Out harus diisi!")
+
+ # cek return type
+ if not self.return_type:
+ raise UserError("Return Type harus diisi!")
+
if self.state != 'waiting':
raise UserError("Hanya status Waiting saja yang bisa di approve")
self.state = 'done'