summaryrefslogtreecommitdiff
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
parent5556e2b56a010c78bb79718679d0a0b5b3f780c3 (diff)
tracking history due extension
-rw-r--r--indoteknik_custom/models/account_move.py56
-rw-r--r--indoteknik_custom/models/account_move_due_extension.py6
-rwxr-xr-xindoteknik_custom/security/ir.model.access.csv3
-rw-r--r--indoteknik_custom/views/account_move.xml13
4 files changed, 77 insertions, 1 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()
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 @@
<field name="resi_tukar_faktur"/>
<field name="date_terima_tukar_faktur"/>
<field name="due_extension"/>
+ <field name="counter"/>
</field>
+ <notebook position="inside">
+ <page string="Due Extension">
+ <field name="due_line">
+ <tree create="false">
+ <field name="due_id"/>
+ <field name="description"/>
+ <field name="day_extension"/>
+ <field name="approval_status"/>
+ </tree>
+ </field>
+ </page>
+ </notebook>
</field>
</record>