fiskaly = (function ($) { self = { selector: { tseSelect: 'select[name=\'tse\']', clientSelect: 'select[name=\'client\']', organizationSelect: 'select[name=\'organization\']', trainingButton: '#training', createCashRegisterDiv: '#createcashregisterdiv', trCashRegister: '#tr-cash-register', tseForm: '#tseform', buttonNewOrg: '#create-org', popupNewOrg: '#popup-new-org', trSmaEndPoint: '#trsmaendpoint', tableOrg: '#fiskaly_organisation', formSetting: '#form-setting' }, 'hookTable': function () { let table = $('#fiskaly_pos_mapping').get(0); let observer = new MutationObserver(function (mutations) { self.hookButtons(); }); observer.observe(table, {attributes: true, childList: true, characterData: true}); }, 'hookButtons': function () { var deleteButtons = document.getElementsByClassName('button-delete'); console.log(deleteButtons); for (let button of deleteButtons) { button.addEventListener('click', function () { if(!confirm('Zuordnung wirklich löschen?')) { return; } let location = document.location; let path = 'index.php?module=fiskaly&action=delete_tse'; let id = button.id.substr(7); let request = new XMLHttpRequest(); request.open('POST', path, true); request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); request.onreadystatechange = function () { if (this.readyState !== 4) { return; } if (this.status === 200) { document.location.reload(); } else { alert('Beim löschen ist ein Fehler passiert.'); } }; request.send('id=' + id); }); } }, 'initExport': function () { let path = 'index.php?module=fiskaly&action=transaction_export&cmd=update_export'; let request = new XMLHttpRequest(); request.open('POST', path, true); request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); request.send(); }, 'initPosList': function () { $(self.selector.trainingButton).on('change', function () { if ($(self.selector.trainingButton).prop('checked')) { if (!confirm('Training Modus wirklich starten?')) { $(self.selector.trainingButton).prop('checked', false); return; } let path = 'index.php?module=pos&action=list&cmd=activate_training_modus'; let request = new XMLHttpRequest(); request.open('POST', path, true); request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); request.onreadystatechange = function () { if (this.readyState !== 4) { return; } if (this.status === 200) { document.location.reload(); } else { alert('Fehler beim aktivieren des Training-modus.'); } }; request.send(); } }); }, 'initTseOption': function () { $(self.selector.tseSelect).on('change', function () { if ($(self.selector.tseSelect).find('option:selected').filter(function () { return $(this).data('status') === 'UNINITIALIZED'; }).length > 0) { $('#initialtse').toggleClass('hidden', false); $('#createtse').toggleClass('hidden', true); $('#createclient').toggleClass('hidden', true); } else { $('#initialtse').toggleClass('hidden', true); $('#createtse').toggleClass('hidden', false); if ($(self.selector.tseSelect).find('option:selected').filter(function () { return $(this).data('hasclient') == '0'; }).length > 0) { $('#createclient').toggleClass('hidden', false); } else { $('#createclient').toggleClass('hidden', true); } var $clientsWithTssId = $(self.selector.clientSelect).find('option').filter(function () { return $(this).data('tssid') === $(self.selector.tseSelect).val(); }); if ($clientsWithTssId.length === 1) { $(self.selector.clientSelect).val($clientsWithTssId.val()); } } $(self.selector.clientSelect).find('option').each(function () { if ( $(this).data('tssid') + '' !== '' && $(this).data('tssid') !== $(self.selector.tseSelect).val() ) { $(this).hide(); if ($(self.selector.clientSelect).val() === $(this).val()) { $(self.selector.clientSelect).val(''); $(self.selector.clientSelect).trigger('change'); } } else { $(this).show(); } }); }); $(self.selector.clientSelect).on('change', function () { if ($(this).find('option:selected').data('cashregisterid') + '' !== '') { $(self.selector.createCashRegisterDiv).hide(); $(self.selector.trCashRegister).hide(); return; } if ($(this).val() + '' === '') { $(self.selector.createCashRegisterDiv).hide(); $(self.selector.trCashRegister).hide(); return; } $(self.selector.createCashRegisterDiv).show(); $(self.selector.trCashRegister).show(); $(self.selector.createCashRegisterDiv).data('clientid', $(this).val()); }); $(self.selector.tseSelect).trigger('change'); $(self.selector.clientSelect).trigger('change'); $('#create-cashregister').on('click', function () { if (!confirm('Kasse wirklich Registrieren')) { return; } $('#tabs').loadingOverlay('show'); $.ajax({ url: 'index.php?module=fiskaly&action=settings_tse&cmd=createcashregister&id=' + $(self.selector.tseForm).data('tseid'), type: 'POST', dataType: 'json', data: { client_id: $(self.selector.createCashRegisterDiv).data('clientid') }, success: function (data) { if (data.status == 1) { window.location.href = window.location.href.split('#')[0]; } else { $('#tabs').loadingOverlay('remove'); alert(data.error); } }, error: function (event) { $('#tabs').loadingOverlay('remove'); alert(event.responseJSON.error); }, beforeSend: function () { } }); }); $('#createtse').on('click', function (){ if (!confirm('TSE wirklich erstellen?')) { return; } $('#tabs').loadingOverlay('show'); $.ajax({ url: 'index.php?module=fiskaly&action=settings_tse&cmd=createtse&id=' + $(self.selector.tseForm).data('tseid'), type: 'POST', dataType: 'json', data: { organization: $(self.selector.organizationSelect).val(), project: $('#project').val() }, success: function (data) { if (data.status == 1) { if(typeof data.url != 'undefined') { window.location.href = data.url; return; } window.location.href = window.location.href.split('#')[0]; } else { $('#tabs').loadingOverlay('remove'); alert(data.error); } }, error: function (event) { $('#tabs').loadingOverlay('remove'); alert(event.responseJSON.error); }, beforeSend: function () { } }); }); $('#initialtse').on('click', function () { if (!confirm('TSE wirklich initialisieren?')) { return; } $('#tabs').loadingOverlay('show'); $.ajax({ url: 'index.php?module=fiskaly&action=settings_tse&cmd=initialtse&id=' + $(self.selector.tseForm).data('tseid'), type: 'POST', dataType: 'json', data: { tse_id: $(self.selector.tseSelect).val() }, success: function (data) { if (data.status == 1) { window.location.href = window.location.href.split('#')[0]; } else { $('#tabs').loadingOverlay('remove'); alert(data.error); } }, error: function (event) { $('#tabs').loadingOverlay('remove'); alert(event.responseJSON.error); }, beforeSend: function () { } }); }); $('#createclient').on('click', function () { if (!confirm('Client wirklich erstellen?')) { return; } $('#tabs').loadingOverlay('show'); $.ajax({ url: 'index.php?module=fiskaly&action=settings_tse&cmd=createclient&id=' + $(self.selector.tseForm).data('tseid'), type: 'POST', dataType: 'json', data: { tse_id: $(self.selector.tseSelect).val() }, success: function (data) { if (data.status == 1) { window.location.href = window.location.href.split('#')[0]; } else { $('#tabs').loadingOverlay('remove'); alert(data.error); } }, error: function (event) { $('#tabs').loadingOverlay('remove'); alert(event.responseJSON.error); }, beforeSend: function () { } }); }); }, 'editOrg': function (id) { $('#tabs').loadingOverlay('show'); $.ajax({ url: 'index.php?module=fiskaly&action=settings&cmd=getorg', type: 'POST', dataType: 'json', data: { id: id }, success: function (data) { $('#org-id').val(data.id); $('#org-name').val(data.name); $('#org-display-name').val(data.display_name); $('#org-address-line1').val(data.address_line1); $('#org-address-line2').val(data.address_line2); $('#org-zip').val(data.zip); $('#org-town').val(data.town); $('#org-state').val(data.state); $('#org-vat-id').val(data.vat_id); $('#org-tax-number').val(data.tax_number); $('#org-economy-id').val(data.economy_id); $('#org-country-code').val(data.country_code); $('#tabs').loadingOverlay('remove'); $(self.selector.popupNewOrg).dialog('open'); }, error: function (event) { $('#tabs').loadingOverlay('remove'); alert(event.responseJSON.error); } }); }, 'initSettings': function () { $(self.selector.tableOrg).on('afterreload',function (){ $(self.selector.tableOrg).find('img.edit').on('click', function (){ self.editOrg($(this).data('id')); }); }); $(self.selector.buttonNewOrg).on('click', function (){ self.editOrg(0); }); $(self.selector.popupNewOrg).dialog( { modal: true, autoOpen: false, minWidth: 940, title:'', buttons: { 'ABBRECHEN': function() { $(this).dialog('close'); }, 'ANLEGEN / SPEICHERN': function() { if(!confirm('Wirklich Anlegen / Erstellen?')) { return; } $(self.selector.popupNewOrg).loadingOverlay('show'); $.ajax({ url: 'index.php?module=fiskaly&action=settings&cmd=createorg', type: 'POST', dataType: 'json', data: { id: $('#org-id').val(), name: $('#org-name').val(), display_name: $('#org-display-name').val(), address_line1: $('#org-address-line1').val(), address_line2: $('#org-address-line2').val(), zip: $('#org-zip').val(), town: $('#org-town').val(), state: $('#org-state').val(), vat_id: $('#org-vat-id').val(), tax_number: $('#org-tax-number').val(), economy_id: $('#org-economy-id').val(), country_code: $('#org-country-code').val(), }, success: function() { window.location.href = window.location.href.split('#')[ 0 ]; }, error: function (event) { $(self.selector.popupNewOrg).loadingOverlay('remove'); alert(event.responseJSON.error); } }); }, }, close: function(event, ui){ } }); $(self.selector.tableOrg).trigger('afterreload'); }, 'init': function () { $(document).ready(self.hookTable); if ($(self.selector.tseSelect).length) { self.initTseOption(); } if ($(self.selector.trainingButton).length) { self.initPosList(); } if ($('#fiskaly_transaction_export').length) { self.initExport(); } if($(self.selector.popupNewOrg).length) { self.initSettings(); } } }; return { 'init': self.init }; })($); fiskaly.init();