/** * 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('Verbleibender Betrag: € ' + data.new_residual_value + ''); 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('Gutscheincode: '); }, }; return { init: me.init, createItem: me.createItem }; })(jQuery); $(document).ready(function () { VoucherPosUi.init(); });