summaryrefslogtreecommitdiff
path: root/indoteknik_custom/models
diff options
context:
space:
mode:
authorAzka Nathan <darizkyfaz@gmail.com>2023-07-13 21:11:59 +0700
committerAzka Nathan <darizkyfaz@gmail.com>2023-07-13 21:11:59 +0700
commit41d0bc25d569901de38f77f0ba452e33630d01f0 (patch)
treeb621959413e47366a3e50446e7e3422f19888af2 /indoteknik_custom/models
parent5556e2b56a010c78bb79718679d0a0b5b3f780c3 (diff)
tracking history due extension
Diffstat (limited to 'indoteknik_custom/models')
-rw-r--r--indoteknik_custom/models/account_move.py56
-rw-r--r--indoteknik_custom/models/account_move_due_extension.py6
2 files changed, 62 insertions, 0 deletions
diff --git a/indoteknik_custom/models/account_move.py b/indoteknik_custom/models/account_move.py
index 99439915..f479b4a9 100644
--- a/indoteknik_custom/models/account_move.py
+++ b/indoteknik_custom/models/account_move.py
@@ -1,6 +1,9 @@
from odoo import models, api, fields
from odoo.exceptions import AccessError, UserError, ValidationError
from datetime import timedelta, date
+import logging
+
+_logger = logging.getLogger(__name__)
class AccountMove(models.Model):
@@ -15,6 +18,8 @@ class AccountMove(models.Model):
shipper_faktur_id = fields.Many2one('delivery.carrier', string='Shipper Faktur')
due_extension = fields.Integer(string='Due Extension', default=0)
new_due_date = fields.Date(string='New Due')
+ counter = fields.Integer(string="Counter", default=0)
+ due_line = fields.One2many('due.line', 'move_id', string='Due Extension Lines', auto_join=True)
def unlink(self):
res = super(AccountMove, self).unlink()
@@ -102,3 +107,54 @@ class AccountMove(models.Model):
add_days += line.days
due_date = tukar_date + timedelta(days=add_days)
invoice.invoice_date_due = due_date
+
+ def generate_due_line(self):
+ partners = self.partner_id.get_child_ids()
+
+ query = [
+ ('due_line.invoice_id', '=', self.id),
+ ('due_line.day_to_due', '<', 0),
+ ('approval_status', '=', False),
+ ]
+ due = self.env['due.extension'].search(query)
+ count = 0
+
+ for line in due:
+ self.env['due.line'].create([{
+ 'move_id': self.id,
+ 'due_id': line.id,
+ }])
+ count += 1
+ _logger.info("Due Extension Line generated %s" % count)
+
+class DueExtensionLine(models.Model):
+ _name = 'due.line'
+ _description = 'Due Extension Line'
+ _order = 'move_id, id'
+
+ move_id = fields.Many2one('account.move', string='Acc Move Ref', required=True, ondelete='cascade', index=True, copy=False)
+ due_id = fields.Many2one('due.extension', string='Due Extension')
+ description = fields.Text(string='Description', compute="compute_description")
+ day_extension = fields.Char(string='Day Extension', compute="compute_day_extension")
+ approval_status = fields.Char(string='Status Approval', compute="compute_approval_status")
+
+ def compute_description(self):
+ for line in self:
+ if line.due_id.description:
+ line.description = line.due_id.description
+ else:
+ line.description = '-'
+
+ def compute_day_extension(self):
+ for line in self:
+ if line.due_id.day_extension:
+ line.day_extension = line.due_id.day_extension
+ else:
+ line.day_extension = '-'
+
+ def compute_approval_status(self):
+ for line in self:
+ if line.due_id.approval_status:
+ line.approval_status = line.due_id.approval_status
+ else:
+ line.approval_status = '-' \ No newline at end of file
diff --git a/indoteknik_custom/models/account_move_due_extension.py b/indoteknik_custom/models/account_move_due_extension.py
index 27c8577d..51d59e61 100644
--- a/indoteknik_custom/models/account_move_due_extension.py
+++ b/indoteknik_custom/models/account_move_due_extension.py
@@ -120,7 +120,13 @@ class DueExtension(models.Model):
'open_amt': invoice.amount_residual_signed
}])
count += 1
+
+ invoice.generate_due_line()
+
+ invoice.counter+=1
+
_logger.info("Due Extension Line generated %s" % count)
+
def unlink(self):
res = super(DueExtension, self).unlink()