From 3df2346732b38eb47accfb07d3dfb0feaab65854 Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Wed, 9 Jul 2025 08:58:47 +0700 Subject: cr approval payment terms --- indoteknik_custom/models/approval_payment_term.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'indoteknik_custom/models/approval_payment_term.py') diff --git a/indoteknik_custom/models/approval_payment_term.py b/indoteknik_custom/models/approval_payment_term.py index 4cd9ea36..291e8e37 100644 --- a/indoteknik_custom/models/approval_payment_term.py +++ b/indoteknik_custom/models/approval_payment_term.py @@ -33,6 +33,13 @@ 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') + + @api.depends('sale_order_id') + def _compute_total(self): + for rec in self: + rec.total = rec.sale_order_id.amount_total @api.constrains('partner_id') @@ -48,11 +55,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 -- cgit v1.2.3 From 7cf4a10aa25c1f358b57d01ebf4efdbbcdd7b6a9 Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Wed, 9 Jul 2025 10:57:41 +0700 Subject: change request approval payment terms --- indoteknik_custom/models/approval_payment_term.py | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) (limited to 'indoteknik_custom/models/approval_payment_term.py') 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') -- cgit v1.2.3 From 0604dbc3a2789c139ea66dd561726f796ad92cd6 Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Wed, 9 Jul 2025 11:15:10 +0700 Subject: add grand total on approval payment term --- indoteknik_custom/models/approval_payment_term.py | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'indoteknik_custom/models/approval_payment_term.py') diff --git a/indoteknik_custom/models/approval_payment_term.py b/indoteknik_custom/models/approval_payment_term.py index 00d990de..6e1c8103 100644 --- a/indoteknik_custom/models/approval_payment_term.py +++ b/indoteknik_custom/models/approval_payment_term.py @@ -44,6 +44,13 @@ class ApprovalPaymentTerm(models.Model): 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: -- cgit v1.2.3