From ede22cbc80eed8b142457fe9779dcd61374f5c93 Mon Sep 17 00:00:00 2001 From: FIN-IT_AndriFP Date: Fri, 10 Oct 2025 09:30:55 +0700 Subject: (andri) penyesuaian jabatan dan department + fix view --- .../models/advance_payment_request.py | 61 ++++++++++++++-------- .../views/advance_payment_request.xml | 15 +++--- 2 files changed, 48 insertions(+), 28 deletions(-) diff --git a/indoteknik_custom/models/advance_payment_request.py b/indoteknik_custom/models/advance_payment_request.py index a867ddae..578829f2 100644 --- a/indoteknik_custom/models/advance_payment_request.py +++ b/indoteknik_custom/models/advance_payment_request.py @@ -33,8 +33,7 @@ class AdvancePaymentRequest(models.Model): date_back_to_office = fields.Date( string='Tanggal Kembali ke Kantor', - tracking=3, - required=True + tracking=3 ) estimated_return_date = fields.Date( @@ -53,7 +52,7 @@ class AdvancePaymentRequest(models.Model): status = fields.Selection([ ('draft', 'Draft'), ('pengajuan1', 'Menunggu Approval Departement'), - ('pengajuan2', 'Menunggu Pengecekan AP'), + ('pengajuan2', 'Menunggu Approval AP'), ('pengajuan3', 'Menunggu Approval Pimpinan'), ('approved', 'Approved'), ('reject', 'Rejected') @@ -62,7 +61,7 @@ class AdvancePaymentRequest(models.Model): last_status = fields.Selection([ ('draft', 'Draft'), ('pengajuan1', 'Menunggu Approval Departement'), - ('pengajuan2', 'Menunggu Pengecekan AP'), + ('pengajuan2', 'Menunggu Approval AP'), ('pengajuan3', 'Menunggu Approval Pimpinan'), ('approved', 'Approved'), ('reject', 'Rejected') @@ -94,7 +93,8 @@ class AdvancePaymentRequest(models.Model): ('marketing', 'Marketing'), ('logistic', 'Logistic'), ('procurement', 'Procurement'), - ('fat_it', 'FAT & IT'), + ('fat', 'FAT'), + ('it', 'IT'), ('hr_ga', 'HR & GA'), ], string='Departement Type', tracking=3, required=True) @@ -295,7 +295,7 @@ class AdvancePaymentRequest(models.Model): # Sales & MD : Darren ID 19 # Marketing : Iwan ID 216 # Logistic & Procurement : Rafly H ID 21 - # FAT : Stephan ID 28 + # FAT & IT : Stephan ID 28 # HR & GA : Akbar ID 7 / Pimpinan # --------------------------------------- # AP : Manzila (Finance) ID 23 @@ -308,29 +308,46 @@ class AdvancePaymentRequest(models.Model): 'logistic': 21, 'procurement': 21, 'fat': 28, + 'it': 28, 'hr_ga': 7, } def _get_departement_approver(self): mapping = self._get_approver_mapping() return mapping.get(self.departement_type) + + @api.onchange('applicant_name') + def _onchange_applicant_name_set_position(self): + if self.applicant_name: + user_id = self.applicant_name.id + mapping = self._get_approver_mapping() + manager_ids = set(mapping.values()) + pimpinan_id = 7 + if user_id == pimpinan_id: + self.position_type = 'pimpinan' + elif user_id in manager_ids: + self.position_type = 'manager' + else: + self.position_type = 'staff' + else: + self.position_type = False - @api.model - def default_get(self, fields_list): - defaults = super(AdvancePaymentRequest, self).default_get(fields_list) - user_id = defaults.get('user_id', self.env.uid) - mapping = self._get_approver_mapping() - manager_ids = set(mapping.values()) - pimpinan_id = 7 + # @api.model + # def default_get(self, fields_list): + # defaults = super(AdvancePaymentRequest, self).default_get(fields_list) + # user_id = defaults.get('user_id', self.env.uid) + # mapping = self._get_approver_mapping() + # manager_ids = set(mapping.values()) + # pimpinan_id = 7 - position = 'staff' - if user_id == pimpinan_id: - position = 'pimpinan' - elif user_id in manager_ids: - position = 'manager' + # position = 'staff' + # if user_id == pimpinan_id: + # position = 'pimpinan' + # elif user_id in manager_ids: + # position = 'manager' - defaults['position_type'] = position - return defaults + # defaults['position_type'] = position + # return defaults def action_realisasi_pum(self): self.ensure_one() @@ -429,6 +446,7 @@ class AdvancePaymentRequest(models.Model): 'logistic': 'Logistic Manager', 'procurement': 'Procurement Manager', 'fat': 'Finance & Accounting Manager', + 'it': 'IT Manager', 'hr_ga': 'HR & GA Manager', } rec.position_department = department_titles.get(rec.departement_type, 'Departement Manager') @@ -746,7 +764,7 @@ class AdvancePaymentSettlement(models.Model): status = fields.Selection([ ('pengajuan1', 'Menunggu Approval Departement'), - ('pengajuan2', 'Menunggu Pengecekan AP'), + ('pengajuan2', 'Menunggu Approval AP'), ('pengajuan3', 'Menunggu Approval Pimpinan'), ('approved', 'Approved'), ], string='Status', default='pengajuan1', tracking=3, index=True, track_visibility='onchange') @@ -987,6 +1005,7 @@ class AdvancePaymentSettlement(models.Model): 'logistic': 'Logistic Manager', 'procurement': 'Procurement Manager', 'fat': 'Finance & Accounting Manager', + 'it': 'IT Manager', 'hr_ga': 'HR & GA Manager', } rec.position_department = department_titles.get(rec.pum_id.departement_type, 'Departement Manager') diff --git a/indoteknik_custom/views/advance_payment_request.xml b/indoteknik_custom/views/advance_payment_request.xml index 0ec5900a..134ec9bf 100644 --- a/indoteknik_custom/views/advance_payment_request.xml +++ b/indoteknik_custom/views/advance_payment_request.xml @@ -29,12 +29,12 @@ type="object" string="Konfirmasi Pembayaran" class="btn-info" - attrs="{'invisible': ['|', ('status', 'in', ['reject','draft']), ('status_pay_down_payment', '=', 'payment')]}"/> + attrs="{'invisible': ['|', ('status', 'not in', ['approved']), ('status_pay_down_payment', '=', 'payment')]}"/>