From 41d0bc25d569901de38f77f0ba452e33630d01f0 Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Thu, 13 Jul 2023 21:11:59 +0700 Subject: tracking history due extension --- indoteknik_custom/models/account_move.py | 56 ++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) (limited to 'indoteknik_custom/models/account_move.py') 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 -- cgit v1.2.3 From f53828b3df693a88ec7cfff8b323178f3550a9b2 Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Fri, 14 Jul 2023 11:04:57 +0700 Subject: refactor tracking history due extension --- indoteknik_custom/models/account_move.py | 54 ++------------------------------ 1 file changed, 2 insertions(+), 52 deletions(-) (limited to 'indoteknik_custom/models/account_move.py') diff --git a/indoteknik_custom/models/account_move.py b/indoteknik_custom/models/account_move.py index f479b4a9..7edeb0d9 100644 --- a/indoteknik_custom/models/account_move.py +++ b/indoteknik_custom/models/account_move.py @@ -19,7 +19,7 @@ class AccountMove(models.Model): 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) + due_line = fields.One2many('due.extension.line', 'invoice_id', string='Due Extension Lines') def unlink(self): res = super(AccountMove, self).unlink() @@ -107,54 +107,4 @@ 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 + \ No newline at end of file -- cgit v1.2.3 From 4170cd7bd55232de0a66880351421b054a97849b Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Mon, 17 Jul 2023 09:08:34 +0700 Subject: refactor tracking history due extension on invoice --- indoteknik_custom/models/account_move.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'indoteknik_custom/models/account_move.py') diff --git a/indoteknik_custom/models/account_move.py b/indoteknik_custom/models/account_move.py index 7edeb0d9..bc6061ee 100644 --- a/indoteknik_custom/models/account_move.py +++ b/indoteknik_custom/models/account_move.py @@ -19,7 +19,14 @@ class AccountMove(models.Model): 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.extension.line', 'invoice_id', string='Due Extension Lines') + due_line = fields.One2many('due.extension.line', 'invoice_id', compute='_compute_due_line', string='Due Extension Lines') + + def _compute_due_line(self): + for invoice in self: + invoice.due_line = self.env['due.extension.line'].search([ + ('invoice_id', '=', invoice.id), + ('due_id.approval_status', '=', 'approved') + ]) def unlink(self): res = super(AccountMove, self).unlink() -- cgit v1.2.3 From 89c04f6748c4794018b34004472f08e3f41c8e43 Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Tue, 18 Jul 2023 13:31:55 +0700 Subject: add new fields on account move bills --- indoteknik_custom/models/account_move.py | 1 + 1 file changed, 1 insertion(+) (limited to 'indoteknik_custom/models/account_move.py') diff --git a/indoteknik_custom/models/account_move.py b/indoteknik_custom/models/account_move.py index bc6061ee..33fb73b5 100644 --- a/indoteknik_custom/models/account_move.py +++ b/indoteknik_custom/models/account_move.py @@ -15,6 +15,7 @@ class AccountMove(models.Model): date_kirim_tukar_faktur = fields.Date(string='Kirim Faktur') resi_tukar_faktur = fields.Char(string='Resi Faktur') date_terima_tukar_faktur = fields.Date(string='Terima Faktur') + payment_schedule = fields.Date(string='Jadwal Pembayaran') 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') -- cgit v1.2.3