summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFIN-IT_AndriFP <it@fixcomart.co.id>2025-10-13 14:31:22 +0700
committerFIN-IT_AndriFP <it@fixcomart.co.id>2025-10-13 14:31:22 +0700
commit1de6ff22b0c3177d01d989b2c4fab1c64c45c1cf (patch)
tree759605b855240503dae5a2e04d2757705cb20706
parent99d097d93635eaa1cf92064f1e9070107fe0d8a5 (diff)
(andri) fix
-rw-r--r--indoteknik_custom/models/advance_payment_request.py38
-rw-r--r--indoteknik_custom/views/advance_payment_request.xml14
-rw-r--r--indoteknik_custom/views/advance_payment_settlement.xml80
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"/>
- <button name="action_reject"
+ <!-- <button name="action_reject"
type="object"
string="Reject"
class="btn-danger"
- attrs="{'invisible': [('status', 'in', ['approved','reject','draft'])]}"/>
+ attrs="{'invisible': [('status', 'in', ['approved','reject','draft'])]}"/> -->
<button name="action_approval_check"
type="object"
string="Checking/Approval"
@@ -67,7 +67,7 @@
<field name="type_request" attrs="{'readonly': [('status', '=', 'approved')]}"/>
<field name="is_represented" attrs="{'readonly': [('status', '=', 'approved')]}"/>
<field name="applicant_name" colspan="2" attrs="{'readonly': [('status', '=', 'approved')]}"/>
- <field name="position_type" readonly="1"/>
+ <field name="position_type" force_save="1" readonly="1"/>
<field name="nominal" colspan="2" attrs="{'readonly': [('status', '=', 'approved')]}"/>
<field name="bank_name" colspan="2" attrs="{'readonly': [('status', '=', 'approved')]}"/>
<field name="account_name" colspan="2" attrs="{'readonly': [('status', '=', 'approved')]}"/>
@@ -109,9 +109,9 @@
<page string="Rincian Reimburse">
<field name="reimburse_line_ids">
<tree>
- <field name="account_id"/>
<field name="date"/>
<field name="description"/>
+ <field name="account_id"/>
<!-- <field name="distance"/> -->
<field name="quantity"/>
<field name="price"/>
@@ -187,21 +187,21 @@
</record>
<record id="action_advance_payment_request" model="ir.actions.act_window">
- <field name="name">Advance Payment Request &amp; Reimburse</field>
+ <field name="name">Advance Payment Request or Reimburse</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">advance.payment.request</field>
<field name="view_mode">tree,form</field>
</record>
<menuitem id="menu_advance_payment_request_acct"
- name="Advance Payment Request &amp; Reimburse"
+ name="Advance Payment Request or Reimburse"
parent="account.menu_finance_entries"
sequence="114"
action="action_advance_payment_request"
/>
<menuitem id="menu_advance_payment_request_sales"
- name="Advance Payment Request &amp; Reimburse"
+ name="Advance Payment Request or Reimburse"
parent="sale.product_menu_catalog"
sequence="101"
action="action_advance_payment_request"
diff --git a/indoteknik_custom/views/advance_payment_settlement.xml b/indoteknik_custom/views/advance_payment_settlement.xml
index a2bb31b2..a2ab5727 100644
--- a/indoteknik_custom/views/advance_payment_settlement.xml
+++ b/indoteknik_custom/views/advance_payment_settlement.xml
@@ -9,12 +9,12 @@
type="object"
string="Validasi"
class="btn-info"
- attrs="{'invisible': [('done_status', '=', 'done_realized')]}"/>
+ attrs="{'invisible': [('status', '!=', 'approved')]}"/>
<button name="action_cab"
type="object"
class="btn-info"
- attrs="{'invisible': [('is_cab_visible', '=', True)]}"
- string="AP Only"/>
+ attrs="{'invisible': [ '|', ('is_cab_visible', '=', True),('status', '!=', 'approved')]}"
+ string="Make CAB"/>
<button name="action_approval_check"
type="object"
string="Checking/Approval"
@@ -78,9 +78,9 @@
<page string="Rincian Pemberian">
<field name="pemberian_line_ids" nolabel="1">
<tree editable="false" create="false" delete="false">
- <field name="date" readonly="1"/>
- <field name="description" readonly="1"/>
- <field name="value" sum="Total Pemberian" readonly="1"/>
+ <field name="date" readonly="1" force_save="1"/>
+ <field name="description" readonly="1" force_save="1"/>
+ <field name="value" sum="Total Pemberian" readonly="1" force_save="1"/>
</tree>
</field>
</page>
@@ -95,39 +95,43 @@
</tree>
<form>
- <group>
- <field name="lot_of_attachment" invisible="1"/>
- <field name="date"/>
- <field name="account_id"/>
- <field name="description"/>
- <field name="nominal"/>
- <field name="attachment_type"
- attrs="{
- 'invisible': [('lot_of_attachment', '=', 'one_for_all_line')]
- }"/>
- <field name="attachment_file_pdf"
- filename="attachment_filename_pdf"
- widget="pdf_viewer"
- attrs="{
- 'invisible': [
- '|',
- ('lot_of_attachment', '=', 'one_for_all_line'),
- ('attachment_type', '!=', 'pdf')
- ]
- }"/>
- <field name="attachment_file_image"
- filename="attachment_filename_image"
- widget="image"
- attrs="{
- 'invisible': [
- '|',
- ('lot_of_attachment', '=', 'one_for_all_line'),
- ('attachment_type', '!=', 'image')
- ]
- }"
- style="max-width:250px; max-height:250px; object-fit:contain;"/>
+ <group col="2">
+ <group string = "Form">
+ <field name="lot_of_attachment" invisible="1"/>
+ <field name="date"/>
+ <field name="description"/>
+ <field name="nominal"/>
+ <field name="attachment_type"
+ attrs="{
+ 'invisible': [('lot_of_attachment', '=', 'one_for_all_line')]
+ }"/>
+ <field name="attachment_file_pdf"
+ filename="attachment_filename_pdf"
+ widget="pdf_viewer"
+ attrs="{
+ 'invisible': [
+ '|',
+ ('lot_of_attachment', '=', 'one_for_all_line'),
+ ('attachment_type', '!=', 'pdf')
+ ]
+ }"/>
+ <field name="attachment_file_image"
+ filename="attachment_filename_image"
+ widget="image"
+ attrs="{
+ 'invisible': [
+ '|',
+ ('lot_of_attachment', '=', 'one_for_all_line'),
+ ('attachment_type', '!=', 'image')
+ ]
+ }"
+ style="max-width:250px; max-height:250px; object-fit:contain;"/>
- <field name="done_attachment"/>
+ </group>
+ <group string="Finance">
+ <field name="account_id"/>
+ <field name="done_attachment"/>
+ </group>
</group>
</form>
</field>