ordersprinter/gastsystem/js/ordering.js

1 line
9.2 KiB
JavaScript

$(document).on("pageinit","#guest-page",function(){var a=Date.now();$("#logoarea").html('<img src="php/ossystem.php?command=getlogo&t='+a+'" style="max-height:300px;"/>');intervalCheckLastOsSystemAccess(5);getTables()});var selectedTableid=null;var syncisWorking=false;var dailycode=null;var tablecode=null;var products=null;var types=null;var currency="";var decpoint=".";var selectedproduct=null;var selectedtable=null;var timeout=0;var timecounter=0;var askdaycode=1;var asktablecode=1;var fetchTimer=null;var orders=[];var tablevalues=[];function intervalCheckLastOsSystemAccess(b){doAjax("GET","php/ossystem.php?command=getsystemstatus",null,insertSyncIsWorking,true);var a=setInterval(function(){doAjax("GET","php/ossystem.php?command=getsystemstatus",null,insertSyncIsWorking,true)},b*1000)}function timeouting(){if(fetchTimer!=null){clearTimeout(fetchTimer)}if(timeout!=0){timecounter=0;fetchTimer=setInterval(function(){updateTimer()},1000)}}function createReadableTimeValue(c){var b=Math.floor(c/60);var a=c%60;if(a<10){a="0"+a.toString()}return"Verbleibende Zeit bis Neuanmeldung: "+b+":"+a+"&nbsp;&nbsp;"}function updateTimer(){if(timecounter>0){$("#timecounter").show();$("#timecounter").html(createReadableTimeValue(timecounter))}else{$("#timecounter").hide()}if(timecounter>0){timecounter--;if(timecounter==0){var a=$("#tableselection").is(":visible");if(!a){$(".notcollapsible").hide();getTables()}}}}function insertSyncIsWorking(c){if(c.status=="OK"){if(c.msg.lastaccessok==1){syncisWorking=true}else{syncisWorking=false}if(syncisWorking){$("#warningdiv").hide()}else{$("#warningdiv").show()}var a=c.msg.dbwritestatus;var d=a.writeable;if(d==0){var b=a.file;if(a.reason!=""){b+=" (Zusatzinfo: "+a.reason+")"}$("#writeprotectedfile").html(b);$("#warningdiv2").show()}else{$("#warningdiv2").hide()}}}function getTables(){orders=[];doAjax("GET","php/tables.php?command=gettables",null,insertTables,"Fehler beim Abruf der Tische",true)}function preventCollapsible(){$(".notcollapsible").off("collapsiblecollapse").on("collapsiblecollapse",function(a){a.stopImmediatePropagation();a.preventDefault();var b=this.id;$("#"+b).collapsible("expand")})}function insertTables(b){if(b.status!="OK"){alert("Es ist ein Fehler aufgetreten: "+b.msg)}else{currency=b.currency;decpoint=b.decpoint;timeout=b.timeout;askdaycode=b.askdaycode;asktablecode=b.asktablecode;var a="";a+=fillSelectionBox("tableselect",b.msg,"Tischauswahl");$("#tableselectionbox").html(a);$("#tableselection").show();$("#tableselection").trigger("create");preventCollapsible();$("#tableselectionbox").off("change").on("change",function(c){c.stopImmediatePropagation();c.preventDefault();selectedTableid=$("#tableselect").val();if(selectedTableid!=(-1)){$("#tableselection").hide();handleCodeInput()}});timeouting()}}function handleCodeInput(){if((askdaycode==0)&&(asktablecode==0)){tablecode="empty";dailycode="empty";timecounter=timeout;initProductsView();return}$("#tablecodediv").show();preventCollapsible();if(askdaycode==1){tablecode="empty";$("#daycodearea").show()}if(asktablecode==1){dailycode="empty";$("#tablecodearea").show()}$("#tablecodefield").val("");$("#dailycodefield").val("");$("#codebackbtn").off("click").on("click",function(a){a.stopImmediatePropagation();a.preventDefault();hideCodeAreas();$("#tablecodediv").hide();getTables()});$("#submitcodesbtn").off("click").on("click",function(b){b.stopImmediatePropagation();b.preventDefault();tablecode=$("#tablecodefield").val().trim();dailycode=$("#dailycodefield").val().trim();var a={tableid:selectedTableid,tablecode:tablecode,dailycode:dailycode};doAjax("POST","php/tables.php?command=checkcodes",a,handleCodeCheck,"Fehler bei der Abfrage der Codes",true)})}function hideCodeAreas(){$("#daycodearea").hide();$("#tablecodearea").hide()}function handleCodeCheck(a){if(a.status!="OK"){alert(a.msg)}else{hideCodeAreas();timecounter=timeout;initProductsView()}}function fillSelectionBox(f,b,d){tablevalues=b;var e='<div class="ui-field-contain">';e+='<select name="'+f+'" id="'+f+'" data-theme="f">';e+='<option value="-1">'+toHtml(d)+"</option>";for(var c=0;c<b.length;c++){var a=b[c];e+="<option value="+a.id+">"+toHtml(a.name)+"</option>"}e+="</select>";return e}function toHtml(a){return(a.replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;"))}function initProductsView(){doAjax("POST","php/menu.php?command=getmenu",null,showProductsView,"Fehler bei der Abfrage der Speisekarte",true)}function showProductsView(a){timecounter=timeout;preventCollapsible();if(a.status!="OK"){alert("Fehler: "+a.msg);$("#productsdiv").hide();getTables()}else{products=a.msg.products;types=a.msg.types;showProdTypes(0);$("#tablecodediv").hide();$("#productsdiv").show();$("#prodbackbtn").off("click").on("click",function(b){b.stopImmediatePropagation();b.preventDefault();$("#productsdiv").hide();getTables()})}}function showProdTypes(c){timecounter=timeout;var a=createTypesHtml(c);if(a!=null){$("#typesdiv").html(a);$("#typesdiv").trigger("create")}bindProdTypes();var b=createProdsHtml(c);if(b!=null){$("#prodsdiv").show();$("#prodsdiv").html(b);$("#prodsdiv").trigger("create");bindProducts()}else{$("#prodsdiv").hide()}preventCollapsible()}function bindProducts(){$(".product").off("click").on("click",function(c){c.stopImmediatePropagation();c.preventDefault();var b=this.id.split("_")[1];selectedproduct=b;$("#productsdiv").hide();$("#prodconfirmdiv").show();timecounter=timeout;var a=getProductName(selectedproduct);$("#selectedprod").html(toHtml(a));bindProdConfirm()})}function bindProdTypes(){$(".prodtype").off("click").on("click",function(b){b.stopImmediatePropagation();b.preventDefault();var a=this.id.split("_")[1];showProdTypes(a)});$(".up").off("click").on("click",function(b){b.stopImmediatePropagation();b.preventDefault();var a=this.id.split("_")[1];showProdTypes(a)})}function createTypesHtml(d){if(types==null){return null}var c='<ul data-role="listview" id="search-list" data-divider-theme="a" data-inset="true">';c+='<li data-role="list-divider" data-theme="b" data-role="heading">Produktgruppen</li>';for(var b=0;b<types.length;b++){var a=types[b];var e=a.reference;if(e==d){c+='<li data-theme="f" data-icon="false"><a href="#" id="type_'+a.id+'" class="prodtype" >'+toHtml(a.name)+"</a></li>"}}if(d!=0){var f=getParentOfReference(d);c+='<li data-theme="d" data-icon="false"><a href="#" id="type_'+f+'" class="up" >Zurück</a></li>'}c+="</ul>";return c}function getParentOfReference(c){for(var b=0;b<types.length;b++){var a=types[b];if(a.id==c){return a.reference}}return 0}function createProdsHtml(b){var d=null;for(var e=0;e<types.length;e++){var j=types[e];if(j.id==b){d=j;break}}if(d==null){return""}var a=j.hasprodimages;var f=false;var g='<ul data-role="listview" id="search-list" data-divider-theme="a" data-inset="true">';g+='<li data-role="list-divider" data-theme="b" data-role="heading">Produktauswahl</li>';for(var e=0;e<products.length;e++){var h=products[e];if(h.ref==b){f=true;var c=getProdDetails(h.id);g+=createProdListEntry(c,a)}}g+="</ul>";if(f){return g}else{return null}}function getProdDetails(e){for(var d=0;d<products.length;d++){var g=products[d];if(g.id==e){var f=g.price;f=f.replace(".",decpoint)+" "+currency;var c=Date.now();var a="php/ossystem.php?command=getprodimage&prodid="+g.id+"&t="+c;var b=toHtml(g.longname);return{id:e,prodname:b,imgurl:a,price:f}}}return null}function getProductName(b){for(var a=0;a<products.length;a++){if(products[a].id==b){return products[a].longname}}return""}function createProdListEntry(a,c){var b='<li data-theme="f" data-icon="false"><a href="#" id="type_'+a.id+'" class="product">';if(c){b+='<img src="'+a.imgurl+'" class="centermobileimg" />'}b+=toHtml(a.prodname);b+=" <i>("+a.price+")</i></a></li>";return b}function bindProdConfirm(){$("#prodconfirmbackbtn").off("click").on("click",function(a){a.stopImmediatePropagation();a.preventDefault();$("#prodconfirmdiv").hide();initProductsView()});$("#prodconfirmbtn").off("click").on("click",function(b){b.stopImmediatePropagation();b.preventDefault();var a={prodid:selectedproduct,tableid:selectedTableid,dailycode:dailycode,tablecode:tablecode};doAjax("POST","php/queue.php?command=putintoqueue",a,askForMore,"Fehler beim Senden der Produktdaten",true)})}function askForMore(a){if(a.status!="OK"){alert("Fehler: "+a.msg)}else{var b=Date.now();orders[orders.length]={prodid:selectedproduct,ordertime:b};createOrdersList("#orderslist");$("#prodconfirmdiv").hide();$("#askformorediv").show();timecounter=timeout;preventCollapsible();$("#askformorenobtn").off("click").on("click",function(c){c.stopImmediatePropagation();c.preventDefault();$("#askformorediv").hide();getTables()});$("#askformoreyesbtn").off("click").on("click",function(c){c.stopImmediatePropagation();c.preventDefault();$("#askformorediv").hide();initProductsView()})}}function createOrdersList(a){var d='<ul data-role="listview" id="search-list" data-divider-theme="a" data-inset="true">';d+='<li data-role="list-divider" data-theme="b" data-role="heading">Bestellte Produkte für den Tisch "'+toHtml(getNameOfSelectedTable())+'"</li>';for(var c=0;c<orders.length;c++){var f=orders[c];var e=f.prodid;var b=getProdDetails(e);d+=createProdListEntry(b,true)}d+="</ul>";$(a).html(d);$(a).trigger("create")}function getNameOfSelectedTable(){for(var a=0;a<tablevalues.length;a++){var b=tablevalues[a];if(b.id==selectedTableid){return b.name}}return""};