diff options
| author | Azka Nathan <darizkyfaz@gmail.com> | 2023-07-13 21:11:59 +0700 |
|---|---|---|
| committer | Azka Nathan <darizkyfaz@gmail.com> | 2023-07-13 21:11:59 +0700 |
| commit | 41d0bc25d569901de38f77f0ba452e33630d01f0 (patch) | |
| tree | b621959413e47366a3e50446e7e3422f19888af2 /indoteknik_custom/models | |
| parent | 5556e2b56a010c78bb79718679d0a0b5b3f780c3 (diff) | |
tracking history due extension
Diffstat (limited to 'indoteknik_custom/models')
| -rw-r--r-- | indoteknik_custom/models/account_move.py | 56 | ||||
| -rw-r--r-- | indoteknik_custom/models/account_move_due_extension.py | 6 |
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() |
