diff --git a/easy_my_coop/models/account_invoice.py b/easy_my_coop/models/account_invoice.py index 639f3da..6e89996 100644 --- a/easy_my_coop/models/account_invoice.py +++ b/easy_my_coop/models/account_invoice.py @@ -120,6 +120,12 @@ class account_invoice(models.Model): return True + def get_refund_domain(self, invoice): + return [ + ('type', '=', 'out_refund'), + ('origin', '=', invoice.move_name) + ] + @api.multi def action_invoice_paid(self): super(account_invoice, self).action_invoice_paid() @@ -127,8 +133,8 @@ class account_invoice(models.Model): # we check if there is an open refund for this invoice. in this # case we don't run the process_subscription function as the # invoice has been reconciled with a refund and not a payment. - refund = self.search([('type', '=', 'out_refund'), - ('origin', '=', invoice.move_name)]) + domain = self.get_refund_domain(invoice) + refund = self.search(domain) if invoice.partner_id.cooperator \ and invoice.release_capital_request \ @@ -144,7 +150,8 @@ class account_invoice(models.Model): invoice.subscription_request.state = 'paid' invoice.post_process_confirm_paid(effective_date) # if there is a open refund we mark the subscription as cancelled - elif invoice.partner_id.cooperator and invoice.release_capital_request \ + elif invoice.partner_id.cooperator \ + and invoice.release_capital_request \ and invoice.type == 'out_invoice' and refund: invoice.subscription_request.state = 'cancelled' return True