diff options
| author | FIN-IT_AndriFP <it@fixcomart.co.id> | 2025-10-13 14:31:22 +0700 |
|---|---|---|
| committer | FIN-IT_AndriFP <it@fixcomart.co.id> | 2025-10-13 14:31:22 +0700 |
| commit | 1de6ff22b0c3177d01d989b2c4fab1c64c45c1cf (patch) | |
| tree | 759605b855240503dae5a2e04d2757705cb20706 | |
| parent | 99d097d93635eaa1cf92064f1e9070107fe0d8a5 (diff) | |
(andri) fix
| -rw-r--r-- | indoteknik_custom/models/advance_payment_request.py | 38 | ||||
| -rw-r--r-- | indoteknik_custom/views/advance_payment_request.xml | 14 | ||||
| -rw-r--r-- | indoteknik_custom/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"/> - <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 & 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 & 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 & 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> |
