summaryrefslogtreecommitdiff
path: root/indoteknik_custom/models/approval_payment_term.py
diff options
context:
space:
mode:
authorIndoteknik . <it@fixcomart.co.id>2025-07-10 15:16:28 +0700
committerIndoteknik . <it@fixcomart.co.id>2025-07-10 15:16:28 +0700
commit659a62598fd984a233e9eee6f40ee6408ce17ac6 (patch)
tree005df74098fae11463fbadd699b5610b0348a453 /indoteknik_custom/models/approval_payment_term.py
parent6aee89eff0e1511c257c60fac9fa84172729063c (diff)
parent0a66ca2c69581100f5a0800152a6d80a07351d6c (diff)
(andri) fix conflict
Diffstat (limited to 'indoteknik_custom/models/approval_payment_term.py')
-rw-r--r--indoteknik_custom/models/approval_payment_term.py31
1 files changed, 29 insertions, 2 deletions
diff --git a/indoteknik_custom/models/approval_payment_term.py b/indoteknik_custom/models/approval_payment_term.py
index 4cd9ea36..6e1c8103 100644
--- a/indoteknik_custom/models/approval_payment_term.py
+++ b/indoteknik_custom/models/approval_payment_term.py
@@ -33,6 +33,33 @@ 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_ids = fields.Many2many(
+ 'sale.order',
+ string='Sale Orders',
+ copy=False,
+ tracking=True
+ )
+
+ total = fields.Char(
+ string='Sale Order Totals',
+ compute='_compute_total'
+ )
+
+ grand_total = fields.Float(string='Grand Total', compute="_compute_grand_total")
+
+ def _compute_grand_total(self):
+ for rec in self:
+ grand_total = sum(order.amount_total for order in rec.sale_order_ids)
+ rec.grand_total = grand_total
+
+ def _compute_total(self):
+ for rec in self:
+ 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')
@@ -48,11 +75,11 @@ class ApprovalPaymentTerm(models.Model):
user = self.env.user
is_it = user.has_group('indoteknik_custom.group_role_it')
- if (not user.id ==7 and user.id == 19) or is_it:
+ if (not user.id ==7 and user.id == 19 and not self.approve_sales_manager) or is_it:
self.approve_sales_manager = True
return
- if (not user.id ==7 and user.id == 688) or is_it:
+ if (not user.id ==7 and user.id == 688 and not self.approve_finance) or is_it:
self.approve_finance = True
return