From 1de6ff22b0c3177d01d989b2c4fab1c64c45c1cf Mon Sep 17 00:00:00 2001 From: FIN-IT_AndriFP Date: Mon, 13 Oct 2025 14:31:22 +0700 Subject: (andri) fix --- .../models/advance_payment_request.py | 38 +++++++--- .../views/advance_payment_request.xml | 14 ++-- .../views/advance_payment_settlement.xml | 80 ++++++++++++---------- 3 files changed, 78 insertions(+), 54 deletions(-) diff --git a/indoteknik_custom/models/advance_payment_request.py b/indoteknik_custom/models/advance_payment_request.py index 02b1a23f..5e8bd88e 100644 --- a/indoteknik_custom/models/advance_payment_request.py +++ b/indoteknik_custom/models/advance_payment_request.py @@ -12,7 +12,7 @@ import base64 class AdvancePaymentRequest(models.Model): _name = 'advance.payment.request' - _description = 'Advance Payment Request & Reimburse' + _description = 'Advance Payment Request or Reimburse' _rec_name = 'number' _inherit = ['mail.thread', 'mail.activity.mixin'] @@ -476,9 +476,9 @@ class AdvancePaymentRequest(models.Model): ) elif rec.status == 'pengajuan2': - ap_user_ids = [23, 9468] # List user ID yang boleh approve sebagai Finance AP - if self.env.user.id not in ap_user_ids: - raise UserError("Hanya AP yang berhak menyetujui tahap ini.") + # ap_user_ids = [23, 9468] # List user ID yang boleh approve sebagai Finance AP + # if self.env.user.id not in ap_user_ids: + # raise UserError("Hanya AP yang berhak menyetujui tahap ini.") rec.name_approval_ap = self.env.user.name rec.approved_by = (rec.approved_by + ', ' if rec.approved_by else '') + rec.name_approval_ap rec.email_ap = self.env.user.email @@ -660,7 +660,7 @@ class AdvancePaymentRequest(models.Model): if not realization or realization.done_status != 'done_not_realized': active_pum_count += 1 - if active_pum_count >= 2: + if active_pum_count >= 2 and vals.get('type_request') == 'pum': raise UserError("Anda hanya dapat mengajukan maksimal 2 PUM aktif. Silakan realisasikan salah satunya terlebih dahulu.") if not vals.get('apr_perjalanan'): @@ -683,7 +683,7 @@ class AdvancePaymentRequest(models.Model): else: vals['number'] = self.env['ir.sequence'].next_by_code('advance.payment.request') or 'New Draft' - vals['status'] = 'pengajuan1' + # vals['status'] = 'pengajuan1' return super(AdvancePaymentRequest, self).create(vals) @@ -692,9 +692,9 @@ class AdvancePaymentSettlementLine(models.Model): _description = 'Advance Payment Settlement Line' realization_id = fields.Many2one('advance.payment.settlement', string='Realization') - date = fields.Date(string='Tanggal', required=True, default=fields.Date.today) - description = fields.Char(string='Description', required=True) - value = fields.Float(string='Nilai', required=True) + date = fields.Date(string='Tanggal', default=fields.Date.today) + description = fields.Char(string='Description') + value = fields.Float(string='Nilai') class AdvancePaymentUsageLine(models.Model): @@ -728,6 +728,17 @@ class AdvancePaymentUsageLine(models.Model): domain="[('id', 'in', [484, 486, 488, 506, 507, 625, 471, 519, 527, 528, 529, 530, 565])]" # ID Jenis Biaya yang dibutuhkan ) + is_current_user_ap = fields.Boolean( + string="Is Current User AP", + compute='_compute_is_current_user_ap' + ) + + def _compute_is_current_user_ap(self): + ap_user_ids = [23, 9468] + is_ap = self.env.user.id in ap_user_ids + for line in self: + line.is_current_user_ap = is_ap + @api.onchange('account_id') def _onchange_account_id(self): for rec in self: @@ -1175,6 +1186,15 @@ class AdvancePaymentSettlement(models.Model): @api.model def create(self, vals): + pum_id = vals.get('pum_id') + if pum_id: + pum_request = self.env['advance.payment.request'].browse(pum_id) + position = pum_request.position_type + if position == 'staff': + vals['status'] = 'pengajuan1' + elif position in ('manager', 'pimpinan'): + vals['status'] = 'pengajuan2' + rec = super().create(vals) rec._check_remaining_value() return rec diff --git a/indoteknik_custom/views/advance_payment_request.xml b/indoteknik_custom/views/advance_payment_request.xml index 65138be2..297d2a7a 100644 --- a/indoteknik_custom/views/advance_payment_request.xml +++ b/indoteknik_custom/views/advance_payment_request.xml @@ -15,11 +15,11 @@ string="Reset to Draft" attrs="{'invisible': [('status', '!=', 'reject')]}" type="object"/> -