diff options
| author | Azka Nathan <darizkyfaz@gmail.com> | 2023-06-26 16:42:08 +0700 |
|---|---|---|
| committer | Azka Nathan <darizkyfaz@gmail.com> | 2023-06-26 16:42:08 +0700 |
| commit | 25a124e690cfea45d69ac34f051f0ee8749cda83 (patch) | |
| tree | e19f40cdc089b36fe847bc91aeab43c746037e07 | |
| parent | 787fe14fc0b14ed67f3d25a634c7a5a7e1a27204 (diff) | |
add new field and log to due extension
| -rw-r--r-- | indoteknik_custom/models/account_move_due_extension.py | 33 | ||||
| -rw-r--r-- | indoteknik_custom/views/account_move_views.xml | 14 |
2 files changed, 44 insertions, 3 deletions
diff --git a/indoteknik_custom/models/account_move_due_extension.py b/indoteknik_custom/models/account_move_due_extension.py index fbb8efe1..f4ad1076 100644 --- a/indoteknik_custom/models/account_move_due_extension.py +++ b/indoteknik_custom/models/account_move_due_extension.py @@ -7,6 +7,8 @@ _logger = logging.getLogger(__name__) class DueExtension(models.Model): _name = "due.extension" + _description = "Due Extension" + _inherit = ['mail.thread'] _rec_name = 'number' number = fields.Char(string='Document No', index=True, copy=False, readonly=True) @@ -14,12 +16,17 @@ class DueExtension(models.Model): 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) old_due = fields.Date(string="Old Due") - is_approve = fields.Boolean(string="Is Approve", readonly=True) + description = fields.Text(string="Description") + is_approve = fields.Boolean(string="Is Approve", readonly=True, tracking=True) + approval_status = fields.Selection([ + ('pengajuan', 'Pengajuan'), + ('approved', 'Approved'), + ], string='Approval Status', readonly=True, copy=False, index=True, tracking=3) day_extension = fields.Selection([ ('3', '3 Hari'), ('7', '7 Hari'), ('14', '14 Hari'), - ], string='Day Extension', help='Menambah Due Date yang sudah limit dari hari ini') + ], string='Day Extension', help='Menambah Due Date yang sudah limit dari hari ini', tracking=True) @api.model def create(self, vals): @@ -27,9 +34,19 @@ class DueExtension(models.Model): result = super(DueExtension, self).create(vals) return result + def due_extension_approval(self): + if not self.approval_status: + self.approval_status = 'pengajuan' + elif self.approval_status == 'pengajuan': + raise UserError('Anda sudah mengajukan ask approval') + elif self.approval_status == 'approved': + raise UserError('Document sudah di approve') + + def approve_new_due(self): if self.env.user.is_accounting: self.is_approve = True + self.approval_status = 'approved' if self.partner_id: if self.day_extension: @@ -86,6 +103,11 @@ class DueExtension(models.Model): }]) count += 1 _logger.info("Due Extension Line generated %s" % count) + def unlink(self): + res = super(DueExtension, self).unlink() + if self._name == 'due.extension': + raise UserError('Due Extension tidak bisa didelete') + return res class DueExtensionLine(models.Model): @@ -101,9 +123,14 @@ class DueExtensionLine(models.Model): reference = fields.Char(string='Reference') total_amt = fields.Float(string='Total Amount') open_amt = fields.Float(string='Open Amount') - due_date = fields.Date(string='Due Date') + due_date = fields.Date(string='Due Date', compute="_compute_due_date") day_to_due = fields.Integer(string='Day To Due', compute="_compute_day_to_due") def _compute_day_to_due(self): for line in self: line.day_to_due = line.invoice_id.invoice_day_to_due + + def _compute_due_date(self): + for line in self: + line.due_date = line.invoice_id.invoice_date_due + diff --git a/indoteknik_custom/views/account_move_views.xml b/indoteknik_custom/views/account_move_views.xml index 1dcace46..42262780 100644 --- a/indoteknik_custom/views/account_move_views.xml +++ b/indoteknik_custom/views/account_move_views.xml @@ -8,6 +8,8 @@ <field name="number"/> <field name="partner_id"/> <field name="day_extension"/> + <field name="description"/> + <field name="approval_status"/> <field name="is_approve"/> </tree> </field> @@ -43,6 +45,10 @@ class="mr-2 oe_highlight oe_edit_only" attrs="{'invisible': [('is_approve', '=', True)]}" /> + <button name="due_extension_approval" + string="Ask Approval" + type="object" + /> </header> <sheet> <group> @@ -53,14 +59,22 @@ <group> <field name="is_approve" readonly="1"/> <field name="order_id" readonly="1"/> + <field name="approval_status" readonly="1"/> </group> </group> + <group> + <field name="description" attrs="{'readonly': [('approval_status', '=', 'approved')]}"/> + </group> <notebook> <page string="Invoices"> <field name="due_line" attrs="{'readonly': [('is_approve', '=', True)]}"/> </page> </notebook> </sheet> + <div class="oe_chatter"> + <field name="message_follower_ids" widget="mail_followers"/> + <field name="message_ids" widget="mail_thread"/> + </div> </form> </field> </record> |
