summaryrefslogtreecommitdiff
path: root/indoteknik_custom/models/account_move.py
diff options
context:
space:
mode:
authorit-fixcomart <it@fixcomart.co.id>2025-07-23 14:50:10 +0700
committerit-fixcomart <it@fixcomart.co.id>2025-07-23 14:50:10 +0700
commitdeb60713ed39979b34083ee094de79fa3afac3b8 (patch)
treeb1648b3b7822034fb893b82e78f16769c5db54aa /indoteknik_custom/models/account_move.py
parentc667a8699762057c9e6191466a182ebb69cb66c7 (diff)
<hafid> Refund System
Diffstat (limited to 'indoteknik_custom/models/account_move.py')
-rw-r--r--indoteknik_custom/models/account_move.py35
1 files changed, 34 insertions, 1 deletions
diff --git a/indoteknik_custom/models/account_move.py b/indoteknik_custom/models/account_move.py
index b6627867..7bb71e03 100644
--- a/indoteknik_custom/models/account_move.py
+++ b/indoteknik_custom/models/account_move.py
@@ -1,5 +1,6 @@
from odoo import models, api, fields
from odoo.exceptions import AccessError, UserError, ValidationError
+from markupsafe import escape as html_escape
from datetime import timedelta, date, datetime
from pytz import timezone, utc
import logging
@@ -71,7 +72,24 @@ class AccountMove(models.Model):
# Di model account.move
bill_id = fields.Many2one('account.move', string='Vendor Bill', domain=[('move_type', '=', 'in_invoice')], help='Bill asal dari proses reklas ini')
down_payment = fields.Boolean('Down Payments?')
-
+ refund_id = fields.Many2one('refund.sale.order', string='Refund Reference')
+ refund_so_ids = fields.Many2many(
+ 'sale.order',
+ 'account_move_sale_order_rel',
+ 'move_id',
+ 'sale_order_id',
+ string='Group SO Number'
+ )
+
+ refund_so_links = fields.Html(
+ string="Group SO Numbers",
+ compute="_compute_refund_so_links",
+ )
+
+ has_refund_so = fields.Boolean(
+ string='Has Refund SO',
+ compute='_compute_has_refund_so',
+ )
# def name_get(self):
# result = []
@@ -98,6 +116,21 @@ class AccountMove(models.Model):
if self.date:
self.invoice_date = self.date
+ @api.depends('refund_so_ids')
+ def _compute_refund_so_links(self):
+ for rec in self:
+ links = []
+ for so in rec.refund_so_ids:
+ url = f"/web#id={so.id}&model=sale.order&view_type=form"
+ name = html_escape(so.name or so.display_name)
+ links.append(f'<a href="{url}" target="_blank">{name}</a>')
+ rec.refund_so_links = ', '.join(links) if links else "-"
+
+ @api.depends('refund_so_ids')
+ def _compute_has_refund_so(self):
+ for rec in self:
+ rec.has_refund_so = bool(rec.refund_so_ids)
+
# def compute_length_of_payment(self):
# for rec in self: