'use strict';
/**
* Controller for MP_ECM.
*
* @module controllers/MP_ECM
*/
var app = require('sitegenesis_controllers/cartridge/scripts/app');
var guard = require('sitegenesis_controllers/cartridge/scripts/guard');
/* API Includes */
var PaymentMgr = require('dw/order/PaymentMgr');
var OrderMgr = require('dw/order/OrderMgr');
var Transaction = require('dw/system/Transaction');
var URLUtils = require('dw/web/URLUtils');
var libPayment = require('int_payment_core/cartridge/scripts/lib/libPayment.ds')
var parameterMap = request.httpParameterMap;
/**
* Reset the forms of all Direct Debits payment methods, except the one of the current selected payment method.
*/
function ResetPaymentForms() {
var cart = app.getModel('Cart').get();
Transaction.wrap(function () {
session.forms.billing.paymentMethods.creditCard.clearFormElement();
session.forms.billing.paymentMethods.bml.clearFormElement();
cart.removePaymentInstruments(cart.getPaymentInstruments(dw.order.PaymentInstrument.METHOD_CREDIT_CARD));
cart.removePaymentInstruments(cart.getPaymentInstruments(dw.order.PaymentInstrument.METHOD_BML));
});
if(session.forms.billing.paymentMethods.selectedPaymentMethodID.value.equals('DIRECT_DEBITS_DE')) {
Transaction.wrap(function () {
session.forms.billing.paymentMethods.directdebitsnl.clearFormElement();
session.forms.billing.paymentMethods.directdebitsat.clearFormElement();
cart.removePaymentInstruments(cart.getPaymentInstruments('DIRECT_DEBITS_NL'));
cart.removePaymentInstruments(cart.getPaymentInstruments('DIRECT_DEBITS_AT'));
});
} else if(session.forms.billing.paymentMethods.selectedPaymentMethodID.value.equals('DIRECT_DEBITS_NL')) {
Transaction.wrap(function () {
session.forms.billing.paymentMethods.directdebitsde.clearFormElement();
session.forms.billing.paymentMethods.directdebitsat.clearFormElement();
cart.removePaymentInstruments(cart.getPaymentInstruments('DIRECT_DEBITS_DE'));
cart.removePaymentInstruments(cart.getPaymentInstruments('DIRECT_DEBITS_AT'));
});
} else if(session.forms.billing.paymentMethods.selectedPaymentMethodID.value.equals('DIRECT_DEBITS_AT')) {
Transaction.wrap(function () {
session.forms.billing.paymentMethods.directdebitsde.clearFormElement();
session.forms.billing.paymentMethods.directdebitsnl.clearFormElement();
cart.removePaymentInstruments(cart.getPaymentInstruments('DIRECT_DEBITS_DE'));
cart.removePaymentInstruments(cart.getPaymentInstruments('DIRECT_DEBITS_NL'));
});
}
}
/**
* Reset the forms of all Direct Debits payment methods
*/
function ResetAllPaymentForms() {
var cart = app.getModel('Cart').get();
Transaction.wrap(function () {
session.forms.billing.paymentMethods.directdebitsde.clearFormElement();
session.forms.billing.paymentMethods.directdebitsnl.clearFormElement();
session.forms.billing.paymentMethods.directdebitsat.clearFormElement();
cart.removePaymentInstruments(cart.getPaymentInstruments('DIRECT_DEBITS_DE'));
cart.removePaymentInstruments(cart.getPaymentInstruments('DIRECT_DEBITS_NL'));
cart.removePaymentInstruments(cart.getPaymentInstruments('DIRECT_DEBITS_AT'));
});
}
/*
* Export the private controller methods
*/
exports.ResetPaymentForms = ResetPaymentForms;
exports.ResetAllPaymentForms = ResetAllPaymentForms;
/*
* Export the publicly available controller methods
*/