OpenXE/classes/Modules/VoucherPos/www/js/voucherpos.js
2021-05-21 08:49:41 +02:00

194 lines
7.0 KiB
JavaScript

/**
* Für die Bedienung der Modul-Oberfläche
*/
var VoucherPosUi = (function ($) {
'use strict';
var me = {
isInitialized: false,
storage: {
$voucherValueInput: null,
$voucherCustomerType: null,
$voucherCustomerInput: null,
$voucherCode: null,
$voucherResidualValue: null,
$voucherRedeemValue: null
},
selector: {
voucherValueTextBox: '#voucherpos_value',
voucherCustomerRadio: 'input[name="voucherpos_customer"]:checked',
voucherCustomerTextBox: '#voucherpos_regular_customer_input',
voucherCodeTextBox: '#voucherpos_code',
voucherResidualValueTextBox: '#voucherpos_residual_value',
voucherRedeemValueTextBox: '#voucherpos_redeem_value'
},
/**
* @return void
*/
init: function () {
if (me.isInitialized === true) {
return;
}
me.storage.$voucherValueInput = $(me.selector.voucherValueTextBox);
me.storage.$voucherCustomerType = $(me.selector.voucherCustomerRadio);
me.storage.$voucherCustomerInput = $(me.selector.voucherCustomerTextBox);
me.storage.$voucherCode = $(me.selector.voucherCodeTextBox);
me.storage.$voucherResidualValue = $(me.selector.voucherResidualValueTextBox);
me.storage.$voucherRedeemValue = $(me.selector.voucherRedeemValueTextBox);
me.registerEvents();
me.isInitialized = true;
me.storage.$voucherValueInput.focus();
me.storage.$voucherCode.focus();
},
/**
* @return {void}
*/
registerEvents: function () {
//Erstelle Gutschein
$(document).on('click', '.voucherpos-create', function (e) {
e.preventDefault();
var voucherPosValue = me.storage.$voucherValueInput.val();
var voucherPosCustomerType = $(me.selector.voucherCustomerRadio).val();
var voucherPosCustomerInput = me.storage.$voucherCustomerInput.val();
me.createVoucher(voucherPosValue, voucherPosCustomerType, voucherPosCustomerInput, false);
});
$(document).on('click', '.voucherpos-print', function (e) {
e.preventDefault();
var voucherPosValue = me.storage.$voucherValueInput.val();
var voucherPosCustomerType = $(me.selector.voucherCustomerRadio).val();
var voucherPosCustomerInput = me.storage.$voucherCustomerInput.val();
me.createVoucher(voucherPosValue, voucherPosCustomerType, voucherPosCustomerInput, true);
});
$(document).on('click', '.voucherpos-cancel', function (e) {
e.preventDefault();
me.resetCreateVoucherFields();
window.location.replace("index.php?module=appstore&action=list");
});
$(document).on('click', '.voucherpos-book', function (e) {
e.preventDefault();
var voucherPosResidualValue = me.storage.$voucherResidualValue.val();
var voucherPosRedeemValue = me.storage.$voucherRedeemValue.val();
var voucherCode = $('#voucherpos_redeem_code').data('code');
me.redeemVoucher(voucherPosResidualValue, voucherPosRedeemValue, voucherCode);
});
},
/**
* @param {number} voucherPosValue
* @param {string} voucherPosCustomerType
* @param {string} voucherPosCustomerInput
* @param {boolean} voucherPosPrint
*
* @return {void}
*/
createVoucher: function (voucherPosValue, voucherPosCustomerType, voucherPosCustomerInput, voucherPosPrint) {
$.ajax({
url: 'index.php?module=voucherpos&action=createvoucher',
data: {
voucherPosValue: voucherPosValue,
voucherPosCustomerType: voucherPosCustomerType,
voucherPosCustomerInput: voucherPosCustomerInput,
voucherPosPrint: voucherPosPrint
},
method: 'post',
dataType: 'json',
beforeSend: function () {
App.loading.open();
},
success: function (data) {
App.loading.close();
if (data.success === true) {
$('#voucherpos_barcode').html(data.barcode);
me.resetCreateVoucherFields();
}
if (data.success === false) {
alert(data.error);
}
},
error: function (xhr, status, httpStatus){
alert(JSON.parse(xhr.responseText).error);
}
});
},
/**
* @return {void}
*/
resetCreateVoucherFields: function () {
me.storage.$voucherValueInput.val('');
me.storage.$voucherValueInput.focus();
},
/**
* @param {number} voucherPosResidualValue
* @param {number} voucherPosRedeemValue
* @param {string} voucherCode
*
* @return {void}
*/
redeemVoucher: function (voucherPosResidualValue, voucherPosRedeemValue, voucherCode) {
$.ajax({
url: 'index.php?module=voucherpos&action=redeemvoucher',
data: {
voucherPosResidualValue: voucherPosResidualValue,
voucherPosRedeemValue: voucherPosRedeemValue,
voucherPosRedeemCode: voucherCode
},
method: 'post',
dataType: 'json',
beforeSend: function () {
App.loading.open();
},
success: function (data) {
App.loading.close();
if (data.success === true) {
$('#new_residual_value').html('<strong>Verbleibender Betrag: € ' + data.new_residual_value + '</strong>');
me.resetRedeemVoucherFields();
}
if (data.success === false) {
alert(data.error);
}
},
error: function (xhr, status, httpStatus){
alert(JSON.parse(xhr.responseText).error);
}
});
},
/**
* @return {void}
*/
resetRedeemVoucherFields: function () {
me.storage.$voucherResidualValue.val('');
me.storage.$voucherRedeemValue.val('');
me.storage.$voucherCode.focus();
$('#voucherpos_redeem_code').data('code', null);
$('#voucherpos_redeem_code').html('<i>Gutscheincode: </i>');
},
};
return {
init: me.init,
createItem: me.createItem
};
})(jQuery);
$(document).ready(function () {
VoucherPosUi.init();
});