class ArticleGroup { constructor(idx, description) { this.idx = idx; this.description = description; } } class Booking { constructor(itemnbr, amount,credit, subitems) { this.itemnbr = itemnbr; this.amount = amount; this.credit = credit; this.subitems = subitems; } create = function (obj) { var t = new Booking(); for (var prop in obj) { if (t.hasOwnProperty(prop)) { t[prop] = obj[prop]; } } return t; } } class BlockSlot { constructor(itemnbr, subitem, time) { this.itemnbr = itemnbr; this.subitem = subitem; this.time = time; } } class SubItem { constructor(amount,time, subitemnbr) { this.amount = amount; this.time = time; this.subitemnbr = subitemnbr; this.isOption = false; this.nfp = false; this.persons = []; } } class Warenkorb{ constructor() { this.articles = []; this.tage = []; this.actDate = ""; this.actTime = ""; this.actTimeEnd = ""; this.rabattCode=undefined; this.wertkarte=undefined; } hasDay(tag) { var returnval = false; this.tage.forEach(function(row) { if(row.date == tag) { returnval= true; } }); return returnval; } getDay(tag) { var returndate = UNDEF; this.tage.forEach(function(row) { if(row.date == tag) { returndate= row; } }); return returndate; } addTag(tag) { var self = this; $.ajax({ url: PHP_MAIN, cache: false, data: {"wk": "addTag", "tag":tag}, method: POST, async: false, success: function(e) { if(e == "1") { self.actDate=tag; if(!self.hasDay(tag)) { var t = new Tag(tag); self.addTagObject(t); } } } }); } addTagObject(tag) { var add = this.tage.length==0; if(add == false) { add=true; this.tage.forEach(function(row) { if(row.date == tag.date) { add=false; } }); } if(add) { this.tage.push(tag); } } addTimes(zeit, zeitEnde) { var self = this; $.ajax({ url: PHP_MAIN, cache: false, data: {"wk": "addTimes", "zeit":zeit, "zeitEnde": zeitEnde}, method: POST, async: false, success: function(e) { if(e == "1") { self.tage.forEach(function(row) { if(row.date == self.actDate) { self.actTime = zeit; self.actTimeEnd= zeitEnde; row.addZeit(zeit, zeitEnde); } }, self); } } }); } removeTag(index) { if(this.tage != UNDEF) { this.tage.splice(index,1); } } addArticle(article) { this.articles.push(article); } insertArticleZumZeitpunkt(article, index) { var self = this; $.ajax({ url: PHP_MAIN, cache: false, data: {"wk": "addArticleZumZeitpunkt", "article":article.itemnbr, "amount":article.amount}, method: POST, async: false, success: function(e) { if(e == "1") { if(self.getDay(self.actDate)!= UNDEF) { if(self.getDay(self.actDate).getZeit(self.actTime, self.actTimeEnd)!= UNDEF) { self.getDay(self.actDate).getZeit(self.actTime, self.actTimeEnd).insertArticle(article, index); }else { console.log("notime"); } } else { console.log("noday"); } } } }); } addArticleZumZeitpunkt(article) { var amount = 0; var self = this; $.ajax({ url: PHP_MAIN, cache: false, data: {"wk": "addArticleZumZeitpunkt", "article":article.itemnbr, "amount":article.amount, "subitem":article.subItem }, method: POST, async: false, success: function(e) { if(e == "1") { if(article.isWertkartenArtikel()==false) { } else { article.credit = article.amount; article.amount = 1; } if(self.getDay(self.actDate)!= UNDEF) { if(self.getDay(self.actDate).getZeit(self.actTime, self.actTimeEnd)!= UNDEF) { self.getDay(self.actDate).getZeit(self.actTime, self.actTimeEnd).addArticle(article); amount+=article.amount; console.log("hier2", amount); } else { console.log("notime"); } } else { console.log("noday"); } } else if(e == "-1") { amount-=1; } else { console.log("e", e); } } }); return amount; } removeArticleZumZeitpunkt(itemnbr,subItem=0) { var self = this; $.ajax({ url: PHP_MAIN, cache: false, data: {"wk": "removeArticleZumZeitpunkt", "article":itemnbr, "subItem":subItem}, method: POST, async: false, success: function(e) { if(e == "1") { if(self.getDay(self.actDate)!= UNDEF) { if(self.getDay(self.actDate).getZeit(self.actTime, self.actTimeEnd)!= UNDEF) { self.getDay(self.actDate).getZeit(self.actTime, self.actTimeEnd).removeArticle(itemnbr,subItem); }else { console.log("notime"); } } else { console.log("noday"); } } } }); } getAmountAnyArticles() { var returnval = 0; for(var i = 0;i0; if(returnval)return true; for(var i = 0;i=0) { this.articles.splice(index,1); } } } decreaseArticle(itemnbr, subItem = 0) { if(this.articles != UNDEF) { for(var i = 0;i0; if(returnval)return true; for(var i = 0;i0; } getAllArticle() { return this.articles; } getAllPersons() { var returnval = []; this.articles.forEach(function(article) { returnval = returnval.concat(article.getAllPersons()); }); return returnval; } getAmountAnyArticles() { var returnval = 0; for(var i = 0;i=0) { this.articles.splice(index,1); } } } decreaseArticle(itemnbr, subItem = 0) { if(this.articles != UNDEF) { for(var i = 0;i=td && gebThisYear<= ttDate) { before6Years = this.addDays(1,this.subtractYears (6,new Date(gebThisYear))); before17Years = this.addDays(1,this.subtractYears (18,new Date(gebThisYear))); } if(this.customerRequired ==2 && gebdat >= before6Years) //Kind bis 6 jahre { return true; } else if(this.customerRequired==3 && gebdat= before17Years) // Jugendlich (7-17) { return true; } else if(this.customerRequired==4 && gebdat= before17Years) //(0-17) { return true; } else if(this.customerRequired==6 && gebdat < before6Years) //7+ { return true; } } return false; } subtractYears (numOfYears, date = new Date()) { date.setFullYear(date.getFullYear() - numOfYears); return date; } addDays (numOfDays, date = new Date()) { date.setDate(date.getDate() + numOfDays); return date; } create = function (obj) { var t = new Article(); for (var prop in obj) { if (t.hasOwnProperty(prop)) { t[prop] = obj[prop]; } } return t; } init() { for(var i = 0;i= 9) { var ticketcode = x.substring(9); setWS(WS_TC, ticketcode); var ja = getWS("JOINACTION"); if(ja == UNDEF) { ja = 0; } $.ajax({ url: PHP_TCHECK, cache: false, data: { "ticketcode": getWS(WS_TC), "ja":ja}, method: POST, success: function(r) { if(r == "-1") { setWS(WS_NEXTP, P_TICKET + "=" + getWS(WS_TC)); navigate(P_LOGIN); } else if(r == "-2" || r == -2) { setWS(WS_NEXTP, x); navigate(P_LOGIN); } else { $(T_CONTENT).html(r); setWS(WS_TC, ""); $('.startBooking').click(function () { var id = $(this).data(PID); if(!isNullOrEmpty(id)) { setWS(WS_PWC, id); navigate(P_BOOKING); } }); } $('.joinaction').click(function () { setWS("JOINACTION", 1);location.reload();}); } }); } else { navigate(P_BOOKING); } } else if(x.startsWith(P_TICKET)) { if(x.length >= 8) { var ticketcode = x.substring(8); setWS(WS_TC, ticketcode); user = setUserFromWS(); if(user != UNDEF && isLogedIn()) { $.ajax({ url: PHP_TCHECK, cache: false, data: { "ticketcode": getWS(WS_TC)}, method: POST, success: function(r) { if(r == "-1") { setWS(WS_NEXTP, x); navigate(P_LOGIN); } else { $(T_CONTENT).html(r); setWS(WS_TC, ""); $('.startBooking').click(function () { var id = $(this).data(PID); if(!isNullOrEmpty(id)) { setWS(WS_PWC, id); navigate(P_BOOKING); } }); } } }); } else { setWS(WS_NEXTP, x); navigate(P_LOGIN); } } else { navigate(P_LOGIN); } } else if(x == P_AGB) { $(T_CONTENT).load(HTML_AGB); } else if(x == P_AGBCORNA) { $(T_CONTENT).load(HTML_AGBCORONA); } else if(x == P_IMPRESSUM) { $(T_CONTENT).load(HTML_IMPRESSUM); } else if(x == P_NUTZUNGSBEDINGUNGEN) { $(T_CONTENT).load(HTML_NUTZUNGSBEDINGUNGEN); } else if(x == P_DATENSCHUTZ) { $(T_CONTENT).load(HTML_DATENSCHUTZ); } else if(x == P_FREESLOTS) { user = setUserFromWS(); if(user == UNDEF || isLogedIn() == false) { setWS(WS_NEXTP, x); navigate(P_LOGIN); return; } loadFreeSlots(); } else if(x.startsWith(P_UNSUBSCRIBE)) { unsubscribe(x); } else { $( T_CONTENT ).load(HTML_HOME); } var navMain = $("#navbar"); navMain.collapse('hide'); } function saveWKNotes() { var val = $("#booking_notes").val(); console.log(val); $.ajax({ url: PHP_MAIN, cache: false, data: {"wk": "notes", "note": val}, method: POST, async:false, success: function(data) { } }); } function unsubscribe(parameter) { $.ajax({ url: PHP_MAIN, cache: false, data: {"admin": "unsubscribe", "user": parameter.substring(12)}, method: POST, dataType: "html", success: function(data) { if(data === "1") { $(T_CONTENT).load(HTML_UNSUBSCRIBE); } else { $(T_CONTENT).load(HTML_UNSUBSCRIBEERROR); } } }); } function loadUserPage() { $.ajax({ url: PHP_USER, cache: false, method: POST, success: function(e) { $(T_CONTENT).html(e); }, error: function e() { setWS(WS_NEXTP, x); navigate(P_LOGIN); } }); } function loadBooking() { $.ajax({ url: PHP_BOOK, cache: false, method: POST, dataType: "html", success: function(data) { $(T_CONTENT).html(''); $(T_CONTENT).html(data); $('.nextbutton').click(function () { next();}); $('.nextloginbutton').click(function () {nextLogin();}); $('.addbutton').click(function () {addItem();}); $('.addDay').click(function () {navigate(P_BOOKING + "_1")}); $('#content').css("width", ""); $('.navbar-toggle').css("float", "right"); $('.navbar-toggle').css("margin-left", "0px"); $('.navbar-toggle').css("margin-right", "15px"); initFormBooking(); } }); } function getActBookingStep() { return $.ajax({ url: PHP_MAIN, cache: false, async:false, data: {"wk": "getstep"}, method: POST, success: function(e) { return e; } }).responseText; } function getActBookingDate() { return $.ajax({ url: PHP_MAIN, cache: false, async:false, data: {"wk": "actDate"}, method: POST, success: function(e) { return e; } }).responseText; } function loadFreeSlots() { } function loadOverViewFree() { } function saveAdminToDataBase(admin, infotext, items) { var userid = 0; var nameAppend = ""; if(isLogedIn() && user != UNDEF) { userid = parseInt(user.idcustomer); if(isNaN(userid)) { userid = 0; } else { nameAppend = " (" + user.name + ")"; } } if(admin == "block" && infotext == "") { infotext = admin; } if(infotext != "" && infotext.indexOf(nameAppend)<0) { infotext = infotext + nameAppend; } var fdata = new FormData(); fdata.append("admin", admin); fdata.append("ticketinfo", infotext); fdata.append("bookingid", admin +"-"+ uuidv4()); fdata.append("items", JSON.stringify(items)); fdata.append(WS_BDATE, getWS(WS_BDATE)); fdata.append("booking", PADMIN); $.ajax({ type: POST, url: PHP_MAIN, data: fdata, dataType: 'json', contentType: false, cache: false, processData:false, success: function (res) { } }); } function CheckAmounts() { } function initFormBooking() { $("#booking_title").html("Wartungsarbeiten"); $("#content").html("

Es werden aktuell Wartungsarbeiten duchgeführt. Versuchen Sie es später noch einmal.

"); return; if(checkRefreshNeeded()) { return; } var bookingstartdate = getMinDate(); var bookingstep = getActBookingStep(); console.log(bookingstep); if(bookingstep == UNDEF || bookingstep < initialpage){bookingstep = initialpage;} var tempdate = getActBookingDate(); var datetoshow = ""; if(!isNullOrEmpty(tempdate)) { datetoshow= tempdate; } else { datetoshow = getFormatedDate(bookingstartdate); setWS(WS_BDATE,datetoshow); } var temptime = getWS(WS_BTIME); var temptimeend = getWS(WS_BTIMEEND); var amountAnyArtikel = 0; $('#chk_oneHouse').change(function() { CheckAmounts(); setWS(WS_OHH,this.checked); }); //Setze den Titel des Untermenüs if(bookingstep == 4) { var tempbooking = getWK(); if(!isNullOrEmpty(tempbooking)) { ba = new Warenkorb().create(JSON.parse(tempbooking)); } amountAnyArtikel = getAmountAnyArticles(); if(amountAnyArtikel <=0) { back(); } } else if(bookingstep == 5) { amountAnyArtikel = getAmountAnyArticles(); if(amountAnyArtikel <=0) { back(); } $('#btnWKArtikelAmount').html('(' + amountAnyArtikel + ') Artikel'); } else if(bookingstep == 6) { } if(bookingstep == 5) { } else if(bookingstep == 6) { return; } else if(bookingstep == 7) { return; var ts = getTransaction(); if(isNullOrEmpty(ts)) { back(); } else { $('#booking_title').html("Buchung erfolgreich abgeschlossen"); var details = JSON.parse(ts); if(details.status == "COMPLETED") { var d = new Date(details.update_time); const ye = new Intl.DateTimeFormat('de', { year: 'numeric' }).format(d); const mo = new Intl.DateTimeFormat('de', { month: '2-digit' }).format(d); const day = new Intl.DateTimeFormat('de', { day: '2-digit' }).format(d); var cont = '

Bestellung erfolgreich durchgeführt. Du erhältst in Kürze deine Bestellung per E-Mail.

'; cont += "

Gekauft am : " + day + "." + mo + "." +ye + "

"; cont += "

Gekaufte Artikel:

    "; details.purchase_units.forEach(function(i) { if(i.subItemRequired==1) { cont += "
  • " + i.amount + "x " + i.description + " (Bahn " + i.subItem + ")
  • "; }else { cont += "
  • " + i.amount + "x " + i.description + "
  • "; } }); cont += "
"; if(details.creditsumme > 0) { cont += "

Es wurden " + new Intl.NumberFormat('de-DE', { style: 'currency', currency: "EUR" }).format(details.creditsumme) + " mit Guthaben verrechnet.

"; } cont += '

Summe: ' + formatPrice(details.endsumme) + "

";//+ " " + details.purchase_units[0].amount.currency_code $('#booking_details').html(cont); ba = new Warenkorb(); cleanWK(); setWS(WS_PWC, ""); setWS(WS_PWCA, ""); saveWK(); } } } } function getArticleZumzeitpunkt() { return JSON.parse($.ajax({ url: PHP_MAIN, cache: false, data: {"wk": "getArticleZumzeitpunkt" }, method: POST, async: false, success: function(e) { return e; } }).responseText); } function delArticle(item) { var itemnbr = item.data('itemnbr'); var subItem = item.data('subItem'); var itemSize = item.data('itemsize'); if(itemSize != UNDEF && itemSize >0) { removeArticleZumZeitpunkt(itemnbr, subItem,itemSize); } else { removeArticleZumZeitpunkt(itemnbr, subItem); $('#itemnbr_' + itemnbr).val(''); $('#del_' + itemnbr).hide(); $('#lstAddedSizes_' + itemnbr).html(''); setPriceDisplay(itemnbr, 1); } saveWK(); } function decArticle(item) { var itemnbr = item.data('itemnbr'); var subItem = item.data('subItem'); var itemSize = item.data('itemsize'); if(itemSize != UNDEF && itemSize >0) { decreaseArticleZumZeitpunkt(itemnbr, subItem,itemSize); } saveWK(); } function incArticle(item) { var itemnbr = item.data('itemnbr'); var subItem = item.data('subItem'); var itemSize = item.data('itemsize'); if(itemSize != UNDEF && itemSize >0) { increaseArticleZumZeitpunkt(itemnbr, subItem,itemSize); } saveWK(); } function drawArticleStorage(itemnbr, subItem=1) { var am = 0; am = $.ajax({ url: PHP_MAIN, cache: false, data: {"wk": "getArticleStorageItemsZumzeitpunkt", "itemnbr":itemnbr, "subitem":subItem}, method: POST, async: false, success: function(e) { console.log(e); e=JSON.parse(e); var addstring = "Bisher hinzugefügt:"; var amount = 0; e.forEach(function(store) { var deltag = 'data-itemnbr="' + itemnbr + '"'; deltag += 'data-subItem="' + subItem + '"'; deltag += ' data-itemSize="' + store.itemSize + '"'; addstring += '
  • Größe ' + store.itemSize + ' Menge ' + store.AmountWK + ''; addstring += ''; addstring += ''; addstring += '
  • '; amount+= store.AmountWK; }); $('#lstAddedSizes_' + itemnbr).html(addstring); $('#itemnbr_'+ itemnbr).val(amount); setPriceDisplay(itemnbr, amount); $('.delArticle').off('click'); $('.delArticle').on('click', function() { delArticle($(this)); }); $('.decArticle').off('click'); $('.decArticle').on('click', function() { decArticle($(this)); }); $('.incArticle').off('click'); $('.incArticle').on('click', function() { incArticle($(this)); }); return e; } }).responseText; return am; } function hasArticleZumZeitpunkt(itemnbr, subItem=1) { $.ajax({ url: PHP_MAIN, cache: false, data: {"wk": "hasArticleZumZeitpunkt", "article":itemnbr, "subItem":subItem}, method: POST, async: false, success: function(e) { } }); } function removeArticleZumZeitpunkt(itemnbr,subItem=1, itemSize=0) { $.ajax({ url: PHP_MAIN, cache: false, data: {"wk": "removeArticleZumZeitpunkt", "article":itemnbr, "subItem":subItem, "itemSize":itemSize}, method: POST, async: false, success: function(e) { if(itemSize >0) { drawArticleStorage(itemnbr, subItem); } } }); } function decreaseArticleZumZeitpunkt(itemnbr,subItem=1, itemSize=0) { $.ajax({ url: PHP_MAIN, cache: false, data: {"wk": "decreaseArticleZumZeitpunkt", "article":itemnbr, "subItem":subItem, "itemSize":itemSize}, method: POST, async: false, success: function(e) { if(itemSize >0) { drawArticleStorage(itemnbr, subItem); } } }); } function increaseArticleZumZeitpunkt(itemnbr,subItem=1, itemSize=0) { $.ajax({ url: PHP_MAIN, cache: false, data: {"wk": "increaseArticleZumZeitpunkt", "article":itemnbr, "subItem":subItem, "itemSize":itemSize}, method: POST, async: false, success: function(e) { if(itemSize >0) { drawArticleStorage(itemnbr, subItem); } } }); } function hasArticleZeitlos(itemnbr, subItem=1) { return $.ajax({ url: PHP_MAIN, cache: false, data: {"wk": "hasArticleZeitlos", "article":itemnbr, "subItem":subItem}, method: POST, async: false, success: function(e) { return e; } }).responseText; } function removeArticleZeitlos(itemnbr,subItem=1) { $.ajax({ url: PHP_MAIN, cache: false, data: {"wk": "removeArticleZeitlos", "article":itemnbr, "subItem":subItem}, method: POST, async: false, success: function(e) { } }); } function getAmountAnyArticles() { return $.ajax({ url: PHP_MAIN, cache: false, data: {"wk": "getAmountAnyArticles"}, method: POST, async: false, success: function(e) { return e; } }).responseText; } function getFormatedDate(input) { var d = input; var mm = d.getMonth() + 1; // getMonth() is zero-based var dd = d.getDate(); return [(dd > 9 ? '' : '0') + dd, (mm > 9 ? '' : '0') + mm, d.getFullYear()].join('.'); } function setTimes(date, refresh=true) { if(new Date() Buchungsystem noch nicht freigegeben'); $('#booking_tarif').find('option').remove(); return; } $('#booking_time').html(''); $('.spacedisplay').css(CSS_DSP,CSS_NONE); var userid = 0; if(user != UNDEF) { userid = user.idcustomer; } var itemnbr = getWS(WS_BTARIF); if(itemnbr ==0) { itemnbr = $('#booking_tarif').val(); } return $.ajax({ type: POST, url: PHP_MAIN, data: {"seatsdefine": "daymatrixartikel", "date":date, "ba": itemnbr, "userid": userid, "pbk":getWS(WS_PBK)}, method: POST, dataType: 'json', cache: false, success: function (res) { if(res != "" && res != "0") { var td = new Date(); var today = getFormatedDate(td); var time = getFormatedTime(td); var isToday = false; if(date == today) { isToday=true; } var selectedtime = getWS(WS_BTIME); var selectedtimes = JSON.parse(selectedtime); var selectedsubitem = getWS(WS_SUBTARIF); $('#booking_time').css(CSS_DSP,CSS_B); $('#booking_time_label').css(CSS_DSP,CSS_B); var selected = "";//no Preselect var disabled = ""; if(!isNullOrEmpty(selectedtime) && selectedtime != NULL) { selected = ""; } if(isNullOrEmpty(selectedsubitem) || selectedsubitem == NULL) { selectedsubitem = RES_SUCCESS; } var bookingtext =''; var maxcols = 0; res.forEach(function(sd) { if(sd.articlesubItemRequired==1 && parseInt(sd.max_acc) > parseInt(maxcols)) { maxcols = parseInt(sd.max_acc); } else if(sd.articlesubItemRequired==0) { maxcols = 1; } }); if (res.length > 0) { bookingtext+=""; for(var i = 0;i<=maxcols;i++) { if (i==0) { bookingtext+=''; } else { if(maxcols==1) { bookingtext+=''; } else { bookingtext+=''; } } } bookingtext+=""; } res.forEach(function(sd) { bookingtext+=""; bookingtext+=''; for(var i = 1;i<=maxcols;i++) { disabled = ""; if(selectedtimes!= UNDEF && selectedtimes.includes(i + "_" + sd.time)) { selected = "active"; } if(isToday && sd.time_end < time) { disabled =DISABLED; selected = ""; if(selectedtime == sd.time) { selectedtime = ""; } } var color = "success"; if(sd.reservations.includes(i.toString())) { color = "bginfo"; } if(sd.tickets.includes(i.toString()) || sd.tickets.includes('full') || sd.ticketsToPay.includes(i.toString())) { color = "bgerror" disabled = DISABLED; selected = "false"; removeTime(sd.time,i); } if(disabled == DISABLED) { //color = "bginfo" } if(selectedtimes!= UNDEF && selectedtimes.includes(i + "_" + sd.time)) { selected = "active"; } bookingtext+=''; selected=""; } bookingtext+=""; }); bookingtext += "
    ZeitenBahn ' + i + '
    ' + sd.time + '
    "; $('#booking_time').html('').append(bookingtext); $(".timelink").click(function() { var isDisabled = $(this).hasClass(DISABLED); if(!isDisabled) { var value = $(this).data("item"); var subvalue = $(this).data("subitem"); if(toggleTime(value,subvalue)) { $(this).addClass('active'); } else { $(this).removeClass('active'); } $('#booking_amount').val(countPersons()); var tempdate = getWS(WS_BDATE); var datetoshow = ""; showDiscountScale(); } }); $('#booking_amount').val(countPersons()); } else { if(res == "") { $('#booking_time').html("

    Aufgrund einer Veranstaltung kann dieser Stand nicht gebucht werden.

    "); } else { $('#booking_time').css(CSS_DSP,CSS_NONE); } $('#booking_time_label').css(CSS_DSP,CSS_NONE); } } }); } function drawWarenkorb() { $('.delfromWK').click(function () { var tag = $(this).data("tag"); var time = $(this).data("time"); var timeEnd = $(this).data("timeend"); var itemnbr = $(this).data("itemnbr"); var subItem = $(this).data("subitem"); $.ajax({ url: PHP_MAIN, cache: false, data: {"wk": "removeArticle", "article":itemnbr, "subItem":subItem, "tag": tag, "time":time, "timeend":timeEnd}, method: POST, async: false, success: function(e) { if(e == "1") { var amount = getAmountAnyArticles(); if(amount <=0) { back(); } location.reload(); $('#btnWKArtikelAmount').html('(' + amount + ') Artikel'); } else if(e == "11") { location.reload(); } } }); }); $('.removeCreditValueWK').click(function() { setWS(WS_PWC, ""); setWS(WS_PWCA, ""); setWS(WS_DA, RES_SUCCESS); location.reload(); }); $('#check_rabattcode').on('click',function(e){ var code = $('#booking_rabattcode').val(); CheckRabattCode(code); }); } function CheckRabattCode(code) { var fdata = new FormData(); fdata.append("rabattcode", "check"); fdata.append("code", code); $.ajax({ type: POST, url: PHP_MAIN, data: fdata, dataType: 'json', contentType: false, cache: false, processData:false, success: function (res) { if (res == "0") { setError("booking_rabattcode"); $('#hinweis_rabattcode').text("Der Rabattcode ist nicht gültig"); } else { if(res.error != UNDEF && res.error != "") { setError("booking_rabattcode"); $('#hinweis_rabattcode').text(res.error); } else { ba.rabattCode=res; saveWK(); location.reload(); } } } }); } function checkRefreshNeeded() { var lastrefresh = getWS(WS_LASTREFRESH); var yesterday = new Date(); yesterday = yesterday.setDate(yesterday.getDate() - 1); //console.log(lastrefresh); if(lastrefresh == UNDEF || lastrefresh == NULL || lastrefresh 0) { $('#free_usage').html(res.free); $('.addbutton').removeAttr(DISABLED); } else { var iswertkarte = false; articles.forEach(function(ar) { if(ar.itemnbr == selectedTarif) { iswertkarte = ar.isWertkartenArtikel(); if(iswertkarte) { $('.timediv').css(CSS_DSP, CSS_NONE); $('#booking_time_label').css(CSS_DSP, CSS_NONE); $('#v_oneHouse').css(CSS_DSP, CSS_NONE); $('#article_price').css(CSS_DSP, CSS_NONE); if(ar.type == TYPEGUTSCHEIN) { addType7Text(); $('#booking_time').css(CSS_DSP, CSS_INB); } else { $('#div_ggValue').remove(); } } else { $('.timediv').css(CSS_DSP, CSS_B); } } }); if(isNullOrEmpty(selectedTarif)) { $('#free_usage').html("Artikel auswählen"); }else { if(iswertkarte) { $('#free_usage').html(""); } else { $('#free_usage').html("Keine"); } } if(res.free != -99) { $('.addbutton').attr(DISABLED,DISABLED); } else { $('.addbutton').removeAttr(DISABLED); } } } else { $('.spacedisplay').css(CSS_DSP,CSS_NONE); } } }); } function loadTimes() { if(new Date() Buchungsystem noch nicht freigegeben'); return; } var date = getActBookingDate(); var filter = "day"; $.ajax({ type: POST, url: PHP_MAIN, data: {"seatsdefine": filter, "date":date}, method: POST, dataType: 'json', cache: false, async:false, success: function (res) { $('#booking_time >tbody').html(''); if(res != "0") { var td = new Date(); var today =getFormatedDate(td); var time = getFormatedTime(td); var isToday = false; if(date == today) { isToday=true; } var selectedtime = getWS(WS_BTIME); var selectedtarif = getWS(WS_BTARIF); var selected = ""; var disabled = ""; if(!isNullOrEmpty(selectedtime) && selectedtime != NULL) { selected = ""; } if(res.length == 1) { selectedtime = res[0].time; } res.forEach(function(sd) { if(typeof sd != "number") { disabled = ""; if(isNullOrEmpty(selectedtime) || selectedtime == NULL) { if(sd.anzahltickets == 0) { selectedtime = sd.time; } } if(selectedtime == sd.time && (isNullOrEmpty(selectedtarif) || selectedtarif == sd.ref_item) && sd.anzahltickets == 0) { selected = SELECTED; selectedtarif = sd.ref_item; setWS(WS_BTARIF,selectedtarif); } if(isToday && sd.time_end < time) { disabled =DISABLED; selected = ""; if(selectedtime == sd.time) { selectedtime = ""; } } if(selectedtime == sd.time) { selected = "active"; } var color = "";//success if(sd.anzahlres >0) { color = "bginfo"; } var displayanzahlfrei = "100+"; if(sd.anzahltickets> 0 && sd.anzahlfrei == 0) { color = "error" } if(sd.anzahlfrei<=100) { displayanzahlfrei = sd.anzahlfrei; } if(disabled == DISABLED) { color = "bginfo" } $('#booking_time >tbody').append(''+ sd.time + ' Uhr'+ sd.time_end + ' Uhr' + displayanzahlfrei + 'Zur Tarifauswahl'); selected=""; } else { $('#booking_time').html("Keine Zeiten verfügbar"); } }); $(".timelink").click(function() { var isDisabled = $(this).hasClass("disabled"); if(!isDisabled) { var value = $(this).data("item"); var value_end = $(this).data("itemend"); setTime(value,value_end); next(); } }); } else { $('#booking_time').html("Keine Zeiten verfügbar"); } } }); } function loadTarife() { var date = getWS(WS_BDATE); var timestart = getWS(WS_BTIME); var timeend = getWS(WS_BTIMEEND); if(new Date() < BOOKINGENABLED) { $('#booking_time').html('Buchungsystem noch nicht freigegeben'); $('#booking_tarif').find('option').remove(); return; } return $.ajax({ type: POST, url: PHP_MAIN, data: {"article": "withdaytime", "date": date, "time": timestart, "timeend":timeend}, method: POST, dataType: 'json', cache: false, success: function (res) { articles = new Array(); res.forEach(function(at) { var art = new Article(at.itemnbr, at.description, at.infotext, at.item_code, at.type, at.wgruppe, at.percent, at.discountable, at.displayColor, at.foreColor, at.subItemRequired); art.wgruppebezeichnung = at.wgruppeBezeichnung; art.datetimeRequired = at.datetimeRequired; art.customerRequired = at.customerRequired; art.setPicture(at.picture); if(at.discounts != null) { at.discounts.forEach(function(d) { var dis = new Discount(d.idx, d.ref_idx, d.amount, d.price, d.description, d.multiplier); art.discounts.push(dis); }); } articles.push(art); }); $.when(loadEvents()).done(function(a1) { setArticleInfos(); refreshWK(); setUsage(); }); } }); } function getArticleAmountWK() { $.ajax({ type: POST, url: PHP_MAIN, data: {"wk": "getArticleAmountWK"}, method: POST, dataType: 'json', cache: false, success: function (res) { } }); } function checkSupportNeeded(itemnbr, amount) { if(amount > 0) { articles.forEach(function(at){ if(at.itemnbr == itemnbr) { if(at.customerRequired==2) { var valp1 =0; if(isNullOrEmpty($('#itemnbr_' + PARENT1).val()) == false) { valp1 = parseInt($('#itemnbr_' + PARENT1).val()); } var valp2 = 0; if(isNullOrEmpty($('#itemnbr_' + PARENT2).val()) == false) { valp2 = parseInt($('#itemnbr_' + PARENT2).val()); } var valp3 = 0; if(isNullOrEmpty($('#itemnbr_' + PARENT3).val()) == false) { valp3 = parseInt($('#itemnbr_' + PARENT3).val()); } if(valp1 <=0 && valp2 <=0) { $('#notice_' + itemnbr).css(CSS_DSP, CSS_INB); $('#notice_' + itemnbr).html("Es wird eine zusätzliche erwachsene Begleitperson benötigt"); } else { $('#notice_' + itemnbr).css(CSS_DSP, CSS_NONE); } } } }); } else { $('#notice_' + itemnbr).css(CSS_DSP, CSS_NONE); } } function setPriceDisplay(itemnbr, amount) { var singleprice = 0; $.ajax({ type: POST, url: PHP_MAIN, data: {"article": "totalprice", "itemnbr":itemnbr, "amount": amount}, method: POST, dataType: 'json', cache: false, success: function (res) { singleprice=res; if(singleprice > 0) { $('#' + itemnbr + '_price').html(formatPrice(singleprice)) } } }); } function countPersons() { var selectedtime = getWS(WS_BTIME); var selectedtimes = JSON.parse(selectedtime); var amountCols = 0; if(selectedtimes != UNDEF) { var listrows = [] selectedtimes.forEach(elm => { var split = elm.split("_"); if(!listrows.includes(split[0])) { amountCols++; listrows.push(split[0]); } }); } return amountCols; } function setTime(time, time_end) { setWS(WS_BTIME,time); setWS(WS_BTIMEEND,time_end); addTimes(time, time_end); saveWK(); } function addTimes(zeit, zeitEnde) { $.ajax({ url: PHP_MAIN, cache: false, data: {"wk": "addTimes", "zeit":zeit, "zeitEnde": zeitEnde}, method: POST, async: false, success: function(e) { if(e == "1") { } } }); } function saveWK() { var amount = getAmountAnyArticles(); if(amount>0) { $('#mnuBtnChart').css(CSS_DSP,CSS_INB); $('#amountinChart').html(amount); } else { $('#amountinChart').html("0"); $('#mnuBtnChart').css(CSS_DSP,CSS_NONE); } } function toggleTime(time, subitem) { var combined = subitem + "_" + time; var times= []; var temp = getWS(WS_BTIME); if(!isNullOrEmpty(temp)) { times = JSON.parse(temp); } var added = false; if(!times.includes(combined)) { times.push(combined); added=true; } else { var index = times.indexOf(combined); times.splice(index, 1); } times.sort(); setWS(WS_BTIME,JSON.stringify(times)); return added; } function removeTime(time, subitem) { var combined = subitem + "_" + time; var times= []; var temp = getWS(WS_BTIME); if(!isNullOrEmpty(temp)) { times = JSON.parse(temp); } if(times.includes(combined)== true) { var index = times.indexOf(combined); times.splice(index, 1); } times.sort(); setWS(WS_BTIME,JSON.stringify(times)); } function uuidv4() { return ([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g, c => (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16) ); } function initFormRegister() { var options = { onLoad: function () { }, onKeyUp: function (evt) { $(evt.target).pwstrength("outputErrorList"); }/*, activated:{ wordNotEmail: true, wordMinLength: true, wordMaxLength: false, wordInvalidChar: true, wordSimilarToUsername: true, wordSequences: true, wordTwoCharacterClasses: false, wordRepetitions: false, wordLowercase: true, wordUppercase: true, wordOneNumber: true, wordThreeNumbers: true, wordOneSpecialChar: true, wordTwoSpecialChar: true, wordUpperLowerCombo: true, wordLetterNumberCombo: true, wordLetterNumberCharCombo: true }, rules : { commonPasswords:['12345678', 'password', 'passwort','000000000'] }*/ }; $('#user_pwd').pwstrength(options); $('#user_prename').focus(); $("#user_email").on('blur', function(e){ emailInValidorDouble(); }); if(FIRMAPOSSIBLE) { $('#row_firmapossible').css(CSS_DSP, CSS_B); $('#user_iscompany').change(function() { if(this.checked) { $('#row_firma').css(CSS_DSP, CSS_B); } else { $('#row_firma').css(CSS_DSP, CSS_NONE); } }); } var submitActor = null; var $form = $('#register_formular'); var $submitActors = $form.find('button[type=submit]'); $submitActors.click(function(event) { submitActor = this; }); $("#register_formular").on('submit', function(e){ if (null === submitActor) { // If no actor is explicitly clicked, the browser will // automatically choose the first in source-order // so we do the same here submitActor = $submitActors[0]; } var autologinAndSendToMyInformation = submitActor.value == "RegisterAndMore"; //console.log(autologinAndSendToMyInformation); e.preventDefault(); var gebdat = getFormatedGebDat($('#user_gebdat').val()); var nomobile = $('#user_nomobile').is(':checked'); var mobile = ""; $("#register_formular"). attr("disabled", true); var formok = true; var fieldok = validateText(UPRENAME); if(!fieldok) {formok = false;} fieldok = validateText(UNAME); if(!fieldok) {formok = false;} fieldok = validateEmail(UEMAIL); if(!fieldok) {formok = false;} cleanMobile(UMOBILE); if(!nomobile) { fieldok =validateMobile(UMOBILE,"user_mobilepraefix"); if(!fieldok) {formok = false;} mobile = $('#' + UMOBILE).val().trim(); if(mobile.startsWith("0")) { mobile = $('#user_mobilepraefix').val().trim() + mobile.substring(1); } else { mobile = $('#user_mobilepraefix').val().trim() + mobile; } } else { mobile=""; setSuccess(UMOBILE); } fieldok = validatePlz(UPLZ); if(!fieldok) {formok = false;} fieldok = validateText(UCITY); if(!fieldok) {formok = false;} fieldok = validateText(USTREET); if(!fieldok) {formok = false;} fieldok = validateText(UPWD); if(!fieldok) {formok = false;} fieldok = validateText(UPWD2); if(!fieldok) {formok = false;} var isCompany = 0; if(FIRMAPOSSIBLE) { if($('#user_iscompany').prop('checked')==true) { isCompany = 1; fieldok = validateText(UCOMPANY); if(!fieldok) {formok = false;} } } if($('#user_pwd').val() != $('#user_pwd2').val()) { var div = $("#user_pwd2").closest("div"); $("#glypcnuser_pwd2").remove(); toggleClasses(div, "has-success", "has-error has-feedback"); div.append(''); formok=false; } if(formok) { if(emailInValidorDouble()){formok = false;} var checkval = checkAccountExists(); if(checkval) { if(confirm("Es scheint als haben sie bereits einen Account. Registrierung trotzdem fortsetzen?") == false) { formok = false; } } } if(!formok) { $("#register_formular"). attr("disabled", false); return false; } var consent = 0; var chk_agb = $('#chk_agb').prop('checked'); if(chk_agb == true) { consent+=1; } var chk_dsgvo = $('#chk_dsgvo').prop('checked'); if(chk_dsgvo == true) { consent+=4; } var chk_nutzungsbedingungen = $('#chk_nutzungsbedingungen').prop('checked'); if(chk_nutzungsbedingungen == true) { consent+=2; } var formdata = new FormData(); formdata.append(UPRENAME, $('#user_prename').val().trim()); formdata.append(UNAME, $('#user_name').val().trim()); formdata.append(UEMAIL, $('#user_email').val().trim()); formdata.append(UPLZ, $('#user_plz').val().trim()); formdata.append(UCITY, $('#user_city').val().trim()); formdata.append(USTREET, $('#user_street').val().trim()); formdata.append(UPWD, md5($('#user_pwd').val())); formdata.append(UMOBILE, mobile); formdata.append(UCOMPANY, $('#user_companyname').val().trim()); formdata.append("iscompany", isCompany); formdata.append("gebdat", gebdat); formdata.append("notes", $('#user_notes').val().trim()); formdata.append("consents", consent); var urltocall = PHP_MAIN + "?register=me"; $.ajax({ type: POST, url: urltocall, data: formdata, dataType: 'json', contentType: false, cache: false, processData:false, success: function (response) { if(response == RES_SUCCESS) { if(autologinAndSendToMyInformation == false) { alert("Registrierung erfolgreich"); navigate(P_LOGIN); } else { alert("Registrierung erfolgreich. Auf der nächsten Seite kannst du deine Freunde hinterlegen."); var formdata = new FormData(); formdata.append("login_user",$('#user_email').val()); formdata.append("login_pwd", md5($('#user_pwd').val())); doLogin(formdata,P_USER); } } else if(response == "-1") { alert('E-Mailadresse bereits verwendet'); $("#register_formular"). attr("disabled", false); } else { alert("Registrierung fehlgeschlagen"); $("#register_formular"). attr("disabled", false); } }, statusCode: { 401: function () { navigate(P_BOOKING); }, 404: function () { navigate(P_BOOKING); } } }); return false; }); } function doLogin(formdata, successpage) { var urltocall = PHP_MAIN + "?login=me"; $.ajax({ type: POST, url: urltocall, data: formdata, dataType: 'json', contentType: false, cache: false, processData:false, success: function (res) { if(res != "0" && res!= "-1") { user = new User(res.idcustomer, res.name, res.prename, res.email, res.mobile, res.street, res.plz, res.city, "", res.hasVIP, res.infoanstate, res.infoan, res.gebdat, res.companyname, res.iscompany, res.consents, res.contact_choice); user.hasAdmin = res.hasAdmin; user.hasOV = res.hasOV; user.bemerkung = res.bemerkung; user.hasReserv = res.hasReserv; setWS(WS_USER,JSON.stringify(user)); setWS(WS_LOGEDIN,TRUE); bookingallowed=true; if(res.custasp != UNDEF && res.custasp != "0") { custasp = res.custasp; setWS(WS_ASP,JSON.stringify(custasp)); } else { custasp = []; } setLogedIn(); refreshUser(); var nextpage = getWS(WS_NEXTP); if(nextpage == UNDEF || nextpage == null || nextpage == "") { navigate(successpage); } else { setWS(WS_NEXTP, ""); navigate(nextpage); } } else if(res == "-1") { setError("login_pwd"); setError("login_user"); $('#result').html('Dein Konto wurde gesperrt. Dafür gibt es einen Grund. Diesen bitte bei der SAPB erfragen.'); } else { setError("login_pwd"); setError("login_user"); $('#result').html('Passwort oder Benutzername ungültig.'); } }, error: function (rest) { alert(rest); } }); } function checkAccountExists() { var formok = true; var fieldok = false; if($('#user_prename').val().trim() != "") { fieldok=validateText(UPRENAME); if(!fieldok) {formok = false;} } if($('#user_name').val().trim() != "") { fieldok=validateText(UNAME); if(!fieldok) {formok = false;} } if($('#user_street').val().trim() != "") { fieldok=validateText(USTREET); if(!fieldok) {formok = false;} } if(!formok) { return false; } var fdata = new FormData(); fdata.append(UPRENAME, $('#user_prename').val().trim()); fdata.append(UNAME, $('#user_name').val().trim()); fdata.append(USTREET, $('#user_street').val().trim()); fdata.append(PREGISTER, "checkuserdata"); var resp = ""; var responseText= $.ajax({ type: POST, url: PHP_MAIN, data: fdata, dataType: 'json', contentType: false, cache: false, async: false, processData:false, success: function (response) { if(response == "-1") { var div = $("#user_prename").closest("div"); $("#glypcnuser_prename").remove(); toggleClasses(div, "has-success", "has-warning has-feedback"); div.append(''); div = $("#user_name").closest("div"); $("#glypcnuser_name").remove(); toggleClasses(div, "has-success", "has-warning has-feedback"); div.append(''); div = $("#user_street").closest("div"); $("#glypcnuser_street").remove(); toggleClasses(div, "has-success", "has-warning has-feedback"); div.append(''); } resp= response; }, statusCode: { 401: function () { navigate(P_BOOKING); }, 404: function () { navigate(P_BOOKING); } } }).responseText; return resp == "-1"; } function emailInValidorDouble() { var formok = true; var fieldok = validateEmail(UEMAIL); if(!fieldok) {formok = false;} if(!formok) { return false; } var fdata = new FormData(); fdata.append(UEMAIL, $('#user_email').val()); fdata.append(PREGISTER, "checkmail"); return $.ajax({ type: POST, url: PHP_MAIN, data: fdata, dataType: 'json', contentType: false, cache: false, async: false, processData:false, success: function (response) { if(response == "-1") { var div = $("#user_email").closest("div"); $("#glypcnuser_email").remove(); toggleClasses(div, "has-success", "has-error has-feedback"); div.append(''); alert('Diese E-Mail Adresse wird bereits verwendet.\nBitte versuchen Sie sich NICHT erneut zu registrieren!\nVerwenden Sie besser die "Passwort ändern" Funktion, Sie erhalten dann eine E-Mail und können Ihr Passwort ändern - oder falls noch keines vergeben, ein Neues erstellen. Danke dafür.'); $("#user_email").val(""); } }, statusCode: { 401: function () { navigate(P_BOOKING); }, 404: function () { navigate(P_BOOKING); } } }).responseText == RES_SUCCESS; } function initFormLogin() { $('#login_user').focus(); $("#login_formular").on('submit', function(e){ e.preventDefault(); var formok = true; var fieldok = validateEmail("login_user"); if(!fieldok) {formok = false;} fieldok = validateText("login_pwd"); if(!formok) { return false; } var formdata = new FormData(); formdata.append("login_user", $('#login_user').val()); formdata.append("login_pwd", md5($('#login_pwd').val())); doLogin(formdata,P_BOOKING); return false; }); } function initFormPwdForget() { $("#pwdforget_formular").on('submit', function(e){ e.preventDefault(); var formok = true; var fieldok = validateEmail(WS_USER); if(!fieldok) {formok = false;} if(!formok) { return false; } var formdata = new FormData(); formdata.append(WS_USER, $('#user').val()); var urltocall = PHP_MAIN + "?pwdforget=me"; $.ajax({ type: POST, url: urltocall, data: formdata, dataType: 'json', contentType: false, cache: false, processData:false, success: function (res) { if(res == RES_SUCCESS) { $('#result').html("Sie erhalten in Kürze eine E-Mail um ihr Passwort zurück zu setzen."); } }, statusCode: { 401: function () { navigate(P_LOGIN); }, 404: function () { navigate(P_LOGIN); } } }); return false; }); } function initFormPwdForget2(flag, user) { var options = { onLoad: function () { // $('#messages').text('Start typing password'); }, onKeyUp: function (evt) { $(evt.target).pwstrength("outputErrorList"); } /*, rules : { commonPasswords:['12345678', 'password', 'passwort','000000000'] }*/ }; $('#pwd').pwstrength(options); $('#flag').val(flag); $('#user').val(user); var formdata = new FormData(); formdata.append("flag", $('#flag').val()); var urltocall = PHP_MAIN + "?pwdforget=cf"; $.ajax({ type: POST, url: urltocall, data: formdata, dataType: 'json', contentType: false, cache: false, processData:false, success: function (res) { if(res != RES_SUCCESS) { $('#result').html('Der Link ist ungültig'); $('#pwdforget2_fs').attr(DISABLED,DISABLED); } }, statusCode: { 401: function () { navigate(P_LOGIN); }, 404: function () { navigate(P_LOGIN); } } }); $("#pwdforget2_formular").on('submit', function(e){ e.preventDefault(); var formok = true; var fieldok = validateText("pwd"); if(!fieldok) {formok = false;} fieldok = validateText("pwd2"); if(!fieldok) {formok = false;} if($('#pwd').val() != $('#pwd2').val()) { var div = $("#pwd2").closest("div"); $("#glypcnpwd2").remove(); toggleClasses(div, "has-success", "has-error has-feedback"); div.append(''); formok=false; } if(!formok) { return false; } var formdata = new FormData(); formdata.append("pwd", md5($('#pwd').val())); formdata.append("flag", $('#flag').val()); formdata.append(WS_USER, $('#user').val()); var urltocall = PHP_MAIN + "?pwdforget=new"; $.ajax({ type: POST, url: urltocall, data: formdata, dataType: 'json', contentType: false, cache: false, processData:false, success: function (res) { if(res == RES_SUCCESS) { $('#result').html('Passwort erfolgreich zurück gesetzt'); window.setTimeout( returnToLogin, 3000 ); } else { $('#result').html('Fehler beim zurücksetzen des Passworts'); } }, statusCode: { 401: function () { navigate(P_LOGIN); }, 404: function () { navigate(P_LOGIN); } } }); return false; }); } function returnToLogin() { navigate(P_LOGIN); } function resetUserChangeButtons() { $('#user_changedata').removeClass('bgsuccess') .removeClass('bgerror') .removeClass('bginfo'); $('#user_changedata_info').removeClass('success') .removeClass('error') .removeClass('info') .css(CSS_DSP,CSS_NONE) .html(''); $('#u_chgpwd').removeClass('bgsuccess') .removeClass('bgerror') .removeClass('bginfo'); $('#u_chgpwd_info').removeClass('success') .removeClass('error') .removeClass('info') .css(CSS_DSP,CSS_NONE) .html(''); $('.saveasp').removeClass('bgsuccess') .removeClass('bgerror') .removeClass('bginfo'); $('#user_asp_info').removeClass('success') .removeClass('error') .removeClass('info') .css(CSS_DSP,CSS_NONE) .html(''); } function initFormTickets() { user = setUserFromWS(); if(user != UNDEF) { loadMyTickets(RES_SUCCESS); $("#select_mytickets_filter").change(function() { var selected = $('#select_mytickets_filter').val(); setWS("ticketfilter",selected); loadMyTickets(selected); }); } } function loadMyTickets(filter) { user = setUserFromWS(); if(user != UNDEF ) { $.ajax({ url: PHP_MAIN, cache: false, data: {"mytickets": PME, "filter": filter}, method: POST, dataType: 'json', success: function(data) { $('#tickets_ready').html(''); $('#credits_ready').html(''); var cont_T = ""; var cont_C = ""; var count_T = 0; var count_C = 0; if(data == "0") { cont_T = '
    '; cont_C = '
    '; } else if(data == "-999") { logout(); } else { data.forEach(function(t){ if(t.type != 3 && t.type != 7 && t.type != 8 && t.type != 14) { var color = "odd"; if(count_T%2 == 0) {color="even";} cont_T += '
    '; cont_T += '
    '; cont_T += ''; cont_T+= '
    '; cont_T += '
    '; cont_T += ''; try { if(t.ticketjson != UNDEF && t.ticketjson != "") { cont_T += '
    '; } } catch{ } cont_T += '
    '; cont_T += '
    '; cont_T += ''; cont_T+= '
    '; cont_T += '
    '; cont_T += ''; cont_T+= '
    '; cont_T += '
    '; cont_T += ''; if(STORNOALLOWED) { var date1 = germanDateToDate(t.ticket_date); var Difference_In_Time = date1.getTime() - new Date().getTime(); var Difference_In_Days = Difference_In_Time / (1000 * 3600); if(filter == 1) { if (Difference_In_Days >= STORNOTIMEOUT) cont_T += ''; } else if(filter == -2) { if (Difference_In_Days >= STORNOTIMEOUT) cont_T += ''; } } if(!isNullOrEmpty(t.last_usage)) { cont_T += ''; } cont_T+= '
    '; cont_T += '
    '; if(t.ref_id_cust_asp > 0) { cont_T += ''; if(filter == 0) cont_T += ''; } cont_T+= '
    '; cont_T+= '
    '; count_T++; } else { var color = "odd"; if(count_C%2 == 0){color="even";} cont_C += '
    '; cont_C += '
    '; cont_C += ''; cont_C+= '
    '; cont_C += '
    '; cont_C += ''; cont_C+= '
    '; cont_C += '
    '; cont_C += ''; cont_C+= '
    '; cont_C += '
    '; cont_C += ''; cont_C+= '
    '; cont_C += '
    '; cont_C += ''; if(!isNullOrEmpty(t.last_usage)) { cont_C += ''; } if(t.valid == -99) { cont_C += ''; } cont_C+= '
    '; cont_C += '
    '; if(t.ref_id_cust_asp > 0) { cont_C += ''; } if(t.valid >=0 && t.credit > 0) { cont_C += ' '; } //cont_C += ''; cont_C+= '
    '; cont_C+= '
    '; count_C++; } }); } if(cont_T == "") { cont_T += '
    '; cont_T += '
    '; cont_T += ''; cont_T+= '
    '; cont_T+= '
    '; } if(cont_C == "") { cont_C += '
    '; cont_C += '
    '; cont_C += ''; cont_C+= '
    '; cont_C+= '
    '; } $('#tickets_ready').html(cont_T); $('#credits_ready').html(cont_C); $(".buyWith").click(function() { var value = $(this).data(PID); var itemnbr = $(this).data(PIDA); setWS(WS_PWC, value); setWS(WS_PWCA, itemnbr); $.when(getCreditvalue()).done(function(a1) { saveWK(); setCreditItem(value,itemnbr); }); }); $(".buyHistory").click(function() { var value = $(this).data(PID); showBuyHistory(value); }); $(".changeasp").click(function() { var value = $(this).data(PID); var prename = $(this).data("prename"); var name = $(this).data("name"); editASP(value, prename, name); }); $(".stornoTicket").click(function() { var value = $(this).data(PID); var ticketcode = $(this).data("tc"); var destination = $(this).data("destination"); stornoTicket($(this), ticketcode, destination); }); $('#btn_take_ticket_ownership').click(function() { $('#ticketinfo').removeClass("error"); $('#ticketinfo').html(''); var ticketcode = $('#tb_take_ticket_ownership').val(); if(ticketcode != "") { if(ticketcode.length <9) { $('#ticketinfo').html("Der Ticketcode ist zu kurz. (9 Stellen)"); $('#ticketinfo').addClass("error"); return; } else if(ticketcode.length >9) { $('#ticketinfo').html("Der Ticketcode ist zu lang. (9 Stellen)"); $('#ticketinfo').addClass("error"); return; } if(takeTicketOwnership(ticketcode) == "-1") { $('#ticketinfo').html("Fehler beim Abrufen der Ticketdaten."); $('#ticketinfo').addClass("error"); } } else { $('#ticketinfo').html("Kein Ticketcode eingegeben"); $('#ticketinfo').addClass("error"); return; } }); } }); } else { returnToLogin(); } } function stornoTicket(sender, ticketcode, destination) { if(!STORNOALLOWED) return; if(!isNullOrEmpty(ticketcode)) { user = setUserFromWS(); if(user != UNDEF) { $.ajax({ type: POST, url: PHP_MAIN, data: {"mytickets": "stornoTicket", "ticketcode": ticketcode, "user": user.idcustomer, "stornodestination":destination}, method: POST, dataType: 'json', cache: false, success: function (res) { if(res == 1) { sender.addClass("bgsuccess"); sender.html("Storno erfolgreich"); sender.delay(2000).queue(function() { loadMyTickets(1); }); } else { sender.addClass("bgerror"); sender.html("Storno nicht erfolgreich"); sender.delay(2000).queue(function() { $(this).html(sender.data("content")); $(this).removeClass("bgerror"); }); } } }); } else { return "-1"; } } else { return "-1"; } } function takeTicketOwnership(ticketcode) { if(!isNullOrEmpty(ticketcode)) { user = setUserFromWS(); if(user != UNDEF) { $.ajax({ type: POST, url: PHP_MAIN, data: {"mytickets": "takeownership", "ticketcode": ticketcode, "user": user.idcustomer}, method: POST, dataType: 'json', cache: false, success: function (res) { $('#ticketinfo').removeClass("success"); $('#ticketinfo').removeClass("error"); if(res == 1) { loadMyTickets(1); $('#ticketinfo').html("Ticket erfolgreich übernommen."); $('#ticketinfo').addClass("success"); } else if(res == "0") { $('#ticketinfo').html("Kein passendes Ticket gefunden."); $('#ticketinfo').addClass("error"); } else if(res == "-1") { $('#ticketinfo').html("Kein passendes Ticket gefunden."); $('#ticketinfo').addClass("error"); } else if(res == "-2") { $('#ticketinfo').html("Kein eindeutiges Ticket gefunden."); $('#ticketinfo').addClass("error"); } else if(res == "-3") { $('#ticketinfo').html("Fehler beim Einlösen. Bitte noch einmal probieren."); $('#ticketinfo').addClass("error"); } else if(res == "-4") { $('#ticketinfo').html("Der Gutschein wurde bereits eingelöst."); $('#ticketinfo').addClass("error"); } else if(res == "-5") { loadMyTickets(1); $('#ticketinfo').html("Der Gutschein gehört bereits diesem Konto."); $('#ticketinfo').addClass("success"); } else if(res == "-99") { $('#ticketinfo').html("Das Guthaben ist aufgebraucht."); $('#ticketinfo').addClass("error"); } else { $('#ticketinfo').html(res); $('#ticketinfo').addClass("error"); } } }); } else { return "-1"; } } else { return "-1"; } } function editASP(value, prename, name) { $('#nameToReplace_' + value)[0].parentElement.innerHTML+= (''); } function setCreditItem(value, itemnbr) { user = setUserFromWS(); if(user != UNDEF) { if(isLogedIn()) { setWS(WS_PWC, value); setWS(WS_PWCA, itemnbr); loadBooking(); } } } function showBuyHistory(id) { alert("TODO, Anzeige der Historie implementieren."); } function loadArtikelWGFilter(loadAlways = false) { } function loadEvents() { $('#booking_events').html(''); var tempdate = getWS(WS_BDATE); var temptime = getWS(WS_BTIME); var datetoshow = ""; if(new Date() < BOOKINGSTART) { $('#booking_time').html('Buchungsystem noch nicht freigegeben'); $('#booking_tarif').find('option').remove(); return; } $('#bk1_row_events').css(CSS_DSP, CSS_NONE); datetoshow= tempdate; return $.ajax({ type: POST, url: PHP_MAIN, data: {"article": "events", "date": datetoshow, "time": temptime}, method: POST, dataType: 'json', cache: false, success: function (res) { $('#booking_events').html(''); res.forEach(function(at) { if(at != 0) { $('#bk1_row_events').css(CSS_DSP, CSS_B); var art = new Article(at.item_nbr, at.description, at.infotext, at.item_code, at.type, at.wgruppe, at.percent, at.discountable, at.displayColor, at.foreColor, at.subItemRequired); art.datetimeRequired = at.datetimeRequired; art.customerRequired = at.customerRequired; art.setPicture(at.picture); if(at.discounts != null) { at.discounts.forEach(function(d) { var dis = new Discount(d.idx, d.ref_idx, d.amount, d.price, d.description, d.multiplier); art.discounts.push(dis); }); } var exists = false articles.forEach(function(exart) { if(art.itemnbr == exart.itemnbr) { exists=true; } }); if(exists == false) { articles.push(art); } var datetemp = at.seatsSchedule[0].schedule_start.split("-"); var eventdate = datetemp[2]+"."+datetemp[1]+"."+datetemp[0]; if(eventdate.startsWith("undefined")) { eventdate = ""; } var optionstring = '0 && at.discounts[0] != 0 && at.discounts[0].price > 0) { discountstring = ' ' + at.discounts[0].price + '€'; } optionstring += ' data-id="' + at.item_nbr + '" data-date="' + eventdate + '" data-time="' + at.seats[0].time + '" data-timeend="' + at.seats[0].time_end + '">'+ eventdate + ' - ' + at.description + discountstring + '
    ' + at.infotext + ''; if(at.type != TYPEWERTKARTE2) { $('#booking_events').append(optionstring); } if(at.type == TYPEEINTRITT && at.item_nbr == lastselectedTarif) { tarifexists=true; } } }); $('.eventlink').click(function () { var itemnbr = $(this).data(PID); var date = $(this).data("date"); var time = $(this).data("time"); var timeEnd = $(this).data("timeend"); var amount = $('#booking_amount').val(); var price = 0; var a = UNDEF; articles.forEach(function(exart) { if(exart.itemnbr == itemnbr) { a = exart; } }); if(amount == "") { amount = RES_NBR1; } var iAmount = parseInt(amount); if(iAmount <=0) { iAmount = 1; } if(!isNullOrEmpty(itemnbr)) { addTimes(time,timeEnd); addArticleZumZeitpunkt(itemnbr, iAmount, 1); saveWK(); refreshWK(); } }); } }); } function loadArtikel() { $('#booking_tarif').find('option').remove(); var tempdate = getWS(WS_BDATE); //console.log(tempdate); var temptime = getWS(WS_BTIME); var datetoshow = ""; if(new Date() < BOOKINGENABLED) { $('#booking_time').html('Buchungsystem noch nicht freigegeben'); $('#booking_tarif').find('option').remove(); return; } if(tempdate != null) { datetoshow= tempdate; return $.ajax({ type: POST, url: PHP_MAIN, data: {"article": "withdaytime", "date": datetoshow, "time": temptime}, method: POST, dataType: 'json', cache: false, success: function (res) { $('#booking_tarif').find('option').remove(); $('#booking_tarifgruppe').find('option').remove(); var selected = SELECTED; if(DISPLAYWGRUPPESELECT) { if(res.lengt > 0) { $('#booking_tarifgruppe').append(''); $("#booking_tarifgruppe").change(function() { filterArticlelListe(); }); } else { $('#booking_tarifgruppe').append(''); } } articles = new Array(); var lastselectedTarif = getWS(WS_BTARIF); var tarifexists = false; res.forEach(function(at) { var art = new Article(at.idx, at.item_nbr, at.description, at.infotext, at.item_code, at.type, at.wgruppe, at.percent, at.discountable, at.displayColor, at.foreColor, at.subItemRequired); art.datetimeRequired = at.datetimeRequired; art.customerRequired = at.customerRequired; art.setPicture(at.picture); if(at.discounts != null) { at.discounts.forEach(function(d) { var dis = new Discount(d.idx, d.ref_idx, d.amount, d.price, d.description, d.multiplier); art.discounts.push(dis); }); } articles.push(art); if(ALM!=1 || (art.isWertkartenArtikel())) { var optionstring = ''; if(at.type != 8) { $('#booking_tarif').append(optionstring); } } selected=""; if(at.type == TYPEEINTRITT && at.item_nbr == lastselectedTarif) { tarifexists=true; } }); if(tarifexists && lastselectedTarif != "") { $('#booking_tarif').val(lastselectedTarif); } else { lastselectedTarif = res[0].item_nbr; setWS(WS_BTARIF, res[0].item_nbr); $('#booking_tarif').val(lastselectedTarif); } $.when(loadEvents()).done(function(a1) { setArticleInfos(); refreshWK(); setUsage(); }); } }); } else { return $.ajax({ type: POST, url: PHP_MAIN, data: {"article": "basic", "time": temptime}, method: POST, dataType: 'json', cache: false, success: function (res) { var selected = SELECTED; articles = new Array(); res.forEach(function(ar) { var art = new Article(ar.idx, ar.item_nbr, ar.description, ar.infotext, ar.item_code, ar.type, ar.wgruppe, ar.percent, ar.discountable, ar.displayColor, ar.foreColor, ar.subItemRequired); art.datetimeRequired = ar.datetimeRequired; art.customerRequired = ar.customerRequired; art.setPicture(ar.picture); ar.discounts.forEach(function(d) { var dis = new Discount(d.idx, d.ref_idx, d.amount, d.price, d.description, d.multiplier); art.discounts.push(dis); }); articles.push(art); if(ALM!=1 || (art.isWertkartenArtikel())) { if(ar.type != 8) { $('#booking_tarif').append(''); } } selected=""; }); $.when(loadEvents()).done(function(a1) { setArticleInfos(); refreshWK(); }); } }); } } function filterArticlelListe() { var selectedfilter = $("#booking_tarifgruppe").val(); $('#booking_tarif').find('option').remove(); var selected = SELECTED; //console.log(articles); articles.forEach(function(ar) { if(selectedfilter == 0 || selectedfilter == ar.wgruppe) { if(ar.hide == UNDEF) { $('#booking_tarif').append(''); selected=""; } } }); setArticleInfos(); var tempdate = getWS(WS_BDATE); var datetoshow = ""; if(!isNullOrEmpty(tempdate)) { datetoshow= tempdate; } else { datetoshow = getFormatedDate(bookingstartdate); setWS(WS_BDATE,datetoshow); } setTimes(datetoshow); } function showDiscountScale() { var sel = $('#booking_tarif').val(); $('#article_infotext').html(''); $('#article_price').html(''); articles.forEach(function(ar) { if(ar.itemnbr == sel) { $('#article_infotext').html(ar.infotext); if(ar.discounts[0] != UNDEF && ar.discounts[0].price != UNDEF) { $('#article_price').html(formatPrice(ar.discounts[0].price) + " - " + ar.discounts[0].description); setUsage(); } } }); } function setArticleInfos() { var sel = $('#booking_tarif').val(); var oldsel = getWS(WS_BTARIF); setWS(WS_BTARIF, sel); $('#article_infotext').html(''); $('#article_price').html(''); //console.log(articles); articles.forEach(function(ar) { if(ar.itemnbr == sel) { $('#article_infotext').html(ar.infotext); if(ar.discounts[0] != UNDEF && ar.discounts[0].price != UNDEF) { $('#article_price').html(formatPrice(ar.discounts[0].price) + " - " + ar.discounts[0].description); setUsage(); } if(ar.isWertkartenArtikel()) { $('.timediv').css(CSS_DSP, CSS_NONE); $('#booking_time_label').css(CSS_DSP, CSS_NONE); $('#v_oneHouse').css(CSS_DSP, CSS_NONE); $('#article_price').css(CSS_DSP, CSS_NONE); if(ar.type == TYPEGUTSCHEIN) { addType7Text(); $('#booking_time').css(CSS_DSP, CSS_INB); } else if(ar.type != TYPEWERTKARTE) { $('#div_ggValue').remove(); } else { $('#div_ggValue').remove(); } if(ALM == 2 && ar.type == TYPEEINTRITT) { $('#booking_amount').prop(DISABLED,true); } else { $('#booking_amount').prop(DISABLED,false); } } else { $('#div_ggValue').remove(); $('.timediv').css(CSS_DSP, CSS_B); $('#booking_time_label').css(CSS_DSP, CSS_B); $('#booking_time').css(CSS_DSP, CSS_B); $('#v_oneHouse').css(CSS_DSP, CSS_INB); $('#article_price').css(CSS_DSP, CSS_INB); } return; } }); } function addType7Text() { var s = '
    '; s+='
    '; s+='
    '; s+=' '; s+='
    '; s+='
    '; s+='
    '; s+=' '; s+='
    '; s+='
    '; s+='
    '; s+='
    '; s+=' '; s+='
    '; s+='
    '; s+='
    '; s+='
    '; s+=' '; s+='
    '; s+='
    '; s+='
    '; s+='
    '; s+=' '; s+='
    '; s+='
    '; s+='
    '; s+=' '; s+='
    '; s+='
    '; s+='
    '; oldhtml = $('#booking_time').html(); $('#booking_time').html(s); } function timelinkClicked(item) { var isDisabled = $(item).hasClass(DISABLED); if(!isDisabled) { $('.activelink').removeClass('activelink'); $(item).addClass('activelink'); var value = $(item).data("item"); var tarif = $(item).data("article"); removeReservation(getWS(WS_BTARIF)); setWS(WS_BTARIF,tarif); setTime(value); } } function formatPrice(value) { var price = new Intl.NumberFormat('de-DE', { style: 'currency', currency: EUR }).format(value); return price; } function logout() { $.ajax({ type: POST, url: PHP_MAIN, data: {"logout": "me"}, method: POST, dataType: 'json', cache: false, async:false, success: function (res) { } }); setWS(WS_USER,""); ba = new Warenkorb(); saveWK(); setWS(WS_ASP,""); setWS(WS_LOGEDIN,FALSE); setWS(WS_FPCHANGE,FALSE); setLogedIn(); } function setLogedIn() { if(isLogedIn()) { $('#mnu_login').css(CSS_DSP,CSS_NONE); $('#mnu_reg').css(CSS_DSP,CSS_NONE); $('#mnu_logout').css(CSS_DSP,CSS_B); $('#personaldata').css(CSS_DSP,CSS_B); } else { $('#mnu_login').css(CSS_DSP,CSS_B); $('#mnu_reg').css(CSS_DSP,CSS_B); $('#mnu_logout').css(CSS_DSP,CSS_NONE); $('#loged_in_user').html("Benutzer"); $('#personaldata').css(CSS_DSP,CSS_NONE); } } function isActDateSelected() { var datetoshow = getWS(WS_BDATE); if(!isNullOrEmpty(datetoshow)) { var splittdate = datetoshow.split('.'); if(splittdate.length == 3) { var selecteddate = new Date(splittdate[2] + "-" + splittdate[1] + "-" + splittdate[0]); var nowdate = new Date(); var nowDateOnly = new Date(nowdate.getFullYear() + "-" +(nowdate.getMonth() + 1) + "-" + nowdate.getDate()); var isolddate = selecteddate < nowDateOnly; if(isolddate) { datetoshow = getFormatedDate(nowdate); setWS(WS_BDATE,datetoshow); return false; } else if(selecteddate 0 && counterSuccess == counter) { $('#addbutton_info').css(CSS_DSP,CSS_IN) .addClass('success') .html('Zum Warenkorb hinzugefügt.'); } else if(counterSuccess < counter) { $('#addbutton_info').css(CSS_DSP,CSS_IN) .addClass('error') .html('Der Zeitslot ist bereits vergeben.'); } else { $('#addbutton_info').css(CSS_DSP,CSS_IN) .addClass('info') .html('Keine Zeitlots ausgewählt.'); } window.setTimeout( resetAddButtonInfo, 3000 ); setNextButton() } function setNextButton() { if(getArticleZumzeitpunkt().length > 0) { $('.nextbutton').removeClass('disabled'); } else { $('.nextbutton').addClass('disabled'); } } function resetAddButtonInfo() { $('#addbutton_info').removeClass('success') .removeClass('error') .removeClass('info') .css(CSS_DSP,CSS_NONE) .html(''); } function addOption(itemnbr, parentitem) { if(!isArtikelSet(ba[parentitem])) { alert("Bitte erst den Artikel/Tarif mit Zeitslot in den Warenkorb legen."); return; } else { if(!isArtikelSet(ba[itemnbr])) { ba[itemnbr] = new Booking(itemnbr, ba[parentitem].amount, UNDEF,[]); ba[parentitem].subitems.forEach(function(subitem) { var subi = new SubItem(subitem.amount, subitem.time, subitem.subitemnbr) subi.isOption=true; ba[itemnbr].subitems.push(subi); }) } else { //console.log(ba); ba[itemnbr].amount++; if(ba[itemnbr].subitems.length == 0) { ba[parentitem].subitems.forEach(function(subitem) { var subi = new SubItem(subitem.amount, subitem.time, subitem.subitemnbr) subi.isOption=true; ba[itemnbr].subitems.push(subi); }) } else { ba[itemnbr].subitems.forEach(function(item) {item.amount++;}); } } saveWK(); refreshWK(); } } function remove(itemnbr, time) { if(time == UNDEF) { if(ba.hasArticleZeitlos(itemnbr)) { ba.removeArticle(itemnbr); } else { if(itemnbr.toString().startsWith("-")) { if(ba.hasArticleZeitlos(itemnbr.toString().substr(1))) { ba.removeArticle(itemnbr.toString().substr(1)); } } } } else { if(hasArticleZumZeitpunkt(itemnbr,1)) { removeArticleZumZeitpunkt(itemnbr,1); } } saveWK(); removeReservation(itemnbr); refreshWK() } function isCreditSet() { return getWS(WS_PWC) != null&& getWS(WS_PWC) != "" && ba.wertkarte != UNDEF; } function isLogedIn() { var returnval = $.ajax({ type: POST, url: PHP_MAIN + "?login=check", method: POST, dataType: 'json', cache: false, async:false, success: function (res) { return res; } }).responseText; return returnval == 1; } function hasOV() { if(user == UNDEF) { user = setUserFromWS(); } if(user != UNDEF) { return user.infoan.includes('ov') || user.infoan.includes('admin'); } return false; } function hasOVViewOnly() { if(user == UNDEF) { user = setUserFromWS(); } if(user != UNDEF) { return user.infoan.includes('view'); } return false; } function refreshWK() { if(ba != UNDEF) { if(ba.hasAnyArticle()) { $('#mnuBtnChart').css(CSS_DSP,CSS_INB); $('#amountinChart').html(getAmountAnyArticles()); } else { $('#amountinChart').html("0"); $('#mnuBtnChart').css(CSS_DSP,CSS_NONE); } $('#booking_wk').css(CSS_DSP,CSS_INB); $('#booking_articles').html(''); } } function back() { $.ajax({ type: POST, url: PHP_MAIN, data: {"wk": "back"}, method: POST, dataType: 'json', cache: false, async:false, success: function (res) { var step= res; if(step <=initialpage) { step = initialpage; } else if(step == 5) { } loadBooking(); } }); } function next() { var step = getActBookingStep(); comingfrom = step; if(step == 0) { return; } else if(step == RES_NBR1) { return; } else if(step == 2) { hasWatchAdditionalItems = false; } else if(step == 3) { return; } else if(step == 4) { if(!validatePersonalData()) { return; } } else if(step == 5) { return; } else if(step == 6) { return; } $.ajax({ type: POST, url: PHP_MAIN, data: {"wk": "next"}, method: POST, dataType: 'json', cache: false, async:false, success: function (res) { loadBooking(); } }); } function saveContactChoice(contactChoice, value) { var wert = 0; if(value == true) wert = 1; $.ajax({ type: POST, url: PHP_MAIN, data: {"userdatachange": "addContactChoice", "contactChoice": contactChoice, "wert": wert}, method: POST, dataType: 'json', cache: false, async:false, success: function (res) { } }); } function saveConsent(consent, value) { $.ajax({ type: POST, url: PHP_MAIN, data: {"userdatachange": "addconsent", "consent": consent, "wert": value}, method: POST, dataType: 'json', cache: false, async:false, success: function (res) { } }); } function reserveDateAndTime() { var free = parseInt($('#free_usage').text()); if(free>10 || !checkIfSlotUsed()) { reserveSlot(); return true; } else { if(!checkIfSlotUsed(true)) { alert("Es tut uns leid, der gewünschte Zeitraum ist aktuell für einen anderen Kunden reserviert. Versuchen Sie es in 10 Minuten erneut.") return false ; } else { updateReserveSlot(); } return true; } } function checkIfSlotUsed(isMySlot=false) { return isMySlot; } function reserveSlot() { var selectedDate = getWS(WS_BDATE); var selectedTime = getWS(WS_BTIME); var listArticle = []; articles.forEach(function(a) { if(isArtikelSet(ba[a.itemnbr])) { listArticle.push(new Booking(a.itemnbr, ba[a.itemnbr].amount)); } }); return $.ajax({ type: POST, url: PHP_MAIN, data: {"reservation": "reserve", "selectedDate": selectedDate, "selectedTime": selectedTime, "selectedArticle": JSON.stringify(listArticle)}, method: POST, dataType: 'json', cache: false, async:false, success: function (res) { } }).responseText == RES_SUCCESS; } function updateReserveSlot() { return; } function removeReservation(itemnbr) { var selectedDate = getWS(WS_BDATE); var selectedTime = getWS(WS_BTIME); $.ajax({ type: POST, url: PHP_MAIN, data: {"reservation": "removeReservation", "selectedDate": selectedDate, "selectedTime": selectedTime, "selectedArticle": itemnbr}, method: POST, dataType: 'json', cache: false, async:false, success: function (res) { return res; } }) } function getSlotRemainingTime() { return Date.parse($.ajax({ type: POST, url: PHP_MAIN, data: {"reservation": "remainingTime"}, method: POST, dataType: 'json', cache: false, async:false, success: function (res) { // console.log("res", res); if(res == "stop") { cleanWK(); localtion.reload(); } } }).responseText); } function validatePersonalData() { var persons = new Array(); var returnvalue = true; if(VALIDATEPERSONALDATABYDAY) { ba.tage.forEach(tag => { tag.getZeiten().forEach(zeit => { persons = new Array(); zeit.getAllArticle().forEach(article => { if(article.customerRequired != 0 && article.customerRequired >0 && article.customerRequired <6) { var gebdatoptional = (article.customerRequired == 1 || article.customerRequired<0) || NEEDSBIRTHDAY==false; for(var i = 0;i=0) { if(isASPSelected == 0) { aspprename = user.prename; aspsurname = user.name; aspemail = user.email; aspgebdat = user.gebdat; } else if(custasp != UNDEF && custasp.length > 0) { custasp.forEach(function(asp) { if(asp.id_cust_asp == isASPSelected) { aspprename = asp.prename; aspsurname = asp.name; aspemail = asp.email; aspgebdat = asp.gebdat; } }); } } else { validateText('pre_' + article.itemnbr + '_' + i); validateText('sur_' + article.itemnbr + '_' + i); validateEmail('email_' + article.itemnbr + '_' + i); if(custasp != UNDEF && custasp.length > 0) { custasp.forEach(function(asp) { if(aspsurname.toLowerCase() == asp.name.toLowerCase() && aspprename.toLowerCase() == asp.prename.toLowerCase()) { ok=false; alert("Ein Anpsrechpartner mit dem Namen " +aspprename + " " + aspsurname+ " existiert bereits!") returnvalue= false; } }); } } persons.forEach(function(asp) { if(aspsurname.toLowerCase() == asp.name.toLowerCase() && aspprename.toLowerCase() == asp.prename.toLowerCase()) { ok=false; alert("Der Anpsrechpartner mit dem Namen " +aspprename + " " + aspsurname+ " ist mehrfach in der Bestellung!") returnvalue= false; } }); if(aspprename == "" || aspsurname == "") { alert("Sie haben mindestens einen Ansprechpartner nicht ausgefüllt.") returnvalue= false; } if(isASPSelected !=0 && aspsurname.toLowerCase() == user.name.toLowerCase() && aspprename.toLowerCase() == user.prename.toLowerCase()) { ok=false; alert("Sie können sich nicht selbst als Ansprechpartner hinzufügen.") returnvalue= false; } var fieldval = returnvalue; if(aspgebdat == "" && !gebdatoptional) { fieldval = validateText('gebdat_' + article.itemnbr + '_'+ article.subItem + '_' + i); if(fieldval == false) returnvalue = fieldval; else aspgebdat = $('#gebdat_' + article.itemnbr + '_'+ article.subItem + '_' + i).val().trim(); } if(gebdatoptional || (fieldval && article.isPersonAllowed(aspgebdat, ba.actDate))) { setSuccess('gebdat_' + article.itemnbr + '_'+ article.subItem + '_' + i); } else { returnvalue=false; setError('gebdat_' + article.itemnbr + '_'+ article.subItem + '_' + i); } if(returnvalue == true) { var person = new Person(user.idcustomer, aspsurname, aspprename, aspemail, "", "", "", "", isASPSelected, aspgebdat); article.persons[i] = person; persons.push(person); addPersonToArticle(tag.date, zeit.time, zeit.timeEnd, article.itemnbr, article.subItem, person); } } } }); }); }); } else { getArticleZumzeitpunkt().forEach(article => { //console.log("artikel zur uhrzeit", article); if(article.customerRequired != 0) { var gebdatoptional = (article.customerRequired == 1) || NEEDSBIRTHDAY==false; for(var i = 0;i=0) { if(isASPSelected == 0) { aspprename = user.prename; aspsurname = user.name; aspemail = user.email; aspgebdat = user.gebdat; } else if(custasp != UNDEF && custasp.length > 0) { custasp.forEach(function(asp) { if(asp.id_cust_asp == isASPSelected) { aspprename = asp.prename; aspsurname = asp.name; aspemail = asp.email; aspgebdat = asp.gebdat; } }); } } else { validateText('pre_' + article.itemnbr + '_' + i); validateText('sur_' + article.itemnbr + '_' + i); validateEmail('email_' + article.itemnbr + '_' + i); if(custasp != UNDEF && custasp.length > 0) { custasp.forEach(function(asp) { if(aspsurname.toLowerCase() == asp.name.toLowerCase() && aspprename.toLowerCase() == asp.prename.toLowerCase()) { ok=false; alert("Ein Anpsrechpartner mit dem Namen " +aspprename + " " + aspsurname+ " existiert bereits!") returnvalue= false; } }); } } persons.forEach(function(asp) { if(aspsurname.toLowerCase() == asp.name.toLowerCase() && aspprename.toLowerCase() == asp.prename.toLowerCase()) { ok=false; alert("Der Anpsrechpartner mit dem Namen " +aspprename + " " + aspsurname+ " ist mehrfach in der Bestellung!") returnvalue= false; } }); if(aspprename == "" || aspsurname == "") { alert("Sie haben mindestens einen Ansprechpartner nicht ausgefüllt.") returnvalue= false; } if(isASPSelected !=0 && aspsurname.toLowerCase() == user.name.toLowerCase() && aspprename.toLowerCase() == user.prename.toLowerCase()) { ok=false; alert("Sie können sich nicht selbst als Ansprechpartner hinzufügen.") returnvalue= false; } var fieldval = returnvalue; if(aspgebdat == "" && !gebdatoptional) { fieldval = validateText('gebdat_' + article.itemnbr + '_'+ article.subItem + '_' + i); if(fieldval == false) returnvalue = fieldval; else aspgebdat = $('#gebdat_' + article.itemnbr + '_'+ article.subItem + '_' + i).val().trim(); } if(gebdatoptional || (fieldval && article.isPersonAllowed(aspgebdat, ba.actDate))) { setSuccess('gebdat_' + article.itemnbr + '_'+ article.subItem + '_' + i); } else { returnvalue=false; setError('gebdat_' + article.itemnbr + '_'+ article.subItem + '_' + i); } if(returnvalue == true) { var person = new Person(user.idcustomer, aspsurname, aspprename, aspemail, "", "", "", "", isASPSelected, aspgebdat); article.persons[i] = person; persons.push(person); } } } }); } if(returnvalue) { saveWK(); return true; } return false; } function addPersonToArticle(tag, zeit, zeitEnde, itemnbr, subitem, person) { return Date.parse($.ajax({ type: POST, url: PHP_MAIN, data: {"wk": "addPersonToArticle", "tag": tag, "zeit": zeit, "zeitende": zeitEnde, "itemnbr": itemnbr, "subitem": subitem, "person": person}, method: POST, dataType: 'json', cache: false, async:false, success: function (res) { } }).responseText); } function validateCheckboxes() { var ok = true; if(CORONACHECKBOXES) { var chk1 = $('#chk_corona1').prop('checked'); var chk2 = $('#chk_corona2').prop('checked'); if(chk1 == false) { setError("chk_corona1"); ok=false; } else { setSuccess("chk_corona1") } if(chk2 == false) { setError("chk_corona2"); ok=false; } else { setSuccess("chk_corona2") } } var chk_agb = $('#chk_agb').prop('checked'); if(chk_agb == false) { setError("chk_agb"); ok=false; } else { setSuccess("chk_agb"); } var chk_dsgvo = $('#chk_dsgvo').prop('checked'); if(chk_dsgvo == false) { setError("chk_dsgvo"); ok=false; } else { setSuccess("chk_dsgvo"); } var chk_nutzungsbedingungen = $('#chk_nutzungsbedingungen').prop('checked'); if(chk_nutzungsbedingungen == false) { setError("chk_nutzungsbedingungen"); ok=false; } else { setSuccess("chk_nutzungsbedingungen"); } return ok; } function nextLogin() { $.ajax({ url: PHP_MAIN, cache: false, data: {"wk": "next"}, method: POST, success: function(e) { $(T_CONTENT).load(HTML_LOGIN , function() { initFormLogin(); } ); } }); } function refreshUser() { if(user != UNDEF) { $('#user_prename').val(user.prename); $('#user_name').val(user.name); $('#user_street').val(user.street); $('#user_plz').val(user.plz); $('#user_city').val(user.city); $('#user_email').val(user.email); $('#user_mobile').val(user.mobile); $('#user_notes').val(user.bemerkung); $('#user_iscompany').prop('checked', user.iscompany==1) $('#user_companyname').val(user.companyname); $('#loged_in_user').html(user.prename + " " + user.name); $('#u_chgpwd').prop(DISABLED,false); $('#user_gebdat').val(user.gebdat); $('#user_email_consent').prop('checked', user.getContactEmail()==1) $('#user_mobile_consent').prop('checked', user.getContactMobile()==1) if($('#user_iscompany').prop('checked')==true) { $('#row_firma').css(CSS_DSP, CSS_B); } else { $('#row_firma').css(CSS_DSP, CSS_NONE); } } else { $('#user_prename').val(""); $('#user_name').val(""); $('#user_street').val(""); $('#user_plz').val(""); $('#user_city').val(""); $('#user_email').val(""); $('#user_mobile').val(""); $('#user_iscompany').prop('checked', false) $('#user_companyname').val(""); $('#loged_in_user').html(""); $('#u_chgpwd').val(DISABLED,true); $('#user_gebdat').val(""); $('#user_email_consent').prop('checked', false) $('#user_mobile_consent').prop('checked', false) } } function toggleClasses(object, oldclass, newclass) { object.removeClass(oldclass); object.addClass(newclass); } function setWS(cname, cvalue) { sessionStorage.setItem(cname, cvalue); } function getWS(cname) { return sessionStorage.getItem(cname); } function validateText(id) { if ($("#" + id).val()== UNDEF || $("#" + id).val() == null || $("#" + id).val().trim() == "") { setError(id); return false; } else { setSuccess(id); return true; } } function setSuccess(id) { var div = $("#" + id).closest("div"); $("#glypcn" + id).remove(); toggleClasses(div, "has-error", "has-success has-feedback"); div.append(''); } function setError(id) { var div = $("#" + id).closest("div"); $("#glypcn" + id).remove(); toggleClasses(div, "has-success", "has-error has-feedback"); div.append(''); } function validateEmail(id) { var email_regex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/i; if ($("#" + id).val() != null && !email_regex.test($("#" + id).val().trim())) { setError(id); return false; } else { setSuccess(id); return true; } } function validateMobile(id, id_praefix="") { var mobile = $("#" + id).val().trim(); var mpraefix = ""; if(id_praefix !="") { mpraefix = $("#" + id_praefix).val().trim(); mobile = mpraefix + "" + mobile; } var mobil_regex = /^(([\+][\d]{2,3}|[0]{2}[\d]{2})|0)(15|16|17)([ -\/\d]*)$/; var match = false; if (mobil_regex.test(mobile)) { match = true; } else { var mobil_regex = /^(([\+][\d]{2,3}|[0]{2}[\d]{2,3}))([ -\/\d]*)$/; var match_unspecific = mobil_regex.exec(mobile); if(match_unspecific) { Connection error: SQLSTATE[HY000] [1045] Access denied for user 'dbu754818'@'infong126.clienthosting.eu' (using password: YES)
    Fatal error: Uncaught Error: Call to a member function prepare() on null in /homepages/41/d37940039/htdocs/eistreff/model/provider.php:88 Stack trace: #0 /homepages/41/d37940039/htdocs/eistreff/model/provider.php(131): Provider->getAllProvider() #1 /homepages/41/d37940039/htdocs/eistreff/model/provider.php(43): Provider->getAllProviderString() #2 /homepages/41/d37940039/htdocs/eistreff/v2.0/js/web.php(5614): Provider::getProviderString() #3 {main} thrown in /homepages/41/d37940039/htdocs/eistreff/model/provider.php on line 88