summaryrefslogtreecommitdiff
path: root/fixco_custom/models/account_move.py
diff options
context:
space:
mode:
authorAzka Nathan <darizkyfaz@gmail.com>2025-11-26 10:08:16 +0700
committerAzka Nathan <darizkyfaz@gmail.com>2025-11-26 10:08:16 +0700
commit25edffb8ebf51e4b133132f4fbd49363b1426664 (patch)
tree903a73bef338d0ddd1bed8577b276b318f37cc56 /fixco_custom/models/account_move.py
parent29d10b8de8422a7c2ced1816d7cc7df41c20b73c (diff)
api altama
Diffstat (limited to 'fixco_custom/models/account_move.py')
-rw-r--r--fixco_custom/models/account_move.py27
1 files changed, 23 insertions, 4 deletions
diff --git a/fixco_custom/models/account_move.py b/fixco_custom/models/account_move.py
index bb84573..63b3e8e 100644
--- a/fixco_custom/models/account_move.py
+++ b/fixco_custom/models/account_move.py
@@ -39,8 +39,27 @@ class AccountMove(models.Model):
count_reverse = fields.Integer('Count Reverse', compute='_compute_count_reverse')
uangmuka = fields.Boolean('Uang Muka?')
reklas = fields.Boolean('Reklas?')
- reklas_used = fields.Boolean('Reklas Used?', compute='_compute_reklas_used')
- reklas_used_by = fields.Many2one('account.move', string='Reklas Used By', compute='_compute_reklas_used')
+ reklas_used = fields.Boolean('Reklas Used?', compute='_compute_reklas_used', store=True)
+ reklas_used_by = fields.Many2one('account.move', string='Reklas Used By', compute='_compute_reklas_used', store=True)
+ need_refund = fields.Boolean(
+ string="Need Refund",
+ compute="_compute_need_refund",
+ help="Flag otomatis kalau invoice sudah paid dan picking terkait di-return."
+ )
+
+ def _compute_need_refund(self):
+ for move in self:
+ flag = False
+ if move.move_type == 'out_invoice' and move.payment_state == 'paid' and move.invoice_origin:
+ refund_exists = bool(self.env['account.move'].search([('reversed_entry_id', '=', move.id), ('payment_state', '=', 'paid')]))
+ if not refund_exists:
+ sale_orders = self.env['sale.order'].search([('name', '=', move.invoice_origin)])
+ if sale_orders:
+ pickings = sale_orders.picking_ids.filtered(lambda p: p.state == 'done' and p.is_return)
+ if pickings:
+ flag = True
+ move.need_refund = flag
+
def export_faktur_to_xml(self):
valid_invoices = self
@@ -104,9 +123,9 @@ class AccountMove(models.Model):
reverses = reverse
return {
- 'name': 'Payments',
+ 'name': 'Refund',
'type': 'ir.actions.act_window',
- 'res_model': 'account.payment',
+ 'res_model': 'account.move',
'view_mode': 'tree,form',
'target': 'current',
'domain': [('id', 'in', list(reverses.ids))],