summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAzka Nathan <darizkyfaz@gmail.com>2023-06-26 16:42:08 +0700
committerAzka Nathan <darizkyfaz@gmail.com>2023-06-26 16:42:08 +0700
commit25a124e690cfea45d69ac34f051f0ee8749cda83 (patch)
treee19f40cdc089b36fe847bc91aeab43c746037e07
parent787fe14fc0b14ed67f3d25a634c7a5a7e1a27204 (diff)
add new field and log to due extension
-rw-r--r--indoteknik_custom/models/account_move_due_extension.py33
-rw-r--r--indoteknik_custom/views/account_move_views.xml14
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>