summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indoteknik_custom/models/approval_payment_term.py21
-rw-r--r--indoteknik_custom/views/approval_payment_term.xml8
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"/>