cancel-coupon.js 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. /**
  2. * Copyright © Magento, Inc. All rights reserved.
  3. * See COPYING.txt for license details.
  4. */
  5. /**
  6. * Customer store credit(balance) application
  7. */
  8. define([
  9. 'jquery',
  10. 'Magento_Checkout/js/model/quote',
  11. 'Magento_Checkout/js/model/resource-url-manager',
  12. 'Magento_Checkout/js/model/error-processor',
  13. 'Magento_SalesRule/js/model/payment/discount-messages',
  14. 'mage/storage',
  15. 'Magento_Checkout/js/action/get-payment-information',
  16. 'Magento_Checkout/js/model/totals',
  17. 'mage/translate',
  18. 'Magento_Checkout/js/model/full-screen-loader'
  19. ], function ($, quote, urlManager, errorProcessor, messageContainer, storage, getPaymentInformationAction, totals, $t,
  20. fullScreenLoader
  21. ) {
  22. 'use strict';
  23. return function (isApplied) {
  24. var quoteId = quote.getQuoteId(),
  25. url = urlManager.getCancelCouponUrl(quoteId),
  26. message = $t('Your coupon was successfully removed.');
  27. messageContainer.clear();
  28. fullScreenLoader.startLoader();
  29. return storage.delete(
  30. url,
  31. false
  32. ).done(function () {
  33. var deferred = $.Deferred();
  34. totals.isLoading(true);
  35. getPaymentInformationAction(deferred);
  36. $.when(deferred).done(function () {
  37. isApplied(false);
  38. totals.isLoading(false);
  39. fullScreenLoader.stopLoader();
  40. });
  41. messageContainer.addSuccessMessage({
  42. 'message': message
  43. });
  44. }).fail(function (response) {
  45. totals.isLoading(false);
  46. fullScreenLoader.stopLoader();
  47. errorProcessor.process(response, messageContainer);
  48. });
  49. };
  50. });