summaryrefslogtreecommitdiff
path: root/addons/pos_restaurant_adyen/static
diff options
context:
space:
mode:
Diffstat (limited to 'addons/pos_restaurant_adyen/static')
-rw-r--r--addons/pos_restaurant_adyen/static/src/js/models.js5
-rw-r--r--addons/pos_restaurant_adyen/static/src/js/payment_adyen.js44
2 files changed, 49 insertions, 0 deletions
diff --git a/addons/pos_restaurant_adyen/static/src/js/models.js b/addons/pos_restaurant_adyen/static/src/js/models.js
new file mode 100644
index 00000000..0c6e9fb7
--- /dev/null
+++ b/addons/pos_restaurant_adyen/static/src/js/models.js
@@ -0,0 +1,5 @@
+odoo.define('pos_restaurant_adyen.models', function (require) {
+ var models = require('point_of_sale.models');
+
+ models.load_fields('pos.payment.method', ['adyen_merchant_account']);
+});
diff --git a/addons/pos_restaurant_adyen/static/src/js/payment_adyen.js b/addons/pos_restaurant_adyen/static/src/js/payment_adyen.js
new file mode 100644
index 00000000..6bdb845c
--- /dev/null
+++ b/addons/pos_restaurant_adyen/static/src/js/payment_adyen.js
@@ -0,0 +1,44 @@
+odoo.define('pos_restaurant_adyen.payment', function (require) {
+ "use strict";
+
+ var PaymentAdyen = require('pos_adyen.payment');
+ var models = require('point_of_sale.models');
+
+ PaymentAdyen.include({
+ _adyen_pay_data: function () {
+ var data = this._super();
+
+ if (data.SaleToPOIRequest.PaymentRequest.SaleData.SaleToAcquirerData) {
+ data.SaleToPOIRequest.PaymentRequest.SaleData.SaleToAcquirerData += "&authorisationType=PreAuth";
+ } else {
+ data.SaleToPOIRequest.PaymentRequest.SaleData.SaleToAcquirerData = "authorisationType=PreAuth";
+ }
+
+ return data;
+ },
+
+ send_payment_adjust: function (cid) {
+ var order = this.pos.get_order();
+ var line = order.get_paymentline(cid);
+ var data = {
+ originalReference: line.transaction_id,
+ modificationAmount: {
+ value: parseInt(line.amount * Math.pow(10, this.pos.currency.decimals)),
+ currency: this.pos.currency.name,
+ },
+ merchantAccount: this.payment_method.adyen_merchant_account,
+ additionalData: {
+ industryUsage: 'DelayedCharge',
+ },
+ };
+
+ return this._call_adyen(data, 'adjust');
+ },
+
+ canBeAdjusted: function (cid) {
+ var order = this.pos.get_order();
+ var line = order.get_paymentline(cid);
+ return ['mc', 'visa', 'amex', 'discover'].includes(line.card_type);
+ }
+ });
+});