33 lines
988 B
Python
33 lines
988 B
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
import json
|
|
import requests
|
|
|
|
from odoo import models
|
|
|
|
TIMEOUT = 10
|
|
|
|
|
|
class PosPayment(models.Model):
|
|
_inherit = 'pos.payment'
|
|
|
|
def _update_payment_line_for_tip(self, tip_amount):
|
|
"""Capture the payment when a tip is set."""
|
|
res = super(PosPayment, self)._update_payment_line_for_tip(tip_amount)
|
|
if self.payment_method_id.use_payment_terminal == 'adyen':
|
|
self._adyen_capture()
|
|
return res
|
|
|
|
def _adyen_capture(self):
|
|
data = {
|
|
'originalReference': self.transaction_id,
|
|
'modificationAmount': {
|
|
'value': int(self.amount * 10**self.currency_id.decimal_places),
|
|
'currency': self.currency_id.name,
|
|
},
|
|
'merchantAccount': self.payment_method_id.adyen_merchant_account,
|
|
}
|
|
|
|
return self.payment_method_id.proxy_adyen_request(data, 'capture')
|