diff options
| author | Azka Nathan <darizkyfaz@gmail.com> | 2023-06-27 11:45:07 +0700 |
|---|---|---|
| committer | Azka Nathan <darizkyfaz@gmail.com> | 2023-06-27 11:45:07 +0700 |
| commit | 0c7c0ad2e8dca7a1e47cd5a13642543f01a74afd (patch) | |
| tree | 773bbedbf70ed6d33c0ade8d18101ea71f87179c | |
| parent | a6946a980c4bfcce88af440033cdc49498ddb238 (diff) | |
add button cancel to due extension
| -rw-r--r-- | indoteknik_custom/models/account_move_due_extension.py | 16 | ||||
| -rwxr-xr-x | indoteknik_custom/models/sale_order.py | 2 | ||||
| -rw-r--r-- | indoteknik_custom/views/account_move_views.xml | 4 |
3 files changed, 20 insertions, 2 deletions
diff --git a/indoteknik_custom/models/account_move_due_extension.py b/indoteknik_custom/models/account_move_due_extension.py index 2e52f66c..93dfe62b 100644 --- a/indoteknik_custom/models/account_move_due_extension.py +++ b/indoteknik_custom/models/account_move_due_extension.py @@ -11,7 +11,7 @@ class DueExtension(models.Model): _inherit = ['mail.thread'] _rec_name = 'number' - number = fields.Char(string='Document No', index=True, copy=False, readonly=True) + number = fields.Char(string='Document No', index=True, copy=False, readonly=True, tracking=True) partner_id = fields.Many2one('res.partner', string="Customer", readonly=True) order_id = fields.Many2one('sale.order', string="SO", readonly=True) due_line = fields.One2many('due.extension.line', 'due_id', string='Due Extension Lines', auto_join=True) @@ -42,6 +42,20 @@ class DueExtension(models.Model): elif self.approval_status == 'approved': raise UserError('Document sudah di approve') + def due_extension_cancel(self): + if self.env.user.is_accounting: + if not self.approval_status or self.approval_status == 'pengajuan': + self.approval_status = False + sales = self.env['sale.order'].search([ + ('id', '=', self.order_id.id) + ]) + + sales.action_cancel() + elif self.approval_status == 'approved': + raise UserError('Document sudah di approve, Tidak bisa di cancel') + else: + raise UserError('Hanya Finance yang bisa cancel') + def approve_new_due(self): if self.env.user.is_accounting: self.is_approve = True diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py index 1a16f462..bf415dbb 100755 --- a/indoteknik_custom/models/sale_order.py +++ b/indoteknik_custom/models/sale_order.py @@ -78,7 +78,7 @@ class SaleOrder(models.Model): delivery_service_type = fields.Char(string='Delivery Service Type', help='data dari rajaongkir') grand_total = fields.Monetary(string='Grand Total', help='Amount total + amount delivery', compute='_compute_grand_total') payment_link_midtrans = fields.Char(string='Payment Link', help='Url payment yg digenerate oleh midtrans, harap diserahkan ke customer agar dapat dilakukan pembayaran secara mandiri') - due_id = fields.Many2one('due.extension', string="Due Extension", readonly=True) + due_id = fields.Many2one('due.extension', string="Due Extension", readonly=True, tracking=True) customer_type = fields.Selection([ ('pkp', 'PKP'), ('nonpkp', 'Non PKP') diff --git a/indoteknik_custom/views/account_move_views.xml b/indoteknik_custom/views/account_move_views.xml index d11f3679..0c27ac33 100644 --- a/indoteknik_custom/views/account_move_views.xml +++ b/indoteknik_custom/views/account_move_views.xml @@ -47,6 +47,10 @@ string="Ask Approval" type="object" /> + <button name="due_extension_cancel" + string="Cancel" + type="object" + /> </header> <sheet> <group> |
