- Improved onboarding / KYC flow
- Display KYC stage for each "document" (identity, bank account,
shareholder, etc.)
- Only update to the API what's been updated by the user to prevent
undergoing another full round of data verification
- Show new pricing
- Support refund of adyen.transaction
- Simplify payouts (let Adyen automatically handle them)
- They are now automatically handled by Adyen and not manually
triggered by a cron
- "Balance" dashboard
- Show the balance per currency
- List of payouts and their status
- Handle account/transaction notifications
- Show split of fees
- Details on payment method (card country, card type, etc.) used
- Display details from the linked payment.transaction
- Verify proxy signature for notifications
- Notifications are now signed and authenticity verified
TaskID: 2129218
Closes odoo/odoo#68952
Co-authored-by: Antoine Prieels <anp@odoo.com>
45 lines
1.6 KiB
Python
45 lines
1.6 KiB
Python
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo import api, fields, models
|
|
|
|
|
|
class AccountMove(models.Model):
|
|
_inherit = 'account.move'
|
|
|
|
transaction_ids = fields.Many2many(
|
|
string="Transactions", comodel_name='payment.transaction',
|
|
relation='account_invoice_transaction_rel', column1='invoice_id', column2='transaction_id',
|
|
readonly=True, copy=False)
|
|
authorized_transaction_ids = fields.Many2many(
|
|
string="Authorized Transactions", comodel_name='payment.transaction',
|
|
compute='_compute_authorized_transaction_ids', readonly=True, copy=False)
|
|
|
|
@api.depends('transaction_ids')
|
|
def _compute_authorized_transaction_ids(self):
|
|
for invoice in self:
|
|
invoice.authorized_transaction_ids = invoice.transaction_ids.filtered(
|
|
lambda tx: tx.state == 'authorized'
|
|
)
|
|
|
|
def get_portal_last_transaction(self):
|
|
self.ensure_one()
|
|
return self.with_context(active_test=False).transaction_ids._get_last()
|
|
|
|
def payment_action_capture(self):
|
|
self.authorized_transaction_ids._send_capture_request()
|
|
|
|
def payment_action_void(self):
|
|
self.authorized_transaction_ids._send_void_request()
|
|
|
|
def action_view_payment_transactions(self):
|
|
action = self.env['ir.actions.act_window']._for_xml_id('payment.action_payment_transaction')
|
|
|
|
if len(self.transaction_ids) == 1:
|
|
action['view_mode'] = 'form'
|
|
action['res_id'] = self.transaction_ids.id
|
|
action['views'] = []
|
|
else:
|
|
action['domain'] = [('id', 'in', self.transaction_ids.ids)]
|
|
|
|
return action
|