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 ++++++++++++++++++++++ .../models/account_move_due_extension.py | 6 +++ indoteknik_custom/security/ir.model.access.csv | 3 +- indoteknik_custom/views/account_move.xml | 13 +++++ 4 files changed, 77 insertions(+), 1 deletion(-) 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() diff --git a/indoteknik_custom/security/ir.model.access.csv b/indoteknik_custom/security/ir.model.access.csv index df820053..33a13f40 100755 --- a/indoteknik_custom/security/ir.model.access.csv +++ b/indoteknik_custom/security/ir.model.access.csv @@ -53,4 +53,5 @@ access_rajaongkir_kurir,access.rajaongkir.kurir,model_rajaongkir_kurir,,1,1,1,1 access_brand_vendor,access.brand.vendor,model_brand_vendor,,1,1,1,1 access_requisition,access.requisition,model_requisition,,1,1,1,1 access_requisition_line,access.requisition.line,model_requisition_line,,1,1,1,1 -access_requisition_purchase_match,access.requisition.purchase.match,model_requisition_purchase_match,,1,1,1,1 \ No newline at end of file +access_requisition_purchase_match,access.requisition.purchase.match,model_requisition_purchase_match,,1,1,1,1 +access_due_line,access.due.line,model_due_line,,1,1,1,1 \ No newline at end of file diff --git a/indoteknik_custom/views/account_move.xml b/indoteknik_custom/views/account_move.xml index 7f7fb228..5aeff4ec 100644 --- a/indoteknik_custom/views/account_move.xml +++ b/indoteknik_custom/views/account_move.xml @@ -16,7 +16,20 @@ + + + + + + + + + + + + + -- 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 +--------------------- .../models/account_move_due_extension.py | 27 +++++++++-- indoteknik_custom/views/account_move.xml | 6 +-- 3 files changed, 29 insertions(+), 58 deletions(-) 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 diff --git a/indoteknik_custom/models/account_move_due_extension.py b/indoteknik_custom/models/account_move_due_extension.py index 51d59e61..18bb7599 100644 --- a/indoteknik_custom/models/account_move_due_extension.py +++ b/indoteknik_custom/models/account_move_due_extension.py @@ -120,9 +120,6 @@ 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) @@ -141,6 +138,9 @@ class DueExtensionLine(models.Model): _order = 'due_id, id' due_id = fields.Many2one('due.extension', string='Due Ref', required=True, ondelete='cascade', index=True, copy=False) + due_description = fields.Text(string="Description", compute="_compute_due_description") + due_approval_status = fields.Char(string="Approval Status", compute="_compute_due_approval_status") + due_day_extension = fields.Char(string="Day Extension", compute="_compute_due_day_extension") partner_id = fields.Many2one('res.partner', string='Customer') invoice_id = fields.Many2one('account.move', string='Invoice') date_invoice = fields.Date(string='Invoice Date') @@ -151,6 +151,27 @@ class DueExtensionLine(models.Model): 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_due_description(self): + for line in self: + if line.due_id.description: + line.due_description = line.due_id.description + else: + line.due_description = '-' + + def _compute_due_approval_status(self): + for line in self: + if line.due_id.approval_status: + line.due_approval_status = line.due_id.approval_status + else: + line.due_approval_status = '-' + + def _compute_due_day_extension(self): + for line in self: + if line.due_id.day_extension: + line.due_day_extension = line.due_id.day_extension + else: + line.due_day_extension = '-' + def _compute_day_to_due(self): for line in self: line.day_to_due = line.invoice_id.invoice_day_to_due diff --git a/indoteknik_custom/views/account_move.xml b/indoteknik_custom/views/account_move.xml index 5aeff4ec..8cc8d723 100644 --- a/indoteknik_custom/views/account_move.xml +++ b/indoteknik_custom/views/account_move.xml @@ -23,9 +23,9 @@ - - - + + + -- cgit v1.2.3 From fca6864d2a5be42a185e8f2360f96cffcde75388 Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Sat, 15 Jul 2023 09:11:08 +0700 Subject: fix bug due line invoice --- indoteknik_custom/security/ir.model.access.csv | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/indoteknik_custom/security/ir.model.access.csv b/indoteknik_custom/security/ir.model.access.csv index 33a13f40..df820053 100755 --- a/indoteknik_custom/security/ir.model.access.csv +++ b/indoteknik_custom/security/ir.model.access.csv @@ -53,5 +53,4 @@ access_rajaongkir_kurir,access.rajaongkir.kurir,model_rajaongkir_kurir,,1,1,1,1 access_brand_vendor,access.brand.vendor,model_brand_vendor,,1,1,1,1 access_requisition,access.requisition,model_requisition,,1,1,1,1 access_requisition_line,access.requisition.line,model_requisition_line,,1,1,1,1 -access_requisition_purchase_match,access.requisition.purchase.match,model_requisition_purchase_match,,1,1,1,1 -access_due_line,access.due.line,model_due_line,,1,1,1,1 \ No newline at end of file +access_requisition_purchase_match,access.requisition.purchase.match,model_requisition_purchase_match,,1,1,1,1 \ 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 ++++++++- .../models/account_move_due_extension.py | 20 +++++++------------- indoteknik_custom/views/account_move.xml | 2 +- 3 files changed, 16 insertions(+), 15 deletions(-) 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() diff --git a/indoteknik_custom/models/account_move_due_extension.py b/indoteknik_custom/models/account_move_due_extension.py index 18bb7599..43207534 100644 --- a/indoteknik_custom/models/account_move_due_extension.py +++ b/indoteknik_custom/models/account_move_due_extension.py @@ -139,7 +139,10 @@ class DueExtensionLine(models.Model): due_id = fields.Many2one('due.extension', string='Due Ref', required=True, ondelete='cascade', index=True, copy=False) due_description = fields.Text(string="Description", compute="_compute_due_description") - due_approval_status = fields.Char(string="Approval Status", compute="_compute_due_approval_status") + due_approval_status = fields.Selection([ + ('pengajuan', 'Pengajuan'), + ('approved', 'Approved'), + ], string="Approval Status", compute="_compute_due_approval_status") due_day_extension = fields.Char(string="Day Extension", compute="_compute_due_day_extension") partner_id = fields.Many2one('res.partner', string='Customer') invoice_id = fields.Many2one('account.move', string='Invoice') @@ -153,24 +156,15 @@ class DueExtensionLine(models.Model): def _compute_due_description(self): for line in self: - if line.due_id.description: - line.due_description = line.due_id.description - else: - line.due_description = '-' + line.due_description = line.due_id.description def _compute_due_approval_status(self): for line in self: - if line.due_id.approval_status: - line.due_approval_status = line.due_id.approval_status - else: - line.due_approval_status = '-' + line.due_approval_status = line.due_id.approval_status def _compute_due_day_extension(self): for line in self: - if line.due_id.day_extension: - line.due_day_extension = line.due_id.day_extension - else: - line.due_day_extension = '-' + line.due_day_extension = line.due_id.day_extension def _compute_day_to_due(self): for line in self: diff --git a/indoteknik_custom/views/account_move.xml b/indoteknik_custom/views/account_move.xml index 8cc8d723..a1d3eaaa 100644 --- a/indoteknik_custom/views/account_move.xml +++ b/indoteknik_custom/views/account_move.xml @@ -21,7 +21,7 @@ - + -- cgit v1.2.3