![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-sales-rule/view/frontend/web/js/action/ |
/** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ /** * Customer store credit(balance) application */ define([ 'ko', 'jquery', 'Magento_Checkout/js/model/quote', 'Magento_Checkout/js/model/resource-url-manager', 'Magento_Checkout/js/model/error-processor', 'Magento_SalesRule/js/model/payment/discount-messages', 'mage/storage', 'mage/translate', 'Magento_Checkout/js/action/get-payment-information', 'Magento_Checkout/js/model/totals', 'Magento_Checkout/js/model/full-screen-loader', 'Magento_Checkout/js/action/recollect-shipping-rates' ], function (ko, $, quote, urlManager, errorProcessor, messageContainer, storage, $t, getPaymentInformationAction, totals, fullScreenLoader, recollectShippingRates ) { 'use strict'; var dataModifiers = [], successCallbacks = [], failCallbacks = [], action; /** * Apply provided coupon. * * @param {String} couponCode * @param {Boolean}isApplied * @returns {Deferred} */ action = function (couponCode, isApplied) { var quoteId = quote.getQuoteId(), url = urlManager.getApplyCouponUrl(couponCode, quoteId), message = $t('Your coupon was successfully applied.'), data = {}, headers = {}; //Allowing to modify coupon-apply request dataModifiers.forEach(function (modifier) { modifier(headers, data); }); fullScreenLoader.startLoader(); return storage.put( url, data, false, null, headers ).done(function (response) { var deferred; if (response) { deferred = $.Deferred(); isApplied(true); totals.isLoading(true); recollectShippingRates(); getPaymentInformationAction(deferred); $.when(deferred).done(function () { fullScreenLoader.stopLoader(); totals.isLoading(false); }); messageContainer.addSuccessMessage({ 'message': message }); //Allowing to tap into apply-coupon process. successCallbacks.forEach(function (callback) { callback(response); }); } }).fail(function (response) { fullScreenLoader.stopLoader(); totals.isLoading(false); errorProcessor.process(response, messageContainer); //Allowing to tap into apply-coupon process. failCallbacks.forEach(function (callback) { callback(response); }); }); }; /** * Modifying data to be sent. * * @param {Function} modifier */ action.registerDataModifier = function (modifier) { dataModifiers.push(modifier); }; /** * When successfully added a coupon. * * @param {Function} callback */ action.registerSuccessCallback = function (callback) { successCallbacks.push(callback); }; /** * When failed to add a coupon. * * @param {Function} callback */ action.registerFailCallback = function (callback) { failCallbacks.push(callback); }; return action; });