From 40828e9b5bcf2cd432aef945c509801dfd2381f0 Mon Sep 17 00:00:00 2001 From: Geno Date: Thu, 19 Nov 2020 23:02:08 +0100 Subject: [PATCH] OrderSprinter 1.3.0 --- printserver/OrderSprinterPrintserver.exe | Bin 259072 -> 259072 bytes readme.txt | 24 + spider/install/installer.php | 2 +- webapp/OrderSprinterPrintserver.exe | Bin 259072 -> 259072 bytes webapp/bar.html | 2 +- webapp/bill.html | 4 +- webapp/css/bestformat.css | 2 +- webapp/customers.html | 258 +++++++++++ webapp/elements/customers.js | 1 + webapp/feedback.html | 2 +- webapp/index.html | 6 +- webapp/install.html | 2 +- webapp/install/installer.php | 111 ++++- webapp/install/phpinfo.php | 2 + webapp/kitchen.html | 2 +- webapp/manager.html | 31 +- webapp/paydesk.html | 4 +- webapp/php/admin.php | 95 ++-- webapp/php/bill.php | 32 +- webapp/php/closing.php | 2 +- webapp/php/contenthandler.php | 4 + webapp/php/customers.php | 560 +++++++++++++++++++++++ webapp/php/dbutils.php | 11 +- webapp/php/globals.php | 4 +- webapp/php/queuecontent.php | 11 +- webapp/php/utilities/basedb.php | 93 +++- webapp/php/utilities/userrights.php | 5 +- webapp/preferences.html | 2 +- webapp/products.html | 2 +- webapp/rating.html | 2 +- webapp/reports.html | 2 +- webapp/reservation.html | 88 +++- webapp/supplydesk.html | 2 +- webapp/utilities.js | 6 +- webapp/waiter.html | 2 +- webapp/waiterdesktop.php | 6 +- 36 files changed, 1276 insertions(+), 106 deletions(-) create mode 100644 readme.txt create mode 100644 webapp/customers.html create mode 100644 webapp/elements/customers.js create mode 100644 webapp/install/phpinfo.php create mode 100644 webapp/php/customers.php diff --git a/printserver/OrderSprinterPrintserver.exe b/printserver/OrderSprinterPrintserver.exe index 1c7b85884dfd41613e9ccc9e92c1e139ae4c144d..e0e257932ac7e01ed2fdd8b23aee339eefd9cd37 100644 GIT binary patch delta 1219 zcmYk(drVtZ90&08yJv;+kW!|jg*_>vX%hKPTt=X5jS{&DW-eoyZC z{qFDD!wP#?;dao6rTHhF-9m_-)T~4e9D`8cB0PIIJvEJ3yLt#&A&8b_#@+~Xc-j|X zWkBBki43;l^^WqygDf9YDw36QwyMN-RN7WTH)?H7Z~_NxIdC37wbjB0DDUJh=&Xe= zu$%cie4lw1|BiTl*GA#rv_NxL3P5h4@2FZ}w{!Nr6l#$6OtWI)o++ruVDGT`MGdjW zMu~Ol#HxFmkXYu9W%e)gPs^+d^!8l=&CU#BRk!4@_clZetGd38e9|r!cHMbIY;YK1 zC%PO>unQL*I@pWr`n9khE&WAs06Y6<;1Irke1dh8=*(oD6*{w%M0P++4Lh{t5+Otx zCEBsoX@nj;?=-+W__cEjcmk;|KLsydAK<5j2TEC$O!tY%stw$8w?e#+_wj)B5hH$u zFAW}0++o3(QkE>RMJ1--t-%2><16?lG~hPR9%#gmJVxliX-^4E;M$=)xP~tbHNq5L zWBwH%4mE=ucMRu&3SGkupu-2lMkqtI^fIg4BJG2t_>E+Y@@ZNBO&H&rhFRVV@i*9` zu7!P$Al|_5z0DB9>XCJ@4fl_{rry4uSOwc6>r$uZ<3F4YBsMNuEW_!M88)-qr%Kt( z;!dlfEucM}1S~T9UIjaPeRXUizxgu3f$?V!v0rOrs|#n&WPux>9M!P#7LAsJ2ak-l zu|ds_{sO6Z>+EW%56qnXox*PX;oVcP508vzB)fHNGIEt*D+aQ{^$Z~}CRdAIoE(2D z>0D%QwO}h@dt>r7;so9s*TW>rE`;8?$~Ns~Y(u=sRn8USs^AK9RdW5sRmCOGV%o^1 z;(Crt$7SI%b5(O~;;P}=&b5iFk!v&8n_OF4O_om##1t&POTUa!5~A=VZ0=nQS4@_! zZU1nrCaCz4`VwMdfyi;hF_5iAQVPj^>`H&uD8P>U4Bv_IOQrA@8n5m^SL2@6Uo zP+(V~dte7B-L}iaN@8rB#);Hl{UbJgX&Y;3jF^zP1q;P!llF)4-W3h=~^m65QSYxyO-EzzU~`Pg=&vGZ?A#aw1Lu_ z3B;C~LWq{ReUmS2^5Q1PC_TMjfuTB)*z}DV?7ioMgvgE`{YR={!HysPC06%Ypc z)7@bKZ+JkIz?Nt!7O%Sop#a~;Kj9sGYxp44;iX{3jW=?TTfVs4JrYBd#SmSmc;va`!fd16Vf zDXX-kq&Pb_SIkj=nWB+qu*!=MX^b3po5lx;#7smYs@b>ccfq=A4JotAEGo9F~4FMAPqFFSHqI_wEW~hrRv_W{vN!ic7aXICEtJIRxGf2~nF&@7f{UZ+Og{|Q#=B@!%8uG6&t+LXUv MrzxuN2mKrV0Tiiy6aWAK diff --git a/readme.txt b/readme.txt new file mode 100644 index 0000000..1d21444 --- /dev/null +++ b/readme.txt @@ -0,0 +1,24 @@ +Liesmich - Readme: +================== + +Das Gesamtpaket "OrderSprinter" besteht aus verschiedenen Komponenten: + +webapp: +------- +In diesem Unterverzeichnis befindet sich die Kernapplikation. Der Inhalt dieses Ordners muss auf den Webspace des Webservers kopiert werden. Siehe Installationsanleitung auf der Webseite. + +spider: +------- +Spider ist eine eigenständige Webapplikation, mit der man verschiedene OrderSprinter-Instanzen aus der Ferne überwachen kann. Siehe Installationsanleitung auf der Webseite. + +printserver: +------------ +In diesem Ordner befindet sich der Windows-Printserver. Er kann alleine oder in Kombination mit dem Javaprinter eingesetzt werden. + +javaprinter: +------------ +In diesem Ordner befindet sich der Java-Printserver. Er eignet sich für den Einsatz auf Linux-Systemen. Er kann alleine oder in Kombination mit dem Windows-Printserver eingesetzt werden. + +scripts: +-------- +Dieser Ordner enthält nützliche Skripte, die man zusätzlich einsetzen kann, z.B. Backup-Skripte. diff --git a/spider/install/installer.php b/spider/install/installer.php index 2010bfb..d1cc907 100644 --- a/spider/install/installer.php +++ b/spider/install/installer.php @@ -85,7 +85,7 @@ class Installer { } Database::dropTables($pdo); Database::createEmptyTables($pdo, $prefix); - Database::setVersion($pdo,$prefix,"1.2.22"); + Database::setVersion($pdo,$prefix,"1.3.0"); Database::setAccessPassword($pdo,$prefix,$adminpass); Database::setRefreshRate($pdo,$prefix,"5"); // default: 5 times per hour return array("status" => "OK","msg" => "Installation successful"); diff --git a/webapp/OrderSprinterPrintserver.exe b/webapp/OrderSprinterPrintserver.exe index 1c7b85884dfd41613e9ccc9e92c1e139ae4c144d..e0e257932ac7e01ed2fdd8b23aee339eefd9cd37 100644 GIT binary patch delta 1219 zcmYk(drVtZ90&08yJv;+kW!|jg*_>vX%hKPTt=X5jS{&DW-eoyZC z{qFDD!wP#?;dao6rTHhF-9m_-)T~4e9D`8cB0PIIJvEJ3yLt#&A&8b_#@+~Xc-j|X zWkBBki43;l^^WqygDf9YDw36QwyMN-RN7WTH)?H7Z~_NxIdC37wbjB0DDUJh=&Xe= zu$%cie4lw1|BiTl*GA#rv_NxL3P5h4@2FZ}w{!Nr6l#$6OtWI)o++ruVDGT`MGdjW zMu~Ol#HxFmkXYu9W%e)gPs^+d^!8l=&CU#BRk!4@_clZetGd38e9|r!cHMbIY;YK1 zC%PO>unQL*I@pWr`n9khE&WAs06Y6<;1Irke1dh8=*(oD6*{w%M0P++4Lh{t5+Otx zCEBsoX@nj;?=-+W__cEjcmk;|KLsydAK<5j2TEC$O!tY%stw$8w?e#+_wj)B5hH$u zFAW}0++o3(QkE>RMJ1--t-%2><16?lG~hPR9%#gmJVxliX-^4E;M$=)xP~tbHNq5L zWBwH%4mE=ucMRu&3SGkupu-2lMkqtI^fIg4BJG2t_>E+Y@@ZNBO&H&rhFRVV@i*9` zu7!P$Al|_5z0DB9>XCJ@4fl_{rry4uSOwc6>r$uZ<3F4YBsMNuEW_!M88)-qr%Kt( z;!dlfEucM}1S~T9UIjaPeRXUizxgu3f$?V!v0rOrs|#n&WPux>9M!P#7LAsJ2ak-l zu|ds_{sO6Z>+EW%56qnXox*PX;oVcP508vzB)fHNGIEt*D+aQ{^$Z~}CRdAIoE(2D z>0D%QwO}h@dt>r7;so9s*TW>rE`;8?$~Ns~Y(u=sRn8USs^AK9RdW5sRmCOGV%o^1 z;(Crt$7SI%b5(O~;;P}=&b5iFk!v&8n_OF4O_om##1t&POTUa!5~A=VZ0=nQS4@_! zZU1nrCaCz4`VwMdfyi;hF_5iAQVPj^>`H&uD8P>U4Bv_IOQrA@8n5m^SL2@6Uo zP+(V~dte7B-L}iaN@8rB#);Hl{UbJgX&Y;3jF^zP1q;P!llF)4-W3h=~^m65QSYxyO-EzzU~`Pg=&vGZ?A#aw1Lu_ z3B;C~LWq{ReUmS2^5Q1PC_TMjfuTB)*z}DV?7ioMgvgE`{YR={!HysPC06%Ypc z)7@bKZ+JkIz?Nt!7O%Sop#a~;Kj9sGYxp44;iX{3jW=?TTfVs4JrYBd#SmSmc;va`!fd16Vf zDXX-kq&Pb_SIkj=nWB+qu*!=MX^b3po5lx;#7smYs@b>ccfq=A4JotAEGo9F~4FMAPqFFSHqI_wEW~hrRv_W{vN!ic7aXICEtJIRxGf2~nF&@7f{UZ+Og{|Q#=B@!%8uG6&t+LXUv MrzxuN2mKrV0Tiiy6aWAK diff --git a/webapp/bar.html b/webapp/bar.html index ff718c7..c81f066 100644 --- a/webapp/bar.html +++ b/webapp/bar.html @@ -5,7 +5,7 @@ - + diff --git a/webapp/bill.html b/webapp/bill.html index 788a0f2..914a9f8 100644 --- a/webapp/bill.html +++ b/webapp/bill.html @@ -5,7 +5,7 @@ - + @@ -25,7 +25,7 @@ +var P_DESCR=["Beschreibung","Description","Descripción"];var P_PRICE=["Preis","Price","Precio"];var P_TOTAL=["Total","Total","Total"];var P_ID=["Id:","Id:","Id:"];var P_ROOMSEL=["Raumauswahl","Room selection","Selección de espacio"];var P_PAYDESK_ACTIONS=["Kassenaktionen","Paydesk actions","Acciones de caja"];var P_BAR_INPUT=["Bareinlage","Input money","Insertar dinero"];var P_BAR_GET=["Barentnahme","Take money","Sacar dinero"];var P_BAR_SUM=["Einnahmen","Revenue","Cobro"];var P_TITLE=["Kasse","Paydesk","Caja"];var P_TABLE=["Tisch","Table","Mesa"];var P_TABLE_SEL=["Tischauswahl","Select table","Qué mesa?"];var P_NOT_PAID=["Ausstehend für ","Not paid for ","Impagado para "];var P_ALL=["Alles","All","Todo"];var P_CONTENT_RECEIPT=["Inhalt Kassenbon","Content of receipt","Contenido del tique"];var P_ONLY_PAY=["Nur Zahlung","Only pay","Solo pagar"];var P_PAY_PRINT=["Bondruck","Pay+Print","Pagar+Imprimir"];var P_CHANGE_CALC=["Wechselgeldrechner:","Change Calculator:","Calculadora de Cambio:"];var P_CHOOSE_PAYWAY=["Auswahl der Zahlungsart:","Selection of method of payment:","Selección del modo de pago:"];var P_CANCEL=["Abbrechen","Cancel","Cancelar"];var P_CASHTAKEOUT=["Barentnahme aus der Kasse","Cash take-out","Sacar dinero"];var P_CASHTAKIN=["Bareinlage in die Kasse","Cash insert","Insertar dinero"];var P_AMOUNT=["Betrag:","Amount:","Valor:"];var P_OVERVIEW=["Übersicht Kellnerkasse","Overview waiter purse","Resumen cartera de bolsillo"];var P_PUT_IN=["Einlegen","Insert","Insertar"];var P_TAKE_OUT=["Entnehmen","Take out","Sacar"];var P_OVERV_DETAILS=["Diese Übersicht enthält die Bar-Bewirtungseinnahme durch den Kellner seit der letzten Tageslosung sowie als weiteren Wert den Kassenstand unter Berücksichtigung der eigenen Eingaben und Entnahmen.","This overview contains the cash amount of money of this waiter since the last closing as well as the total amount of money including the own cash insert and take-out actions.","Este resumen contiene todo el dinero al contado por cobro para el camarero, y también el dinero incluido con acciones de insertar y sacar."];var P_CASH_SUM=["Bewirtungseinnahmen:","Cash by payment:","Cobro:"];var P_INCLUDE_OWN=["inkl. eigener Kassen-Eingaben/Entnahmen:","incl. own cash insert/take-outs:","incl. tomas y entradas proprias:"];var P_NO_ELEM=["Keine Rechnungselemente","No items selected","Ningún producto selecionado"];var P_NO_ELEM_DETAILS=["Es wurden keine abrechenbaren Produkte festgelegt (der Bon ist leer!).","There are no selected items. The receipt is empty!","No hay ningún elemento seleccionado para pagar."];var P_CASHACTION_OK=["Kassenaktion abgeschlossen.","Action completed.","Acción terminado."];var P_NAV=["Navigation","Navigation","Navigación"];var P_ORDER_ACTION=["-> Bestellansicht","-> Order view","-> Vista de Orden"];var P_TO_PAY=["Zu zahlen: ","To pay: ","Pagar total: "];var P_PAY_RETURN=["Zurück: ","Return: ","Torna: "];var P_CALC_PAYBACK=["Berechne","Calculate","Calcular"];var P_HAS_PAID=["Bezahlt: ","Paid: ","Pagado: "];var P_TOGO=["Außer-Haus-Verkauf","Sale with Tax No 2","Venta IVA 2"];var P_TIP=["nur Trinkg.: ","Only tip: ","Solo prop.: "];var P_TOTAL_INCL_TIP=["Zielbetrag:","Target pay:","Quiere pagar:"];var CALC_TIP_TXT=["Angabe extra Trinkg.","Do Tip separate","Propina individual"];var CALC_TOTAL_TXT=["Angabe inkl.Trinkg.","Do Tip incl.","Propina incl."];var P_GUESTS=["Gäste","Guests","Habitaciones"];var showHostTemplate=false;var guests=[];var internalguests=[];var hotelinterface=0;var PAYMENT_HS3=7;var PAYMENT_GUEST=8;var currentPaymentId=7;function getGeneralConfigItems(){doAjax("GET","php/contenthandler.php?module=admin&command=getGeneralConfigItems",null,insertGeneralConfigItems,"Fehler Konfigurationsdaten")}function getPayments(a){doAjax("GET","php/contenthandler.php?module=admin&command=getPayments",null,a,"Fehler Zahlungswege")}function insertGeneralConfigItems(b){if(b.status=="OK"){var a=b.msg;decpoint=a.decpoint;$("#info-page").data("decpoint",a.decpoint);currency=a.currency;var d=a.tax;var c=d.replace(".",decpoint);$("#info-page").data("usstGerVal",c);$("#info-page").data("usst",d);d=a.togotax;c=d.replace(".",decpoint);$("#info-page").data("togoTaxGerVal",c);$("#info-page").data("togotax",d);$("#info-page").data("companyinfo",a.companyinfo);$("#info-page").data("payPrintType",a.payprinttype);$("#info-page").data("currency",a.currency);$("#info-page").data("billlanguage",a.billlanguage);$("#info-page").data("userlanguage",a.userlanguage);receiptfontsize=parseInt(a.receiptfontsize);$("#receiptpart").css("font-size",receiptfontsize+"px");paymentconfig=a.paymentconfig;$("#curtopay2").html(" "+a.currency);workflowconfig=a.workflowconfig;digigopaysetready=a.digigopaysetready;setLanguage(a.userlanguage)}else{$("#contentpart").hide();setTimeout(function(){document.location.href="index.html"},250)}}function addEntryOrIncreaseCount(a,e){var c=0;var f=false;var d=e.prodid+"-"+e.extras.join("_")+e.price+"-"+e.pricelevelname+"#"+e.tax+"_"+e.togo;for(c=0;cID:"+d+"";f+=' ";f+=""+c+"";f+=" ";if(j!=""){f+="Gast: "+toHtml(j)+"";f+=" "}f+=""+P_NO[b]+""+P_DESCR[b]+""+P_PRICE[b]+""+P_TOTAL[b]+"";return f}function genCreateReceiptFooterNoSum(c,d,b,a){return genCreateReceiptFooter(c,d,b,"","","",a)}function genCreateReceiptFooter(a,e,b,h,d,k,l){var c='style="border: solid black 0px;padding: 3px;text-align:right;vertical-align:bottom;"';var n='style="text-align:center;vertical-align:bottom;"';var g=" ";var m=g;m+=""+P_MWST[e]+"% "+P_MWST[e]+""+P_NETTO[e]+""+P_BRUTTO[e]+"";for(var j=0;j"+h+'"+d+'"+k+""}m+=g;m+="   "+P_SUM[e]+'"+k+"";m+=g;m+="
 
";m+=toHtml(b).replace(/(?:\r\n|\r|\n)/g,"
");m+="
";return m}function generateOneProdLine(i,f,h,a,l,e){var b='style="border: solid black 0px;padding: 3px;text-align:right;vertical-align:bottom;"';var g='style="border: solid black 0px;padding: 3px;text-align:center;vertical-align:bottom;"';var c=(parseFloat(h)).toFixed(2).replace(".",l);if(a!="A"){f+=" ("+a+")"}if(e==1){f="To-Go: "+f}var k=i*h;var j="";var d='style="white-space: nowrap;overflow: hidden;text-overflow:ellipsis;width: 60%;"';j+="'+i+""+f;j=j+""+c;j+=""+k.toFixed(2).replace(".",l)+"";return j}function generateProdPartByDbContent(e,d){var c=0;tablecontent="";for(c=0;c=0);var l=(o.toLowerCase().indexOf(f)>=0);if(k||l){h++;g=toHtml(j+" - "+o);if(!c){c=true;e+='"}else{e+='"}}});if(h===1){$("#hotelroomfoundguest").html(g);$("#hotelroomselection").html(e)}else{$("#hotelroomselection").html(e)}if(b){$("#hotelroomselection").selectmenu("refresh")}}; - + +function sendNewOrders(b){var a=getTableid();if(neworders.length!=0){var c={tableid:a,prods:neworders,print:(b?1:0),payprinttype:"s"};doAjax("POST","php/contenthandler.php?module=queue&command=addProductListToQueue",c,handleSentNewOrders,"Fehler bei Produktversand",false)}else{alert("Es sind keine Produkte ausgewählt worden.")}}function handleSentNewOrders(a){if(a.status!="OK"){alert("Es ist ein Fehler beim Versenden der Bestellung aufgetreten")}else{neworders=[];$("#search").val("");refreshGui()}}function refreshGui(){requestRoomInformation();clearProductsSelection();requestProdInformation();requestOrderedInformation();displayPanels()}function getTableid(){if(selectedroomindex!==null){if(selectedroomindex<0){return 0}else{if(selectedtableindex!==null){var a=roominfo.roomstables[selectedroomindex].tables[selectedtableindex];return a.id}else{return 0}}}}function enableSendButton(){}function disableSendButton(){}function moveItems(){$("#selectiondialog").dialog({autoOpen:false,modal:true,height:400,buttons:{Abbrechen:function(){$(this).dialog("close")}}});var a=getRoomsForDialog();$("#selectiondialog").html(a);$("#selectiondialog").dialog("open");$(".ui-dialog-buttonset .ui-button").css("background-color","#44ff44");$(".ui-widget-header").css("background-color","#ff4400");bindMoveItemsRoom()}function bindMoveItemsRoom(){$(".roomchangeitem").off("click").on("click",function(c){c.stopImmediatePropagation();c.preventDefault();var b=parseInt(this.id.split("_")[1]);var a=getTablesForDialog(b);$("#selectiondialog").dialog("open");$("#selectiondialog").html(a);bindMoveItemsTable(b)})}function bindRightButtons(){$("#sendNewOrders").off("click").on("click",function(a){a.stopImmediatePropagation();a.preventDefault();unZoomTableMap();updateChangeTableBtnIfTableIsSelected();sendNewOrders(false)});$("#paydeskbtn").off("click").on("click",function(a){a.stopImmediatePropagation();a.preventDefault();unZoomTableMap();if(neworders.length>0){if(waitergopayprint==1){sendNewOrders(true)}else{sendNewOrders(false)}}goPayDesk()});$("#workbtn").off("click").on("click",function(a){unZoomTableMap();updateChangeTableBtnIfTableIsSelected();if(neworders.length>0){sendNewOrders(true)}});$("#goorderbtn").off("click").on("click",function(a){a.stopImmediatePropagation();a.preventDefault();unZoomTableMap();goOrderDesk()});$("#mainmenudlg").dialog({autoOpen:false,modal:true});$("#changetablebtn").off("click").on("click",function(a){a.stopImmediatePropagation();a.preventDefault();unZoomTableMap();moveItems()})}function bindMoveItemsTable(a){$(".tablechangeitem").off("click").on("click",function(c){c.stopImmediatePropagation();c.preventDefault();moveToRoomIndex=a;var b=parseInt(this.id.split("_")[1]);var f=roominfo.roomstables[a].tables[b];moveToTableId=f.id;if(selectedroomindex!="-1"){var f=roominfo.roomstables[selectedroomindex].tables[selectedtableindex];moveFromTableId=f.id;$("#selectiondialog").dialog("close");doAjax("GET","php/contenthandler.php?module=queue&command=getProdsForTableChange",{tableId:moveFromTableId},insertProductsToChangeTableDlg,null,true)}else{$("#selectiondialog").dialog("close")}})}function insertProductsToChangeTableDlg(a){if(a.status!="OK"){alert("Fehler");return}prodsToMove=a.msg;allselected=1;updateProdToMoveList();$("#selectallnothing").off("click").on("click",function(f){f.stopImmediatePropagation();f.preventDefault();allselected=1-allselected;for(var c=0;c"+c.productname+b+"";a+="
  • "+g+"
  • "}$("#productsToMoveList").html(a);$("#moveItemdslg").dialog({autoOpen:false,modal:true,height:600,width:800,buttons:{Abbrechen:function(){$(this).dialog("close")},Verschieben:function(){$(this).dialog("close");doMoveItems()}}});$("#moveItemdslg").dialog("open");handleClickOnMoveableProd()}function handleClickOnMoveableProd(){$(".prodToMoveEl").off("click").on("click",function(f){f.stopImmediatePropagation();f.preventDefault();var b=this.id.split("_")[1];var a=prodsToMove[b];var c=a["class"];if(c=="unselecteditem"){a["class"]="selecteditem"}else{a["class"]="unselecteditem"}updateProdToMoveList()})}function doMoveItems(){$("#moveItemdslg").dialog("close");var a=[];for(var f=0;f'+e.name+""}else{a+='
    '+e.name+"
    "}});var c=roominfo.takeawayprice.replace(".",decpoint)+" "+currency;if(c!=""){c='
    '+c+"
    "}if(selectedroomindex<0){a+='
    ';a+='
    Zum Mitnehmen
    ';a+=c;a+="
    "}else{a+='
    ';a+='
    Zum Mitnehmen
    ';a+=c;a+="
    "}$("#roompanel").html(a);$("#tablepanelcontent").html("");showRoomTableTextInfo();showTablesForRoomIndex();bindingRoom()}function getRoomsForDialog(){var b=roominfo.roomstables;var a="";$.each(b,function(e,c){a+='
    '+c.name+"
    "});return a}function bindingRoom(){$(".roomitem").off("click").on("click",function(b){b.stopImmediatePropagation();b.preventDefault();var a=parseInt(this.id.split("_")[1]);$("#changetablebtn").hide();if(panelMode=="waiter"){if(neworders.length>0){$("#unsentorderdlg").dialog({autoOpen:false,modal:true,height:400,buttons:{Nein:function(){$(this).dialog("close")},Ja:function(){$(this).dialog("close");discardChangeRoom(a)}}});$("#unsentorderdlg").dialog("open")}else{changeRoom(a);if(selectedroomindex=="-1"){startProductDisplay()}}}else{changeRoom(a);goPayDesk()}})}function discardChangeRoom(a){neworders=[];groupedNewOrders=null;showNewOrders();changeRoom(a)}function changeRoom(a){clearProductsSelection();selectedtableindex=null;selectedroomindex=a;if(restaurantmode==1){showRooms()}}function showRoomTableTextInfo(){var a="Keine Auswahl";if(selectedroomindex!==null){if(selectedroomindex<0){a="Zum Mitnehmen"}else{a="Raum: "+roominfo.roomstables[selectedroomindex].name;if(selectedtableindex!==null){var b=roominfo.roomstables[selectedroomindex].tables[selectedtableindex];a+=" - Tisch: "+b.name}}}$("#location").html(a)}function showTablesForRoomIndex(){if((selectedroomindex>=0)&&(selectedroomindex!==null)){var f=roominfo.roomstables[selectedroomindex].id;var g=shallDisplayRoom(f);if(g.show){$("#tablepanelcontent").hide();d=new Date();$("#mapimgpart").attr("src","php/tablemap.php?command=getTableMapImgAsPng&showBubbles=0&roomid="+f+"&"+d.getTime());$("#tablemapcontent").show();var c=new Tablemap(selectedroomindex,null,"");var e=roominfo.roomstables[selectedroomindex]["tables"];var a=null;if(selectedtableindex!=null){a=roominfo.roomstables[selectedroomindex].tables[selectedtableindex].id}var b=c.createOverlay("#mapimgpart",g.pos,W_TO_PAY[lang],decpoint,currency,e,ostablebtnsize,a);$("#tableoverlay").html(b);c.bindingForOverlaySelection(handleClickInTablemap.bind(this),f,e,switchZoomView)}else{showTablesListForRoomIndex()}}else{showTablesListForRoomIndex()}}function switchZoomView(){if(tableMapIsZoomed){$(".main").show();$("#roompanel").show();tableMapIsZoomed=false}else{$(".main").hide();$("#roompanel").hide();tableMapIsZoomed=true}}function unZoomTableMap(){tableMapIsZoomed=true;switchZoomView()}function handleClickInTablemap(b){selectedtableindex=null;var c=roominfo.roomstables[selectedroomindex].tables;for(var a=0;a=0)&&(selectedroomindex!==null)){var b=roominfo.roomstables[selectedroomindex].tables;var a="";$.each(b,function(e,f){if((selectedtableindex!=null)&&(b[selectedtableindex].id==f.id)){a+='
    '}else{a+='
    '}a+='
    '+f.name+"
    ";var g=f.pricesum;if(g!=0){var c=g.replace(".",decpoint)+" "+currency;a+='
    '+c+"
    "}a+="
    "});$("#tablepanelcontent").html(a)}else{$("#tablepanelcontent").html("")}$("#tablepanelcontent").show();bindingTable()}function getTablesForDialog(b){var c=roominfo.roomstables[b].tables;var a="";$.each(c,function(e,f){a+='
    '+f.name+"
    "});return a}function updateChangeTableBtnIfTableIsSelected(){if(panelMode=="waiter"){$("#changetablebtn").show()}else{$("#changetablebtn").hide()}}function bindingTable(){$(".tableitem").off("click").on("click",function(b){b.stopImmediatePropagation();b.preventDefault();var a=parseInt(this.id.split("_")[1]);if(panelMode=="waiter"){$("#changetablebtn").show();if(neworders.length>0){$("#unsentorderdlg").dialog({autoOpen:false,modal:true,height:400,buttons:{Nein:function(){$(this).dialog("close")},Ja:function(){$(this).dialog("close");discardChangeTable(a)}}});$("#unsentorderdlg").dialog("open")}else{changeTable(a);startProductDisplay()}}else{changeTable(a);goPayDesk()}})}function discardChangeTable(a){neworders=[];groupedNewOrders=null;showNewOrders();changeTable(a)}function changeTable(a){selectedtableindex=a;showRoomTableTextInfo();showTablesForRoomIndex()}function startProductDisplay(){selectedtypeid=null;selectedprodid=null;clearProductsSelection();requestProdInformation();requestOrderedInformation();$("#search").val("");$("#searchpanel").show();$("#remarkpanel").show()}function clearProductsSelection(){neworders=[];groupedNewOrders=[];selectedtypeid=null;$("#groupchain").html("");$("#groupchoice").html("");$("#productspanel").html("");$("#remark").val("");$("#neworders").html("");$("#ordered").html("");$("#searchpanel").hide();$("#remarkpanel").hide()}var allOrderdItems=[];function requestOrderedInformation(){if(panelMode!="waiter"){return}var a=0;if(selectedroomindex!="-1"){var b=roominfo.roomstables[selectedroomindex].tables[selectedtableindex];a=b.id}doAjax("GET","php/contenthandler.php?module=queue&command=getJsonLongNamesOfProdsForTableNotDelivered&tableid="+a,null,insertOrderedInformation,true)}function insertOrderedInformation(b){allOrderdItems=b;var c=new Grouping(b,createTxtAssignedProd);c.group();var a="";a+=c.outputList(createListElOfAssignedProd);$("#ordered").html(a);bindOrderedItem()}function createTxtAssignedProd(e){var b="";if(e.option!=""){b="

    "+toHtml(e.option)+""}var f="";var c=toHtml(e.longname);if(e.togo==1){f="To-Go: "}c='

    '+f+''+c+"
    ";if(e.pricechanged==1){c+=" - "+e.price.replace(".",decpoint)}var a="";if(e.isready=="1"){a+=" ☞"}if(e.isCooking=="1"){a+=" ♨"}if(e.isPaid=="1"){a+=" ☑"}return c+'
    '+b+a+createExtraParagraphForOrderedEl(e.extras)+"
    "}function createListElOfAssignedProd(c){var b="";if("count" in c){if(c.count>1){b='
    '+c.count+"x
    "}}var a="
    "+b+createTxtAssignedProd(c)+"
    ";return a}function createExtraParagraphForOrderedEl(b){if((b==null)||(b=="")){return""}var e="";var c=[];for(var a=0;a"}return"

    "+c.join("
    ")}function bindOrderedItem(){$(".ordereditem-item-sent").off("click").on("click",function(g){g.stopImmediatePropagation();g.preventDefault();var b=this.id.split("_")[1];var h=allOrderdItems;for(var c=0;c=0){c[c.length]={id:h.id,name:h.name,amount:h.amount}}}}else{if(selectedtypeid!=null){var a=getType(selectedtypeid);for(var e=0;e'+c.name+"

    "}else{a+='
    '+c.name+"
    "}})}$("#groupchoice").html(a);showChain();bindType()}function bindType(){$(".groupitemchoice").off("click").on("click",function(a){a.stopImmediatePropagation();a.preventDefault();$("#search").val("");productFilter=null;showAllProdsToChoose();selectedtypeid=parseInt(this.id.split("_")[1]);updateProductInfoDisplay()})}function showAllProdsToChoose(){var a="";if((selectedroomindex=="-1")||(selectedtableindex!=null)){var b=getAllProds(productFilter);$.each(b,function(c,e){a+='
    '+e.name;if((e.amount!="null")&&(e.amount<11)){a+=" ("+W_ONLY[lang]+" "+e.amount+")"}a+="
    "})}$("#productspanel").html(a);bindProduct();bindRemark()}function getTypeChain(){var b=getType(selectedtypeid);if(b==null){return[]}var e=[b];var c=false;while(!c){var a=b.ref;if((a==null)||(a==0)){c=true;break}else{b=getType(a);e[e.length]=b}}return e}function showChain(){var a="";if((selectedroomindex=="-1")||(selectedtableindex!=null)){var e=getTypeChain();a+='
    Auswahl
    ';for(var c=e.length-1;c>=0;c--){var b=e[c];a+='
    '+b.name+"
    "}}$("#groupchain").html(a);bindChain();bindSearch()}function bindChain(){$(".groupitem").off("click").on("click",function(a){a.stopImmediatePropagation();a.preventDefault();selectedtypeid=parseInt(this.id.split("_")[1]);if(selectedtypeid=="-1"){selectedtypeid=null}updateProductInfoDisplay();$("#search").val("");productFilter=null;showAllProdsToChoose()})}function bindSearch(){$("#search").off("keyup").on("keyup",function(a){a.stopImmediatePropagation();a.preventDefault();productFilter=($("#search").val().trim().toLowerCase()).trim();if(productFilter==""){productFilter=null}showAllProdsToChoose()})}function bindProduct(){$(".productitem").off("click").on("click",function(f){f.stopImmediatePropagation();f.preventDefault();$("#search").val("");selectedprodid=parseInt(this.id.split("_")[1]);var c=$("#remark").val();var a=getProdEntry(selectedprodid);var b=a.extras;if((b!=null)&&(b.length>0)){showExtras(a,c)}else{addProductToNewOrders(selectedprodid,c,null,"NO",0)}})}function bindRemark(){$("#remark").off("click").on("click",function(c){if(genComments!=null){if(genComments.length>0){c.stopImmediatePropagation();c.preventDefault();var a="";for(var b=0;b"+toHtml(genComments[b].comment)+""}$("#commentschoice").html(a);$("#gencommentsdlg").dialog({autoOpen:false,modal:true,height:600,buttons:{Abbrechen:function(){$(this).dialog("close")},Anwenden:function(){$(this).dialog("close");applyComment()}}});$("#gencommentsdlg").dialog("open");$("#gencommentsdlg").css("height",genComments.length*52+150);$("#generalcommentfield").val("");$(".ui-dialog-buttonset .ui-button:nth-child(1)").css("background-color","#eeeeee");$(".ui-dialog-buttonset .ui-button:nth-child(1)").css("color","#ff0000");$(".ui-dialog-buttonset .ui-button:nth-child(2)").css("background-color","#00ff00");$(".ui-dialog-buttonset .ui-button:nth-child(2)").css("color","#000000");$(".ui-widget-header").css("background-color","#ff4400");bindCommentClick()}}})}function bindCommentClick(){$(".commentitem").off("click").on("click",function(a){a.stopImmediatePropagation();a.preventDefault();$("#gencommentsdlg").dialog("close");$("#remark").val($(this).text())})}function applyComment(){$("#remark").val($("#generalcommentfield").val())}function getProdEntry(c){var a=productInformation.prods;for(var b=0;b0){b+="

    "+p.join("
    ")}else{b=""}var r=A+"-"+o+"-"+b;if(f!="NO"){r=A+"-"+o+"-"+b+f}if(l==1){r+=" - To-Go"}var k=z.joinedvals.indexOf(r);if(k>=0){z.count[k]=z.count[k]+1;idxarr=z.origidxs[k];idxarr[idxarr.length]=v;z.origidxs[k]=idxarr}else{var n=z.count.length;z.count[n]=1;z.joinedvals[n]=r;z.name[n]=A;z.price[n]=t;z.option[n]=o;z.extras[n]=b;z.prodids[n]=q;z.changedPrices[n]=f;z.togos[n]=l;z.origidxs[n]=[v]}}return z}function showNewOrders(){groupedNewOrders=group(neworders);var h="";var n=groupedNewOrders.count.length;for(var g=n-1;g>=0;g--){var m=toHtml(groupedNewOrders.name[g]);var l=groupedNewOrders.option[g];var k=groupedNewOrders.count[g];if(k>1){m=""+k.toString()+"x "+m}var f=groupedNewOrders.prodids[g];if(l!=""){l="

    "+toHtml(l)+"

    "}var c=groupedNewOrders.changedPrices[g];var b=groupedNewOrders.togos[g];var o="";var e=groupedNewOrders.extras[g];if((e!=null)&&(e!="")){o=""+e+""}var a="";if(c!="NO"){if(b!=0){a="
    ("+c.replace(".",decpoint)+" "+currency+" - To-Go)"}else{a="
    ("+c.replace(".",decpoint)+" "+currency+")"}}else{if(b!=0){a="
    (To-Go)"}}h+='
    '+m+l+o+a+"
    "}$("#neworders").html(h);$("#remark").val("");if(neworders.length>0){enableSendButton()}else{disableSendButton()}bindNewOrderItem();displayRightButtons()}var roominfo=null;var selectedroomindex=null;var selectedtableindex=null;var productInformation=null;var selectedtypeid=null;var selectedprodid=null;var neworders=[];var groupedNewOrders={count:[],joinedvals:[],name:[],prodids:[],extras:[],origidxs:[],changedPrices:[],togos:[]};var workflowconfig=0;var decpoint=".";var currency="";var rightchangeprice=0;var rightpaydesk=false;var restaurantmode=1;var supplyright=0;var prominentsearch=0;var discount1=50;var discount2=20;var discount3=10;var osroombtnsize=0;var ostablebtnsize=0;var osprodbtnsize=0;var tableMapIsZoomed=false;var waitergopayprint=0;var mainmenu=[];var version="";var loggedinUser="";var lang=0;var payments="";var hostTemplate="";var cancelunpaidcode="";var WORKFLOW_DIGI_AND_WORK=0;var WORKFLOW_DIGI=1;var WORKFLOW_WORK=2;var WORKFLOW_WORK_TRANSFER=3;var productFilter=null;var prodsToMove=[];var allselected=0;var moveFromTableId=null;var moveToRoomIndex=null;var moveToTableId=null;var panelMode="waiter";var cashenabled=1;var genComments=null;var W_SELALL=["Alles auswählen","Select all","Elegir todo"];var W_UNSELALL=["Alles abwählen","Unselect all","No elegir nada"];var W_NO_PRODS_SELECTED=["Es wurden keine Produkte ausgewählt!","You have not chosen any products!","No ha seleccionado ningún producto!"];var W_ONLY=["noch","only","sólo"];var W_TO_PAY=["offen","to pay","a pagar"];var P_CASHACTION_OK=["Kassenaktion abgeschlossen.","Action completed.","Acción terminado."];$(document).ready(function(){selectedroomindex=null;productFilter=null;doAjax("GET","php/contenthandler.php?module=admin&command=getWaiterSettings",null,insertWaiterConfig,"Fehler Konfigurationsdaten",true);doAjax("GET","php/contenthandler.php?module=admin&command=getJsonMenuItemsAndVersion",null,saveMenuInfo,null,true);getGeneralConfigItems();getTableMapPreferences();intervalGetItemsToPayAndRoomInfo(10);getMenuInBackground(60);getPayments(savePayments);getHostTemplate();intervalGetPrinterStatus(5);intervalGetGeneralCommentsAndTablePref(10);intervalGetWaiterMessage(20);if(restaurantmode==0){changeRoom(-1);startProductDisplay()}});function savePayments(a){payments=a.payments;hotelinterface=a.hotelinterface;guests=a.guests;internalguests=a.internalguests}function intervalGetItemsToPayAndRoomInfo(b){var a=setInterval(function(){getAndShowPayItems();requestRoomInformation();requestOrderedInformation()},b*1000)}function intervalGetGeneralCommentsAndTablePref(b){doAjax("GET","php/contenthandler.php?module=products&command=getAllGeneralComments",null,fillGenCommentsList,null,true);var a=setInterval(function(){doAjax("GET","php/contenthandler.php?module=products&command=getAllGeneralComments",null,fillGenCommentsList,null,true);getTableMapPreferences()},b*1000)}function intervalGetWaiterMessage(b){doAjax("GET","php/contenthandler.php?module=admin&command=getWaiterMessage",null,fillWaiterMessage,null,true);var a=setInterval(function(){doAjax("GET","php/contenthandler.php?module=admin&command=getWaiterMessage",null,fillWaiterMessage,null,true)},b*1000)}function getMenuInBackground(b){var a=setInterval(function(){requestProdInformation()},b*1000)}function insertWaiterConfig(c){var a=c.isUserLoggedIn;if(a!=1){setTimeout(function(){document.location.href="index.html"},250)}else{var b=c.config;workflowconfig=b.workflowconfig;decpoint=b.decpoint;currency=b.currency;rightchangeprice=c.rightchangeprice;supplyright=c.supplyright;prominentsearch=b.prominentsearch;waitergopayprint=b.waitergopayprint;discount1=b.discount1;discount2=b.discount2;discount3=b.discount3;cashenabled=b.cashenabled;rightpaydesk=c.rightpaydesk;restaurantmode=b.restaurantmode;if((b.cancelunpaidcode!=null)&&(b.cancelunpaidcode!="")){cancelunpaidcode=b.cancelunpaidcode}else{cancelunpaidcode=""}osroombtnsize=c.buttonsizes.roombtnsize;ostablebtnsize=c.buttonsizes.tablebtnsize;osprodbtnsize=c.buttonsizes.prodbtnsize;initializeOrderView()}}function fillGenCommentsList(a){if(a.status!="OK"){alert("Fehler "+a.code+": "+a.msg);return}genComments=a.msg}function fillWaiterMessage(a){if(a.status=="OK"){var b=a.msg.trim();if(b!=""){$("#waitermessagearea").html("Nachricht: "+toHtml(b));$("#waitermessagearea").show()}else{$("#waitermessagearea").html("");$("#waitermessagearea").hide()}}}function initializeOrderView(){panelMode="waiter";initGui();clearProductsSelection();requestRoomInformation();requestProdInformation();bindMainMenuButton();bindRightButtons();if(restaurantmode==0){$("#tablepanel").hide()}}function getHostTemplate(){$.ajax({url:"customer/bon-bewirtungsvorlage.html",async:false,success:function(a){hostTemplate=a},error:function(a){},cache:false})}function saveMenuInfo(a){if(a.loggedin==1){loggedinUser=a.user;$("#loggedinuser").html(" "+loggedinUser);$("#versioninfo").html(a.version);version=a.version;$.each(a.menu,function(e,c){var b=c.name;var f=c.link;mainmenu[mainmenu.length]={name:b,link:f}});$("#mainmenubtn").show()}else{$("#mainmenubtn").hide()}}function bindMainMenuButton(){$("#selectiondialog").dialog({autoOpen:false,modal:true,height:400,buttons:{Anwenden:function(){$(this).dialog("close");applyExtras()}}});$("#unsentorderdlg").dialog({autoOpen:false,modal:true,height:400,buttons:{Nein:function(){$(this).dialog("close")},Ja:function(){$(this).dialog("close")}}});$("#actmenudlg").dialog({autoOpen:false,modal:true,height:400});$("#mainmenudlg").dialog({autoOpen:false,modal:true,height:400,width:200,position:{my:"right top",at:"right top",of:"body"},buttons:{Abbrechen:function(){$(this).dialog("close")}}});$("#ordereditemdlg").dialog({autoOpen:false,modal:true,height:400,width:200});$("#moveItemdslg").dialog({autoOpen:false,modal:true,height:400,width:200});$("#mainmenubtn").off("click").on("click",function(f){f.stopImmediatePropagation();f.preventDefault();var b="
    ";$("#mainmenudlg").html(b);var a=280+mainmenu.length*40;$("#mainmenudlg").dialog({autoOpen:false,modal:true,height:a,width:200,position:{my:"right top",at:"right top",of:"body"},buttons:{Abbrechen:function(){$(this).dialog("close")}}});$("#mainmenudlg").dialog("open");$(".mainmenuitem").off("click").on("click",function(i){i.stopImmediatePropagation();i.preventDefault();var h=parseInt(this.id.split("_")[1]);var g=mainmenu[h].link;$("#mainmenudlg").dialog("close");setTimeout(function(){document.location.href=g},250)})})}function goOrderDesk(){panelMode="waiter";initGui();clearProductsSelection();requestProdInformation();requestOrderedInformation()}function goPayDesk(){panelMode="paydesk";initGui();startCashProcess()}function initGui(){displayPanels();displayRightButtons()}function displayPanels(){if(panelMode==="waiter"){$("#panelmodetxt").html("Bestellung");$("#groupchain").show();$("#groupchoice").show();$("#searchpanel").show();$("#productspanel").show();$("#remarkpanel").show();$("#ordered").show();$("oben").html("");$("#oben").hide();$("#unten").html("");$("#unten").hide();$("#receiptpanel").hide();$("#paybuttonpanel").hide();$("#receiptpanel").hide()}else{$("#panelmodetxt").html("Kasse");$("#groupchain").hide();$("#groupchoice").hide();$("#searchpanel").hide();$("#productspanel").hide();$("#remarkpanel").hide();$("#ordered").hide();$("oben").html("");$("#oben").show();$("#unten").html("");$("#unten").show();$("#goorderbtn").show();$("#receiptpanel").show();$("#paybuttonpanel").show();$("#receiptpanel").show()}}function displayRightButtons(){$("#changetablebtn").hide();if(panelMode==="waiter"){if((rightpaydesk==1)&&(cashenabled==1)){$("#paydeskbtn").show()}$("#hostbutton").hide();$("#cashbutton").hide();$("#paydeskcash").hide();$("#paydeskprint").hide();$("#goorderbtn").hide();if(neworders.length>0){if((workflowconfig==WORKFLOW_DIGI_AND_WORK)||(workflowconfig==WORKFLOW_WORK)||(workflowconfig==WORKFLOW_WORK_TRANSFER)){$("#workbtn").show()}if((workflowconfig==WORKFLOW_DIGI_AND_WORK)||(workflowconfig==WORKFLOW_DIGI)||(workflowconfig==WORKFLOW_WORK_TRANSFER)){$("#sendNewOrders").show()}}if((selectedtableindex!=null)&&(neworders.length==0)){$("#changetablebtn").show()}}else{$("#paydeskbtn").hide();if(restaurantmode==1){$("#hostbutton").show()}$("#cashbutton").show();if(prodsaccounted.length>0){$("#paydeskcash").show();$("#paydeskprint").show();$("#goorderbtn").show()}$("#workbtn").hide();$("#sendNewOrders").hide()}}var e_extras=[];var e_extras_selection=[];var e_prod=null;var e_option=null;function showExtras(a,c){e_prod=a;e_option=c;e_extras=a.extras;e_extras_selection=[];for(var b=0;b"+toHtml(c)+""}else{a+="
  • "+toHtml(c)+"
  • "}}a+="";$("#selectiondialog").html(a);$(".ui-dialog-buttonset .ui-button").css("background-color","#44ff44");$(".ui-widget-header").css("background-color","#ff4400");bindExtra()}function bindExtra(){$(".extraitem").off("click").on("click",function(a){a.stopImmediatePropagation();a.preventDefault();extraClicked(parseInt(this.id.split("_")[2]))});$(".extraitemselected").off("click").on("click",function(a){a.stopImmediatePropagation();a.preventDefault();extraClicked(parseInt(this.id.split("_")[2]))})}function extraClicked(a){if(e_extras_selection[a]){e_extras_selection[a]=false}else{e_extras_selection[a]=true}displayExtras()}function applyExtras(){var b=[];for(var e=0;e0){actcount--}}else{if(b==="actplusbtn"){actcount++}else{if(b==="actdiscount1btn"){actprice=origprice-origprice*discount1/100;var a=actprice.toFixed(2).replace(".",decpoint);$("#actpricefield").val(a);$("#actpriceinfo").html(a+" "+currency)}else{if(b==="actdiscount2btn"){actprice=origprice-origprice*discount2/100;var a=actprice.toFixed(2).replace(".",decpoint);$("#actpricefield").val(a);$("#actpriceinfo").html(a+" "+currency)}else{if(b==="actdiscount3btn"){actprice=origprice-origprice*discount3/100;var a=actprice.toFixed(2).replace(".",decpoint);$("#actpricefield").val(a);$("#actpriceinfo").html(a+" "+currency)}else{if(b==="acttogobtn"){acttogo=1-acttogo}}}}}}insertDataIntoActDialog()})}function changeAllNewOrders(){actionNewOrderConfirm(CHANGE_ALL)}function changeOneNewOrder(){actionNewOrderConfirm(CHANGE_ONE)}function delNewOrderItem(){actcount=0;actionNewOrderConfirm(CHANGE_ALL)}function actionNewOrderConfirm(h){var c=selectedEntry;if(rightchangeprice==1){var g=$("#actpricefield").val().trim();g=g.replace(",",".");if(g>999.99){alert("Maximaler Preis für das Produkt überschritten");return}if(g==""){g="NO"}else{if(!$.isNumeric(g)){alert("Es wurde ein falsches Zahlenformat angegeben");return}else{actprice=g;$("#actpricefield").val("")}}}else{g="NO"}if(h==CHANGE_ONE){var a=c.origidxs;neworders[a[0]].option=$("#actremarkfield").val();neworders[a[0]].changedPrice=g;neworders[a[0]].togo=acttogo}else{var a=c.origidxs;for(m=0;m0){var a=c.origidxs;var q=a[0];var l=neworders[q].prodid;var g=neworders[q].changedPrice;var e=neworders[q].togo;var n=neworders[q].option;var k=neworders[q].extras;for(m=0;m=0){if(selectedtableindex!=null){var b=roominfo.roomstables[selectedroomindex].tables[selectedtableindex];a=b.id;taxtype="normal"}else{a=null}}else{tabeid=0;taxtype="togo"}}else{a=null}if(a!=null){doAjax("GET","php/contenthandler.php?module=queue&command=getJsonProductsOfTableToPay",{tableid:a},showProductsToPay,"Fehler bei der Datenübermittlung",true)}else{prodsToPayList=[];displayProdsToPayForTable();displayProdsOnReceipt()}}}function showProductsToPay(a){if(a.status!="OK"){alert("Fehler: "+a.msg);if(a.code==4){setTimeout(function(){document.location.href="index.html"},250)}}prodsToPayList=a.msg;displayProdsToPayForTable();displayProdsOnReceipt()}function displayProdsToPayForTable(){bindHostButton("#hostbutton");bindCashButton();if(prodsToPayList.length==0){$("#oben").html("Keine weiteren Artikel vorhanden.")}else{prodsToPayListGrouping=new Grouping(prodsToPayList,createHashOfPayableItem);prodsToPayListGrouping.group();var a=prodsToPayListGrouping.outputList(createPayableItemListElement);$("#oben").html(a)}$(".payable").off("click").on("click",function(c){c.stopImmediatePropagation();c.preventDefault();var h=this.id;var g=$(".payable").index(this);var f=prodsToPayListGrouping.sortedset[g];var b=aProdToPayIsClicked(f);updateAccounted(h,b,f.count);displayProdsOnReceipt()});$("#payall").off("click").on("click",function(h){h.stopImmediatePropagation();h.preventDefault();for(var b=0;b'+f.name+"";if(!b){c+="


    ";b=true}}});c+='
    '+P_CANCEL[lang]+"
    ";$("#selectiondialog").html(c);var e=600;if(paymentconfig==1){e=380}$("#selectiondialog").dialog({autoOpen:false,modal:true,height:e,buttons:{Abbrechen:function(){$(this).dialog("close")}}});$("#selectiondialog").dialog("open");bindPayment()}function bindPayment(){$(".paymentcancel").off("click").on("click",function(a){a.stopImmediatePropagation();a.preventDefault();$("#selectiondialog").dialog("close")});$(".paymentitem").off("click").on("click",function(a){a.stopImmediatePropagation();a.preventDefault();var b=this.id.split("_")[1];currentPaymentId=b;$("#selectiondialog").dialog("close");if((currentPaymentId==PAYMENT_HS3)||(currentPaymentId==PAYMENT_GUEST)){$("#hoteldialog").dialog({autoOpen:false,modal:true,height:400,width:500,buttons:{Abbrechen:function(){$(this).dialog("close")}}});$("#hoteldialog").dialog("open");$("#roomguesttextfield").val("");bindhotelinterface(currentPaymentId);return}else{startPayProcess(b,"","","")}})}function bindhotelinterface(a){generateGuestResult($("#roomguesttextfield").val(),false,a);$("#roomguesttextfield").off("keyup").on("keyup",function(b){generateGuestResult($("#roomguesttextfield").val(),false,a)});$("#paym_hotel").off("click").on("click",function(h){h.stopImmediatePropagation();h.preventDefault();var f=$("#hotelroomfoundguest").data("reservation");var c=$("#hotelroomfoundguest").data("guest");var b=$("#hotelroomselection").find(":selected").val();if(b!=undefined){var c=guests[b];var g="";if(currentPaymentId==PAYMENT_GUEST){c=internalguests[b];g=c.id}startPayProcess(currentPaymentId,c.reservationid,c.object+" - "+c.guest,g);$("#hoteldialog").dialog("close")}else{alert("Kein Gast ausgewählt")}})}function generateGuestResult(c){c=c.trim().toLowerCase();if(c==""){$("#hotelroomselection").html("");return}var b="";var a=false;$.each(guests,function(h,k){var e=k.object;var l=k.guest;var f=(e.toLowerCase().indexOf(c)>=0);var g=(l.toLowerCase().indexOf(c)>=0);if(f||g){if(!a){a=true;b+='"}else{b+='"}}});$("#hotelroomselection").html(b)}function updateAccounted(c,a,b){if(a===b){$("#"+c).removeClass("paystillopen");$("#"+c).removeClass("payallaccounted");$("#"+c).addClass("payallaccounted")}else{$("#"+c).removeClass("paystillopen");$("#"+c).removeClass("payallaccounted");$("#"+c).addClass("paystillopen")}if(a===0){$("#"+c+" .payitemaccounted").html("")}else{$("#"+c+" .payitemaccounted").html(a)}}function getProdAccountedEntry(c){var f=createHashOfPayableItem(c);for(var a=0;a1){f=g.count+"x ";c=g.count}}var b=false;var a=getProdAccountedEntry(g);var h="";if(a!==null){if(a.count!=0){h=a.count}if(a.count==c){b=true}}var e="";if(b){e='
    '+f+createHashOfPayableItem(g)+"
    "+h+"
    "}else{e='
    '+f+createHashOfPayableItem(g)+"
    "+h+"
    "}return e}function createOnReceiptItemListElement(c){var b="";if("count" in c){if(c.count>1){b=c.count+"x "}}var a='
    '+b+createHashOfPayableItem(c)+"
    ";return a}function getProdOfAllProdsWithHash(e){var b=prodsToPayListGrouping.sortedset;for(var a=0;a";$("#receiptpanel").html(c);calcSum();var k=$("#receiptpart").html();$("#info-page").data("receipthtml",k);displayRightButtons()}function getTableName(){if(selectedtableindex!=null){var a=roominfo.roomstables[selectedroomindex].tables[selectedtableindex];return a.name}else{if(selectedroomindex=="-1"){return"Zum Mitnehmen"}else{return null}}}function createReceiptHeader(){var a=genCreateReceiptHeader(0,"",getTableName(),loggedinUser,currency);return a}function createReceiptFooter(b,c,a){var e=genCreateReceiptFooterNoSum(b,0,"",a);return e}function getQueueIdsDueToCountOfItem(g){var e=[];var h=g.hash;var f=g.count;for(var b=0;b=f){break}}}return e}function startPayProcess(t,o,r,l){var n=getTableName();var f=0;if(selectedroomindex!=-1){if(selectedtableindex!=null){var k=roominfo.roomstables[selectedroomindex].tables[selectedtableindex];f=k.id}else{f=0}}var h=$("#info-page").data("usst");if($("#info-page").data("taxtype")=="togo"){h=$("#info-page").data("togotax")}checkForLogIn();var e=[];var s=prodsOnReceiptList;var q=prodsaccounted;var p=prodsOnReceiptListGrouping;for(var m=0;m";printContent(v)}}startCashProcess()}}else{alert("Fehler: "+c)}},error:function(a){alert("Sorry, there was a problem! "+a)}})}var P_DESCR=["Beschreibung","Description","Descripción"];var P_PRICE=["Preis","Price","Precio"];var P_TOTAL=["Total","Total","Total"];var P_ID=["Id:","Id:","Id:"];var P_ROOMSEL=["Raumauswahl","Room selection","Selección de espacio"];var P_PAYDESK_ACTIONS=["Kassenaktionen","Paydesk actions","Acciones de caja"];var P_BAR_INPUT=["Bareinlage","Input money","Insertar dinero"];var P_BAR_GET=["Barentnahme","Take money","Sacar dinero"];var P_BAR_SUM=["Einnahmen","Revenue","Cobro"];var P_TITLE=["Kasse","Paydesk","Caja"];var P_TABLE=["Tisch","Table","Mesa"];var P_TABLE_SEL=["Tischauswahl","Select table","Qué mesa?"];var P_NOT_PAID=["Ausstehend für ","Not paid for ","Impagado para "];var P_ALL=["Alles","All","Todo"];var P_CONTENT_RECEIPT=["Inhalt Kassenbon","Content of receipt","Contenido del tique"];var P_ONLY_PAY=["Nur Zahlung","Only pay","Solo pagar"];var P_PAY_PRINT=["Bondruck","Pay+Print","Pagar+Imprimir"];var P_CHANGE_CALC=["Wechselgeldrechner:","Change Calculator:","Calculadora de Cambio:"];var P_CHOOSE_PAYWAY=["Auswahl der Zahlungsart:","Selection of method of payment:","Selección del modo de pago:"];var P_CANCEL=["Abbrechen","Cancel","Cancelar"];var P_CASHTAKEOUT=["Barentnahme aus der Kasse","Cash take-out","Sacar dinero"];var P_CASHTAKIN=["Bareinlage in die Kasse","Cash insert","Insertar dinero"];var P_AMOUNT=["Betrag:","Amount:","Valor:"];var P_OVERVIEW=["Übersicht Kellnerkasse","Overview waiter purse","Resumen cartera de bolsillo"];var P_PUT_IN=["Einlegen","Insert","Insertar"];var P_TAKE_OUT=["Entnehmen","Take out","Sacar"];var P_OVERV_DETAILS=["Diese Übersicht enthält die Bar-Bewirtungseinnahme durch den Kellner seit der letzten Tageslosung sowie als weiteren Wert den Kassenstand unter Berücksichtigung der eigenen Eingaben und Entnahmen.","This overview contains the cash amount of money of this waiter since the last closing as well as the total amount of money including the own cash insert and take-out actions.","Este resumen contiene todo el dinero al contado por cobro para el camarero, y también el dinero incluido con acciones de insertar y sacar."];var P_CASH_SUM=["Bewirtungseinnahmen:","Cash by payment:","Cobro:"];var P_INCLUDE_OWN=["inkl. eigener Kassen-Eingaben/Entnahmen:","incl. own cash insert/take-outs:","incl. tomas y entradas proprias:"];var P_NO_ELEM=["Keine Rechnungselemente","No items selected","Ningún producto selecionado"];var P_NO_ELEM_DETAILS=["Es wurden keine abrechenbaren Produkte festgelegt (der Bon ist leer!).","There are no selected items. The receipt is empty!","No hay ningún elemento seleccionado para pagar."];var P_CASHACTION_OK=["Kassenaktion abgeschlossen.","Action completed.","Acción terminado."];var P_NAV=["Navigation","Navigation","Navigación"];var P_ORDER_ACTION=["-> Bestellansicht","-> Order view","-> Vista de Orden"];var P_TO_PAY=["Zu zahlen: ","To pay: ","Pagar total: "];var P_PAY_RETURN=["Zurück: ","Return: ","Torna: "];var P_CALC_PAYBACK=["Berechne","Calculate","Calcular"];var P_HAS_PAID=["Bezahlt: ","Paid: ","Pagado: "];var P_TOGO=["Außer-Haus-Verkauf","Sale with Tax No 2","Venta IVA 2"];var P_TIP=["nur Trinkg.: ","Only tip: ","Solo prop.: "];var P_TOTAL_INCL_TIP=["Zielbetrag:","Target pay:","Quiere pagar:"];var CALC_TIP_TXT=["Angabe extra Trinkg.","Do Tip separate","Propina individual"];var CALC_TOTAL_TXT=["Angabe inkl.Trinkg.","Do Tip incl.","Propina incl."];var P_GUESTS=["Gäste","Guests","Habitaciones"];var showHostTemplate=false;var guests=[];var internalguests=[];var hotelinterface=0;var PAYMENT_HS3=7;var PAYMENT_GUEST=8;var currentPaymentId=7;function getGeneralConfigItems(){doAjax("GET","php/contenthandler.php?module=admin&command=getGeneralConfigItems",null,insertGeneralConfigItems,"Fehler Konfigurationsdaten")}function getPayments(a){doAjax("GET","php/contenthandler.php?module=admin&command=getPayments",null,a,"Fehler Zahlungswege")}function insertGeneralConfigItems(b){if(b.status=="OK"){var a=b.msg;decpoint=a.decpoint;$("#info-page").data("decpoint",a.decpoint);currency=a.currency;var e=a.tax;var c=e.replace(".",decpoint);$("#info-page").data("usstGerVal",c);$("#info-page").data("usst",e);e=a.togotax;c=e.replace(".",decpoint);$("#info-page").data("togoTaxGerVal",c);$("#info-page").data("togotax",e);$("#info-page").data("companyinfo",a.companyinfo);$("#info-page").data("payPrintType",a.payprinttype);$("#info-page").data("currency",a.currency);$("#info-page").data("billlanguage",a.billlanguage);$("#info-page").data("userlanguage",a.userlanguage);receiptfontsize=parseInt(a.receiptfontsize);$("#receiptpart").css("font-size",receiptfontsize+"px");paymentconfig=a.paymentconfig;$("#curtopay2").html(" "+a.currency);workflowconfig=a.workflowconfig;digigopaysetready=a.digigopaysetready;setLanguage(a.userlanguage)}else{$("#contentpart").hide();setTimeout(function(){document.location.href="index.html"},250)}}function addEntryOrIncreaseCount(a,f){var c=0;var g=false;var e=f.prodid+"-"+f.extras.join("_")+f.price+"-"+f.pricelevelname+"#"+f.tax+"_"+f.togo;for(c=0;cID:"+e+"";g+=' ";g+=""+c+"";g+=" ";if(l!=""){g+="Gast: "+toHtml(l)+"";g+=" "}g+=""+P_NO[b]+""+P_DESCR[b]+""+P_PRICE[b]+""+P_TOTAL[b]+"";return g}function genCreateReceiptFooterNoSum(c,e,b,a){return genCreateReceiptFooter(c,e,b,"","","",a)}function genCreateReceiptFooter(a,f,b,k,e,m,n){var c='style="border: solid black 0px;padding: 3px;text-align:right;vertical-align:bottom;"';var p='style="text-align:center;vertical-align:bottom;"';var h=" ";var o=h;o+=""+P_MWST[f]+"% "+P_MWST[f]+""+P_NETTO[f]+""+P_BRUTTO[f]+"";for(var l=0;l"+k+'"+e+'"+m+""}o+=h;o+="   "+P_SUM[f]+'"+m+"";o+=h;o+="
     
    ";o+=toHtml(b).replace(/(?:\r\n|\r|\n)/g,"
    ");o+="
    ";return o}function generateOneProdLine(k,g,i,a,n,f){var b='style="border: solid black 0px;padding: 3px;text-align:right;vertical-align:bottom;"';var h='style="border: solid black 0px;padding: 3px;text-align:center;vertical-align:bottom;"';var c=(parseFloat(i)).toFixed(2).replace(".",n);if(a!="A"){g+=" ("+a+")"}if(f==1){g="To-Go: "+g}var m=k*i;var l="";var e='style="white-space: nowrap;overflow: hidden;text-overflow:ellipsis;width: 60%;"';l+="'+k+""+g;l=l+""+c;l+=""+m.toFixed(2).replace(".",n)+"";return l}function generateProdPartByDbContent(f,e){var c=0;tablecontent="";for(c=0;c=0);var m=(p.toLowerCase().indexOf(g)>=0);if(l||m){i++;h=toHtml(k+" - "+p);if(!c){c=true;f+='"}else{f+='"}}});if(i===1){$("#hotelroomfoundguest").html(h);$("#hotelroomselection").html(f)}else{$("#hotelroomselection").html(f)}if(b){$("#hotelroomselection").selectmenu("refresh")}};