summaryrefslogtreecommitdiff
path: root/indoteknik_custom/models
diff options
context:
space:
mode:
authorMqdd <ahmadmiqdad27@gmail.com>2026-03-13 15:32:12 +0700
committerMqdd <ahmadmiqdad27@gmail.com>2026-03-13 15:32:12 +0700
commit8289cee1b6a599eaa7c07494bc8bef3d90fe7f0b (patch)
treebc2861309b61a8678227bc1c1a77ff0046e59d35 /indoteknik_custom/models
parent6916edb441654f906bf3076f82df168dfa1ffde8 (diff)
<Miqdad> date approved
Diffstat (limited to 'indoteknik_custom/models')
-rw-r--r--indoteknik_custom/models/upah_harian_office.py36
1 files changed, 24 insertions, 12 deletions
diff --git a/indoteknik_custom/models/upah_harian_office.py b/indoteknik_custom/models/upah_harian_office.py
index 46b79fef..bdbb3cc4 100644
--- a/indoteknik_custom/models/upah_harian_office.py
+++ b/indoteknik_custom/models/upah_harian_office.py
@@ -29,9 +29,9 @@ class UpahHarian(models.Model):
state = fields.Selection([
('draft', 'Draft'),
('pic', 'Approval PIC'),
- ('approved', 'Approval Kepala Departemen'),
- ('waiting_payment', 'Waiting for Payment'),
- ('paid', 'Paid'),
+ ('dept', 'Approval Kepala Departemen'),
+ ('waiting_payment', 'Menunggu Pembayaran'),
+ ('paid', 'Lunas'),
('cancel', 'Canceled')
], default='draft', tracking=True)
@@ -41,6 +41,11 @@ class UpahHarian(models.Model):
approved_by_dept = fields.Char('Approved By Dept', readonly=True)
approved_by_finance = fields.Char('Approved By Finance', readonly=True)
+ date_approved_pic = fields.Datetime('Date Approved PIC', readonly=True)
+ date_approved_dept = fields.Datetime('Date Approved Dept', readonly=True)
+ date_approved_finance = fields.Datetime('Date Approved Finance', readonly=True)
+
+
departement_type = fields.Selection([
('sales', 'Sales'),
('merchandiser', 'Merchandiser'),
@@ -151,26 +156,30 @@ class UpahHarian(models.Model):
# =========================================================
# ACTION
# =========================================================
-
def action_approve(self):
self.cancel_reason = False or ""
+ dept_head_ids = [25]
if not self.upah_harian_line.mapped('kegiatan'):
raise UserError("Harus Isi Kegiatan yang dilakukan")
- if not self.env.user.pic:
- raise UserError("Only PIC user can approve this document.")
+
approver = self.env.user.name
if self.state == 'draft':
self.state = 'pic'
- self.approved_by_pic = self.env.user.name
elif self.state == 'pic':
- self.state = 'approved'
- self.approved_by_dept = self.env.user.name
- elif self.state == 'approved':
+ if not self.env.user.pic:
+ raise UserError("Only PIC user can approve this document.")
+ self.state = 'dept'
+ self.approved_by_pic = approver
+ self.date_approved_pic = fields.Datetime.now()
+ elif self.state == 'dept':
+ if self.env.user.id not in dept_head_ids:
+ raise UserError("Harus di Approve kepala departemen")
self.state = 'waiting_payment'
- self.approved_by_finance = self.env.user.name
+ self.approved_by_dept = approver
+ self.date_approved_dept = fields.Datetime.now()
def action_reset_to_draft(self):
@@ -184,12 +193,15 @@ class UpahHarian(models.Model):
def action_cancel(self):
if not self.cancel_reason:
raise UserError('Harus Isi Alasan Cancel')
- if self.state in ['paid', 'approved']:
+ if self.state in ['paid', 'dept']:
raise UserError('Tidak Bisa Cancel Karena pengajuan sudah diapprove')
self.state = 'cancel'
self.approved_by_pic = False or ""
self.approved_by_dept = False or ""
self.approved_by_finance = False or ""
+ self.date_approved_finance = False or ""
+ self.date_approved_dept= False or ""
+ self.date_approved_pic = False or ""
def write(self, vals):