summaryrefslogtreecommitdiff
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
parentede22cbc80eed8b142457fe9779dcd61374f5c93 (diff)
(andri) add reimburse line
-rw-r--r--indoteknik_custom/models/advance_payment_request.py31
-rwxr-xr-xindoteknik_custom/security/ir.model.access.csv1
-rw-r--r--indoteknik_custom/views/advance_payment_request.xml36
3 files changed, 63 insertions, 5 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'
diff --git a/indoteknik_custom/security/ir.model.access.csv b/indoteknik_custom/security/ir.model.access.csv
index b30b898b..7ca1f38c 100755
--- a/indoteknik_custom/security/ir.model.access.csv
+++ b/indoteknik_custom/security/ir.model.access.csv
@@ -188,6 +188,7 @@ access_change_date_planned_wizard,access.change.date.planned.wizard,model_change
access_refund_sale_order,access.refund.sale.order,model_refund_sale_order,base.group_user,1,1,1,1
access_refund_sale_order_line,access.refund.sale.order.line,model_refund_sale_order_line,base.group_user,1,1,1,1
access_advance_payment_request,access.advance.payment.request,model_advance_payment_request,,1,1,1,1
+access_reimburse_line,access.reimburse.line,model_reimburse_line,,1,1,1,1
access_advance_payment_settlement,access.advance.payment.settlement,model_advance_payment_settlement,,1,1,1,1
access_advance_payment_settlement_line,access.advance.payment.settlement.line,model_advance_payment_settlement_line,,1,1,1,1
access_advance_payment_usage_line,access.advance.payment.usage.line,model_advance_payment_usage_line,,1,1,1,1
diff --git a/indoteknik_custom/views/advance_payment_request.xml b/indoteknik_custom/views/advance_payment_request.xml
index 134ec9bf..0e8c130b 100644
--- a/indoteknik_custom/views/advance_payment_request.xml
+++ b/indoteknik_custom/views/advance_payment_request.xml
@@ -103,12 +103,38 @@
style="max-width:250px; max-height:250px; object-fit:contain;"/>
<br/>
</group>
- <notebook attrs="{'invisible': [('type_request', '!=', 'reimburse')]}">
- <page string="Reimburse">
- <h1>Hello World HEHE</h1>
- </page>
- </notebook>
</group>
+ <notebook attrs="{'invisible': [('type_request', '!=', 'reimburse')]}">
+ <page string="Reimburse">
+ <field name="reimburse_line_ids">
+ <tree>
+ <field name="date"/>
+ <field name="account_id"/>
+ <field name="description"/>
+ <!-- <field name="distance"/> -->
+ <field name="quantity"/>
+ <field name="price"/>
+ <field name="total" sum="Total"/>
+ <field name="currency_id" invisible="1"/>
+ </tree>
+ <form>
+ <group>
+ <field name="request_id" invisible="1"/>
+ <field name="account_id" placeholder="Hanya Finance yang boleh isi"/>
+ <field name="date"/>
+ <field name="is_vehicle"/>
+ <field name="vehicle_type" attrs="{'invisible': [('is_vehicle', '=', False)]}"/>
+ <field name="description"/>
+ <field name="distance" attrs="{'invisible': [('is_vehicle', '=', False)]}"/>
+ <field name="quantity"/>
+ <field name="price"/>
+ <field name="total" readonly="1"/>
+ <field name="currency_id" invisible="1"/>
+ </group>
+ </form>
+ </field>
+ </page>
+ </notebook>
</sheet>
<div class="oe_chatter">
<field name="message_follower_ids" widget="mail_followers"/>