diff options
| author | FIN-IT_AndriFP <it@fixcomart.co.id> | 2025-10-10 14:01:49 +0700 |
|---|---|---|
| committer | FIN-IT_AndriFP <it@fixcomart.co.id> | 2025-10-10 14:01:49 +0700 |
| commit | 99896ae7999de433837faed09466c06845493770 (patch) | |
| tree | 124ccc8c9f8b521d10978a7d1b31dd097944b542 /indoteknik_custom/models/advance_payment_request.py | |
| parent | ede22cbc80eed8b142457fe9779dcd61374f5c93 (diff) | |
(andri) add reimburse line
Diffstat (limited to 'indoteknik_custom/models/advance_payment_request.py')
| -rw-r--r-- | indoteknik_custom/models/advance_payment_request.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/indoteknik_custom/models/advance_payment_request.py b/indoteknik_custom/models/advance_payment_request.py index 578829f2..412afa7a 100644 --- a/indoteknik_custom/models/advance_payment_request.py +++ b/indoteknik_custom/models/advance_payment_request.py @@ -133,6 +133,7 @@ class AdvancePaymentRequest(models.Model): ]) apr_perjalanan = fields.Boolean(string = "PUM Perjalanan?", default = False) + reimburse_line_ids = fields.One2many('reimburse.line', 'request_id', string='Rincian Reimburse') @api.onchange('nominal') def _onchange_nominal_no_minus(self): @@ -315,6 +316,11 @@ class AdvancePaymentRequest(models.Model): def _get_departement_approver(self): mapping = self._get_approver_mapping() return mapping.get(self.departement_type) + + @api.constrains('apr_perjalanan', 'date_back_to_office') + def _check_date_back_to_office(self): + if self.apr_perjalanan and not self.date_back_to_office: + raise ValidationError("Tanggal Kembali ke Kantor wajib diisi jika PUM Perjalanan dicentang.") @api.onchange('applicant_name') def _onchange_applicant_name_set_position(self): @@ -723,6 +729,31 @@ class AdvancePaymentUsageLine(models.Model): } } +class ReimburseLine(models.Model): + _name = 'reimburse.line' + _description = 'Reimburse Line' + + request_id = fields.Many2one('advance.payment.request', string='Request') + date = fields.Date(string='Tanggal', required=True, default=fields.Date.today) + account_id = fields.Many2one( + 'account.account', + string='Jenis Biaya', + required=True, + domain="[('id', 'in', [484, 486, 527, 529, 530, 471, 473, 492, 493, 488, 625, 528, 533, 534])]" + ) + description = fields.Char(string='Description', required=True) + distance = fields.Float(string='Jarak (km)') + quantity = fields.Float(string='Quantity') + price = fields.Float(string='Price') + total = fields.Float(string='Total') + currency_id = fields.Many2one(related='request_id.currency_id') + + is_vehicle = fields.Boolean(string='Berkendara?') + vehicle_type = fields.Selection([ + ('motor', 'Motor'), + ('car', 'Mobil'), + ], string='Tipe Kendaraan') + class AdvancePaymentSettlement(models.Model): _name = 'advance.payment.settlement' _description = 'Advance Payment Settlement' |
