From 05d4005897bbd4f63d5dbd84b79b18d8b13d26e8 Mon Sep 17 00:00:00 2001 From: Geno Date: Thu, 19 Nov 2020 23:24:09 +0100 Subject: [PATCH] OrderSprinter 2.0.11 --- gastsystem/index.php | 6 +- gastsystem/install.php | 4 +- .../windows/OrderSprinterPrintserver.exe | Bin 289280 -> 289280 bytes scripts/ubuntuinstaller.sh | 188 +++++++++++------- spider/install/installer.php | 2 +- tseconnector/swissbit/tseconnector.jar | Bin 47182 -> 47583 bytes webapp/OrderSprinterPrintserver.exe | Bin 289280 -> 289280 bytes webapp/bar.html | 6 +- webapp/bill.html | 6 +- webapp/customers.html | 6 +- webapp/dash.php | 4 +- webapp/elements/groundplan.js | 2 +- webapp/feedback.html | 4 +- webapp/help.php | 6 +- webapp/index.html | 14 +- webapp/install.html | 4 +- webapp/install/installer.php | 2 +- webapp/kitchen.html | 6 +- webapp/manager.html | 44 ++-- webapp/paydesk.html | 8 +- webapp/php/admin.php | 42 ++-- webapp/php/customers.php | 2 +- webapp/php/debug.php | 2 +- webapp/php/reservation.php | 2 +- webapp/php/roomtables.php | 2 +- webapp/php/utilities/osqrcode.php | 2 +- webapp/php/utilities/version.php | 6 +- webapp/pickups.html | 4 +- webapp/preferences.html | 4 +- webapp/products.html | 8 +- webapp/productsdesktop.php | 4 +- webapp/rating.html | 4 +- webapp/reports.html | 4 +- webapp/reservation.html | 12 +- webapp/sumuphandler.php | 8 +- webapp/supplydesk.html | 4 +- webapp/tasks.html | 4 +- webapp/timetracking.html | 4 +- webapp/waiter.html | 6 +- webapp/waiterdesktop.php | 26 +-- 40 files changed, 250 insertions(+), 212 deletions(-) diff --git a/gastsystem/index.php b/gastsystem/index.php index 6db7fd5..85b31fc 100644 --- a/gastsystem/index.php +++ b/gastsystem/index.php @@ -9,8 +9,8 @@ - - + + @@ -115,7 +115,7 @@
  OrderSprinter
-
2.0.10  
+
2.0.11  
diff --git a/gastsystem/install.php b/gastsystem/install.php index a443806..169b6fd 100644 --- a/gastsystem/install.php +++ b/gastsystem/install.php @@ -115,10 +115,10 @@ if (isset($_POST['code'])) { } else { echo ""; echo "Installation Gastsystem"; - echo ''; + echo ''; echo ""; echo "
"; - echo "Installation OrderSprinter-Gastsystem 2.0.10

"; + echo "Installation OrderSprinter-Gastsystem 2.0.11

"; echo "
"; echo "
"; echo "
"; diff --git a/printserver/windows/OrderSprinterPrintserver.exe b/printserver/windows/OrderSprinterPrintserver.exe index 7f9632f10fe700f823861dcf0a7c556ff46ced0b..65e45395fe88a1e2a2d45ea39d9bd202424dba42 100644 GIT binary patch delta 162 zcmZp;BG_<6a6$+3$*if3-L2h>t=&vpyP21tX5`*(e1^HfRK?lR(%Hq(%u?6Fz`$77 z#Kpx(*TT%wNY~BW$<4*Z+||Ow$awp8MwZ=9jE37MyRaP^HDu6ZFqmw} MsI;9igXKRX0H3BayZ`_I delta 162 zcmZp;BG_<6a6$+3(%qen-L2h>t=&vpyP21tX5`v#e1^HfRK?N6)ycxZ$x+wH(#b;C z#KO{C*TTu%RM*Yb&D_+`+{D$$)p`4MMwZ=9j0W2$yRa<)0}~K)ZJ(aP63++}|DMXS8c0uHoX%p-YQUh!U@+N` MQE5A42Frg&0Q@mD>Hq)$ diff --git a/scripts/ubuntuinstaller.sh b/scripts/ubuntuinstaller.sh index cfb1e18..dd42665 100755 --- a/scripts/ubuntuinstaller.sh +++ b/scripts/ubuntuinstaller.sh @@ -23,6 +23,9 @@ remoteaccesscode="please_change" # ACHTUNG: Statt "/" muss ein "\/" eingetragen werden: backupdevice="\/dev\/sdb1" +# Währung +currency="Euro" + ########################################################################################## # @@ -31,7 +34,7 @@ backupdevice="\/dev\/sdb1" ######################################################################################### # OrderSprinter-Version -version="2_0_10" +version="2_0_11" # Warnhinweis an den Anwender mit der Möglichkeit des Abbruchs echo "Dieses Skript ist für die Ausführung auf einem frisch aufgesetzten" @@ -64,30 +67,37 @@ if [[ $EUID -ne 0 ]]; then exit 1 fi -read -p "Skript wirklich ausführen (j/n)?" runscript -case "$runscript" in - j|J ) runscript=1;; - * ) runscript=0;; -esac -echo "Das Skript kann alleine stehend aufgerufen werden und die Version ${version} downloaden" -echo "und installieren. Andererseite kann man auch die neueste Version der OrderSprinter-Suite" -echo "downloaden, in ein Verzeichnis entpacken und das dortige Skript ausführen." +echo "Das Skript kann alleine stehend aufgerufen werden und die " +echo "Version ${version} downloaden und installieren." +echo "Andererseite kann man auch die neueste Version der" +echo "OrderSprinter-Suite downloaden, in ein Verzeichnis" +echo "entpacken und das dortige Skript ausführen." read -p "Wird das Skript im Verzeichnis des entpackten Download der OrderSprinter-Suite aufgerufen (j/n)?" calllocation case "$calllocation" in j|J ) calllocation=1;; * ) calllocation=0;; esac -if [[ $runscript -eq 0 ]] -then - echo "Skriptausführung abgebrochen" - exit -fi - # Frage wegen Installationsumfang +installcore=0 +echo "Kernapplikation installieren? Alle anderen Installationsoptionen basieren" +echo "darauf, dass die Kernapplikation so aufgesetzt ist, wie im Skript festgelegt." +read -p "Soll das Skript die Kernapplikation installieren (j/n)?" installcore +case "$installcore" in + j|J ) installcore=1;; + * ) installcore=0;; +esac + +installprintserver=0 +read -p "Soll das Skript den Javaprintserver installieren (j/n)?" installprintserver +case "$installprintserver" in + j|J ) installprintserver=1;; + * ) installprintserver=0;; +esac + insertsamplecontent=0 -read -p "Beispieldaten einfügen (Benutzer, Raumplan usw.) (j/n)?" samplecontent +read -p "Beispieldaten einfügen (Benutzer, Raumplan usw.). Beispieldaten sollten nur in eine frischen Installation eingefügt werden, z.B. im Zusammenhang mit einer Installation des Kernsystems. Einfügen? (j/n)?" samplecontent case "$samplecontent" in j|J ) insertsamplecontent=1;; * ) insertsamplecontent=0;; @@ -101,7 +111,7 @@ case "$choice" in * ) install_tse=0;; esac -# Frage Benutzer, ob regelmäßiges Backup azf einen angeschlossenen USB-Stick stattfinden soll +# Frage Benutzer, ob regelmäßiges Backup auf einen angeschlossenen USB-Stick stattfinden soll autobackup=0 read -p "Regelmäßiges nächtliches Backup um 4 Uhr auf angeschlossenen USB-Stick (j/n)?" dobackup case "$dobackup" in @@ -131,47 +141,54 @@ else cp -R ${scriptpath}/../* /tmp/ordersprinter fi -# Installation der Umgebung -echo "Update der Umgebung. Dies wird eine Zeitlang dauern..." -echo "Paketlisten neu einlesen und aktualisieren..." -apt-get -y update -echo "Neuen Versionen von Paketen installieren, falls Aktualisierungen vorhanden sind..." -apt-get -y upgrade -echo "Installation von Webserver und Datenbank..." -apt-get -qq -y install unzip apache2 libapache2-mod-php php mariadb-server php-mysql php-gd php-curl php-zip php-xml default-jre -mysqladmin -u root password $dbadminpassword +if [[ $installcore -eq 1 ]] +then + # Installation der Umgebung + echo "Update der Umgebung. Dies wird eine Zeitlang dauern..." + echo "Paketlisten neu einlesen und aktualisieren..." + apt-get -y update + echo "Neuen Versionen von Paketen installieren, falls Aktualisierungen vorhanden sind..." + apt-get -y upgrade + echo "Installation von Webserver und Datenbank..." + apt-get -qq -y install unzip apache2 libapache2-mod-php php mariadb-server php-mysql php-gd php-curl php-zip php-xml default-jre + mysqladmin -u root password $dbadminpassword -# Konfigurationswerte -PHPVERSION=$(ls /etc/php) -echo "Anpassen einiger Konfigurationswerte" -sed -i -e "s/memory_limit.*/memory_limit = $avail/" /etc/php/${PHPVERSION}/apache2/php.ini -sed -i -e "s/max_execution_time.*/max_execution_time = 600/" /etc/php/${PHPVERSION}/apache2/php.ini -sed -i -e "s/post_max_size.*/post_max_size = 10000M/" /etc/php/${PHPVERSION}/apache2/php.ini -sed -i -e "s/upload_max_filesize.*/upload_max_filesize = 10000M/" /etc/php/${PHPVERSION}/apache2/php.ini -service apache2 reload -sleep 3s + # Konfigurationswerte + PHPVERSION=$(ls /etc/php) + echo "Anpassen einiger Konfigurationswerte" + sed -i -e "s/memory_limit.*/memory_limit = $avail/" /etc/php/${PHPVERSION}/apache2/php.ini + sed -i -e "s/max_execution_time.*/max_execution_time = 600/" /etc/php/${PHPVERSION}/apache2/php.ini + sed -i -e "s/post_max_size.*/post_max_size = 10000M/" /etc/php/${PHPVERSION}/apache2/php.ini + sed -i -e "s/upload_max_filesize.*/upload_max_filesize = 10000M/" /etc/php/${PHPVERSION}/apache2/php.ini + service apache2 reload + sleep 3s -echo "Create database" -mysql -uroot -p$dbadminpassword -e "DROP DATABASE IF EXISTS $db"; -mysql -uroot -p$dbadminpassword -e "CREATE DATABASE $db DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci"; -mysql -uroot -p$dbadminpassword -e "DROP USER IF EXISTS $dbuser@localhost"; -mysql -uroot -p$dbadminpassword -e "CREATE USER $dbuser@localhost IDENTIFIED BY '$dbuserpassword'"; -mysql -uroot -p$dbadminpassword -e "GRANT ALL ON $db.* TO $dbuser@localhost"; + echo "Create database" + mysql -uroot -p$dbadminpassword -e "DROP DATABASE IF EXISTS $db"; + mysql -uroot -p$dbadminpassword -e "CREATE DATABASE $db DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci"; + mysql -uroot -p$dbadminpassword -e "DROP USER IF EXISTS $dbuser@localhost"; + mysql -uroot -p$dbadminpassword -e "CREATE USER $dbuser@localhost IDENTIFIED BY '$dbuserpassword'"; + mysql -uroot -p$dbadminpassword -e "GRANT ALL ON $db.* TO $dbuser@localhost"; -echo "Copy files to webserver doc directory" -rm -r /var/www/html/index.html -cp -R /tmp/ordersprinter/webapp/* /var/www/html/ -chown -R www-data:www-data /var/www/html -chmod -R u+w /var/www/html -cd /var/www/html/php + echo "Copy files to webserver doc directory" + rm -r /var/www/html/index.html + cp -R /tmp/ordersprinter/webapp/* /var/www/html/ + chown -R www-data:www-data /var/www/html + chmod -R u+w /var/www/html + cd /var/www/html/php -echo "Konfiguration des Datenbankzugangs" -sed -i -e "s/defined('MYSQL_USER').*/defined('MYSQL_USER') || define ('MYSQL_USER', '$dbuser');/" config.php -sed -i -e "s/defined('MYSQL_PASSWORD').*/defined('MYSQL_PASSWORD') || define ('MYSQL_PASSWORD', '$dbuserpassword');/" config.php -sed -i -e "s/defined('MYSQL_DB').*/defined('MYSQL_DB') || define ('MYSQL_DB', '$db');/" config.php -sed -i -e "s/defined('TAB_PREFIX').*/defined('TAB_PREFIX') || define ('TAB_PREFIX', '$tabprefix');/" config.php -echo "Default-Installation der Kernapplikation" -wget -O /tmp/loginstall.txt 2>>/dev/null "http://localhost/install/installer.php?command=defaultinstall&db=${db}&dbuser=${dbuser}&dbpass=${dbuserpassword}&prefix=${tabprefix}" + echo "Konfiguration des Datenbankzugangs" + sed -i -e "s/defined('MYSQL_USER').*/defined('MYSQL_USER') || define ('MYSQL_USER', '$dbuser');/" config.php + sed -i -e "s/defined('MYSQL_PASSWORD').*/defined('MYSQL_PASSWORD') || define ('MYSQL_PASSWORD', '$dbuserpassword');/" config.php + sed -i -e "s/defined('MYSQL_DB').*/defined('MYSQL_DB') || define ('MYSQL_DB', '$db');/" config.php + sed -i -e "s/defined('TAB_PREFIX').*/defined('TAB_PREFIX') || define ('TAB_PREFIX', '$tabprefix');/" config.php + echo "Default-Installation der Kernapplikation" + wget -O /tmp/loginstall.txt 2>>/dev/null "http://localhost/install/installer.php?command=defaultinstall&db=${db}&dbuser=${dbuser}&dbpass=${dbuserpassword}&prefix=${tabprefix}" + + # Währung + mysql -uroot -p$dbadminpassword -e "UPDATE $db.${tabprefix}config SET setting='${currency}' WHERE name='currency'"; + mysql -uroot -p$dbadminpassword -e "UPDATE $db.${tabprefix}histconfig SET setting='${currency}' WHERE setting='Euro'"; +fi if [[ $insertsamplecontent -eq 1 ]] then @@ -182,23 +199,25 @@ fi echo "Löschen des Installationsverzeichnisses" rm -r /var/www/html/install -echo "Druckserver einrichten" -cp -R /tmp/ordersprinter/printserver/javaprinter /usr/local/bin -echo "#!/bin/sh" > /usr/local/bin/javaprinter.bat -echo "/usr/bin/java -jar /usr/local/bin/javaprinter/javaprinter.jar -configfile=/usr/local/bin/javaprinter/config.json &" >> /usr/local/bin/javaprinter.bat -chmod +x /usr/local/bin/javaprinter.bat +if [[ $installprintserver -eq 1 ]] +then + echo "Druckserver einrichten" + cp -R /tmp/ordersprinter/printserver/javaprinter /usr/local/bin + echo "#!/bin/sh" > /usr/local/bin/javaprinter.bat + echo "/usr/bin/java -jar /usr/local/bin/javaprinter/javaprinter.jar -configfile=/usr/local/bin/javaprinter/config.json &" >> /usr/local/bin/javaprinter.bat + chmod +x /usr/local/bin/javaprinter.bat -printf "[Unit]\n" > /etc/systemd/system/javaprinter.service -printf "Description=OrderSprinter-Javaprinter\n\n" >> /etc/systemd/system/javaprinter.service -printf "[Service]\n" >> /etc/systemd/system/javaprinter.service -printf "Type=forking\n" >> /etc/systemd/system/javaprinter.service -printf "ExecStart=/usr/local/bin/javaprinter.bat\n\n" >> /etc/systemd/system/javaprinter.service -printf "[Install]\n" >> /etc/systemd/system/javaprinter.service -printf "WantedBy=multi-user.target\n" >> /etc/systemd/system/javaprinter.service - -systemctl enable javaprinter.service -systemctl start javaprinter + printf "[Unit]\n" > /etc/systemd/system/javaprinter.service + printf "Description=OrderSprinter-Javaprinter\n\n" >> /etc/systemd/system/javaprinter.service + printf "[Service]\n" >> /etc/systemd/system/javaprinter.service + printf "Type=forking\n" >> /etc/systemd/system/javaprinter.service + printf "ExecStart=/usr/local/bin/javaprinter.bat\n\n" >> /etc/systemd/system/javaprinter.service + printf "[Install]\n" >> /etc/systemd/system/javaprinter.service + printf "WantedBy=multi-user.target\n" >> /etc/systemd/system/javaprinter.service + systemctl enable javaprinter.service + systemctl start javaprinter +fi if [[ $install_tse -eq 1 ]] then @@ -221,7 +240,7 @@ then systemctl enable tseconnector.service systemctl start tseconnector - # Lasst und nun den TSEConnector aktivieren: + # Lasst uns nun den TSEConnector aktivieren: mysql -uroot -p$dbadminpassword -e "UPDATE ${db}.${tabprefix}config SET setting='1' WHERE name='usetse'"; # In Deutschland gibt es eine Bonausgabepflicht: mysql -uroot -p$dbadminpassword -e "UPDATE ${db}.${tabprefix}config SET setting='1' WHERE name='forceprint'"; @@ -250,10 +269,25 @@ then cp /tmp/crontab /etc/crontab fi -printf "\n\nInstallation abgeschlossen:\n===========================\n" -printf "Der Druckserver ist eingerichtet und startet automatisch. Je nach Drucker und Anbindung kann\n" -printf "eine weitere Konfiguration erforderlich sein.\n" -printf "Aufruf der OrderSprinter-Applikation im Browser über http://localhost bzw. http://${HOSTNAME}\n" -printf "Der TSEConnector befindet sich im Simulationsmodus. Für einen Normalbetrieb muss die\n" -printf "Befehlszeile in /usr/local/bin/tseconnector.bat abgeändert werden (mode=normal).\n" -printf "Alle eingerichteten Benutzer haben das Passwort 123, ebenso ist der Kassenbon-Stornocode 123.\n" +printf "\n\nInstallation abgeschlossen entsprechend der Auswahl der Komponenten:\n" +printf "======================================================================\n" +if [[ $installcore -eq 1 ]] +then + printf "Installation der Kernkomponente:\n" + printf " Aufruf der OrderSprinter-Applikation im Browser über http://localhost bzw. http://${HOSTNAME}\n" + printf " Alle eingerichteten Benutzer haben das Passwort 123, ebenso ist der Kassenbon-Stornocode 123.\n" +fi +if [[ $installprintserver -eq 1 ]] +then + printf "Der Druckserver ist eingerichtet und startet automatisch. Je nach Drucker und Anbindung kann\n" + printf "eine weitere Konfiguration erforderlich sein.\n" +fi +if [[ $install_tse -eq 1 ]] +then + printf "Der TSEConnector befindet sich im Simulationsmodus. Für einen Normalbetrieb muss die\n" + printf "Befehlszeile in /usr/local/bin/tseconnector.bat abgeändert werden (mode=normal).\n" +fi +if [[ $autobackup -eq 1 ]] +then + printf "Nächtliches Backup wurde eingerichtet für Gerät ${backupdevice}\n" +fi \ No newline at end of file diff --git a/spider/install/installer.php b/spider/install/installer.php index 7d41033..f9d3e81 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,"2.0.10"); + Database::setVersion($pdo,$prefix,"2.0.11"); 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/tseconnector/swissbit/tseconnector.jar b/tseconnector/swissbit/tseconnector.jar index 27d89bf26897074bed3308da4f18bb93d4642bf0..50f962ed0d5e112c56a9f597b55f08511e4486d4 100644 GIT binary patch delta 19572 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 delta 19171 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 MsI;9igXKRX0H3BayZ`_I delta 162 zcmZp;BG_<6a6$+3(%qen-L2h>t=&vpyP21tX5`v#e1^HfRK?N6)ycxZ$x+wH(#b;C z#KO{C*TTu%RM*Yb&D_+`+{D$$)p`4MMwZ=9j0W2$yRa<)0}~K)ZJ(aP63++}|DMXS8c0uHoX%p-YQUh!U@+N` MQE5A42Frg&0Q@mD>Hq)$ diff --git a/webapp/bar.html b/webapp/bar.html index 9616098..798676b 100644 --- a/webapp/bar.html +++ b/webapp/bar.html @@ -5,7 +5,7 @@ - + @@ -13,8 +13,8 @@ - - + + +var W_TABLES=["Tische","Tables","Mesas"];var W_ATABLE=["Tisch","Table","Mesa"];var W_ROOMS=["Räume","Rooms","Espacios"];var W_SELECTION=["Auswahl","Selection","Selección"];var W_LAST_SELECTED=["zuletzt","last","seleccionado"];var W_FAVS=["Favoriten","Favorites","Favoritos"];var W_NEW_ORDER=["Neue Order","New Orders","Ordenes nuevas"];var W_KIT_BAR=["nicht serviert/unbezahlt","unserved/unpaid","no servido/impagado"];var W_OTHER_PROD=["Auswahl Produktkategorie","Select product categroy","Categoría diferente"];var W_WORK_TICKET=["Arbeitsbon","Work ticket","Tique de trabajar"];var W_NOTE=["Bemerkung","Comment","Comentario"];var W_NUMBER=["Anzahl","Number","Número"];var W_SEND_ORDERS=["Bestellung senden","Send orders","Enviar Ordenes"];var W_TO_PAYDESK=["-> Kasse","-> Paydesk","-> Caja"];var W_TABLECHANGE=["Tischwechsel","Change table","Cambiar mesa"];var W_ROOMTABLE=["Raum-Tisch","Room-Table","Espacio-Mesa"];var W_TABLE_SEL=["Tischauswahl","Select table","Qué mesa?"];var W_UNDELIV_INFO=["Liste enthält die Produkte die noch in der Küchen-/Baransicht sind, sowie unbezahlte Produkte, die die Bereitstellungsansicht nicht durchlaufen.","List contains the products which are still in kitchen or bar view, as well as unpaid products that do not pass the supplydesk view.","La lista contiene los productos que estan todavía en modulo de cocina/bar, también productos impagados que no pasan vista de productos preparados."];var W_REMOVE_ERROR=["Ansicht nicht mehr aktuell - Liste wird neu geladen.","View is obsolete - List will be reloaded.","Vista no esta actual - vamos a actualisar la lista."];var W_FOOD_FOR=["Speisen für","Food for","Comidas para"];var W_DRINKS_FOR=["Getränke für","Beverage for","Bebidas para"];var W_ACT_NEW_ORD_EL=["Aktion auswählen","Select action","Que acción?"];var W_ACT_CHANGE=["Ändern","Modify","Modificar"];var W_ACT_CHANGE_ALL=["Alle Ändern","Modify all","Modificar todo"];var W_ACT_CHANGE_ONE=["Einen Artikel ändern","Modify one item","Modificar un artículo"];var W_APPLY=["Anwenden","Apply","Aplicar"];var W_CANCEL=["Abbrechen","Cancel","Cancelar"];var W_STILL_UNSENT_ORDERS=["Es sind noch ungesendete Orders vorhanden!","There are unsent orders in the list","Hay elementos in la liste que no han enviados"];var W_EXTRAS=["Extras/Optionen","Add-ons/Options","Opciones"];var W_OPEN_PANEL=["Extras-Auswahl noch offen","Add-ons selection still open","Selección de opciones todavía abierta"];var W_DEL=["Löschen","Delete","Removar"];var W_MSG=["Nachricht","Message","Mensaje"];var W_CHANGE_PRICE=["Neuer Preis: ","New price: ","Cambiar precio: "];var W_PRICE=["Preis","Price","Precio"];var W_WRONG_FORMAT=["Falsches Zahlenformat","Wrong number format","Formato de precio incorecto"];var W_TOGO=["Außer-Haus-Verkauf","Sale with Tax No 2","Venta IVA 2"];var W_YES=["Ja","Yes","Si"];var W_NO=["Nein","No","No"];var W_DISCARD_NO_ASK=["Es sind noch ungesendete Orders vorhanden! Sollen diese verworfen werden?","There are still unsent orders. Do you want to discard them?","Hay todavía ordenes non-enviados. Removarlos?"];var W_DISCARD_HEADER=["Neue Orders verwerfen?","Discard new orders?","Removar ordenes nuevos?"];var W_SEARCH=["Produktsuche","Product search","Buscar producto"];var W_BARCODE=["Barcode","Barcode","Código de barras"];var W_SEARCHRESULTS=["Suchergebnis","Search Result","Encontrado"];var W_WRONG_PIN=["Falscher Stornocode","Wrong cancel code","Codigo falso"];var W_NO_ORDERS=["Keine neuen Orders zum Versand vorhanden!","No new orders available!","No hay ningún orden nuevo!"];var W_TO_PAY=["offen","to pay","a pagar"];var W_MOVE_PRODS=["Produkte verschieben","Move products","Productos a otra mesa"];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_MAX_PRICE_EXCEEDED=["Der Maximalwert für den Preis wurde überschritten!","The max. value for the price is exceeded!","El valor del precio es más que el maximum!"];var W_REORDER=["Nachbestellen","Reorder","Order una vez mas"];var W_REMOVE=["Entfernen","Remove","Removar"];var W_SELALL=["Alles auswählen","Select all","Elegir todo"];var W_UNSELALL=["Alles abwählen","Unselect all","No elegir nada"];var W_ONLY=["noch","only","sólo"];var W_DEL_ALL_UNDELIVERED=["Entferne alles","Remove all","Borrar todo"];var W_DEL_ALL_ASSIGNED_PRODS=["Alle Produkte löschen?","Delete all products?","Removar todos los productos?"];var W_NO_VALID_PRICE=["Keine gültige Zahl","No valid value","No es un número valido"];var W_NO_REORDER_VAR_PRICE=["Nur Produkte mit der Einheit 'Stück' könne auf diese Weise nachbestellt werden.","Only products of unit 'Piece' can be reordered this way.","Un producto de esta unidad no se puede reordenado asi."];var W_INVALID_NO_ENTERING=["Fehler bei der Eingabe","Input contains errors","Número invalido"];var w_INVALID_NO_RANGE=["Ungültiger Zahlenbereich (1-1000)","Invalid number range (1-1000)","Número no es entre 1 y 1000"];var W_DAYCODETXT=["Tageslosung","Day code","Código del día"];var W_RECORDS_HEADER=["Tischprotokoll","Records of table","Historia de la mesa"];var W_RECORDS_INIT=["Tischprotokoll (Anklicken zum Öffnen)","Records of table (click to open)","Historia de la mesa (click para abrir)"];var W_RECORD_ACTION=[["Bestellung","Ordering","Ordenar"],["Rechnung","Bill","Pagar"],["Produktstorno","Discard product","Descartar producto"],["Rechnungsstorno","Discard bill","Descartar pago"],["Rechnungs- und Produktstorno","Discard bill and product","Descrtar pago y producto"],["Tischwechsel Produktentfernung","Move products to other table","Productos a otra mesa"],["Tischwechsel Produktbuchung","Received moved products","Recibo productos de otra mesa"]];var W_NO_ENTRIES=["Keine Einträge","No entries","Ningún data"];var W_NOT_SUPPORTED=["Nicht unterstützt für dieses Produkt","Not supported for this product","No posible para este producto"];var CHANGE_ALL=0;var CHANGE_ONE=1;var WORKFLOW_DIGI_WORK=0;var WORKFLOW_DIGI=1;var WORKFLOW_WORK=2;var WORKFLOW_WORK_SEND=3;function Grouping(b,a){this.set=b;this.sortedset=[];this.group=function(){this.sortedset=[];for(var g=0;g/g,">"))}function setLanguage(c){lang=c;$("#roomtableheader2").html(W_ROOMTABLE[lang]);$("#tableselection").html(W_TABLE_SEL[lang]);$("#actiontxt").html(W_ACT_NEW_ORD_EL[lang]);$("#actdeltxt").html(W_DEL[lang]);$("#discard_new_orders_yes").html(W_YES[lang]);$("#discard_new_orders_no").html(W_NO[lang]);$("#discardnewordersask").html(W_DISCARD_NO_ASK[lang]);$("#discardnoheader").html(W_DISCARD_HEADER[lang]);$("#moveprods").html(W_MOVE_PRODS[lang]);$(".daycodetxt").html(W_DAYCODETXT[lang]);var k="";if(prominentsearch==0){k+='
';if(usebarcode==1){k+=''}}else{if(usebarcode==0){k+='
';k+="
"}else{k+='
';k+='';k+="
"}}k+="
";var a='
';if(prominentsearch==0){$("#searchposition-normal").html(k)}else{$("#searchposition-prominent").html(k)}if(usebarcode==1){$("#barcode").focus()}var g=a;var f="";if((workflowconfig==WORKFLOW_DIGI_WORK)||(workflowconfig==WORKFLOW_DIGI)||(workflowconfig==WORKFLOW_WORK_SEND)){f=" osbigbtn ";if(preferfixbtns==1){f=" ossmallbtn fixedsendorderbtn "}if(showtransferbtns==1){g+='
'+W_SEND_ORDERS[lang]+""}}if((workflowconfig==WORKFLOW_DIGI_WORK)||(workflowconfig==WORKFLOW_WORK)||(workflowconfig==WORKFLOW_WORK_SEND)){f=" osbigbtn ";if(preferfixbtns==1){f=" ossmallbtn fixedworkprintbtn "}if(showtransferbtns==1){g+=''+W_WORK_TICKET[lang]+""}}if((cashenabled==0)&&(quickcash==QUICKCASH_NO)){f=" osbigbtn ";if(preferfixbtns==1){f=" ossmallbtn fixedgopaydeskbtn "}g+=''+W_TO_PAYDESK[lang]+""}g+='';$("#commandbuttons").html(g);if(preferfixbtns==1){$("#waiterui").addClass("fixedwaiterui")}$("#waiterui").trigger("create");var i="
"+W_NUMBER[lang]+':
';var b='
';$("#actremark").html(i+b);if(rightchangeprice==1){var e='';$("#actchangepricesection").html(e);var h='
';h+=getDiscountButton("discount1","a",discount1,discountname1);h+=getDiscountButton("discount2","b",discount2,discountname2);h+=getDiscountButton("discount3","c",discount3,discountname3);h+="
";$("#actdiscount").html(h)}$("#actionneworderconfirm_all").html(W_ACT_CHANGE_ALL[lang]);$("#actionneworderconfirm_one").html(W_ACT_CHANGE_ONE[lang]);$("#actionnewordercancel").html(W_CANCEL[lang]);$("#select-comment").off("change").on("change",function(m){var l=$("#select-comment").find(":selected").val();$("#optionfield").val(l)});$("#act-select-comment").off("change").on("change",function(m){var l=$("#act-select-comment").find(":selected").val();$("#act-optionfield").val(l)});$("#discard_new_orders_no").off("click").on("click",function(l){l.stopImmediatePropagation();l.preventDefault();parent.history.back()});$(".discard_priceenter").off("click").on("click",function(l){l.stopImmediatePropagation();l.preventDefault();$("#enterpricedlg").dialog("close")});$("#discard_numberenter").off("click").on("click",function(l){l.stopImmediatePropagation();l.preventDefault();$("#enternumberdlg").dialog("close")});$("#discard_new_orders_yes").off("click").on("click",function(l){l.stopImmediatePropagation();l.preventDefault();neworders=[];gotoOtherPage($("#discardnewordersdlg").data("link"))});$("#prodbackbtn").off("click").on("click",function(l){if(neworders.length!=0){l.stopImmediatePropagation();l.preventDefault();hideMenuProd();$("#discardnewordersdlg").data("link","back_table");$.mobile.changePage("#discardnewordersdlg")}else{parent.history.back()}});$("#searchField").off("keyup").on("keyup",function(l){generateSearchResults()});if(usebarcode==1){$("#barcode").focus()}$("#barcode").off("keyup").on("keyup",function(l){handleBarcodeInput()})}function getDiscountButton(f,e,c,a){var b='";if(a.trim()!=""){b='"}return b}function generateSearchResults(){var i=$("#searchField").val().trim().toLowerCase();if(i.length";var h=$("#typprodpage").data("types_prods_sorted");var a=false;var g=null;for(var f=0;f=0){g=e.prodimageid;if(g!=0){a=true;break}}}$.each(h,function(n,o){var m=o.longname;if(m.toLowerCase().indexOf(i)>=0){c+='
  • ';if(a&&(preferimgmobile==1)){var l="php/contenthandler.php?module=products&command=getprodimage&prodid="+o.id+"&size=l";c+=''}c+=toHtml(m);c+=createSearchProdInfoTxt(o.id,o.unit);c+="
  • "}});c+="";$("#searchResult").html(c);$("#searchResult").trigger("create");$(".srinfo").off("click").on("click",function(q){q.stopImmediatePropagation();q.preventDefault();var m=this.id.split("_")[1];var p=getProdEntry(m);var o=p.price;var n=p.unit;var l=W_PRICE[lang]+": "+o+" "+currency;if(n>2){l+="/"+g_units_arr[n].text}alert(l)});$(".srplus").off("click").on("click",function(n){n.stopImmediatePropagation();n.preventDefault();var m=this.id.split("_")[1];var l=getSearchProdCount(m);$("#srprodcount_"+m).html(l+1)});$(".srminus").off("click").on("click",function(n){n.stopImmediatePropagation();n.preventDefault();var m=this.id.split("_")[1];var l=getSearchProdCount(m);if(l==2){$("#srprodcount_"+m).html(1);selectedProdCount=1}else{if(l>2){$("#srprodcount_"+m).html(l-1)}}});$(".srprodcount").off("click").on("click",function(o){o.stopImmediatePropagation();o.preventDefault();var n=this.id.split("_")[1];var m=getProdEntry(n);var l=m.unit;if(l>1){alert(W_NOT_SUPPORTED[lang]);return}$("#enternumberdlg").data("prodid",n);enternumberdlgshown=true;$("#enternumberfield").val("");$.mobile.changePage("#enternumberdlg");var p=$(this).parent().attr("id");bindEnterSearchNumberNumbers(p)});$(".searchresult").off("click").on("click",function(m){m.stopImmediatePropagation();m.preventDefault();var l=this.id.split("_")[1];handleClickOnSearchResult(l)})}}function handleBarcodeInput(){var c=$("#barcode").val();c=c.split("-").join("");c=c.split(" ").join("");if(c!=""){var a=findProdWithBarcode(c);if(a!=null){$("#barcode").val("");var b=a.id;beep();handleClickOnProd(b)}}}function findProdWithBarcode(b){var e=$("#typprodpage").data("types_prods_sorted");for(var c=0;c'+a+""}htmlComments=b;predefinedComments=b;$("#select-comment").html(b);$("#select-comment").selectmenu("refresh")}function initializeMainMenu(a,h,e,i,g){$("#"+e).html(" "+a.user);$("#"+i).html(a.version+" ");var k='
  • Module
  • ';$.each(a.menu,function(n,m){var l=m.name;var o=m.link;if(g){k+='
  • '+l+"
  • "}else{k+='
  • '+l+"
  • "}});$(h).empty().append(k).promise().done(function(){refreshList(h)});if(h=="#modulemenu-room"){var c=a.waitermessage;if(c!=""){$("#waitermessage").show();var b='
  • '+W_MSG[lang]+"
  • ";var f='
  • '+toHtml(c)+"
  • ";$("#waitermessage").html(b+f);refreshList("#waitermessage")}else{$("#waitermessage").hide()}}$(".modulebutton").off("click").on("click",function(m){var l=$(this).attr("href");doJsonAjaxAsync("POST","php/contenthandler.php?module=admin&command=setLastModuleOfUser",{view:l},null,"Problem Benutzerdatenpflege",false)})}function intervalCheckConnection(b){checkConnection();var a=setInterval(function(){checkConnection()},b*1000)}function checkConnection(){var a=new Image();a.onerror=function(){$(".connectionstatus").show()};a.onload=function(){$(".connectionstatus").hide()};a.src="img/gray.png?t="+(+new Date)}function refreshList(a){if($(a).hasClass("ui-listview")){$(a).listview("refresh")}else{$(a).trigger("create")}}function gotoOtherPage(a){var b=a.split("_");if(b[0]=="menu"){doJsonAjax("POST","php/contenthandler.php?module=admin&command=setLastModuleOfUser",{view:b[1]},null,null);setTimeout(function(){document.location.href=b[1]},250)}else{if(b[0]=="back"){$("#discardnewordersdlg").dialog("close");parent.history.back()}}}function moduleForward(a){if(neworders.length==0){gotoOtherPage(a)}else{hideMenuProd();$("#discardnewordersdlg").data("link",a);$.mobile.changePage("#discardnewordersdlg")}}function getPayPrintType(){doJsonAjax("GET","php/contenthandler.php?module=admin&command=getPayPrintType",null,insertPayPrintType,"Fehler Druckkonfiguration")}function insertPayPrintType(a){$("#workprintarea").data("payPrintType",a)}function getUserHasRightForPaydesk(){doJsonAjax("GET","php/contenthandler.php?module=admin&command=hasUserPaydeskRight",null,hasUserPaydeskRight,"Fehler Kassenberechtigung")}function hasUserPaydeskRight(a){$("#gopaydesk_btn").data("allowed",a)}function hideMenuRoom(){$("#modulepanel-room").panel("close");$("#menuswitch").off("click").on("click",function(a){a.stopImmediatePropagation();a.preventDefault();$("#modulepanel-room").panel("open")})}function hideMenuTable(){$("#modulepanel-table").panel("close");$("#menuswitchtable").off("click").on("click",function(a){a.stopImmediatePropagation();a.preventDefault();$("#modulepanel-table").panel("open")})}function hideMenuProd(){$("#modulepanel-prod").panel("close");$("#menuswitchprod").off("click").on("click",function(a){a.stopImmediatePropagation();a.preventDefault();$("#modulepanel-prod").panel("open")})}function calcTotalPriceOfProdAndExtras(b,c){var e=parseFloat(b);var a=extrasManagement.calcPriceOfAssignedExtras(c);totalPrice=(parseFloat(e+a)).toFixed(2);return totalPrice}function addProductToQueueNoGuiUpdate(f,m,h,c,e,o,g){var b=getProdProperties(f);var a=b.name;var k=calcTotalPriceOfProdAndExtras(b.price,h);var n={name:a,option:m,extras:h,prodid:f,price:k,changedPrice:c,togo:e,unit:o,unitamount:g};for(var l=0;l";var f=groupedNewOrders.count.length;for(s=0;s1)&&(o<8)){t=n+g_units_arr[o].text+" "}var q=toHtml(groupedNewOrders.name[s]);var u=groupedNewOrders.option[s];var h=groupedNewOrders.count[s];if(h>1){q=""+h.toString()+"x "+t+q}else{q=t+q}var p=groupedNewOrders.prodids[s];if(u!=""){u="

    "+toHtml(u)+"

    "}var e=groupedNewOrders.changedPrices[s];var k=groupedNewOrders.togos[s];var a="";var g=groupedNewOrders.extras[s];if((g!=null)&&(g!="")){a=""+g+""}var r='
  • ';var b=q+u+a;if(e!="NO"){e=e.replace(".",decpoint)+" "+currency;if((o>1)&&(o<8)){e+="/"+g_units_arr[o].text}if(k!=0){m+=r+''+b+" ("+e+" - To-Go)
  • "}else{m+=r+''+b+" ("+e+")"}}else{if(k!=0){m+=r+''+b+" - To-Go"}else{m+=r+''+b+""}}}$("#neworders").html(m);refreshList("#neworders");binding_neworderelem()}function getProdSizeClass(){if(osprodbtnsize==1){return("osprod-1")}else{if(osprodbtnsize==2){return("osprod-2")}}return""}function binding_neworderelem(){$(".neworder_el").off("click").on("click",function(c){c.stopImmediatePropagation();c.preventDefault();var b=$("#neworders li").index($(this).closest("li"))-1;var a={count:groupedNewOrders.count[b],name:groupedNewOrders.name[b],price:groupedNewOrders.price[b],option:groupedNewOrders.option[b],extras:groupedNewOrders.extras[b],prodid:groupedNewOrders.prodids[b],origidxs:groupedNewOrders.origidxs[b],changedPrices:groupedNewOrders.changedPrices[b],togos:groupedNewOrders.togos[b],unit:groupedNewOrders.units[b],unitamount:groupedNewOrders.unitamounts[b]};$("#actiononneworderel").data("entry",a);$("#actiononneworderel").data("newcount",a.count);$("#actiononneworderel").data("groupedListIndex",b);$("#actiononneworderel").data("countatdialogstart",a.count);$("#act-optionfield").val(a.option);$("#act-numberfield").val(a.count);$("#togocheckbox").prop("checked",a.togos==1?true:false);actionSelOnNewOrderElem()})}function calcTotalPriceOfNewOrders(){var a=0;if(neworders.length!=0){neworders.forEach(function(c,b){if(c.changedPrice.toLowerCase()=="no"){a+=parseFloat(c.price)*c.unitamount}else{a+=parseFloat(c.changedPrice)*c.unitamount}})}a=a.toFixed(2).replace(".",decpoint);return a+" "+currency}function sendNewOrders(c,f,a){var g=$("#typprodpage").data("table-info");var b=g[1];if(neworders.length!=0){var e={tableid:b,prods:neworders,print:(c?1:0),payprinttype:f};if(f=="s"){doJsonAjaxAsync("POST","php/contenthandler.php?module=queue&command=addProductListToQueue",e,a,false)}else{doJsonAjaxAsync("POST","php/contenthandler.php?module=queue&command=addProductListToQueue",e,fillPrintAreaAndPrint,false)}}else{if(c&¬DeliveredProdsAvailable){}}}function reloadPage(){tableListActive=false;setTimeout(function(){document.location.href="waiter.html"},250)}function removeCurrentOrders(){groupedNewOrders={count:[],joinedvals:[],name:[],prodids:[],extras:[],origidxs:[],changedPrices:[],togos:[]};neworders=[]}function gotoTablePage(a){if(a.status!="OK"){alert("Fehler: "+a.msg);if(neworders.length>0){allowPrintAndOrderBtn=true}}else{removeCurrentOrders();var b=$("#tables-page").data("allroomtables");var c=b.length;if(!isTogoOrderSelected||(c==1)){if(tablesAfterSend==1){$.mobile.changePage("#tables-page")}else{reloadPage()}}else{reloadPage()}}}function removeProductFromQueue(a,c,f,e,b,g){if(typeof g==="undefined"){g=true}if(!b){alert(W_WRONG_PIN[lang]);return}$.ajax({type:"POST",dataType:"json",url:"php/contenthandler.php?module=queue&command=removeProductFromQueue",data:{queueid:a,isPaid:c,isCooking:f,isReady:e},async:false,success:function(l){if(l.status!="OK"){alert(W_REMOVE_ERROR[lang])}var k=$("#typprodpage").data("table-info");var h=k[1];var i="php/contenthandler.php?module=queue&command=getJsonLongNamesOfProdsForTableNotDelivered&tableid="+h;if(g){fillNotDeliveredProductsOfATable(i)}},error:function(h){alert("Sorry, Fehler bei Produktentfernung!")}})}function reorderProduct(f,b,h,g){var a=getProdProperties(f);if((a.unit!=0)&&(a.unit!="null")){alert(W_NO_REORDER_VAR_PRICE[lang]);return}var e=[];for(var c=0;c'+k.name+""});if(showtogo==1){a+='
  • '+W_TOGO[lang]}var f=h.takeawayprice;var c=f.replace(".",decpoint)+" "+currency;if(f!=0){a+=" ("+W_TO_PAY[lang]+": "+c+")"}a+=createServeInfo(null,h.takeawayprodcount,h.takeawayprodready);a+="
  • ";$("#room-list").append(a).promise().done(function(){bindTogoOrdering();bindServeClick();$(this).off("click").on("click","a",function(l){l.stopImmediatePropagation();l.preventDefault();var k=b[this.id];currentRoomIndex=this.id;isTogoOrderSelected=false;$("#tables-page").data("roomdetail",k);nextPage="tables-page";$.mobile.changePage("#tables-page")});refreshList(this)})}}})}function handleClickInTablemap(a){forwardDisplayToProductView.call(this,a.roomid,a.tableid,a.tablename)}$(document).on("pagebeforeshow","#tables-page",function(){lastSelectedProduct="";tableListActive=true;if(nextPage==""){reloadPage()}hideMenuTable();checkForLogIn();$("#searchField").val("");$("#barcode").val("");generateSearchResults();$("#tableselbackbtn").off("click").on("click",function(a){a.stopImmediatePropagation();a.preventDefault();tableListActive=false;$.mobile.changePage("#info-page")});updateTableList()});$(document).on("pagebeforeshow","#changetablewhatdialog",function(){var a=$("#changetablewhatdialog").data("fromtableid");doJsonAjax("GET","php/contenthandler.php?module=queue&command=getProdsForTableChange",{tableId:a},insertProductsToChangeTableDlg,"Tischartikel")});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);refreshList("#productsToMoveList");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()});$("#moveprods").off("click").on("click",function(k){k.stopImmediatePropagation();k.preventDefault();var g=[];for(var f=0;f'+W_TOGO[lang]+""}k+="";$("#tables-list-togo").html(k);$("#togoarea").show();refreshList("#tables-list-togo");bindTogoOrdering();bindServeClick()}}else{$(h).show();$("#togoarea").hide();$("#tablemapcontent").hide();var k='
  • '+W_TABLES[lang]+"
  • ";var f="";if(ostablebtnsize==1){f="ostable-1"}else{if(ostablebtnsize==2){f="ostable-2"}}$.each(l,function(s,u){var r=u.pricesum;var q=r.replace(".",decpoint)+" "+currency;var o=u.prodcount;var t=u.prodready;var n=u.readyQueueIds;var m=u.reservations;var p=u.name;if(m!=""){p+=" (Res.: "+m+")"}if(r!=0){k+='
  • '+p+" ("+W_TO_PAY[lang]+": "+q+")"+createServeInfo(u.id,o,t)+"
  • "}else{var v=" tempty ";if(mobiletheme==3){v=" temptydark "}k+='
  • '+p+createServeInfo(u.id,o,t)+"
  • "}});if(c=="t"){if(showtogo==1){k+='
  • '+W_TOGO[lang]+"
  • "}}$(h).empty().append(k).promise().done(function(){bindTogoOrdering();bindServeClick();$(this).off("click").on("click",".info-go",function(p){p.stopImmediatePropagation();p.preventDefault();var o=g;var m=l[this.id]["id"];var n=l[this.id]["name"];forwardDisplayToProductView.call(this,a,m,n)});refreshList(this)})}}function bindServeClick(){$(".prodreadyicon").off("click").on("click",function(l){l.stopImmediatePropagation();l.preventDefault();var f=this.id.split("_")[1];var h=queueIdsOfTakeAway;if((f!=null)&&(f!="n")){var a=$("#tables-page").data("roomdetail");var c=a.tables;for(var b=0;b0){var k=h.join();doJsonAjax("POST","php/contenthandler.php?module=queue&command=declareMultipleProductsDelivered",{queueids:k},updateAfterDelivery,"Bereitstellung")}})}function updateAfterDelivery(a){if(tableListActive){updateTableList()}else{reloadPage()}}function bindTogoOrdering(){$(".togoorder").off("click").on("click",function(a){a.stopImmediatePropagation();a.preventDefault();isTogoOrderSelected=true;forwardDisplayToProductView.call(this,0,0,W_TOGO[lang])})}function forwardDisplayToProductView(b,a,c){neworders=[];updateNewOrdersGui();var e=new Array(b,a,c);$("#typprodpage").data("table-info",e);nextPage="typprodpage";$.mobile.changePage("#typprodpage");neworders=[];updateNewOrdersGui()}function attachAndDisplayFirstRefTypes(e){$("#typprodpage").data("types_prods",e);var a=e.prods;var c=[];for(var b=0;b";if(applyExtraBtnPos!=1){a+='
  • '+W_APPLY[lang]+"
  • "}a+=extrasManagement.renderExtras(c,b,true);if(requestPriceInExtras!=false){a+='
  •  '+currency+"
  • "}if(applyExtraBtnPos!=2){a+='
  • '+W_APPLY[lang]+"
  • "}a+=createHigherLine(b);return a}function bindExtrasSel(){$(".extrasel").off("click").on("click",function(i){i.stopImmediatePropagation();i.preventDefault();var a=this.id.split("_");var b=a[1];var f=a[2];if((b=="abottom")||(b=="atop")){var g=getProdEntry(f);var c=g.extras;var k=extrasManagement.getAssignedExtras();if(requestPriceInExtras){var h=$("#enterpriceextrasfield").val();h=h.trim();h=h.replace(decpoint,".");if((h!="")&&($.isNumeric(h))){requestPriceInExtras=false;presetPriceInExtras="";addProductToNewOrdersList(f,k,h,0,1)}else{alert(W_NO_VALID_PRICE[lang])}}else{addProductToNewOrdersList(f,k,null,0,1)}}else{extrasManagement.extraClicked(b);if(requestPriceInExtras!==false){presetPriceInExtras=$("#enterpriceextrasfield").val()}var l=listOfExtras(f);$("#typeproducts-list").html(l);refreshList("#typeproducts-list");bindExtrasSel();bindHigherButtons()}})}function lastSelectedProdToStr(){return" ("+W_LAST_SELECTED[lang]+": "+lastSelectedProduct+")"}function listOfTypesProds(g){var a='
  • '+W_SELECTION[lang]+"";if(lastSelectedProduct!=""){a+=lastSelectedProdToStr()}a+="
  • ";var b=$("#typprodpage").data("types_prods");var f=getProdSizeClass();$.each(b.types,function(l,k){if(parseInt(k.ref)==g){a+='
  • '+toHtml(k.name)+"
  • "}});var i=false;if(preferimgmobile==1){var e=null;for(var c=0;c';if(i&&(preferimgmobile==1)){var k="php/contenthandler.php?module=products&command=getprodimage&prodid="+m.id+"&size=l";a+=''}a+=toHtml(m.name);if((m.amount!="null")&&(m.amount<11)){a+=" ("+W_ONLY[lang]+" "+m.amount+")"}a+=createProdInfoTxt(m.id,m.unit);a+=""}});if(g!=0){a+=createHigherLine(f)}return a}function createHigherLine(e){var f="f";if(preferfixbtns==1){f="a"}var a='
  • ';a+='
    ';var c="";var b="";if(preferfixbtns==1){c="fixedtypetopimg";b="fixedtypehigherimg"}a+='
    ';a+='
    ';a+="
    ";a+="
  • ";return a}function createProdEntryWithTextPrice(a,f,g){var e=getProdEntry(a);var c=e.unit;if(e!=null){var b=e.price.replace(".",decpoint);if(c>1){b+="
    /"+g_units_arr[c].text}return"
    "+b+"
    "}return""}function createProdInfoTxt(b,c){var a="";if(showplusminus==1){a+="1";7}if(priceinlist==0){a+="
    "}else{a+=createProdEntryWithTextPrice(b,"prodtextinfo","pinfo")}if(showplusminus==1){a+="
    ";a+="
    "}return a}function createSearchProdInfoTxt(b,c){var a="";if(showplusminus==1){a+="1"}if(priceinlist==0){a+="
    "}else{a+=createProdEntryWithTextPrice(b,"srtextinfo","srinfo")}if(showplusminus==1){a+="
    ";a+="
    "}return a}function createServeInfo(e,c,b){if(supplyright==0){return""}if(e==null){e="n"}if(b>0){var a=""+b+"("+c+")";if(b>=c){a+="
    "}else{a+="
    "}return a}else{return""}}function getProdEntry(e){var b=$("#typprodpage").data("types_prods");var c=0;var a=b.prods;for(c=0;c";var b=$("#typprodpage").data("types_prods");var e=getProdSizeClass();var a=false;var c=[];$.each(b.prods,function(g,h){if(parseInt(h.favorite)==1){a=true;c[c.length]={id:h.id,longname:h.longname,unit:h.unit}}});c.sort(prodcompare);$.each(c,function(g,h){f+='
  • '+toHtml(h.longname);f+=createProdInfoTxt(h.id,h.unit);f+="
  • "});f+="";if(a){$("#favarea").html(f);$("#favarea").trigger("create")}else{$("#favarea").html("");$("#favarea").trigger("create")}}function bindFavEvent(){$(".fav").off("click").on("click",function(b){b.stopImmediatePropagation();b.preventDefault();favOrSearchWasClicked=true;levelOneType=0;var a=this.id.split("_")[1];if(showplusminus==1){selectedProdCount=getProdCount(a)}else{selectedProdCount=1}handleClickOnProd(a)})}function displayTypesProds(c,b){if(preferfixbtns!=1){window.scrollTo(0,0)}if(c==0){fillFavArea();bindFavEvent()}else{$("#favarea").html("")}var a=null;if(b==null){idOfHigherType=c;a=listOfTypesProds(parseInt(c));extrasMenuOpen=false}else{a=listOfExtras(parseInt(c));extrasMenuOpen=true}$("#typeproducts-list").empty().append(a).promise().done(function(){refreshList("#typeproducts-list");$(this).off("click").on("click","a",function(f){f.stopImmediatePropagation();f.preventDefault();productInListClicked(this.id,c)});bindHigherButtons()});$(".prodinfo").off("click").on("click",function(l){l.stopImmediatePropagation();l.preventDefault();var g=this.id.split("_")[1];var k=getProdEntry(g);var i=k.price;var h=k.unit;var f=W_PRICE[lang]+": "+i+" "+currency;if(h>2){f+="/"+g_units_arr[h].text}alert(f)});$(".prodplus").off("click").on("click",function(h){h.stopImmediatePropagation();h.preventDefault();var g=this.id.split("_")[1];var f=getProdCount(g);$("#prodcount_"+g).html(f+1)});$(".prodminus").off("click").on("click",function(h){h.stopImmediatePropagation();h.preventDefault();var g=this.id.split("_")[1];var f=getProdCount(g);if(f==2){$("#prodcount_"+g).html(1);selectedProdCount=1}else{if(f>2){$("#prodcount_"+g).html(f-1)}}});$(".prodcount").off("click").on("click",function(i){i.stopImmediatePropagation();i.preventDefault();var h=this.id.split("_")[1];var g=getProdEntry(h);var f=g.unit;if(f>1){alert(W_NOT_SUPPORTED[lang]);return}$("#enternumberdlg").data("prodid",h);enternumberdlgshown=true;$("#enternumberfield").val("");$.mobile.changePage("#enternumberdlg");var k=$(this).parent().attr("id");bindEnterNumberNumbers(k,c)})}function productInListClicked(b,e){favOrSearchWasClicked=false;$("#searchField").val("");$("#barcode").val("");generateSearchResults();var a=b.split("_");if(a[0]=="t"){if(e==0){levelOneType=a[1];e=a[1]}displayTypesProds(a[1],null)}else{var c=a[1];if(showplusminus==1){selectedProdCount=getProdCount(c)}else{selectedProdCount=1}$("#prodcount_"+c).html(1);handleClickOnProd(c)}}function getHigherType(){var c=$("#typprodpage").data("types_prods");var b=c.types;var f=0;if(!extrasMenuOpen){for(var e=0;e0)&&(e<2)){idOfHigherType=f.ref;if(f.unit==1){requestPriceInExtras=true;presetPriceInExtras=""}else{requestPriceInExtras=false}displayTypesProds(c,b);bindExtrasSel()}else{if(f.unit==8){addProductToNewOrdersList(c,null,null,0,1)}else{if(f.unit==9){hideMenuProd();enterpricedlgshown=true;$("#enterpricedlg").data("prodid",c);$("#enterpricefield").val("");$.mobile.changePage("#enterpricedlg");$("#dlgvoucherarea").show();$("#dlgpricearea").hide();$("#entervoucherid").val("");bindEnterPriceOrVoucherNumbers()}else{if(f.unit!=0){var a=g_units_arr[f.unit].longtext;$("#enterpriceheader").html(a);$("#enterpricedlg").data("unit",f.unit);hideMenuProd();enterpricedlgshown=true;$("#enterpricedlg").data("prodid",c);$("#enterpricefield").val("");$.mobile.changePage("#enterpricedlg");$("#dlgvoucherarea").hide();$("#dlgpricearea").show();bindEnterPriceOrVoucherNumbers()}else{addProductToNewOrdersList(c,null,null,0,1)}}}}}function bindEnterPriceOrVoucherNumbers(){$(".numfield td").off("click").on("click",function(b){b.stopImmediatePropagation();b.preventDefault();var f=$(this).html();var a=$(this).attr("class");if(a!="keyboardapply"){var c=String($("#enterpricefield").val());$("#enterpricefield").val(c+f)}});$("#apply_priceenter").off("click").on("click",function(f){f.stopImmediatePropagation();f.preventDefault();var a=$("#enterpricedlg").data("prodid");var c=$("#enterpricefield").val();c=c.trim();c=c.replace(decpoint,".");var b=$("#enterpricedlg").data("unit");if((c!="")&&($.isNumeric(c))){$("#enterpricedlg").dialog("close");if(b==1){addProductToNewOrdersList(a,null,c,0,1)}else{addProductToNewOrdersList(a,null,null,b,c)}}else{alert(W_NO_VALID_PRICE[lang])}});$("#applyvoucherid").off("click").on("click",function(f){f.stopImmediatePropagation();f.preventDefault();var c=$("#entervoucherid").val().trim();if(c==""){alert("Keine Gutscheinnummer eingegeben!");return}var b=0;var a=$("#enterpricedlg").data("prodid");$("#enterpricedlg").dialog("close");$("#optionfield").val(c);addProductToNewOrdersList(a,null,b,9,1)})}function bindPartNumberEntry(){$(".numfield td").off("click").on("click",function(f){f.stopImmediatePropagation();f.preventDefault();var g=$(this).html();var c=$(this).attr("class");if(c!="keyboardapply"){var a=String($("#enternumberfield").val());if(c=="dellastkey"){var h=a.length;if(h>0){var b=a.substring(0,h-1);$("#enternumberfield").val(b)}}else{$("#enternumberfield").val(a+g)}}})}function bindEnterNumberNumbers(b,a){bindPartNumberEntry();$("#apply_numberenter").off("click").on("click",function(g){g.stopImmediatePropagation();g.preventDefault();var f=$("#enternumberdlg").data("prodid");var c=$("#enternumberfield").val().trim();if(c==""){c=1}if($.isNumeric(c)){if((c<1)||(c>1000)){alert(w_INVALID_NO_RANGE[lang])}else{if(c>1){$("#enternumberdlg").dialog("close");$("#prodcount_"+f).html(c);productInListClicked(b,a)}else{$("#enternumberdlg").dialog("close");$("#prodcount_"+f).html("");productInListClicked(b,a)}}}else{alert(W_INVALID_NO_ENTERING[lang])}})}function bindEnterSearchNumberNumbers(a){bindPartNumberEntry();$("#apply_numberenter").off("click").on("click",function(f){f.stopImmediatePropagation();f.preventDefault();var c=$("#enternumberdlg").data("prodid");var b=$("#enternumberfield").val().trim();if(b==""){b=1}if($.isNumeric(b)){if((b<1)||(b>1000)){alert(w_INVALID_NO_RANGE[lang])}else{if(b>1){$("#enternumberdlg").dialog("close");$("#srprodcount_"+c).html(b);handleClickOnSearchResult(c)}else{$("#enternumberdlg").dialog("close");$("#srprodcount_"+c).html(1);handleClickOnSearchResult(c)}}}else{alert(W_INVALID_NO_ENTERING[lang])}})}function addProductToNewOrdersList(e,f,g,m,b){if(g==undefined){g=null}if(m==undefined){m=0}if(b==undefined){b=1}var h=$("#typprodpage").data("table-info");var a=h[1];addProductToQueue(e,f,"NO",0,g,m,b);var i=getProdAudio(parseInt(e));var c=parseInt($("#typprodpage").data("ordervolume"))/10;if(i!=""){var l="customer/"+i;if(i.match(/mp3$/)){$("#audiofile").html('')}else{if(i.match(/ogg$/)){$("#audiofile").html('')}else{if(i.match(/wav$/)){$("#audiofile").html('')}}}document.getElementById("audiofile").load();document.getElementById("audiofile").volume=c;document.getElementById("audiofile").play()}else{if(c>0.5){beep()}}var k="php/contenthandler.php?module=queue&command=getJsonLongNamesOfProdsForTableNotDelivered&tableid="+a;fillNotDeliveredProductsOfATable(k);if((keeptypelevel==0)||(favOrSearchWasClicked)){displayTypesProds(levelOneType,null)}else{if(extrasMenuOpen){displayTypesProds(idOfHigherType,null)}}allowPrintAndOrderBtn=true;refreshList("#typeproducts-list")}function beep(){var a=new Audio("data:audio/wav;base64,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qJrx4KOQjahZxWbcZgztj2c49nKmkId44S71j0c8eV9yDK6uPRzx5X18eDvjvQ6yKo9ZSS6l//8elePK/Lf//IInrOF/FvDoADYAGBMGb7FtErm5MXMlmPAJQVgWta7Zx2go+8xJ0UiCb8LHHdftWyLJE0QIAIsI+UbXu67dZMjmgDGCGl1H+vpF4NSDckSIkk7Vd+sxEhBQMRU8j/12UIRhzSaUdQ+rQU5kGeFxm+hb1oh6pWWmv3uvmReDl0UnvtapVaIzo1jZbf/pD6ElLqSX+rUmOQNpJFa/r+sa4e/pBlAABoAAAAA3CUgShLdGIxsY7AUABPRrgCABdDuQ5GC7DqPQCgbbJUAoRSUj+NIEig0YfyWUho1VBBBA//uQZB4ABZx5zfMakeAAAAmwAAAAF5F3P0w9GtAAACfAAAAAwLhMDmAYWMgVEG1U0FIGCBgXBXAtfMH10000EEEEEECUBYln03TTTdNBDZopopYvrTTdNa325mImNg3TTPV9q3pmY0xoO6bv3r00y+IDGid/9aaaZTGMuj9mpu9Mpio1dXrr5HERTZSmqU36A3CumzN/9Robv/Xx4v9ijkSRSNLQhAWumap82WRSBUqXStV/YcS+XVLnSS+WLDroqArFkMEsAS+eWmrUzrO0oEmE40RlMZ5+ODIkAyKAGUwZ3mVKmcamcJnMW26MRPgUw6j+LkhyHGVGYjSUUKNpuJUQoOIAyDvEyG8S5yfK6dhZc0Tx1KI/gviKL6qvvFs1+bWtaz58uUNnryq6kt5RzOCkPWlVqVX2a/EEBUdU1KrXLf40GoiiFXK///qpoiDXrOgqDR38JB0bw7SoL+ZB9o1RCkQjQ2CBYZKd/+VJxZRRZlqSkKiws0WFxUyCwsKiMy7hUVFhIaCrNQsKkTIsLivwKKigsj8XYlwt/WKi2N4d//uQRCSAAjURNIHpMZBGYiaQPSYyAAABLAAAAAAAACWAAAAApUF/Mg+0aohSIRobBAsMlO//Kk4soosy1JSFRYWaLC4qZBYWFRGZdwqKiwkNBVmoWFSJkWFxX4FFRQWR+LsS4W/rFRb/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////VEFHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU291bmRib3kuZGUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjAwNGh0dHA6Ly93d3cuc291bmRib3kuZGUAAAAAAAAAACU=");a.play()}function fetchTypeProdsFromServer(){doJsonAjaxAsync("GET","php/contenthandler.php?module=products&command=getAllTypesAndAvailProds",null,attachAndDisplayFirstRefTypes,true)}var waitProdTimer=null;function fillTypeProdList(b){var a=$("#typprodpage").data("types_prods");if(a!=undefined){displayTypesProds(b,null)}else{waitProdTimer=setInterval(function(){var c=$("#typprodpage").data("types_prods");if(c!=undefined){clearInterval(waitProdTimer);displayTypesProds(b,null)}},200)}}function fillTypeProdList_(a){displayTypesProds(a,null)}function createTxtAssignedProd(f){var b="";if(f.option!=""){b=" ("+toHtml(f.option)+")"}var c=f.longname;if(f.togo==1){c="To-Go: "+c}if(f.pricechanged==1){c+=" - "+f.price.replace(".",decpoint)+" "+currency}if(f.unit>1){var g=g_units_arr[f.unit].text;var e=f.unitamount.replace(".",decpoint);c+=" ("+e+" "+g+")"}var a="";if(f.isready=="1"){a+=" ☞"}if(f.isCooking=="1"){a+=" ♨"}if(f.isPaid=="1"){a+=" ☑"}return toHtml(c)+b+a+"
    "+createExtraParagraph(f.extras,f.extrasamounts)}function createListElOfAssignedProd(b){var a="";if("count" in b){if(b.count>1){a=b.count+"x "}}if(b.isready=="0"){return'
  • '+a+createTxtAssignedProd(b)+"
  • "}else{return'
  • '+a+createTxtAssignedProd(b)+"
  • "}}function fillAssignedProdList(b){if(b.length>0){notDeliveredProdsAvailable=true}else{notDeliveredProdsAvailable=false}$("#cancelcodefield").val("");if(cancelunpaidcode!=""){if(b.length>0){$("#cancelcodearea").show()}else{$("#cancelcodearea").hide()}}else{$("#cancelcodearea").hide()}var c=new Grouping(b,createTxtAssignedProd);c.group();var a='
  • '+W_KIT_BAR[lang]+"
  • ";a+=c.outputList(createListElOfAssignedProd);if(notDeliveredProdsAvailable){a+='
  • '+W_DEL_ALL_UNDELIVERED[lang]+"
  • "}$("#orderedprod-list-0").html(a);refreshList("#orderedprod-list-0");$("#undeliveredheader").off("click").on("click",function(f){f.stopImmediatePropagation();f.preventDefault();alert(W_UNDELIV_INFO[lang])});bindingOfAssignedProds(c);bindDelAllUndeliveredProds(b);$("#cancelcodeform").off("submit").on("submit",function(f){f.stopImmediatePropagation();f.preventDefault()})}function bindDelAllUndeliveredProds(a){$("#delallundelivered").off("click").on("click",function(b){b.stopImmediatePropagation();b.preventDefault();areYouSure("Produkte löschen.",W_DEL_ALL_ASSIGNED_PRODS[lang],W_REMOVE[lang],function(){removeAllAssignedProds(a)})})}function removeAllAssignedProds(h){var c=true;if(cancelunpaidcode!=""){if($("#cancelcodefield").val()!=cancelunpaidcode){c=false;alert(W_WRONG_PIN[lang]);return}}for(var f=0;f
    "}if((f==3)&&(showpayment3==1)){c+='
    '+a+"
    "}if((f==4)&&(showpayment4==1)){c+='
    '+a+"
    "}if((f==5)&&(showpayment5==1)){c+='
    '+a+"
    "}if((f==6)&&(showpayment6==1)){c+='
    '+a+"
    "}if((f==7)&&(showpayment7==1)){c+='
    '+a+"
    "}if((f==8)&&(showpayment8==1)){c+='
    '+a+"
    "}}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 payWithoutPaymentDlg(){startPayProcess(1,"","","")}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).removeClass("payitemnormborder");$("#"+c).addClass("payallaccounted");$("#"+c).addClass("payitemoffborder")}else{$("#"+c).removeClass("paystillopen");$("#"+c).removeClass("payallaccounted");$("#"+c).removeClass("payitemoffborder");$("#"+c).addClass("paystillopen");$("#"+c).addClass("payitemnormborder")}if(a===0){$("#"+c+" .payitemaccounted").html("")}else{$("#"+c+" .payitemaccounted").html(a)}}function getProdAccountedEntry(c){var f=createHashOfPayableItem(c);for(var a=0;a");return toHtml(c)+g}function createHashOfPayableItem(b){var a="{{"+(parseFloat(b.tax).toFixed(2).replace(".",decpoint))+"}}";return createHashOfPayableItemWithoutTax(b)+toHtml(a)}function createPayableItemListElement(e){var f="";var h=1;if("count" in e){if(e.count>1){f=e.count+"x ";h=e.count}}var a=false;var g=getProdAccountedEntry(e);var i="";if(g!==null){if(g.count!=0){i=g.count}if(g.count==h){a=true}}var l="";if(a){if(preferimgdesk==0){l='
    '+f+createHashOfPayableItemWithoutTax(e)+"
    "+i+"
    "}else{var m="php/contenthandler.php?module=products&command=getprodimage&prodid="+e.prodid+"&size=m";var b=" style=\"background-image: url('"+m+"'); background-size: cover; background-repeat: no-repeat; background-position: center center; \" ";var c=""+f+createHashOfPayableItemWithoutTax(e)+"";l='
    "+c+"
    "+i+"
    "}}else{if(preferimgdesk==0){l='
    '+f+createHashOfPayableItemWithoutTax(e)+"
    "+i+"
    "}else{var m="php/contenthandler.php?module=products&command=getprodimage&prodid="+e.prodid+"&size=m";var k=" style=\"background-image: url('"+m+"'); background-size: cover; background-repeat: no-repeat; background-position: center center; \" ";var n=""+f+createHashOfPayableItemWithoutTax(e)+"";l='
    "+n+"
    "+i+"
    "}}return l}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(n,l,m,g){var k=getTableName();var b=0;if(selectedroomindex!=-1){if(selectedtableindex!=null){var f=roominfo.roomstables[selectedroomindex].tables[selectedtableindex];b=f.id}else{b=0}}var e=$("#info-page").data("usst");if($("#info-page").data("taxtype")=="togo"){e=$("#info-page").data("togotax")}checkForLogIn();var a=[];for(var h=0;h";printContent(s)}}startCashProcess()}}else{alert("Fehler: "+q)}},error:function(i){alert("Sorry, there was a problem! "+i)}})}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_OPS=["Operationen","Operations","Operaciones"];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_TOTALSUM=["Summe","Sum","Total"];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/Entnehmen","Insert/Take out","Insertar"];var P_TAKE_OUT=["Entnehmen","Take out","Sacar"];var P_OVERV_DETAILS=["Diese Übersicht zeigt die Einnahmen durch den Kellner pro Zahlungsweg seit der letzten Tageslosung sowie als weiteren Wert den Kassenstand unter Berücksichtigung der eigenen Eingaben und Entnahmen.","This overview contains the 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 del camarero, y también el dinero incluido con acciones de insertar y sacar."];var P_CASH_SUM=["Bewirtungseinnahmen (ohne Ein-/Auslagen):","Cash by payment (without inserts/take-outs):","Cobro (sin tomas/entradas):"];var P_INCLUDE_OWN=["Barbestand inkl. eigener Kassenein-/auslagen:","Cash incl. own cash insert/take-outs:","Cash 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 P_OF_WORK_RECEIPT=[" von Arbeitsbon ","of work receipt "," del ticket de trabajo "];var P_BILL_TITLE=["Rechnung","Bill","Factura"];var showHostTemplate=false;var guests=[];var internalguests=[];var hotelinterface=0;var PAYMENT_CARD=2;var PAYMENT_HS3=7;var PAYMENT_GUEST=8;var currentPaymentId=7;var showpayments=1;var showpayment2=1;var showpayment3=1;var showpayment4=1;var showpayment5=1;var showpayment6=1;var showpayment7=1;var showpayment8=1;var forceprint=0;var showhostprint=1;var billprintjobs=0;var prodsByPrintjob=[];var currentSelectedIsTogo=false;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;var f=a.usetse;showpayments=a.showpayments;showpayment2=a.showpayment2;showpayment3=a.showpayment3;if(f==0){showpayment4=a.showpayment4;showpayment5=a.showpayment5;showpayment6=a.showpayment6;showpayment7=a.showpayment7;showpayment8=a.showpayment8}else{showpayment4=0;showpayment5=0;showpayment6=0;showpayment7=0;showpayment8=0}forceprint=a.forceprint;$("#curtopay2").html(" "+a.currency);workflowconfig=a.workflowconfig;digigopaysetready=a.digigopaysetready;showhostprint=a.showhostprint;restaurantmode=a.restaurantmode;billprintjobs=a.billprintjobs;sumupforcard=a.sumupforcard;affiliatekey=a.affiliatekey;appid=a.appid;serverurl=a.serverurl;if(serverurl.endsWith("/")){serverurl=serverurl.substr(0,serverurl.length-1)}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,o,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(".",o);if(a!="A"){g+=" ("+a+")"}if(f==1){g="To-Go: "+g}var n=k*i;var m="";var e='style="white-space: nowrap;overflow: hidden;text-overflow:ellipsis;width: 60%;"';var l=n.toFixed(2).replace(".",o);if(k==0){k="";c="";l=""}m+="'+k+""+g;m=m+""+c;m+=""+l+"";return m}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")}}function generateCashOverviewOfUser(e){var a="";for(var b=0;b"+(parseFloat(c.value).toFixed(2)).replace(".",decpoint)+"
    "+currency+"
    "}return a}function fillProdByPrintJobsList(g){prodsByPrintjob=[];var a=g.length;for(var b=0;b