diff options
| author | Azka Nathan <darizkyfaz@gmail.com> | 2025-11-26 10:08:16 +0700 |
|---|---|---|
| committer | Azka Nathan <darizkyfaz@gmail.com> | 2025-11-26 10:08:16 +0700 |
| commit | 25edffb8ebf51e4b133132f4fbd49363b1426664 (patch) | |
| tree | 903a73bef338d0ddd1bed8577b276b318f37cc56 /fixco_custom/models/account_move.py | |
| parent | 29d10b8de8422a7c2ced1816d7cc7df41c20b73c (diff) | |
api altama
Diffstat (limited to 'fixco_custom/models/account_move.py')
| -rw-r--r-- | fixco_custom/models/account_move.py | 27 |
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))], |
