summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiqdad <ahmadmiqdad27@gmail.com>2025-06-14 10:05:15 +0700
committerMiqdad <ahmadmiqdad27@gmail.com>2025-06-14 10:05:15 +0700
commitf5fc52453c0f7e52b6c87fa57d2de5120c3041e0 (patch)
tree051dd18c809066dff270a73f604e34430cdb03d4
parentdc4089f58420e4395841370f131e8f3a738199d0 (diff)
<miqdad> check validation
-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'