diff options
| author | Azka Nathan <darizkyfaz@gmail.com> | 2025-07-09 10:57:41 +0700 |
|---|---|---|
| committer | Azka Nathan <darizkyfaz@gmail.com> | 2025-07-09 10:57:41 +0700 |
| commit | 7cf4a10aa25c1f358b57d01ebf4efdbbcdd7b6a9 (patch) | |
| tree | 7f337b6c70a87d9769ba8a3db5bb6d4a5920a467 | |
| parent | 3df2346732b38eb47accfb07d3dfb0feaab65854 (diff) | |
change request approval payment terms
| -rw-r--r-- | indoteknik_custom/models/approval_payment_term.py | 21 | ||||
| -rw-r--r-- | indoteknik_custom/views/approval_payment_term.xml | 8 |
2 files changed, 21 insertions, 8 deletions
diff --git a/indoteknik_custom/models/approval_payment_term.py b/indoteknik_custom/models/approval_payment_term.py index 291e8e37..00d990de 100644 --- a/indoteknik_custom/models/approval_payment_term.py +++ b/indoteknik_custom/models/approval_payment_term.py @@ -33,13 +33,26 @@ class ApprovalPaymentTerm(models.Model): approve_date = fields.Datetime('Approve Date') state = fields.Selection([('waiting_approval', 'Waiting Approval'), ('approved', 'Approved'), ('rejected', 'Rejected')], default='waiting_approval', tracking=True) reason_reject = fields.Selection([('reason1', 'Reason 1'), ('reason2', 'Reason 2'), ('reason3', 'Reason 3')], string='Reason Reject', tracking=True) - sale_order_id = fields.Many2one('sale.order', string='Sale Order', copy=False, tracking=True) - total = fields.Float(string='Total', compute='_compute_total') + sale_order_ids = fields.Many2many( + 'sale.order', + string='Sale Orders', + copy=False, + tracking=True + ) + + total = fields.Char( + string='Sale Order Totals', + compute='_compute_total' + ) - @api.depends('sale_order_id') def _compute_total(self): for rec in self: - rec.total = rec.sale_order_id.amount_total + totals_list = [] + for order in rec.sale_order_ids: + formatted_total = "{:,.2f}".format(order.amount_total) + totals_list.append(f"{order.name}: {formatted_total}") + + rec.total = "\n".join(totals_list) if totals_list else "No Sale Orders" @api.constrains('partner_id') diff --git a/indoteknik_custom/views/approval_payment_term.xml b/indoteknik_custom/views/approval_payment_term.xml index 008582f5..9b4cdb60 100644 --- a/indoteknik_custom/views/approval_payment_term.xml +++ b/indoteknik_custom/views/approval_payment_term.xml @@ -50,10 +50,10 @@ <field name="number" readonly="1"/> <field name="partner_id"/> <field name="parent_id" readonly="1"/> - <field name="blocking_stage" attrs="{'readonly': [('number', '=', False)]}"/> - <field name="warning_stage" attrs="{'readonly': [('number', '=', False)]}"/> - <field name="property_payment_term_id" attrs="{'readonly': [('number', '=', False)]}"/> - <field name="active_limit" attrs="{'readonly': [('number', '=', False)]}"/> + <field name="blocking_stage" attrs="{'readonly': [('number', '=', False), ('state', in, ['approved','rejected'])]}"/> + <field name="warning_stage" attrs="{'readonly': [('number', '=', False), ('state', in, ['approved','rejected'])]}"/> + <field name="property_payment_term_id" attrs="{'readonly': [('number', '=', False), ('state', in, ['approved','rejected'])]}"/> + <field name="active_limit" attrs="{'readonly': [('number', '=', False), ('state', in, ['approved','rejected'])]}"/> </group> <group> <field name="reason"/> |
