diff options
| author | Azka Nathan <darizkyfaz@gmail.com> | 2025-07-08 09:11:11 +0700 |
|---|---|---|
| committer | Azka Nathan <darizkyfaz@gmail.com> | 2025-07-08 09:11:11 +0700 |
| commit | 05879e52666f02c117aee569621556db97ef345c (patch) | |
| tree | 0c5cb5443ce406d74d60bcf9bd87fb78ce58313b | |
| parent | 54633b0db570e5811874f78a9515065b9cb41ad8 (diff) | |
add statusbar and fix bug
| -rw-r--r-- | indoteknik_custom/models/approval_payment_term.py | 18 | ||||
| -rw-r--r-- | indoteknik_custom/views/approval_payment_term.xml | 9 |
2 files changed, 22 insertions, 5 deletions
diff --git a/indoteknik_custom/models/approval_payment_term.py b/indoteknik_custom/models/approval_payment_term.py index 81eb1908..da71b7e4 100644 --- a/indoteknik_custom/models/approval_payment_term.py +++ b/indoteknik_custom/models/approval_payment_term.py @@ -31,6 +31,8 @@ class ApprovalPaymentTerm(models.Model): approve_leader = fields.Boolean('Approve Pimpinan', tracking=True, copy=False) reason = fields.Text('Reason', tracking=True) 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) @api.constrains('partner_id') @@ -46,20 +48,20 @@ class ApprovalPaymentTerm(models.Model): user = self.env.user is_it = user.has_group('indoteknik_custom.group_role_it') - if is_it or user.id == 19: + if user.id == 19 or is_it: self.approve_sales_manager = True return - if is_it or user.id == 688 and self.approve_sales_manager: + if user.id == 688 or is_it: self.approve_finance = True return - if is_it or user.id == 7 and self.approve_sales_manager and self.approve_finance: + if (user.id == 7 and self.approve_finance) or is_it: self.approve_leader = True - if not is_it or not self.approve_finance: + if not self.approve_finance or not is_it: raise UserError('Harus Approval Finance!!') - if not is_it or not self.approve_leader: + if not self.approve_leader or not is_it: raise UserError('Harus Approval Pimpinan!!') if user.id == 7: @@ -74,6 +76,12 @@ class ApprovalPaymentTerm(models.Model): 'property_payment_term_id': self.property_payment_term_id.id }) self.approve_date = datetime.utcnow() + self.state = 'approved' + + def button_reject(self): + if self.env.user.id not in [688, 7]: + raise UserError("Hanya Finance atau Pimpinan Yang Bisa Reject") + self.state = 'rejected' @api.model def create(self, vals): diff --git a/indoteknik_custom/views/approval_payment_term.xml b/indoteknik_custom/views/approval_payment_term.xml index 87c77385..44bd99f8 100644 --- a/indoteknik_custom/views/approval_payment_term.xml +++ b/indoteknik_custom/views/approval_payment_term.xml @@ -29,6 +29,14 @@ type="object" attrs="{'invisible': [('approve_leader', '=', True)]}" /> + <button name="button_reject" + string="Reject" + type="object" + attrs="{'invisible': [('approve_leader', '=', True)]}" + /> + <field name="state" widget="statusbar" + statusbar_visible="waiting_approval,approved,rejected" + statusbar_colors='{"rejected":"red"}'/> </header> <sheet string="Approval Payment Term"> <group> @@ -43,6 +51,7 @@ </group> <group> <field name="reason"/> + <field name="reason_reject" attrs="{'invisible': [('state', '!=', 'rejected')]}"/> <field name="approve_date" readonly="1"/> <field name="approve_sales_manager" readonly="1"/> <field name="approve_finance" readonly="1"/> |
