summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMqdd <ahmadmiqdad27@gmail.com>2026-03-04 19:08:31 +0700
committerMqdd <ahmadmiqdad27@gmail.com>2026-03-04 19:08:31 +0700
commit672b682c602160de8e7ec77232b0a709c6ed2b87 (patch)
tree62dad3b6f2ec6df4553b5cc10d0af44e2333bb5f
parent3df3f47dd4998d9abb21bfbae5b0f4e78d560c72 (diff)
<Miqdad> compute
-rwxr-xr-xindoteknik_custom/models/res_users.py1
-rw-r--r--indoteknik_custom/models/upah_harian_office.py30
2 files changed, 29 insertions, 2 deletions
diff --git a/indoteknik_custom/models/res_users.py b/indoteknik_custom/models/res_users.py
index b0864f2c..8f5b4008 100755
--- a/indoteknik_custom/models/res_users.py
+++ b/indoteknik_custom/models/res_users.py
@@ -12,6 +12,7 @@ class ResUsers(models.Model):
otp_code = fields.Char(string='OTP Code')
otp_create_date = fields.Datetime(string='OTP Create Date')
payment_terms_id = fields.Many2one('account.payment.term', related='partner_id.property_payment_term_id', string='Payment Terms')
+ pic = fields.Boolean('PIC')
def _generate_otp(self):
diff --git a/indoteknik_custom/models/upah_harian_office.py b/indoteknik_custom/models/upah_harian_office.py
index cc81530a..b2c12bd5 100644
--- a/indoteknik_custom/models/upah_harian_office.py
+++ b/indoteknik_custom/models/upah_harian_office.py
@@ -1,11 +1,11 @@
from odoo import models, fields, api
+from odoo.exceptions import UserError, ValidationError
class UpahHarianOffice(models.Model):
_name = 'upah.harian.office'
_description = 'Upah Harian Office'
name = fields.Char()
- upah_harian = fields.Float('Upah Harian', required=True)
pemohon = fields.Many2one('res.users', String='Pemohon', required=True)
tanggal = fields.Date('Tanggal Pengajuan', required=True)
state = fields.Selection([('draft', 'Draft'), ('done', 'Done')], default='draft')
@@ -24,20 +24,46 @@ class UpahHarianOffice(models.Model):
('hr_ga', 'HR & GA'),
('pimpinan', 'Pimpinan')
], string='Departement Type', tracking=3, required=True)
+ total_upah = fields.Float('Total Upah Harian', compute='_compute_total_upah')
@api.models
def create(self, vals):
vals['name'] = self.env['ir.sequence'].next_by_code('upah.harian.office')
return super(UpahHarianOffice, self).create(vals)
+ def action_approve(self):
+ if self.state == 'draft' and self.env.user.pic:
+ self.state = 'done'
+ self.approved_by = self.env.user.name
+ if not self.env.user.pic:
+ raise UserError("Only PIC user can approve this document.")
+
+ self.state = 'done'
+
+ def _compute_total_upah(self):
+ for line in self:
+ line.total_upah = sum(line.mapped('upah_harian_line').mapped('upah_harian'))
+
class UpahHarianOfficeLine(models.Model):
_name = 'upah.harian.line'
_description = 'Upah Harian Line'
- name = fields.Char()
upah_harian_id = fields.Many2one('upah.harian.office')
+ upah_harian= fields.Float('Upah Harian', required=True, compute='_compute_upah_harian')
+ hari = fields.Char('Hari')
+ jam_masuk = fields.Float('Jam Masuk', required=True)
+ jam_keluar = fields.Float('Jam Keluar', required=True)
tanggal_line = fields.Datetime('Tanggal', required=True)
kegiatan = fields.Char('Kegiatan', required=True)
jam = fields.Float('Jam', required=True)
+ total_jam_kerja = fields.Float('Total Jam Kerja', compute='_compute_total_jam_kerja')
+
+ def _compute_total_jam_kerja(self):
+ for line in self:
+ line.total_jam_kerja = line.jam
+
+ def _compute_upah_harian(self):
+ for line in self:
+ line.upah_harian = line.jam