summaryrefslogtreecommitdiff
path: root/indoteknik_custom/models/advance_payment_request.py
diff options
context:
space:
mode:
authorFIN-IT_AndriFP <it@fixcomart.co.id>2025-10-10 14:01:49 +0700
committerFIN-IT_AndriFP <it@fixcomart.co.id>2025-10-10 14:01:49 +0700
commit99896ae7999de433837faed09466c06845493770 (patch)
tree124ccc8c9f8b521d10978a7d1b31dd097944b542 /indoteknik_custom/models/advance_payment_request.py
parentede22cbc80eed8b142457fe9779dcd61374f5c93 (diff)
(andri) add reimburse line
Diffstat (limited to 'indoteknik_custom/models/advance_payment_request.py')
-rw-r--r--indoteknik_custom/models/advance_payment_request.py31
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'