diff --git a/gastsystem/index.php b/gastsystem/index.php
index 1585121..fac1e41 100644
--- a/gastsystem/index.php
+++ b/gastsystem/index.php
@@ -9,8 +9,8 @@
-
-
+
+
@@ -46,11 +46,18 @@
-
Tisch-Code
-
Bitte geben Sie hier den Tisch-Code ein:
-
-
Bitte geben Sie hier die Tageslosung ein:
-
+
Code-Eingabe
+
+
+
Bitte geben Sie hier den Tisch-Code ein:
+
+
+
+
+
Bitte geben Sie hier die Tageslosung ein:
+
+
+
Zurück
Weiter
@@ -98,7 +105,7 @@
diff --git a/gastsystem/install.php b/gastsystem/install.php
index 1d15520..b3bb889 100644
--- a/gastsystem/install.php
+++ b/gastsystem/install.php
@@ -90,10 +90,10 @@ if (isset($_POST['code'])) {
} else {
echo "";
echo "
Installation Gastsystem ";
- echo '
';
+ echo '
';
echo "";
echo "
";
- echo " ";
+ echo " ";
echo "
";
diff --git a/gastsystem/js/ordering.js b/gastsystem/js/ordering.js
index 51bbb46..9934fc6 100644
--- a/gastsystem/js/ordering.js
+++ b/gastsystem/js/ordering.js
@@ -1 +1 @@
-$(document).on("pageinit","#guest-page",function(){intervalCheckLastOsSystemAccess(5);getTables()});var selectedTableid=null;var syncisWorking=false;var dailycode=null;var tablecode=null;var products=null;var types=null;var currency="";var decpoint=".";var selectedproduct=null;var selectedtable=null;var timeout=0;var timecounter=0;function intervalCheckLastOsSystemAccess(b){doAjax("GET","php/system.php?command=getlastosaccess",null,insertSyncIsWorking,true);var a=setInterval(function(){doAjax("GET","php/system.php?command=getlastosaccess",null,insertSyncIsWorking,true)},b*1000)}function timeouting(){timecounter=0;var a=setInterval(function(){updateTimer()},1000)}function createReadableTimeValue(c){var b=Math.floor(c/60);var a=c%60;return"Verbleibende Zeit bis Neuanmeldung: "+b+":"+a}function updateTimer(){if(timecounter>0){$("#timecounter").show();$("#timecounter").html(createReadableTimeValue(timecounter))}else{$("#timecounter").hide()}if(timecounter>0){timecounter--;if(timecounter==0){var a=$("#tableselection").is(":visible");if(!a){$(".notcollapsible").hide();getTables()}}}}function insertSyncIsWorking(a){if(a.status=="OK"){if(a.msg==1){syncisWorking=true}else{syncisWorking=false}if(syncisWorking){$("#warningdiv").hide()}else{$("#warningdiv").show()}}}function getTables(){doAjax("GET","php/tables.php?command=gettables",null,insertTables,"Fehler beim Abruf der Tische",true)}function preventCollapsible(){$(".notcollapsible").off("collapsiblecollapse").on("collapsiblecollapse",function(a){a.stopImmediatePropagation();a.preventDefault();var b=this.id;$("#"+b).collapsible("expand")})}function insertTables(b){if(b.status!="OK"){alert("Es ist ein Fehler aufgetreten: "+b.msg)}else{currency=b.currency;decpoint=b.decpoint;timeout=b.timeout;var a="";a+=fillSelectionBox("tableselect",b.msg,"Tischauswahl");$("#tableselectionbox").html(a);$("#tableselection").show();$("#tableselection").trigger("create");preventCollapsible();$("#tableselectionbox").off("change").on("change",function(c){c.stopImmediatePropagation();c.preventDefault();selectedTableid=$("#tableselect").val();if(selectedTableid!=(-1)){$("#tableselection").hide();handleCodeInput()}});timeouting()}}function handleCodeInput(){$("#tablecodediv").show();preventCollapsible();$("#tablecodefield").val("");$("#dailycodefield").val("");$("#codebackbtn").off("click").on("click",function(a){a.stopImmediatePropagation();a.preventDefault();$("#tablecodediv").hide();getTables()});$("#submitcodesbtn").off("click").on("click",function(b){b.stopImmediatePropagation();b.preventDefault();tablecode=$("#tablecodefield").val();dailycode=$("#dailycodefield").val();var a={tableid:selectedTableid,tablecode:tablecode,dailycode:dailycode};doAjax("POST","php/tables.php?command=checkcodes",a,handleCodeCheck,"Fehler bei der Abfrage der Codes",true)})}function handleCodeCheck(a){if(a.status!="OK"){alert(a.msg)}else{timecounter=timeout;initProductsView()}}function fillSelectionBox(f,b,d){var e='
';e+='
';e+=''+toHtml(d)+" ";for(var c=0;c"+toHtml(a.name)+""}e+=" ";return e}function toHtml(a){return(a.replace(/"/g,""").replace(//g,">"))}function initProductsView(){doAjax("POST","php/menu.php?command=getmenu",null,showProductsView,"Fehler bei der Abfrage der Speisekarte",true)}function showProductsView(a){preventCollapsible();if(a.status!="OK"){alert("Fehler: "+a.msg);$("#productsdiv").hide();getTables()}else{products=a.msg.products;types=a.msg.types;showProdTypes(0);$("#tablecodediv").hide();$("#productsdiv").show();$("#prodbackbtn").off("click").on("click",function(b){b.stopImmediatePropagation();b.preventDefault();$("#productsdiv").hide();getTables()})}}function showProdTypes(c){var a=createTypesHtml(c);if(a!=null){$("#typesdiv").html(a);$("#typesdiv").trigger("create")}bindProdTypes();var b=createProdsHtml(c);if(b!=null){$("#prodsdiv").show();$("#prodsdiv").html(b);$("#prodsdiv").trigger("create");bindProducts()}else{$("#prodsdiv").hide()}preventCollapsible()}function bindProducts(){$(".product").off("click").on("click",function(c){c.stopImmediatePropagation();c.preventDefault();var b=this.id.split("_")[1];selectedproduct=b;$("#productsdiv").hide();$("#prodconfirmdiv").show();var a=getProductName(b);$("#selectedprod").html(toHtml(a));bindProdConfirm()})}function bindProdTypes(){$(".prodtype").off("click").on("click",function(b){b.stopImmediatePropagation();b.preventDefault();var a=this.id.split("_")[1];showProdTypes(a)});$(".up").off("click").on("click",function(b){b.stopImmediatePropagation();b.preventDefault();var a=this.id.split("_")[1];showProdTypes(a)})}function createTypesHtml(d){if(types==null){return null}var c='
";return c}function getParentOfReference(c){for(var b=0;b
Produktauswahl';for(var a=0;a'+toHtml(f.longname)+" ("+e+") "}}b+="";if(c){return b}else{return null}}function getProductName(b){for(var a=0;a0){$("#timecounter").show();$("#timecounter").html(createReadableTimeValue(timecounter))}else{$("#timecounter").hide()}if(timecounter>0){timecounter--;if(timecounter==0){var a=$("#tableselection").is(":visible");if(!a){$(".notcollapsible").hide();getTables()}}}}function insertSyncIsWorking(a){if(a.status=="OK"){if(a.msg==1){syncisWorking=true}else{syncisWorking=false}if(syncisWorking){$("#warningdiv").hide()}else{$("#warningdiv").show()}}}function getTables(){doAjax("GET","php/tables.php?command=gettables",null,insertTables,"Fehler beim Abruf der Tische",true)}function preventCollapsible(){$(".notcollapsible").off("collapsiblecollapse").on("collapsiblecollapse",function(a){a.stopImmediatePropagation();a.preventDefault();var b=this.id;$("#"+b).collapsible("expand")})}function insertTables(b){if(b.status!="OK"){alert("Es ist ein Fehler aufgetreten: "+b.msg)}else{currency=b.currency;decpoint=b.decpoint;timeout=b.timeout;askdaycode=b.askdaycode;asktablecode=b.asktablecode;var a="";a+=fillSelectionBox("tableselect",b.msg,"Tischauswahl");$("#tableselectionbox").html(a);$("#tableselection").show();$("#tableselection").trigger("create");preventCollapsible();$("#tableselectionbox").off("change").on("change",function(c){c.stopImmediatePropagation();c.preventDefault();selectedTableid=$("#tableselect").val();if(selectedTableid!=(-1)){$("#tableselection").hide();handleCodeInput()}});timeouting()}}function handleCodeInput(){if((askdaycode==0)&&(asktablecode==0)){tablecode="empty";dailycode="empty";timecounter=timeout;initProductsView();return}$("#tablecodediv").show();preventCollapsible();if(askdaycode==1){tablecode="empty";$("#daycodearea").show()}if(asktablecode==1){dailycode="empty";$("#tablecodearea").show()}$("#tablecodefield").val("");$("#dailycodefield").val("");$("#codebackbtn").off("click").on("click",function(a){a.stopImmediatePropagation();a.preventDefault();hideCodeAreas();$("#tablecodediv").hide();getTables()});$("#submitcodesbtn").off("click").on("click",function(b){b.stopImmediatePropagation();b.preventDefault();tablecode=$("#tablecodefield").val().trim();dailycode=$("#dailycodefield").val().trim();var a={tableid:selectedTableid,tablecode:tablecode,dailycode:dailycode};doAjax("POST","php/tables.php?command=checkcodes",a,handleCodeCheck,"Fehler bei der Abfrage der Codes",true)})}function hideCodeAreas(){$("#daycodearea").hide();$("#tablecodearea").hide()}function handleCodeCheck(a){if(a.status!="OK"){alert(a.msg)}else{hideCodeAreas();timecounter=timeout;initProductsView()}}function fillSelectionBox(f,b,d){var e='';e+='
';e+=''+toHtml(d)+" ";for(var c=0;c"+toHtml(a.name)+""}e+=" ";return e}function toHtml(a){return(a.replace(/"/g,""").replace(//g,">"))}function initProductsView(){doAjax("POST","php/menu.php?command=getmenu",null,showProductsView,"Fehler bei der Abfrage der Speisekarte",true)}function showProductsView(a){timecounter=timeout;preventCollapsible();if(a.status!="OK"){alert("Fehler: "+a.msg);$("#productsdiv").hide();getTables()}else{products=a.msg.products;types=a.msg.types;showProdTypes(0);$("#tablecodediv").hide();$("#productsdiv").show();$("#prodbackbtn").off("click").on("click",function(b){b.stopImmediatePropagation();b.preventDefault();$("#productsdiv").hide();getTables()})}}function showProdTypes(c){timecounter=timeout;var a=createTypesHtml(c);if(a!=null){$("#typesdiv").html(a);$("#typesdiv").trigger("create")}bindProdTypes();var b=createProdsHtml(c);if(b!=null){$("#prodsdiv").show();$("#prodsdiv").html(b);$("#prodsdiv").trigger("create");bindProducts()}else{$("#prodsdiv").hide()}preventCollapsible()}function bindProducts(){$(".product").off("click").on("click",function(c){c.stopImmediatePropagation();c.preventDefault();var b=this.id.split("_")[1];selectedproduct=b;$("#productsdiv").hide();$("#prodconfirmdiv").show();timecounter=timeout;var a=getProductName(b);$("#selectedprod").html(toHtml(a));bindProdConfirm()})}function bindProdTypes(){$(".prodtype").off("click").on("click",function(b){b.stopImmediatePropagation();b.preventDefault();var a=this.id.split("_")[1];showProdTypes(a)});$(".up").off("click").on("click",function(b){b.stopImmediatePropagation();b.preventDefault();var a=this.id.split("_")[1];showProdTypes(a)})}function createTypesHtml(d){if(types==null){return null}var c='
";return c}function getParentOfReference(c){for(var b=0;b
Produktauswahl';for(var a=0;a'+toHtml(f.longname)+" ("+e+") "}}b+="";if(c){return b}else{return null}}function getProductName(b){for(var a=0;a $t["id"],"name" => $t["name"]);
}
- $currency = "";
- $decpoint = ".";
+ $currency = DbUtils::getConfigItem($pdo, 'currency', "");
+ $decpoint = DbUtils::getConfigItem($pdo, 'decpoint', ".");
+ $askdaycode = DbUtils::getConfigItem($pdo, 'askdaycode', 1);
+ $asktablecode = DbUtils::getConfigItem($pdo, 'asktablecode', 1);
+ $guesttimeout = DbUtils::getConfigItem($pdo, 'guesttimeout', 5) * 60;
- $result = DbUtils::fetchSqlAll($pdo, $sql, array('currency'));
- if (count($result) > 0) {
- $currency = $result[0]["value"];
- }
- $result = DbUtils::fetchSqlAll($pdo, $sql, array('decpoint'));
- if (count($result) > 0) {
- $decpoint = $result[0]["value"];
- }
-
- return array("status" => "OK","msg" => $tablesArr,"currency" => $currency,"decpoint" => $decpoint, "timeout" => TIMEOUT);
+ return array("status" => "OK",
+ "msg" => $tablesArr,
+ "currency" => $currency,
+ "decpoint" => $decpoint,
+ "askdaycode" => $askdaycode,
+ "asktablecode" => $asktablecode,
+ "timeout" => $guesttimeout);
}
public static function checkcodes($pdo,$tableid,$tablecode,$dailycode) {
$tablecode = trim($tablecode);
$dailycode = trim($dailycode);
+
+ $askdaycode = DbUtils::getConfigItem($pdo, 'askdaycode', 1);
+ $asktablecode = DbUtils::getConfigItem($pdo, 'asktablecode', 1);
+
$sql = "SELECT value FROM %ossystem% WHERE item=?";
$result = DbUtils::fetchSqlAll($pdo, $sql, array('resttables'));
@@ -50,32 +54,37 @@ class Tables {
return array("status" => "ERROR","msg" => "Keine Tischdefinition hinterlegt.");
}
- $resttables = $result[0];
- $tables = json_decode($resttables["value"], true);
-
- foreach ($tables as $t) {
- if ($t["id"] == $tableid) {
- if (trim($t["code"]) == $tablecode) {
- break;
- } else {
- return array("status" => "ERROR","msg" => "Falscher Tischcode!");
+ if ($asktablecode == 1) {
+ $resttables = $result[0];
+ $tables = json_decode($resttables["value"], true);
+
+ foreach ($tables as $t) {
+ if ($t["id"] == $tableid) {
+ if (trim($t["code"]) == $tablecode) {
+ break;
+ } else {
+ return array("status" => "ERROR","msg" => "Falscher Tischcode!");
+ }
}
}
}
- $sql = "SELECT value FROM %ossystem% WHERE item=?";
- $result = DbUtils::fetchSqlAll($pdo, $sql, array('dailycode'));
-
- if (count($result) == 0) {
- return array("status" => "ERROR","msg" => "Keine Tageslosung wurde hinterlegt.");
- }
-
- $dailycodeInDb = trim($result[0]["value"]);
- if ($dailycode == $dailycodeInDb) {
- return array("status" => "OK");
- } else {
- return array("status" => "ERROR","msg" => "Falsche Tageslosung angegeben!");
+ if ($askdaycode == 1) {
+ $sql = "SELECT value FROM %ossystem% WHERE item=?";
+ $result = DbUtils::fetchSqlAll($pdo, $sql, array('dailycode'));
+
+ if (count($result) == 0) {
+ return array("status" => "ERROR","msg" => "Keine Tageslosung wurde hinterlegt.");
+ }
+
+ $dailycodeInDb = trim($result[0]["value"]);
+ if ($dailycode == $dailycodeInDb) {
+ return array("status" => "OK");
+ } else {
+ return array("status" => "ERROR","msg" => "Falsche Tageslosung angegeben!");
+ }
}
+ return array("status" => "OK");
}
}
diff --git a/gastsystem/sync.php b/gastsystem/sync.php
index 643c3ff..1103f73 100644
--- a/gastsystem/sync.php
+++ b/gastsystem/sync.php
@@ -3,12 +3,10 @@
require_once 'php/dbutils.php';
require_once 'php/config.php';
-// REM* wget "http://localhost/bestellung/php/contenthandler.php?module=guestsync&command=sync"
class Sync {
public static function insertSystemData($pdo,$systemdata) {
try {
- // REM* check for guestcode
if (!isset($systemdata["guestcode"])) {
return array("status" => "ERROR","msg" => "No Access code transmitted!");
}
@@ -26,6 +24,10 @@ class Sync {
self::insertIntoSystemTable($pdo, $systemdata, 'currency');
self::insertIntoSystemTable($pdo, $systemdata, 'decpoint');
+ self::insertIntoSystemTableWithCheck($pdo, $systemdata, 'askdaycode');
+ self::insertIntoSystemTableWithCheck($pdo, $systemdata, 'asktablecode');
+ self::insertIntoSystemTableWithCheck($pdo, $systemdata, 'guesttimeout');
+
if (isset($systemdata["timezone"])) {
self::updateOsAccessStatus($pdo, $systemdata["timezone"]);
}
@@ -44,11 +46,22 @@ class Sync {
}
}
- // REM* update that an access from OrderSprinter core webapp has taken place
+ private static function insertIntoSystemTableWithCheck($pdo,$data,$item) {
+ if (isset($data[$item])) {
+ $sql = "SELECT id FROM %ossystem% WHERE item=?";
+ $result = DbUtils::fetchSqlAll($pdo, $sql, array($item));
+ if (count($result) == 0) {
+ $sql = "INSERT INTO %ossystem% (item,value) VALUES(?,?)";
+ DbUtils::execSql($pdo, $sql, array($item,$data[$item]));
+ } else {
+ self::insertIntoSystemTable($pdo, $data, $item);
+ }
+ }
+ }
+
private static function updateOsAccessStatus($pdo,$timezone) {
date_default_timezone_set($timezone);
$date = new DateTime();
- // REM* seconds since Jan 01 1970. (UTC)
$currentTimeStamp = $date->getTimestamp();
$sql = "SELECT id FROM %gueststatus% WHERE item=?";
diff --git a/printserver/OrderSprinterPrintserver.exe b/printserver/OrderSprinterPrintserver.exe
index 2ed2b02..92fb76f 100644
Binary files a/printserver/OrderSprinterPrintserver.exe and b/printserver/OrderSprinterPrintserver.exe differ
diff --git a/spider/install/installer.php b/spider/install/installer.php
index 8f296b6..fcb67eb 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.4.5");
+ Database::setVersion($pdo,$prefix,"1.4.6");
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 2ed2b02..92fb76f 100644
Binary files a/webapp/OrderSprinterPrintserver.exe and b/webapp/OrderSprinterPrintserver.exe differ
diff --git a/webapp/bar.html b/webapp/bar.html
index 7819956..66cda4c 100644
--- a/webapp/bar.html
+++ b/webapp/bar.html
@@ -5,7 +5,7 @@
-
+
diff --git a/webapp/bill.html b/webapp/bill.html
index fb8dd30..d3e3499 100644
--- a/webapp/bill.html
+++ b/webapp/bill.html
@@ -5,7 +5,7 @@
-
+
diff --git a/webapp/css/bestformat.css b/webapp/css/bestformat.css
index 687de58..9b27741 100644
--- a/webapp/css/bestformat.css
+++ b/webapp/css/bestformat.css
@@ -1 +1 @@
-@charset "UTF-8";table.viewtable{width:100%;display:block;table-layout:fixed}table.viewtable th{background:#7abe5f;font-size:10pt;border-bottom:1px solid rgba(255,255,255,.7);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2);-o-box-shadow:inset 0 1px 0 rgba(255,255,255,.2);box-shadow:inset 0 1px 0 rgba(255,255,255,.2);padding:6px 10px}table.viewtable td{background:#eed33f;font-size:8pt;border-bottom:1px solid #fafafa;border-bottom:1px solid rgba(255,255,255,.5);padding:6px 10px;color:rgba(0,0,0,255)}table.viewtable th.complete{background:#17370b;color:rgba(255,255,255,0)}table.viewtable th.incomplete{background:#9c9224;color:rgba(0,0,0,255)}table.viewtable td.complete{background:#78bb5e;color:rgba(0,0,0,255)}table.viewtable td.incomplete{background:#eed33f;color:rgba(0,0,0,255)}table.viewtable tr:last-child td{border-bottom:0}table.viewtable tr:hover td{background-color:#faf}table.receipttable td{border:solid black 0;padding:3px;text-align:left;vertical-align:bottom}table.receipttable td.price{border:solid black 0;padding:3px;text-align:right;vertical-align:bottom}table.receipttable td.restinfo{text-align:center;vertical-align:bottom}table.receipttable td.declaration{font-weight:bold;text-align:right}table.gridtable{font-family:verdana,arial,sans-serif;font-size:20px;color:#333;border-width:3px;border-color:#666;border-collapse:collapse;width:100%}table.gridtable th{border-width:4px;padding:8px;border-style:solid;border-color:#666;background-color:#dedede;font-weight:bold;text-align:center}table.gridtable td{border-width:2px;padding:8px;border-style:solid;border-color:#666;background-color:#fff;text-align:center}table.gridtable td.rowname{font-weight:bold;text-align:left}table.gridtable td:hover{background-color:#faf}table.gridtable td.rowname:hover{background-color:#fff}table.linetable{font-family:verdana,arial,sans-serif;font-size:20px;color:#333;border-width:2px;border-color:#666;border-collapse:collapse;width:100%}table.linetable th{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#dedede;font-weight:bold}table.linetable td{border-width:1px;padding:8px;border-style:solid;border-color:#666;text-align:center}table.linetable tr{background:#fff}table.linetable tr:hover{background-color:#faf}table.reporttable{font-family:verdana,arial,sans-serif;font-size:20px;color:#333;border:solid black 2px;border-color:#666;border-collapse:collapse;width:100%;border-spacing:10px}table.reporttable th{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#dedede;font-weight:bold}table.reporttable td{border:solid black 0;padding:8px;text-align:left;vertical-align:top}table.reporttable tr{background:#d6f8be}table.reporttable tr:hover{background-color:#faf}table.groundplan{font-family:verdana,arial,sans-serif;font-size:20px;color:#333;border:solid black 2px;border-color:#666;border-collapse:collapse;width:100%;border-spacing:5px}table.groundplan th{border-width:1px;padding:4px;border-style:solid;border-color:#666;background-color:#dedede;font-weight:bold}table.groundplan td{border:solid black 0;padding:4px;text-align:left;vertical-align:middle}table.groundplan tr{background:#d6f8be}table.groundplan tr:hover{background-color:#faf}table.commandtable{font-family:verdana,arial,sans-serif;font-size:20px;color:#333;border-width:1px;border-color:#666;border-collapse:collapse;width:100%}table.commandtable th{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#e4d662;font-weight:bold}table.commandtable td{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#fff;font-weight:bold}table.navitable{font-family:verdana,arial,sans-serif;font-size:20px;color:#333;border-width:1px;border-color:#666;border-collapse:collapse;width:100%}table.navitable th{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#d09696;font-weight:bold}table.navitable td{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#c08f8f}table.infotable{font-family:verdana,arial,sans-serif;font-size:20px;color:#333;border-width:1px;border-color:#666;border-collapse:collapse;width:100%}table.infotable th{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#c3c3ff;font-weight:bold}table.infotable td{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#c3c3ff}table.billtable{font-family:verdana,arial,sans-serif;font-size:20px;color:#000;border:solid black 2px;border-color:#000;border-collapse:collapse;width:100%;border-spacing:10px}table.billtable th{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#c3c3ff;font-weight:bold;text-align:left}table.billtable #pricecolheader{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#c3c3ff;font-weight:bold;text-align:right}table.billtable td{border:solid black 0;padding:8px;background-color:#fff;text-align:left}table.billtable #pricecol{border:solid black 0;padding:8px;background-color:#fff;text-align:right}table.billtable #totalprice{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#c3c3ff;font-weight:bold;text-align:center}.grid_right{text-align:right;font-style:italic}.userinfo{font-style:italic}.counting{position:absolute;top:0;bottom:0;right:90px;width:80px;border:0;background-color:rgb(246,246,246,0.0) !important}.counting:hover{background-color:#0f0}.goup{position:absolute;top:5px;bottom:0;right:90px;border:0;background-color:#f6f6f6 !important}.osroom-1{height:40px !important}.osroom-2{height:70px !important}.ostable-1{height:40px !important}.ostable-2{height:70px !important}.osprod-1{height:40px !important}.osprod-2{height:70px !important}.osbigbtn.ui-btn{height:40px !important;text-align:center;line-height:30px}table.prodtable{font-family:verdana,arial,sans-serif;font-size:20px;color:#333;border-width:1px;border-color:#666;border-collapse:collapse;width:70%}table.prodtable th{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:OrangeRed;font-weight:bold}table.prodtable .prodtype td{background-color:DarkGreen}table.prodtable tr>td:first-child{text-align:left}table.prodtable td{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:LimeGreen;text-align:right;font-weight:bold;white-space:nowrap;max-width:50%;word-break:break-all}table.prodtable input{line-height:30px;background-color:PaleGreen;font-weight:bold}table.prodtable select{background-color:PaleGreen;font-weight:bold;width:100%}table.prodtable option.yes{background-color:green}table.prodtable option.no{background-color:red}table.prodtable .prodpriceA{width:50px;text-align:right}table.prodtable .prodpriceB{width:50px;text-align:right}table.prodtable .prodpriceC{width:50px;text-align:right}.prodinfo,.srinfo{position:absolute;top:0;bottom:0;right:20px;width:20px;border:0;background-color:rgb(246,246,246,0.0) !important}.prodtextinfo,.srtextinfo{position:absolute;top:10px;bottom:0;right:30px;width:20px;border:0;background-color:rgb(246,246,246,0.0) !important}.waitinfo{position:absolute;top:0;bottom:0;right:20px;border:0;background-color:rgb(246,246,246,0.0) !important}.waitinfo img{position:absolute;top:0;bottom:0;right:20px;height:35px;border:0;background-color:rgb(246,246,246,0.0) !important}.typehigher{text-align:right;background-color:rgb(246,246,246,0.0) !important}.typetop{text-align:left;background-color:rgb(246,246,246,0.0) !important}@media all and (min-width:0){.typetop img{width:100px}.typehigher img{width:100px}}@media all and (min-width:20em){.typetop img{width:120px}.typehigher img{width:120px}}@media all and (min-width:40em){.typetop img{width:160px}.typehigher img{width:160px}}.prodnumber{position:absolute;top:0;bottom:0;right:190px;height:20px;border:0;background-color:rgb(246,246,246,0.0) !important}.prodminus,.srminus{position:absolute;top:0;bottom:0;right:130px;height:20px;border:0;background-color:rgb(246,246,246,0.0) !important}.srprodcount{position:absolute;top:10px;bottom:0;right:100px;width:25px;border:0;background-color:rgb(246,246,246,0.0) !important}.prodcount,.srprodcount{position:absolute;top:10px;bottom:0;right:100px;width:25px;height:25px;border:0;background-color:white !important}.prodplus,.srplus{position:absolute;top:0;bottom:0;right:60px;height:20px;border:0;background-color:rgb(246,246,246,0.0) !important}.prodnumber img{width:30px}.prodplus img{width:30px}.prodminus img{width:30px}.srplus img{width:30px}.srminus img{width:30px}.srminus:hover,.prodminus:hover{height:40px;width:30px;background-color:#0f0}.srplus:hover,.prodplus:hover{height:40px;width:30px;background-color:#0f0}.prodinfo img:hover,.srinfo img:hover{background-color:#0f0}.tbusy{color:black !important;font-weight:bold;font-style:italic}.tempty{color:gray !important;color:gray !important;font-weight:normal}.overlaytxt{background:linear-gradient(red,yellow);color:black;font-weight:bold;border-radius:25px;border:3px solid #000;padding:8px}.overlayfull{background:linear-gradient(red,yellow)}.overlayempty{background:linear-gradient(green,yellow)}.overlaysize-0{font-size:7px}.overlaysize-1{font-size:12px}.overlaysize-2{font-size:15px}.selectedtable{border:6px solid red}.prodreadyicon{position:absolute;top:0;bottom:0;right:70px;height:20px;border:0;background-color:rgb(246,246,246,0.0) !important}.prodreadyicon:hover{height:40px;background-color:#0f0}.prodreadycount{position:absolute;top:10px;bottom:0;right:40px;width:20px;border:0;background-color:rgb(246,246,246,0.0) !important}.changetableprodlist{width:100%;background-color:LightCyan;resize:none}.usersums{border:solid black 3px;background-color:#ffe8bc}.usersums td{border:solid black 1px;padding:3px;text-align:right;vertical-align:bottom}.taxessums{border:solid black 3px;background-color:#f0e8bc}.taxessums td{border:solid black 1px;padding:3px;text-align:right;vertical-align:bottom}.scrolllistview{height:150px;top:10px;overflow:auto;background-color:blanchedalmond;-webkit-overflow-scrolling:touch}.scrolllistview li{height:15px;vertical-align:middle}.selecteditem{color:black;font-weight:bold}.unselecteditem{color:gray}.printerstatus{height:20px}.warning{color:red}.whiteinput[type=text]{color:black;background-color:white}.customerlistbox{background-color:white;border:2px solid #aaa}.genConfigEl[type=text],.genConfigEl[type=password]{border:1px solid #666;background-color:#fff;font-family:"Courier New",Courier,monospace}#userlabel_username[type=text],#userlabel_password[type=text],.userlabel_newpassword[type=text],#remarkfield[type=text],#oldpass[type=password],#newpass[type=password]{border:1px solid #666;background-color:#fff}.reservationinputfield[type=text]{border:1px solid #666;background-color:#fff}textarea.genConfigEl{font-family:"Courier New",Courier,monospace}.centermobileimg{top:0;bottom:0;margin:auto;position:absolute}.grouparea{border:1px solid #666;border-radius:25px;background-color:yellow;padding:10px}.fixedgopaydeskbtn{height:1.5em !important;width:5.3em !important;font-size:1em;position:fixed !important;right:5px !important;top:50px !important}.fixedwaiterui{padding-right:15vw !important}.fixedsendorderbtn{height:1.5em !important;width:5.3em !important;font-size:1em;position:fixed !important;right:5px !important;top:105px !important}.fixedworkprintbtn{height:1.5em !important;width:5.3em !important;font-size:1em;position:fixed !important;right:5px !important;top:160px !important}.fixedtypetopimg{position:fixed !important;right:5px !important;top:290px !important;width:5.3em !important}.fixedtypehigherimg{position:fixed !important;right:5px !important;top:340px !important;width:5.3em !important}.fixedextrasatopbottom{border-width:1px !important;width:5.3em !important;font-size:1em !important;position:fixed !important;right:5px !important;top:220px !important}
\ No newline at end of file
+@charset "UTF-8";table.viewtable{width:100%;display:block;table-layout:fixed}table.viewtable th{background:#7abe5f;font-size:10pt;border-bottom:1px solid rgba(255,255,255,.7);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2);-o-box-shadow:inset 0 1px 0 rgba(255,255,255,.2);box-shadow:inset 0 1px 0 rgba(255,255,255,.2);padding:6px 10px}table.viewtable td{background:#eed33f;font-size:8pt;border-bottom:1px solid #fafafa;border-bottom:1px solid rgba(255,255,255,.5);padding:6px 10px;color:rgba(0,0,0,255)}table.viewtable th.complete{background:#17370b;color:rgba(255,255,255,0)}table.viewtable th.incomplete{background:#9c9224;color:rgba(0,0,0,255)}table.viewtable td.complete{background:#78bb5e;color:rgba(0,0,0,255)}table.viewtable td.incomplete{background:#eed33f;color:rgba(0,0,0,255)}table.viewtable tr:last-child td{border-bottom:0}table.viewtable tr:hover td{background-color:#faf}table.receipttable td{border:solid black 0;padding:3px;text-align:left;vertical-align:bottom}table.receipttable td.price{border:solid black 0;padding:3px;text-align:right;vertical-align:bottom}table.receipttable td.restinfo{text-align:center;vertical-align:bottom}table.receipttable td.declaration{font-weight:bold;text-align:right}table.gridtable{font-family:verdana,arial,sans-serif;font-size:20px;color:#333;border-width:3px;border-color:#666;border-collapse:collapse;width:100%}table.gridtable th{border-width:4px;padding:8px;border-style:solid;border-color:#666;background-color:#dedede;font-weight:bold;text-align:center}table.gridtable td{border-width:2px;padding:8px;border-style:solid;border-color:#666;background-color:#fff;text-align:center}table.gridtable td.rowname{font-weight:bold;text-align:left}table.gridtable td:hover{background-color:#faf}table.gridtable td.rowname:hover{background-color:#fff}table.linetable{font-family:verdana,arial,sans-serif;font-size:20px;color:#333;border-width:2px;border-color:#666;border-collapse:collapse;width:100%}table.linetable th{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#dedede;font-weight:bold}table.linetable td{border-width:1px;padding:8px;border-style:solid;border-color:#666;text-align:center}table.linetable tr{background:#fff}table.linetable tr:hover{background-color:#faf}table.reporttable{font-family:verdana,arial,sans-serif;font-size:20px;color:#333;border:solid black 2px;border-color:#666;border-collapse:collapse;width:100%;border-spacing:10px}table.reporttable th{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#dedede;font-weight:bold}table.reporttable td{border:solid black 0;padding:8px;text-align:left;vertical-align:top}table.reporttable tr{background:#d6f8be}table.reporttable tr:hover{background-color:#faf}table.groundplan{font-family:verdana,arial,sans-serif;font-size:20px;color:#333;border:solid black 2px;border-color:#666;border-collapse:collapse;width:100%;border-spacing:5px}table.groundplan th{border-width:1px;padding:4px;border-style:solid;border-color:#666;background-color:#dedede;font-weight:bold}table.groundplan td{border:solid black 0;padding:4px;text-align:left;vertical-align:middle}table.groundplan tr{background:#d6f8be}table.groundplan tr:hover{background-color:#faf}table.commandtable{font-family:verdana,arial,sans-serif;font-size:20px;color:#333;border-width:1px;border-color:#666;border-collapse:collapse;width:100%}table.commandtable th{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#e4d662;font-weight:bold}table.commandtable td{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#fff;font-weight:bold}table.navitable{font-family:verdana,arial,sans-serif;font-size:20px;color:#333;border-width:1px;border-color:#666;border-collapse:collapse;width:100%}table.navitable th{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#d09696;font-weight:bold}table.navitable td{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#c08f8f}table.infotable{font-family:verdana,arial,sans-serif;font-size:20px;color:#333;border-width:1px;border-color:#666;border-collapse:collapse;width:100%}table.infotable th{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#c3c3ff;font-weight:bold}table.infotable td{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#c3c3ff}table.billtable{font-family:verdana,arial,sans-serif;font-size:20px;color:#000;border:solid black 2px;border-color:#000;border-collapse:collapse;width:100%;border-spacing:10px}table.billtable th{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#c3c3ff;font-weight:bold;text-align:left}table.billtable #pricecolheader{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#c3c3ff;font-weight:bold;text-align:right}table.billtable td{border:solid black 0;padding:8px;background-color:#fff;text-align:left}table.billtable #pricecol{border:solid black 0;padding:8px;background-color:#fff;text-align:right}table.billtable #totalprice{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#c3c3ff;font-weight:bold;text-align:center}.grid_right{text-align:right;font-style:italic}.userinfo{font-style:italic}.counting{position:absolute;top:0;bottom:0;right:90px;width:80px;border:0;background-color:rgb(246,246,246,0.0) !important}.counting:hover{background-color:#0f0}.goup{position:absolute;top:5px;bottom:0;right:90px;border:0;background-color:#f6f6f6 !important}.osroom-1{height:40px !important}.osroom-2{height:70px !important}.ostable-1{height:40px !important}.ostable-2{height:70px !important}.osprod-1{height:40px !important}.osprod-2{height:70px !important}.osbigbtn.ui-btn{height:40px !important;text-align:center;line-height:30px}table.prodtable{font-family:verdana,arial,sans-serif;font-size:20px;color:#333;border-width:1px;border-color:#666;border-collapse:collapse;width:70%}table.prodtable th{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:OrangeRed;font-weight:bold}table.prodtable .prodtype td{background-color:DarkGreen}table.prodtable tr>td:first-child{text-align:left}table.prodtable td{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:LimeGreen;text-align:right;font-weight:bold;white-space:nowrap;max-width:50%;word-break:break-all}table.prodtable input{line-height:30px;background-color:PaleGreen;font-weight:bold}table.prodtable select{background-color:PaleGreen;font-weight:bold;width:100%}table.prodtable option.yes{background-color:green}table.prodtable option.no{background-color:red}table.prodtable .prodpriceA{width:50px;text-align:right}table.prodtable .prodpriceB{width:50px;text-align:right}table.prodtable .prodpriceC{width:50px;text-align:right}.prodinfo,.srinfo{position:absolute;top:0;bottom:0;right:20px;width:20px;border:0;background-color:rgb(246,246,246,0.0) !important}.prodtextinfo,.srtextinfo{position:absolute;top:10px;bottom:0;right:30px;width:20px;border:0;background-color:rgb(246,246,246,0.0) !important}.waitinfo{position:absolute;top:0;bottom:0;right:20px;border:0;background-color:rgb(246,246,246,0.0) !important}.waitinfo img{position:absolute;top:0;bottom:0;right:20px;height:35px;border:0;background-color:rgb(246,246,246,0.0) !important}.typehigher{text-align:right;background-color:rgb(246,246,246,0.0) !important}.typetop{text-align:left;background-color:rgb(246,246,246,0.0) !important}@media all and (min-width:0){.typetop img{width:100px}.typehigher img{width:100px}}@media all and (min-width:20em){.typetop img{width:120px}.typehigher img{width:120px}}@media all and (min-width:40em){.typetop img{width:160px}.typehigher img{width:160px}}.prodnumber{position:absolute;top:0;bottom:0;right:190px;height:20px;border:0;background-color:rgb(246,246,246,0.0) !important}.prodminus,.srminus{position:absolute;top:0;bottom:0;right:130px;height:20px;border:0;background-color:rgb(246,246,246,0.0) !important}.srprodcount{position:absolute;top:10px;bottom:0;right:100px;width:25px;border:0;background-color:rgb(246,246,246,0.0) !important}.prodcount,.srprodcount{position:absolute;top:10px;bottom:0;right:100px;width:25px;height:25px;border:0;background-color:white !important}.prodplus,.srplus{position:absolute;top:0;bottom:0;right:60px;height:20px;border:0;background-color:rgb(246,246,246,0.0) !important}.prodnumber img{width:30px}.prodplus img{width:30px}.prodminus img{width:30px}.srplus img{width:30px}.srminus img{width:30px}.srminus:hover,.prodminus:hover{height:40px;width:30px;background-color:#0f0}.srplus:hover,.prodplus:hover{height:40px;width:30px;background-color:#0f0}.prodinfo img:hover,.srinfo img:hover{background-color:#0f0}.tbusy{color:black !important;font-weight:bold;font-style:italic}.tempty{color:gray !important;color:gray !important;font-weight:normal}.overlaytxt{background:linear-gradient(red,yellow);color:black;font-weight:bold;border-radius:25px;border:3px solid #000;padding:8px}.overlayfull{background:linear-gradient(red,yellow)}.overlayempty{background:linear-gradient(green,yellow)}.overlaysize-0{font-size:7px}.overlaysize-1{font-size:12px}.overlaysize-2{font-size:15px}.selectedtable{border:6px solid red}.prodreadyicon{position:absolute;top:0;bottom:0;right:70px;height:20px;border:0;background-color:rgb(246,246,246,0.0) !important}.prodreadyicon:hover{height:40px;background-color:#0f0}.prodreadycount{position:absolute;top:10px;bottom:0;right:40px;width:20px;border:0;background-color:rgb(246,246,246,0.0) !important}.changetableprodlist{width:100%;background-color:LightCyan;resize:none}.usersums{border:solid black 3px;background-color:#ffe8bc}.usersums td{border:solid black 1px;padding:3px;text-align:right;vertical-align:bottom}.taxessums{border:solid black 3px;background-color:#f0e8bc}.taxessums td{border:solid black 1px;padding:3px;text-align:right;vertical-align:bottom}.scrolllistview{height:150px;top:10px;overflow:auto;background-color:blanchedalmond;-webkit-overflow-scrolling:touch}.scrolllistview li{height:15px;vertical-align:middle}.selecteditem{color:black;font-weight:bold}.unselecteditem{color:gray}.printerstatus{height:20px}.warning{color:red}.whiteinput[type=text]{color:black;background-color:white}.customerlistbox{background-color:white;border:2px solid #aaa}.genConfigEl[type=text],.genConfigEl[type=password]{border:1px solid #666;background-color:#fff;font-family:"Courier New",Courier,monospace}#userlabel_username[type=text],#userlabel_password[type=text],.userlabel_newpassword[type=text],#remarkfield[type=text],#oldpass[type=password],#newpass[type=password]{border:1px solid #666;background-color:#fff}.reservationinputfield[type=text]{border:1px solid #666;background-color:#fff}textarea.genConfigEl{font-family:"Courier New",Courier,monospace}.centermobileimg{top:0;bottom:0;margin:auto;position:absolute}.grouparea{border:1px solid #666;border-radius:25px;background-color:yellow;padding:10px}.fixedgopaydeskbtn{height:1.5em !important;width:5.3em !important;font-size:1em;position:fixed !important;right:5px !important;top:50px !important}.fixedwaiterui{padding-right:15vw !important}.fixedsendorderbtn{height:1.5em !important;width:5.3em !important;font-size:1em;position:fixed !important;right:5px !important;top:105px !important}.fixedworkprintbtn{height:1.5em !important;width:5.3em !important;font-size:1em;position:fixed !important;right:5px !important;top:160px !important}.fixedtypetopimg{position:fixed !important;right:5px !important;top:290px !important;width:5.3em !important}.fixedtypehigherimg{position:fixed !important;right:5px !important;top:340px !important;width:5.3em !important}.fixedextrasatopbottom{border-width:1px !important;width:5.3em !important;font-size:1em !important;position:fixed !important;right:5px !important;top:220px !important}.daycodeareamobile{border:1px solid #666;border-radius:25px;background-color:#eee;padding:10px;margin:10px}.daycodetxt{font-weight:bold}.daycodefield{font-style:italic}
\ No newline at end of file
diff --git a/webapp/feedback.html b/webapp/feedback.html
index 3b57447..5b4cce4 100644
--- a/webapp/feedback.html
+++ b/webapp/feedback.html
@@ -4,7 +4,7 @@
-
+
@@ -58,7 +58,7 @@ var FEED_SENT_TXT = ["Wenn eine Kopie der Nachricht an die angegebene Emailadres
var FEED_ERROR_TXT = ["Fehler beim Nachrichtenversand: ","Error during mail transmisión: ","Error durante envío del mail: "];
-var FEED_INFO_TXT = ["Diese Seite dient zur Übermittlung von Feedback an den Entwickler. Die Email wird das Mailkonto des Betreibers versendet.",
+var FEED_INFO_TXT = ["Diese Seite dient zur Übermittlung von Feedback an den Entwickler. Die Email wird über das Mailkonto des Betreibers versendet.",
"This page serves for sending a feedmail email to the developer of this software. The email will be send by use of the mail account of the administrator.",
"Esta página sirve para enviar un email al programador de este software. El email va a ser enviado por la cuenta del administrador."];
diff --git a/webapp/index.html b/webapp/index.html
index f4fbbfa..6121cd8 100644
--- a/webapp/index.html
+++ b/webapp/index.html
@@ -9,8 +9,8 @@
-
-
+
+
@@ -215,7 +215,7 @@ function handleResultOfInstallCheck(is_installed) {
if (is_installed == "Yes") {
useInstallation();
} else {
- setTimeout(function(){document.location.href = "install.html?v=1.4.5"},500);
+ setTimeout(function(){document.location.href = "install.html?v=1.4.6"},500);
}
}
diff --git a/webapp/install.html b/webapp/install.html
index e3be6fe..5679956 100644
--- a/webapp/install.html
+++ b/webapp/install.html
@@ -727,7 +727,7 @@ $(document).ready(function() {
- Update -> 1.4.5
+ Update -> 1.4.6
Update... bitte warten.
diff --git a/webapp/install/installer.php b/webapp/install/installer.php
index 3616e44..d360d46 100644
--- a/webapp/install/installer.php
+++ b/webapp/install/installer.php
@@ -2893,6 +2893,44 @@ return false;
}
}
+function updateUserTable1405_1406($prefix, $version, $dbname) {
+$pdo = $this->pdo;
+try {
+if ($version != "1.4.5") {
+$ret = $this->updateUserTable1404_1405($prefix, $version, $dbname);
+if (!$ret) {
+echo "Version update v1.4.4 to 1.4.5 not successful.";
+return false;
+}
+}
+
+DbUtils::overrulePrefix($prefix);
+
+$this->execSqlWithParam($pdo, "INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL,?,?)", array('askdaycode','1'));
+$this->execSqlWithParam($pdo, "INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL,?,?)", array('asktablecode','1'));
+$this->execSqlWithParam($pdo, "INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL,?,?)", array('guesttimeout','5'));
+$this->execSqlWithParam($pdo, "INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL,?,?)", array('showdaycode','0'));
+
+$sql = "ALTER TABLE %products% ADD INDEX pcatindex (category)";
+$stmt = $pdo->prepare(DbUtils::substTableAlias($sql));
+$stmt->execute();
+$sql = "OPTIMIZE TABLE %products%";
+$stmt = $pdo->prepare($this->basedb->resolveTablenamesInSqlString($sql));
+$stmt->execute();
+$sql = "OPTIMIZE TABLE %queue%";
+$stmt = $pdo->prepare($this->basedb->resolveTablenamesInSqlString($sql));
+$stmt->execute();
+
+
+$this->updateVersion($pdo, '1.4.6');
+
+return true;
+} catch (PDOException $e) {
+echo "Error in v1.4.5 to 1.4.6: $e";
+return false;
+}
+}
+
function insertIntRow($pdo,$table,$rowToInsert,$afterRow) {
$this->insertTypeRow($pdo, $table, $rowToInsert, $afterRow, 'INT(1) NULL');
}
@@ -3068,7 +3106,7 @@ $this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VAL
$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'billlanguage', $billlanguage)");
$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'currency', '$currency')");
$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'receiptfontsize', '12')");
-$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'version', '1.4.5')");
+$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'version', '1.4.6')");
$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'paymentconfig', '0')");
$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'remoteaccesscode', null)");
$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'decpoint', '$decpoint')");
@@ -3078,6 +3116,10 @@ $this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VAL
$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'bigfontworkreceipt', '0')");
$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'prominentsearch', '0')");
$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'guestjobprint', '1')");
+$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'askdaycode', '1')");
+$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'showdaycode', '0')");
+$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'asktablecode', '1')");
+$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'guesttimeout', '5')");
$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'groupworkitemsf', '1')");
$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'groupworkitemsd', '1')");
$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'addreceipttoprinter', null)");
@@ -3516,7 +3558,7 @@ $zones[] = $timezone_identifiers[$i];
echo json_encode($zones);
} else if ($command == 'update') {
set_time_limit(60*30);
-$installerVersion = "1.4.5";
+$installerVersion = "1.4.6";
$admin = new InstallAdmin();
$pdo = $admin->openDbAndReturnPdo($_POST['host'],$_POST['db'],$_POST['user'],$_POST['password']);
@@ -3548,7 +3590,7 @@ $supportedVersions = array("1.0.22","1.0.23","1.0.24","1.0.25","1.0.26","1.0.27"
"1.2.0","1.2.1","1.2.2", "1.2.3", "1.2.4","1.2.5","1.2.6","1.2.7","1.2.8","1.2.9","1.2.10","1.2.11","1.2.12","1.2.13","1.2.14","1.2.15","1.2.16","1.2.17",
"1.2.18","1.2.19","1.2.20","1.2.21","1.2.22","1.3.0","1.3.1","1.3.2","1.3.3","1.3.4","1.3.5","1.3.6","1.3.7","1.3.8","1.3.9","1.3.10","1.3.11","1.3.12",
"1.3.13","1.3.14","1.3.15","1.3.16","1.3.17","1.3.18","1.3.19","1.3.20","1.3.21","1.3.22","1.3.23","1.3.24","1.3.25","1.3.26","1.4.0","1.4.1","1.4.2","1.4.3",
-"1.4.4"
+"1.4.4","1.4.5"
);
if (!in_array($version, $supportedVersions)) {
@@ -3556,7 +3598,7 @@ echo json_encode("Quellversion nicht unterstützt");
return;
}
-$ret = $admin->updateUserTable1404_1405($_POST['prefix'], $version, $_POST['db']);
+$ret = $admin->updateUserTable1405_1406($_POST['prefix'], $version, $_POST['db']);
if(session_id() == '') {
session_start();
diff --git a/webapp/kitchen.html b/webapp/kitchen.html
index 1103543..6ae6c64 100644
--- a/webapp/kitchen.html
+++ b/webapp/kitchen.html
@@ -5,7 +5,7 @@
-
+
diff --git a/webapp/manager.html b/webapp/manager.html
index 529644f..495e000 100644
--- a/webapp/manager.html
+++ b/webapp/manager.html
@@ -5,7 +5,7 @@
-
+
@@ -357,6 +357,11 @@ var MAN_SHOWPAYMENT8 = ["Gast","Guest","Huésped"];
var MAN_DBLOG = ["Debug-Logging","Debug logging","Debug logging"];
var MAN_PRICE_IN_LIST = ["Preisangabe neben Produkt","List price next to product","Mostrar precio en lista de productos"];
var MAN_GUEST_JOB_PRINT = ["Gastbestelljob drucken","Print guest order","Imprimir orden de remote"];
+var MAN_ASK_DAYCODE = ["Abfrage Tageslosung","Require input of day code in guest system","Pregunta código del dia en sistema de huéspedes"];
+var MAN_SHOW_DAYCODE = ["Tageslosung in Bestellansicht anzeigen","Show day code in order view","Mostrat códiga del dia en vista de ordenes"];
+var MAN_ASK_TABLECODE = ["Abfrage Tischcode","Require input of table code","Pregunta código de la mesa en sistem de huéspedes"];
+var MAN_GUEST_TIMEOUT = ["Timeout (Min)","Timeout (min)","Timeout (min)"];
+var MAN_GUESTTIMEOUT_HINT = ["Ein Timeout von 0 bedeutet, dass gar ein Timeout abläuft.","A timeout value of 0 means that there is no timeout at all.","Un valor de timeout de 0 significa que no hay ningún timeout."];
var MAN_RESTAURANT_MODE = ["Restaurantmodus","Restaurant mode","Usar para restaurantes"];
var MAN_REST_MODE_HINT = ["Hinweis: Wird der Restaurantmodus auf Nein gesetzt, wird in der Desktopansicht die Tischauswahl deaktiviert. Alle Produkte werden als Außer-Haus-Verkauf gebucht.","Hint: If the restautant mode is set to no in the desktop view the table selection is deactivated and all products are ordered as to-go ","Nota: Si el modus del restaurante es configurado a no en la vista de Desktop la selección de las mesas es deactivada y todos los productos son ordenados como to-go "];
var MAN_SPECIAL_SETTINGS_TXT = ["Einstellungen für spezielle Abläufe:","Settings for special workflows:","Configuración para workflows muy escpeciales:"];
@@ -392,7 +397,7 @@ var MAN_TMPDIRHINT = ["Wird das PHP-Tmp-Verzeichnis angegeben, so können z.B. k
"Si el tmp esta espcificado es posible crear backups comprimidos por ejemplo. Normalmente el valor default es corecto pero de vez en cuando los providers cambian el valor sin adaptar el PHP framework!"];
var lang = 0;
-var generalVals = [12,2,0,3,0,1,1,0,0,1, 0,50,20,10,1,0,0,0,1,0,1,0,0,1,1, 1,1,1,1,1,1,1,1,1,1, 1,2,3, 1,0, 1,0,1];
+var generalVals = [12,2,0,3,0,1,1,0,0,1, 0,50,20,10,1,0,0,0,1,0,1,0,0,1,1, 1,1,1,1,1,1,1,1,1,1, 1,2,3, 1,0, 1,0,1, 1,1,0];
var numberOfClosings = 0;
@@ -503,6 +508,10 @@ var generalValuesSettings = [
["dblog",MAN_DBLOG[lang],"s",40],
["priceinlist",MAN_PRICE_IN_LIST[lang],"s",41],
["guestjobprint",MAN_GUEST_JOB_PRINT[lang],"s",42],
+ ["askdaycode",MAN_ASK_DAYCODE[lang],"s",43],
+ ["asktablecode",MAN_ASK_TABLECODE[lang],"s",44],
+ ["guesttimeout",MAN_GUEST_TIMEOUT[lang],"i",0,""],
+ ["showdaycode",MAN_SHOW_DAYCODE[lang],"s",45]
];
var predef = "";
@@ -551,6 +560,7 @@ function setLanguage(l) {
$("#smtpusertxt").html(MAN_SMTPUSER[l]);
$("#smtppasstxt").html(MAN_SMTPPASS[l]);
$("#smtpporttxt").html(MAN_SMTPPORT[l]);
+ $("#guesttimeouttxt").html(MAN_GUEST_TIMEOUT[l]);
$("#startprodsearchtxt").html(MAN_STARTPRODSEARCH[l]);
@@ -660,6 +670,8 @@ function setLanguage(l) {
$("#applyPrinterInstances").html(MAN_APPLY[l]);
$("#printerInstanceHint").html(MAN_PRINSTANCE_HINT[l]);
+
+ $("#guesttimeouthint").html(MAN_GUESTTIMEOUT_HINT[l]);
}
function createMonthSelection(label) {
@@ -782,6 +794,9 @@ function insertGeneralConfigItems(configResult) {
$("#partOfDblog").html(createYesNo("dblog",MAN_DBLOG, values.dblog));
$("#partOfPriceinlist").html(createYesNo("priceinlist",MAN_PRICE_IN_LIST, values.priceinlist));
$("#partOfGuestjobprint").html(createYesNo("guestjobprint",MAN_GUEST_JOB_PRINT, values.guestjobprint));
+ $("#partOfAskdaycode").html(createYesNo("askdaycode",MAN_ASK_DAYCODE, values.askdaycode));
+ $("#partOfAsktablecode").html(createYesNo("asktablecode",MAN_ASK_TABLECODE, values.asktablecode));
+ $("#partOfShowdaycode").html(createYesNo("showdaycode",MAN_SHOW_DAYCODE, values.showdaycode));
$("#partOfclosshowci").html(createYesNo("closshowci",MAN_CLOSSHOWCI,values.closshowci));
$("#partOfclosshowpaytaxes").html(createYesNo("closshowpaytaxes",MAN_CLOSSHOWPAYTAXES,values.closshowpaytaxes));
@@ -868,6 +883,9 @@ function insertGeneralConfigItems(configResult) {
generalVals[40] = values.dblog;
generalVals[41] = values.priceinlist;
generalVals[42] = values.guestjobprint;
+ generalVals[43] = values.askdaycode;
+ generalVals[44] = values.asktablecode;
+ generalVals[45] = values.showdaycode;
defaulttmp = values.defaulttmp;
@@ -877,6 +895,7 @@ function insertGeneralConfigItems(configResult) {
$("#smtppass").val(values.smtppass);
$("#partOfSmtpsecure").html(createSMTPSecure(values.smtpsecure));
$("#smtpport").val(values.smtpport);
+ $("#guesttimeout").val(values.guesttimeout);
$("#startprodsearch").val(values.startprodsearch);
$("#discountname1").val(values.discountname1);
@@ -1227,7 +1246,7 @@ function initRestoreFileUpload() {
} else {
alert("Import war erfolgreich.");
setTimeout(function(){
- document.location.href = "index.html?v=1.4.5";
+ document.location.href = "index.html?v=1.4.6";
},250);
}
},
@@ -1764,9 +1783,9 @@ function handleUpdateCheckResult(answer) {
var millis=getMillis();
setTimeout(function(){
- document.location.href = "install.html?v=1.4.5&mode=onlyupdate&n=" + millis;
+ document.location.href = "install.html?v=1.4.6&mode=onlyupdate&n=" + millis;
},250);
- document.location.href = "install.html?v=1.4.5&mode=onlyupdate&n=" + millis;
+ document.location.href = "install.html?v=1.4.6&mode=onlyupdate&n=" + millis;
}
function handleUpdateReplace(answer) {
@@ -3539,6 +3558,14 @@ $(document).on("pageinit", "#admin-page", function () {
+
+
+
+
+ Timeout :
+
+ Hinweis: 0 = kein Timeout
+
Spezialeinstellungen
diff --git a/webapp/paydesk.html b/webapp/paydesk.html
index c5a9f30..5c2682b 100644
--- a/webapp/paydesk.html
+++ b/webapp/paydesk.html
@@ -5,7 +5,7 @@
-
+
diff --git a/webapp/php/admin.php b/webapp/php/admin.php
index 79cce49..0a7ee94 100644
--- a/webapp/php/admin.php
+++ b/webapp/php/admin.php
@@ -99,7 +99,8 @@ class Admin {
"getprinterinstances" => array("loggedin" => 1, "isadmin" => 0, "rights" => array("manager_or_admin")),
"setprinterinstances" => array("loggedin" => 1, "isadmin" => 0, "rights" => array("manager_or_admin")),
- "getdashreports" => array("loggedin" => 1, "isadmin" => 0, "rights" => array("dash"))
+ "getdashreports" => array("loggedin" => 1, "isadmin" => 0, "rights" => array("dash")),
+ "getDailycode" => array("loggedin" => 1, "isadmin" => 0, "rights" => null)
);
@@ -360,6 +361,8 @@ class Admin {
$this->setprinterinstances($_POST["k1"],$_POST["k2"],$_POST["k3"],$_POST["k4"],$_POST["k5"],$_POST["k6"],$_POST["f1"],$_POST["f2"],$_POST["d1"],$_POST["d2"]);
} else if ($command == 'getdashreports') {
$this->getdashreports();
+ } else if ($command == 'getDailycode') {
+ $this->getDailycode();
}
else {
echo "Command not supported.";
@@ -944,7 +947,7 @@ class Admin {
return;
}
- $configItems = join(",",array("'decpoint'","'version'","'cancelunpaidcode'","'tax'","'togotax'","'taxaustrianormal'","'taxaustriaerm1'","'taxaustriaerm2'","'taxaustriaspecial'","'currency'","'workflowconfig'","'prominentsearch'","'discount1'","'discount2'","'discount3'","'discountname1'","'discountname2'","'discountname3'","'waitergopayprint'","'cashenabled'","'returntoorder'","'restaurantmode'","'startprodsearch'","'priceinlist'"));
+ $configItems = join(",",array("'decpoint'","'version'","'cancelunpaidcode'","'tax'","'togotax'","'taxaustrianormal'","'taxaustriaerm1'","'taxaustriaerm2'","'taxaustriaspecial'","'currency'","'workflowconfig'","'prominentsearch'","'discount1'","'discount2'","'discount3'","'discountname1'","'discountname2'","'discountname3'","'waitergopayprint'","'cashenabled'","'returntoorder'","'restaurantmode'","'startprodsearch'","'priceinlist'","'showdaycode'","'dailycode'"));
$sql = "select name,setting FROM %config% WHERE name in ($configItems)";
$stmt = $pdo->prepare(DbUtils::substTableAlias($sql));
$stmt->execute();
@@ -1024,6 +1027,10 @@ class Admin {
$bigfontworkreceipt = CommonUtils::getConfigValueStmt($pdo,$stmt,"bigfontworkreceipt",null);
$prominentsearch = CommonUtils::getConfigValueStmt($pdo,$stmt,"prominentsearch",null);
$guestjobprint = CommonUtils::getConfigValueStmt($pdo,$stmt,"guestjobprint",null);
+ $askdaycode = CommonUtils::getConfigValueStmt($pdo,$stmt,"askdaycode",null);
+ $showdaycode = CommonUtils::getConfigValueStmt($pdo,$stmt,"showdaycode",null);
+ $asktablecode = CommonUtils::getConfigValueStmt($pdo,$stmt,"asktablecode",null);
+ $guesttimeout = CommonUtils::getConfigValueStmt($pdo,$stmt,"guesttimeout",5);
$discount1 = CommonUtils::getConfigValueStmt($pdo,$stmt,"discount1",null);
$discount2 = CommonUtils::getConfigValueStmt($pdo,$stmt,"discount2",null);
$discount3 = CommonUtils::getConfigValueStmt($pdo,$stmt,"discount3",null);
@@ -1132,6 +1139,7 @@ class Admin {
"userlanguage" => $userlang, "receiptprinter" => $receiptprinter,
"receiptfontsize" => $receiptfontsize, "reservationnote" => $reservationnote, "paymentconfig" => $paymentconfig,
"workflowconfig" => $workflowconfig, "emailratingcontact" => $emailratingcontact,"emailbadrating" => $emailbadrating, "guestjobprint" => $guestjobprint,
+ "askdaycode" => $askdaycode, "asktablecode" => $asktablecode, "guesttimeout" => $guesttimeout, "showdaycode" => $showdaycode,
"rightchangeprice" => $right_changeprice, "bigfontworkreceipt" => $bigfontworkreceipt, "prominentsearch" => $prominentsearch,"groupworkitemsf" => $groupworkitemsf,"groupworkitemsd" => $groupworkitemsd,
"sday" => $now["mday"],"smonth" => $now["mon"], "syear" => $now["year"], "shour" => $now["hours"], "smin" => $now["minutes"],
"smtphost" => $smtphost,"smtpauth" => $smtpauth,"smtpuser" => $smtpuser,"smtppass" => $smtppass,"smtpsecure" => $smtpsecure,"smtpport" => $smtpport,
@@ -1245,7 +1253,7 @@ class Admin {
$view = "preferences.html";
}
- echo json_encode($view . "?v=1.4.5");
+ echo json_encode($view . "?v=1.4.6");
}
}
@@ -1452,27 +1460,27 @@ class Admin {
if (!self::isOnlyRatingUser($rights, $right_rating, true)) {
if ($_SESSION['modus'] == 0) {
- if ($_SESSION['right_waiter']) { $mainMenu[] = array("name" => $waitertxt[$lang], "link" => "waiter.html?v=1.4.5"); };
+ if ($_SESSION['right_waiter']) { $mainMenu[] = array("name" => $waitertxt[$lang], "link" => "waiter.html?v=1.4.6"); };
} else {
- if ($_SESSION['right_waiter']) { $mainMenu[] = array("name" => $waiterdesktxt[$lang], "link" => "waiterdesktop.php?v=1.4.5"); };
+ if ($_SESSION['right_waiter']) { $mainMenu[] = array("name" => $waiterdesktxt[$lang], "link" => "waiterdesktop.php?v=1.4.6"); };
}
- if ($_SESSION['right_kitchen']) { $mainMenu[] = array("name" => $kitchentxt[$lang], "link" => "kitchen.html?v=1.4.5"); };
- if ($_SESSION['right_bar']) { $mainMenu[] = array("name" => "Bar", "link" => "bar.html?v=1.4.5"); };
- if ($_SESSION['right_supply']) { $mainMenu[] = array("name" => $supplytxt[$lang], "link" => "supplydesk.html?v=1.4.5"); };
+ if ($_SESSION['right_kitchen']) { $mainMenu[] = array("name" => $kitchentxt[$lang], "link" => "kitchen.html?v=1.4.6"); };
+ if ($_SESSION['right_bar']) { $mainMenu[] = array("name" => "Bar", "link" => "bar.html?v=1.4.6"); };
+ if ($_SESSION['right_supply']) { $mainMenu[] = array("name" => $supplytxt[$lang], "link" => "supplydesk.html?v=1.4.6"); };
if ($_SESSION['modus'] == 0) {
- if ($_SESSION['right_paydesk']) { $mainMenu[] = array("name" => $paydesktxt[$lang], "link" => "paydesk.html?v=1.4.5"); };
+ if ($_SESSION['right_paydesk']) { $mainMenu[] = array("name" => $paydesktxt[$lang], "link" => "paydesk.html?v=1.4.6"); };
}
- if ($_SESSION['right_statistics']) { $mainMenu[] = array("name" => $stattxt[$lang], "link" => "reports.html?v=1.4.5"); };
- if ($_SESSION['right_bill']) { $mainMenu[] = array("name" => $bontxt[$lang], "link" => "bill.html?v=1.4.5"); };
- if ($_SESSION['right_products']) { $mainMenu[] = array("name" => $prodtxt[$lang], "link" => "products.html?v=1.4.5"); };
- if ($_SESSION['right_reservation']) { $mainMenu[] = array("name" => $restxt[$lang], "link" => "reservation.html?v=1.4.5"); };
- if ($_SESSION['right_rating']) { $mainMenu[] = array("name" => $ratingtxt[$lang], "link" => "rating.html?v=1.4.5"); };
- if ($_SESSION['right_customers']) { $mainMenu[] = array("name" => $customerstxt[$lang], "link" => "customers.html?v=1.4.5"); };
- if ($_SESSION['right_dash']) { $mainMenu[] = array("name" => $dashtxt[$lang], "link" => "dash.php?v=1.4.5"); };
- if ($_SESSION['right_manager'] || $_SESSION['is_admin'] || $_SESSION['right_closing']) { $mainMenu[] = array("name" => $admintxt[$lang], "link" => "manager.html?v=1.4.5"); };
- $mainMenu[] = array("name" => $settingtxt[$lang], "link" => "preferences.html?v=1.4.5");
- $mainMenu[] = array("name" => "Hilfe", "link" => "help.php?v=1.4.5");
- $mainMenu[] = array("name" => "Feedback", "link" => "feedback.html?v=1.4.5");
+ if ($_SESSION['right_statistics']) { $mainMenu[] = array("name" => $stattxt[$lang], "link" => "reports.html?v=1.4.6"); };
+ if ($_SESSION['right_bill']) { $mainMenu[] = array("name" => $bontxt[$lang], "link" => "bill.html?v=1.4.6"); };
+ if ($_SESSION['right_products']) { $mainMenu[] = array("name" => $prodtxt[$lang], "link" => "products.html?v=1.4.6"); };
+ if ($_SESSION['right_reservation']) { $mainMenu[] = array("name" => $restxt[$lang], "link" => "reservation.html?v=1.4.6"); };
+ if ($_SESSION['right_rating']) { $mainMenu[] = array("name" => $ratingtxt[$lang], "link" => "rating.html?v=1.4.6"); };
+ if ($_SESSION['right_customers']) { $mainMenu[] = array("name" => $customerstxt[$lang], "link" => "customers.html?v=1.4.6"); };
+ if ($_SESSION['right_dash']) { $mainMenu[] = array("name" => $dashtxt[$lang], "link" => "dash.php?v=1.4.6"); };
+ if ($_SESSION['right_manager'] || $_SESSION['is_admin'] || $_SESSION['right_closing']) { $mainMenu[] = array("name" => $admintxt[$lang], "link" => "manager.html?v=1.4.6"); };
+ $mainMenu[] = array("name" => $settingtxt[$lang], "link" => "preferences.html?v=1.4.6");
+ $mainMenu[] = array("name" => "Hilfe", "link" => "help.php?v=1.4.6");
+ $mainMenu[] = array("name" => "Feedback", "link" => "feedback.html?v=1.4.6");
}
$mainMenu[] = array("name" => $logout[$lang], "link" => "logout.php");
@@ -1480,7 +1488,7 @@ class Admin {
$waiterMessage = $this->getMessage(null, "waitermessage");
}
- $mainMenuAndVersion = array ("version" => "OrderSprinter 1.4.5",
+ $mainMenuAndVersion = array ("version" => "OrderSprinter 1.4.6",
"user" => $currentUser,
"menu" => $mainMenu,
"waitermessage" => $waiterMessage,
@@ -1552,6 +1560,17 @@ class Admin {
}
}
+ private function getDailycode() {
+ try {
+ $pdo = DbUtils::openDbAndReturnPdoStatic();
+ $dailycode = CommonUtils::getConfigValue($pdo, 'dailycode', "");
+ echo json_encode(array("status" => "OK","msg" => $dailycode));
+ } catch (Exception $ex) {
+ echo json_encode(array("status" => "ERROR","msg" => "Error: " . $ex->getMessage()));
+ return;
+ }
+ }
+
private function getDbStat() {
try {
$pdo = DbUtils::openDbAndReturnPdoStatic();
@@ -1910,6 +1929,10 @@ class Admin {
"bigfontworkreceipt" => array("dbcol" => "bigfontworkreceipt","checknum" => 0),
"prominentsearch" => array("dbcol" => "prominentsearch","checknum" => 0),
"guestjobprint" => array("dbcol" => "guestjobprint","checknum" => 0),
+ "askdaycode" => array("dbcol" => "askdaycode","checknum" => 0),
+ "asktablecode" => array("dbcol" => "asktablecode","checknum" => 0),
+ "showdaycode" => array("dbcol" => "showdaycode","checknum" => 0),
+ "guesttimeout"=> array("dbcol" => "guesttimeout","checknum" => 0),
"discount1" => array("dbcol" => "discount1","checknum" => 0),
"discount2" => array("dbcol" => "discount2","checknum" => 0),
"discount3" => array("dbcol" => "discount3","checknum" => 0),
@@ -2031,6 +2054,17 @@ class Admin {
}
}
+ if ($name == "guesttimeout") {
+ if (is_numeric($aVal)) {
+ $aVal = round($aVal);
+ if ($aVal < 0) {
+ $aVal = 0;
+ }
+ } else {
+ $aVal = 5;
+ }
+ }
+
if (($name == "updateurl") || ($name == "tmpdir") || ($name == "ftphost") || ($name == "ftpuser")) {
$aVal = trim($aVal);
}
diff --git a/webapp/php/debug.php b/webapp/php/debug.php
index d0c5e3c..5b46b23 100644
--- a/webapp/php/debug.php
+++ b/webapp/php/debug.php
@@ -27,7 +27,7 @@ if (isset($_POST["cmd"])) {
if (strlen($status) > 150) {
$status = substr($status, 0,149);
}
- $version = "1.4.5";
+ $version = "1.4.6";
$arr = array("cmd" => $cmd,"fct" => $fct, "xhr" => $xhr,"errormsg" => $errormsg,"status" => $status,"version" => $version,"phpversion" => $phpversion);
} else {
diff --git a/webapp/php/guestsync.php b/webapp/php/guestsync.php
index ff3ffb3..01d67ea 100644
--- a/webapp/php/guestsync.php
+++ b/webapp/php/guestsync.php
@@ -47,6 +47,10 @@ class Guestsync {
$currency = CommonUtils::getConfigValue($pdo, 'currency', 'Euro');
$decpoint = CommonUtils::getConfigValue($pdo, 'decpoint', '.');
+ $askdaycode = CommonUtils::getConfigValue($pdo, 'askdaycode', "1");
+ $asktablecode = CommonUtils::getConfigValue($pdo, 'asktablecode', "1");
+ $guesttimeout = CommonUtils::getConfigValue($pdo, 'guesttimeout', "5");
+
$transferdata = array(
"timezone" => $timezone,
"dailycode" => $dailycode,
@@ -55,7 +59,10 @@ class Guestsync {
"types" => $types,
"products" => $products,
"currency" => $currency,
- "decpoint" => $decpoint
+ "decpoint" => $decpoint,
+ "askdaycode" => $askdaycode,
+ "asktablecode" => $asktablecode,
+ "guesttimeout" => $guesttimeout
);
$data = json_encode($transferdata);
@@ -118,19 +125,25 @@ class Guestsync {
}
private static function checkPermission($pdo,$tableid,$tablecode,$prodid,$dailycode) {
- $dailycodeInDb = trim(CommonUtils::getConfigValue($pdo, 'dailycode', ''));
- if ($dailycode != trim($dailycodeInDb)) {
- return false;
+ $askdaycode = CommonUtils::getConfigValue($pdo, 'askdaycode', 1);
+ if ($askdaycode == 1) {
+ $dailycodeInDb = trim(CommonUtils::getConfigValue($pdo, 'dailycode', ''));
+ if ($dailycode != trim($dailycodeInDb)) {
+ return false;
+ }
}
- $sql = "SELECT IFNULL(code,'') as code from %resttables% WHERE id=? AND allowoutorder=?";
- $result = CommonUtils::fetchSqlAll($pdo, $sql, array($tableid,1));
- if (count($result) == 0) {
- return false;
- }
- $tablecodeInDb = trim($result[0]["code"]);
- if ($tablecodeInDb != $tablecode) {
- return false;
+ $asktablecode = CommonUtils::getConfigValue($pdo, 'asktablecode', 1);
+ if ($asktablecode == 1) {
+ $sql = "SELECT IFNULL(code,'') as code from %resttables% WHERE id=? AND allowoutorder=?";
+ $result = CommonUtils::fetchSqlAll($pdo, $sql, array($tableid,1));
+ if (count($result) == 0) {
+ return false;
+ }
+ $tablecodeInDb = trim($result[0]["code"]);
+ if ($tablecodeInDb != $tablecode) {
+ return false;
+ }
}
$sql = "SELECT id FROM %products% WHERE id=? AND removed is null AND (display is null OR display='KG' OR display='G')";
@@ -140,7 +153,6 @@ class Guestsync {
}
return true;
-
}
private static function shallWeSync($pdo) {
diff --git a/webapp/php/products.php b/webapp/php/products.php
index 085bfdd..3e57c42 100644
--- a/webapp/php/products.php
+++ b/webapp/php/products.php
@@ -209,11 +209,8 @@ class Products {
$pdo = DbUtils::openDbAndReturnPdoStatic();
$pdo->beginTransaction();
- $sql = "select setting FROM %config% WHERE name=?";
- $stmt = $pdo->prepare(DbUtils::substTableAlias($sql));
- $stmt->execute(array("pricelevel"));
- $row = $stmt->fetchObject();
- $pricelevel = $row->setting;
+ $pricelevel = CommonUtils::getConfigValue($pdo, 'pricelevel', 1);
+
$priceTxt = "priceA";
if ($pricelevel == 2) {
$priceTxt = "priceB";
@@ -222,9 +219,7 @@ class Products {
}
$sql = "select id,name,reference from %prodtype% where removed is null";
- $stmt = $pdo->prepare($this->dbutils->resolveTablenamesInSqlString($sql));
- $stmt->execute();
- $result = $stmt->fetchAll();
+ $result = CommonUtils::fetchSqlAll($pdo, $sql, null);
$typeArray = array();
foreach($result as $row) {
@@ -265,10 +260,63 @@ class Products {
}
$pdo->commit();
- $retArray = array("types" => $typeArray, "prods" => $prodArray);
+ $filteredTypes = self::filterUsedTypes($typeArray, $prodArray);
+ $retArray = array("types" => $filteredTypes, "prods" => $prodArray);
echo json_encode($retArray);
}
+
+ private static function filterUsedTypes($types,$products) {
+ $typesWithContent = array();
+ foreach ($products as $p) {
+ $ref = $p["ref"];
+ $typeOfProd = self::getTypeOfId($types, $ref);
+ if (!is_null($typeOfProd)) {
+ $typesWithContent = self::declareProdTypeAndParentsInUse($types, $typeOfProd,$typesWithContent);
+ }
+ }
+ $out = array();
+ $keys = array_keys($typesWithContent);
+ foreach($keys as $aKey) {
+ $t = $typesWithContent[$aKey];
+ $out[] = array("id" => $t["id"],"name" => $t["name"],"ref" => $t["ref"]);
+ }
+ return $out;
+ }
+
+ private static function getTypeOfId($alltypes,$typeid) {
+ foreach($alltypes as $t) {
+ if ($t["id"] == $typeid) {
+ return $t;
+ }
+ }
+ return null;
+ }
+
+ private static function declareProdTypeAndParentsInUse($alltypes,$aType,$typesWithContent) {
+ $typeid = $aType["id"];
+ $reference = $aType["ref"];
+ if (!array_key_exists($typeid, $typesWithContent)) {
+ $typesWithContent[$typeid] = array("id" => $typeid,"name" => $aType["name"],"ref" => $reference);
+
+ $parent = null;
+ foreach($alltypes as $a) {
+ $typeid = $a["id"];
+ if ($typeid == $reference) {
+ $parent = $a;
+ break;
+ }
+ }
+ if (!is_null($parent)) {
+ $typesWithContent = self::declareProdTypeAndParentsInUse($alltypes,$parent,$typesWithContent);
+ }
+ }
+
+ return $typesWithContent;
+ }
+
+
+
/*
* Return all available product with id and name, category
* (used for re-assignment to type)
@@ -1311,13 +1359,26 @@ class Products {
}
function createProdType($id,$prodTypeName) {
+ $pdo = DbUtils::openDbAndReturnPdoStatic();
+ $pdo->beginTransaction();
+
+ if ($id == "top") {
+ $kind = 0;
+ if (isset($_POST["kind"])) {
+ $kind = $_POST["kind"];
+ }
+ $sql = "INSERT INTO `%prodtype%` (`name`,`usekitchen`,`usesupplydesk`,`kind`,`printer`,`sorting`,`reference`) VALUES(?,1,1,?,1,NULL,?)";
+ CommonUtils::execSql($pdo, $sql, array($prodTypeName,$kind,null));
+ $pdo->commit();
+ echo json_encode(array("status" => "OK"));
+ return;
+ }
if (!is_numeric($id)) {
echo json_encode(array("status" => "ERROR", "code" => ERROR_GENERAL_ID_TYPE, "msg" => ERROR_GENERAL_ID_TYPE_MSG));
return;
}
- $pdo = $this->dbutils->openDbAndReturnPdo();
- $pdo->beginTransaction();
+
$sql = "SELECT kind FROM %prodtype% WHERE id=?";
$stmt = $pdo->prepare($this->dbutils->resolveTablenamesInSqlString($sql));
diff --git a/webapp/php/utilities/basedb.php b/webapp/php/utilities/basedb.php
index 5dc6c4e..5e05b60 100644
--- a/webapp/php/utilities/basedb.php
+++ b/webapp/php/utilities/basedb.php
@@ -420,6 +420,7 @@ class Basedb {
`prodimageid` INT(10) NULL,
`display` VARCHAR(3) NULL,
`removed` INT(1) NULL,
+ INDEX pcatindex (category),
FOREIGN KEY (category) REFERENCES %prodtype%(id),
FOREIGN KEY (prodimageid) REFERENCES %prodimages%(id)
) CHARACTER SET utf8 COLLATE utf8_general_ci ENGINE = InnoDb ;
diff --git a/webapp/preferences.html b/webapp/preferences.html
index 734a4ba..37feb9c 100644
--- a/webapp/preferences.html
+++ b/webapp/preferences.html
@@ -5,7 +5,7 @@
-
+
diff --git a/webapp/products.html b/webapp/products.html
index 5e72466..69fa251 100644
--- a/webapp/products.html
+++ b/webapp/products.html
@@ -7,7 +7,7 @@
-
+
@@ -280,6 +280,17 @@ function setLanguage(language) {
txt += PROD_CATS_LIST[lang] + ": " + cats;
}
+ if (ct == null) {
+ // on highest levels show fields to create types on highest level
+ txt += ' ';
+
+ txt += '';
+ txt += '
' + PROD_NEW_CAT[lang] + " (" + PROD_FOOD[lang] + ")
";
+ txt += '
' + PROD_NEW_CAT[lang] + " (" + PROD_DRINKS[lang] + ")
";
+ txt += '
';
+ }
+
+
var prodsListPrinted = false;
var pt = content.containedProds;
@@ -378,6 +389,8 @@ function setLanguage(language) {
proddel(objid);
} else if (cmd == "newtype") {
typenew(objid);
+ } else if (cmd == "createtoptypebtn") {
+ newtoptype(objid);
} else if (cmd == "typeapply") {
typeapply(objid);
} else if (cmd == "typecancel") {
@@ -396,6 +409,8 @@ function setLanguage(language) {
doAjax("GET","php/contenthandler.php?module=products&command=getAssignedExtrasOfProd&prodid=" + objid,null,handleAssignedExtras,"Zugewiesene Optionen");
} else if (cmd == 'toggleprodtype') {
toggleProdType(objid);
+ } else if (cmd == 'createtoptypebtn') {
+
}
});
}
@@ -768,17 +783,27 @@ function setLanguage(language) {
doAjax("POST","php/contenthandler.php?module=products&command=delproduct",{prodid:prodid},reloadCurrentType,"Produktsort./entf.");
}
- function typenew(typeid) {
- var newTypeName = $("#newtypename_" + typeid).val();
- if (newTypeName.trim() == "") {
- alert(PROD_ENTER_CAT_NAME[lang]);
- } else {
- var data = {
- refid: typeid,
- name: newTypeName
- };
+ function createNewTypeOnServer(refid,name,kind) {
+ if (name == "") {
+ alert(PROD_ENTER_CAT_NAME[lang]);
+ } else {
+ var data = {
+ refid: refid,
+ name: name,
+ kind: kind
+ };
doAjax("POST","php/contenthandler.php?module=products&command=createProdType",data,reloadPageWithTimeout,"Neue Kategorie nicht anlegbar");
- }
+ }
+ }
+
+ function newtoptype(kind) {
+ var name = $("#topleveltypefield").val().trim();
+ createNewTypeOnServer("top",name,(kind == "food" ? 0 : 1));
+ }
+
+ function typenew(typeid) {
+ var name = $("#newtypename_" + typeid).val().trim();
+ createNewTypeOnServer(typeid,name,0);
}
function typeapply(typeid) {
diff --git a/webapp/rating.html b/webapp/rating.html
index ce1c717..ba4ca37 100644
--- a/webapp/rating.html
+++ b/webapp/rating.html
@@ -7,7 +7,7 @@
-
+
diff --git a/webapp/reports.html b/webapp/reports.html
index 180b6ea..60b3284 100644
--- a/webapp/reports.html
+++ b/webapp/reports.html
@@ -7,7 +7,7 @@
-
+
diff --git a/webapp/reservation.html b/webapp/reservation.html
index ff72b01..4e3901f 100644
--- a/webapp/reservation.html
+++ b/webapp/reservation.html
@@ -5,7 +5,7 @@
-
+
diff --git a/webapp/supplydesk.html b/webapp/supplydesk.html
index 8c15030..db93bf3 100644
--- a/webapp/supplydesk.html
+++ b/webapp/supplydesk.html
@@ -5,7 +5,7 @@
-
+
diff --git a/webapp/waiter.html b/webapp/waiter.html
index 7c56718..7e19f1e 100644
--- a/webapp/waiter.html
+++ b/webapp/waiter.html
@@ -4,8 +4,8 @@
-
-
+
+
@@ -33,7 +33,7 @@
+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_SEARCHRESULTS=["Suchergebnis","Search Result","Encontrado"];var W_WRONG_PIN=["Falscher Stornocode","Wrong cancel code","Codigo falso"];var W_NO_ORDERS=["Keine gebuchten Orders vorhanden!","No orders available!","No hay ningún orden!"];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 Preiseingabe","No valid price","Precio no valido"];var W_NO_REORDER_VAR_PRICE=["Produkt mit variablem Preis kann nicht auf diese Weise nachbestellt werden.","Produkt with variable price cannot be reordered this way.","Producto con un precio variable 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 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+='
'}else{k+='
";var a='
';if(prominentsearch==0){$("#searchposition-normal").html(k)}else{$("#searchposition-prominent").html(k)}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 "}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 "}g+='
'+W_WORK_TICKET[lang]+" "}if(cashenabled==1){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()})}function getDiscountButton(f,e,c,a){var b='
";if(a.trim()!=""){b='
"}return b}function generateSearchResults(){var e=$("#searchField").val().trim().toLowerCase();if(e.length
'+W_SEARCHRESULTS[lang]+"";var a=$("#typprodpage").data("types_prods_sorted");$.each(a,function(h,k){var g=k.longname;if(g.toLowerCase().indexOf(e)>=0){b+='';if(preferimgmobile==1){var f="php/contenthandler.php?module=products&command=getprodimage&prodid="+k.id+"&size=l";b+=' '}b+=toHtml(g);b+=createSearchProdInfoTxt(k.id);b+=" "}});b+="";$("#searchResult").html(b);$("#searchResult").trigger("create");$(".srinfo").off("click").on("click",function(i){i.stopImmediatePropagation();i.preventDefault();var f=this.id.split("_")[1];var h=getProdEntry(f);var g=h.price;alert(W_PRICE[lang]+": "+g+" "+currency)});$(".srplus").off("click").on("click",function(h){h.stopImmediatePropagation();h.preventDefault();var g=this.id.split("_")[1];var f=getSearchProdCount(g);$("#srprodcount_"+g).html(f+1)});$(".srminus").off("click").on("click",function(h){h.stopImmediatePropagation();h.preventDefault();var g=this.id.split("_")[1];var f=getSearchProdCount(g);if(f==2){$("#srprodcount_"+g).html("");selectedProdCount=1}else{if(f>2){$("#srprodcount_"+g).html(f-1)}}});$(".srprodcount").off("click").on("click",function(g){g.stopImmediatePropagation();g.preventDefault();var f=this.id.split("_")[1];$("#enternumberdlg").data("prodid",f);enternumberdlgshown=true;$("#enternumberfield").val("");$.mobile.changePage("#enternumberdlg");var h=$(this).parent().attr("id");bindEnterSearchNumberNumbers(h)});$(".searchresult").off("click").on("click",function(g){g.stopImmediatePropagation();g.preventDefault();var f=this.id.split("_")[1];handleClickOnSearchResult(f)})}}function handleClickOnSearchResult(a){favOrSearchWasClicked=true;selectedProdCount=getSearchProdCount(a);clearSearchAndGoToHigherTypeIfExtrasOpen();levelOneType=0;handleClickOnProd(a)}function fillGenCommentsList(f){if(f.status!="OK"){alert("Fehler "+f.code+": "+f.msg);return}var b=' ';var e=f.msg;var c=0;for(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+=' "}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,e){var a=parseFloat(b);if(e!=null){for(var c=0;c";var m=groupedNewOrders.count.length;for(g=0;g1){l=""+h.toString()+"x "+l}var f=groupedNewOrders.prodids[g];if(k!=""){k=""+toHtml(k)+"
"}var c=groupedNewOrders.changedPrices[g];var b=groupedNewOrders.togos[g];var o="";var e=groupedNewOrders.extras[g];if((e!=null)&&(e!="")){o=""+e+" "}if(c!="NO"){c=c.replace(".",decpoint);if(b!=0){n+=''+l+k+o+" ("+c+" - To-Go) "}else{n+=''+l+k+o+" ("+c+") "}}else{if(b!=0){n+=''+l+k+o+" - To-Go "}else{n+=''+l+k+o+" "}}}$("#neworders").html(n);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]};$("#actiononneworderel").data("entry",a);$("#actiononneworderel").data("newcount",a.count);$("#actiononneworderel").data("groupedListIndex",b);$("#act-optionfield").val(a.option);$("#act-numberfield").val(a.count);$("#togocheckbox").prop("checked",a.togos==1?true:false);actionSelOnNewOrderElem()})}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};$("#typprodpage").data("neworders",[]);if(f=="s"){doJsonAjax("POST","php/contenthandler.php?module=queue&command=addProductListToQueue",e,a,"Fehler bei Produktversand")}else{doJsonAjax("POST","php/contenthandler.php?module=queue&command=addProductListToQueue",e,fillPrintAreaAndPrint,"Fehler bei Produktversand")}}else{if(c&¬DeliveredProdsAvailable){}}}function reloadPage(){tableListActive=false;setTimeout(function(){document.location.href="waiter.html"},250)}function gotoTablePage(){var a=$("#tables-page").data("allroomtables");var b=a.length;if(!isTogoOrderSelected||(b==1)){$.mobile.changePage("#tables-page")}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,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+" "});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("");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";return a}function displayTablesListOrMap(h){var g=$("#tables-page").data("roomdetail");if($("#info-page").data("type")=="t"){$("#tableselbackbtn").hide()}else{$("#tableselbackbtn").show()}var a=g.id;var l=g.tables;var i=shallDisplayRoom(a);var c=$("#info-page").data("type");if(i.show){$(h).hide();d=new Date();$("#mapimgpart").attr("src","php/tablemap.php?command=getTableMapImgAsPng&showBubbles=0&roomid="+a+"&"+d.getTime());$("#tablemapcontent").show();var b=new Tablemap(a,null,"");var e=b.createOverlay("#mapimgpart",i.pos,W_TO_PAY[lang],decpoint,currency,l,ostablebtnsize);$("#tableoverlay").html(e);b.bindingForOverlaySelection(handleClickInTablemap.bind(this),a,l,null);if(c=="t"){var k=''+W_TOGO[lang]+" ";$("#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(p,s){var r=s.pricesum;var n=r.replace(".",decpoint)+" "+currency;var o=s.prodcount;var m=s.prodready;var q=s.readyQueueIds;if(r!=0){k+=''+s.name+" ("+W_TO_PAY[lang]+": "+n+")"+createServeInfo(s.id,o,m)+" "}else{k+=''+s.name+createServeInfo(s.id,o,m)+" "}});if(c=="t"){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){m+=' "}for(var f=0;f=0){b="f";l="check"}m+=' "}if(requestPriceInExtras!=false){m+=' '}if(applyExtraBtnPos!=2){m+=' "}m+=createHigherLine(n);return m}function bindExtrasSel(){$(".extrasel").off("click").on("click",function(n){n.stopImmediatePropagation();n.preventDefault();var a=this.id.split("_");var b=a[1];var f=a[2];if((b=="abottom")||(b=="atop")){var l=getProdEntry(f);var c=l.extras;var o=[];for(var h=0;h=0){o[o.length]={id:b,name:m,price:g.price}}}if(requestPriceInExtras){var k=$("#enterpriceextrasfield").val();k=k.trim();k=k.replace(decpoint,".");if((k!="")&&($.isNumeric(k))){requestPriceInExtras=false;presetPriceInExtras="";addProductToNewOrdersList(f,o,k)}else{alert(W_NO_VALID_PRICE[lang])}}else{addProductToNewOrdersList(f,o)}}else{if(w_extras.indexOf(b)>=0){w_extras.splice(w_extras.indexOf(b),1)}else{w_extras[w_extras.length]=b}if(requestPriceInExtras!==false){presetPriceInExtras=$("#enterpriceextrasfield").val()}var p=listOfExtras(f);$("#typeproducts-list").html(p);refreshList("#typeproducts-list");bindExtrasSel();bindHigherButtons()}})}function lastSelectedProdToStr(){return" ("+W_LAST_SELECTED[lang]+": "+lastSelectedProduct+")"}function listOfTypesProds(e){var a=''+W_SELECTION[lang]+"";if(lastSelectedProduct!=""){a+=lastSelectedProdToStr()}a+=" ";var b=$("#typprodpage").data("types_prods");var c=getProdSizeClass();$.each(b.types,function(g,f){if(parseInt(f.ref)==e){a+=''+toHtml(f.name)+" "}});$.each(b.prods,function(g,h){if(parseInt(h.ref)==e){a+='';if(preferimgmobile==1){var f="php/contenthandler.php?module=products&command=getprodimage&prodid="+h.id+"&size=l";a+=' '}a+=toHtml(h.name);if((h.amount!="null")&&(h.amount<11)){a+=" ("+W_ONLY[lang]+" "+h.amount+") "}a+=createProdInfoTxt(h.id);a+=" "}});if(e!=0){a+=createHigherLine(c)}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,e,f){var c=getProdEntry(a);if(c!=null){var b=c.price.replace(".",decpoint);return""+b+"
"}return""}function createProdInfoTxt(b){var a=" ";if(priceinlist==0){a+=""}else{a+=createProdEntryWithTextPrice(b,"prodtextinfo","pinfo")}if(showplusminus==1){a+="";a+=""}return a}function createSearchProdInfoTxt(b){var a=" ";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'+W_FAVS[lang]+"";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}}});c.sort(prodcompare);$.each(c,function(g,h){f+=''+toHtml(h.longname);f+=createProdInfoTxt(h.id);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];selectedProdCount=getProdCount(a);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(i){i.stopImmediatePropagation();i.preventDefault();var f=this.id.split("_")[1];var h=getProdEntry(f);var g=h.price;alert(W_PRICE[lang]+": "+g+" "+currency)});$(".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("");selectedProdCount=1}else{if(f>2){$("#prodcount_"+g).html(f-1)}}});$(".prodcount").off("click").on("click",function(g){g.stopImmediatePropagation();g.preventDefault();var f=this.id.split("_")[1];$("#enternumberdlg").data("prodid",f);enternumberdlgshown=true;$("#enternumberfield").val("");$.mobile.changePage("#enternumberdlg");var h=$(this).parent().attr("id");bindEnterNumberNumbers(h,c)})}function productInListClicked(b,e){favOrSearchWasClicked=false;$("#searchField").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];selectedProdCount=getProdCount(c);$("#prodcount_"+c).html("");handleClickOnProd(c)}}function getHigherType(){var c=$("#typprodpage").data("types_prods");var b=c.types;var f=0;if(!extrasMenuOpen){for(var e=0;e0)){w_extras=[];w_allextras=a;idOfHigherType=c.ref;if(c.unit==1){requestPriceInExtras=true;presetPriceInExtras=""}else{requestPriceInExtras=false}displayTypesProds(b,a);bindExtrasSel()}else{if(c.unit==1){hideMenuProd();enterpricedlgshown=true;$("#enterpricedlg").data("prodid",b);$("#enterpricefield").val("");$.mobile.changePage("#enterpricedlg");bindEnterPriceNumbers()}else{addProductToNewOrdersList(b,null)}}}function bindEnterPriceNumbers(){$(".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(c){c.stopImmediatePropagation();c.preventDefault();var a=$("#enterpricedlg").data("prodid");var b=$("#enterpricefield").val();b=b.trim();b=b.replace(decpoint,".");if((b!="")&&($.isNumeric(b))){$("#enterpricedlg").dialog("close");addProductToNewOrdersList(a,null,b)}else{alert(W_NO_VALID_PRICE[lang])}})}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("");handleClickOnSearchResult(c)}}}else{alert(W_INVALID_NO_ENTERING[lang])}})}function addProductToNewOrdersList(b,c,f){var g=$("#typprodpage").data("table-info");var a=g[1];addProductToQueue(b,c,"NO",0,f);var h=getProdAudio(parseInt(b));var e=parseInt($("#typprodpage").data("ordervolume"))/10;if(h!=""){var k="customer/"+h;if(h.match(/mp3$/)){$("#audiofile").html(' ')}else{if(h.match(/ogg$/)){$("#audiofile").html(' ')}else{if(h.match(/wav$/)){$("#audiofile").html(' ')}}}document.getElementById("audiofile").load();document.getElementById("audiofile").volume=e;document.getElementById("audiofile").play()}else{if(e>0.5){beep()}}var i="php/contenthandler.php?module=queue&command=getJsonLongNamesOfProdsForTableNotDelivered&tableid="+a;fillNotDeliveredProductsOfATable(i);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,//uQRAAAAWMSLwUIYAAsYkXgoQwAEaYLWfkWgAI0wWs/ItAAAGDgYtAgAyN+QWaAAihwMWm4G8QQRDiMcCBcH3Cc+CDv/7xA4Tvh9Rz/y8QADBwMWgQAZG/ILNAARQ4GLTcDeIIIhxGOBAuD7hOfBB3/94gcJ3w+o5/5eIAIAAAVwWgQAVQ2ORaIQwEMAJiDg95G4nQL7mQVWI6GwRcfsZAcsKkJvxgxEjzFUgfHoSQ9Qq7KNwqHwuB13MA4a1q/DmBrHgPcmjiGoh//EwC5nGPEmS4RcfkVKOhJf+WOgoxJclFz3kgn//dBA+ya1GhurNn8zb//9NNutNuhz31f////9vt///z+IdAEAAAK4LQIAKobHItEIYCGAExBwe8jcToF9zIKrEdDYIuP2MgOWFSE34wYiR5iqQPj0JIeoVdlG4VD4XA67mAcNa1fhzA1jwHuTRxDUQ//iYBczjHiTJcIuPyKlHQkv/LHQUYkuSi57yQT//uggfZNajQ3Vmz+Zt//+mm3Wm3Q576v////+32///5/EOgAAADVghQAAAAA//uQZAUAB1WI0PZugAAAAAoQwAAAEk3nRd2qAAAAACiDgAAAAAAABCqEEQRLCgwpBGMlJkIz8jKhGvj4k6jzRnqasNKIeoh5gI7BJaC1A1AoNBjJgbyApVS4IDlZgDU5WUAxEKDNmmALHzZp0Fkz1FMTmGFl1FMEyodIavcCAUHDWrKAIA4aa2oCgILEBupZgHvAhEBcZ6joQBxS76AgccrFlczBvKLC0QI2cBoCFvfTDAo7eoOQInqDPBtvrDEZBNYN5xwNwxQRfw8ZQ5wQVLvO8OYU+mHvFLlDh05Mdg7BT6YrRPpCBznMB2r//xKJjyyOh+cImr2/4doscwD6neZjuZR4AgAABYAAAABy1xcdQtxYBYYZdifkUDgzzXaXn98Z0oi9ILU5mBjFANmRwlVJ3/6jYDAmxaiDG3/6xjQQCCKkRb/6kg/wW+kSJ5//rLobkLSiKmqP/0ikJuDaSaSf/6JiLYLEYnW/+kXg1WRVJL/9EmQ1YZIsv/6Qzwy5qk7/+tEU0nkls3/zIUMPKNX/6yZLf+kFgAfgGyLFAUwY//uQZAUABcd5UiNPVXAAAApAAAAAE0VZQKw9ISAAACgAAAAAVQIygIElVrFkBS+Jhi+EAuu+lKAkYUEIsmEAEoMeDmCETMvfSHTGkF5RWH7kz/ESHWPAq/kcCRhqBtMdokPdM7vil7RG98A2sc7zO6ZvTdM7pmOUAZTnJW+NXxqmd41dqJ6mLTXxrPpnV8avaIf5SvL7pndPvPpndJR9Kuu8fePvuiuhorgWjp7Mf/PRjxcFCPDkW31srioCExivv9lcwKEaHsf/7ow2Fl1T/9RkXgEhYElAoCLFtMArxwivDJJ+bR1HTKJdlEoTELCIqgEwVGSQ+hIm0NbK8WXcTEI0UPoa2NbG4y2K00JEWbZavJXkYaqo9CRHS55FcZTjKEk3NKoCYUnSQ0rWxrZbFKbKIhOKPZe1cJKzZSaQrIyULHDZmV5K4xySsDRKWOruanGtjLJXFEmwaIbDLX0hIPBUQPVFVkQkDoUNfSoDgQGKPekoxeGzA4DUvnn4bxzcZrtJyipKfPNy5w+9lnXwgqsiyHNeSVpemw4bWb9psYeq//uQZBoABQt4yMVxYAIAAAkQoAAAHvYpL5m6AAgAACXDAAAAD59jblTirQe9upFsmZbpMudy7Lz1X1DYsxOOSWpfPqNX2WqktK0DMvuGwlbNj44TleLPQ+Gsfb+GOWOKJoIrWb3cIMeeON6lz2umTqMXV8Mj30yWPpjoSa9ujK8SyeJP5y5mOW1D6hvLepeveEAEDo0mgCRClOEgANv3B9a6fikgUSu/DmAMATrGx7nng5p5iimPNZsfQLYB2sDLIkzRKZOHGAaUyDcpFBSLG9MCQALgAIgQs2YunOszLSAyQYPVC2YdGGeHD2dTdJk1pAHGAWDjnkcLKFymS3RQZTInzySoBwMG0QueC3gMsCEYxUqlrcxK6k1LQQcsmyYeQPdC2YfuGPASCBkcVMQQqpVJshui1tkXQJQV0OXGAZMXSOEEBRirXbVRQW7ugq7IM7rPWSZyDlM3IuNEkxzCOJ0ny2ThNkyRai1b6ev//3dzNGzNb//4uAvHT5sURcZCFcuKLhOFs8mLAAEAt4UWAAIABAAAAAB4qbHo0tIjVkUU//uQZAwABfSFz3ZqQAAAAAngwAAAE1HjMp2qAAAAACZDgAAAD5UkTE1UgZEUExqYynN1qZvqIOREEFmBcJQkwdxiFtw0qEOkGYfRDifBui9MQg4QAHAqWtAWHoCxu1Yf4VfWLPIM2mHDFsbQEVGwyqQoQcwnfHeIkNt9YnkiaS1oizycqJrx4KOQjahZxWbcZgztj2c49nKmkId44S71j0c8eV9yDK6uPRzx5X18eDvjvQ6yKo9ZSS6l//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(e){var b="";if(e.option!=""){b=" ("+toHtml(e.option)+")"}var c=e.longname;if(e.togo==1){c="To-Go: "+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 toHtml(c)+b+a+" "+createExtraParagraph(e.extras)}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='";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 '}$(document).on("pagebeforeshow","#typprodpage",function(){allowPrintAndOrderBtn=true;lastSelectedProduct="";tableListActive=false;if(nextPage==""){reloadPage()}$("#tablemapcontent").hide();$.ajaxSetup({cache:false});hideMenuProd();getPayPrintType();checkForLogIn();fillOrderVolume(0);doJsonAjax("GET","php/contenthandler.php?module=admin&command=getOrderVolume",null,fillOrderVolume,null);$("#workprintarea").html("");var a=$(this).data("table-info");var c=a[0];var b=a[1];$("#changetablewhatdialog").data("fromtableid",b);var e=a[2];$("#typprodpage h1").html(W_ATABLE[lang]+": "+e+getPrinterStatusStr());$("#optionfield").val("");if((!enterpricedlgshown)&&(!enternumberdlgshown)){fillTypeProdList(0)}else{enterpricedlgshown=false;enternumberdlgshown=false}var f="php/contenthandler.php?module=queue&command=getJsonLongNamesOfProdsForTableNotDelivered&tableid="+b;fillNotDeliveredProductsOfATable(f);$("#workprint_btn").data("tableid",b);$("#gopaydesk_btn").data("tableid",b);$("#workprint_btn").data("tablename",e);bindPrintButton();bindGoPayDeskButton();bindChangetableButton();bindSendNewOrdersButton();getUserHasRightForPaydesk()});function bindSendNewOrdersButton(){$("#sendorder_btn").off("click").on("click",function(a){a.stopImmediatePropagation();a.preventDefault();if(allowPrintAndOrderBtn){allowPrintAndOrderBtn=false;lastSelectedProduct="";if(extrasMenuOpen){alert(W_OPEN_PANEL[lang])}else{sendNewOrders(false,"s",gotoTablePage)}}})}function bindPrintButton(){$("#workprint_btn").off("click").on("click",function(b){b.stopImmediatePropagation();b.preventDefault();if(allowPrintAndOrderBtn){allowPrintAndOrderBtn=false;lastSelectedProduct="";if(extrasMenuOpen){alert(W_OPEN_PANEL[lang])}else{if(neworders.length>0){var a=$("#workprintarea").data("payPrintType");sendNewOrders(true,a,gotoTablePage)}else{alert(W_NO_ORDERS[lang])}}}})}function bindGoPayDeskButton(){$("#gopaydesk_btn").off("click").on("click",function(b){b.stopImmediatePropagation();b.preventDefault();if(allowPrintAndOrderBtn){allowPrintAndOrderBtn=false;lastSelectedProduct="";if(neworders.length>0){var a=$("#workprintarea").data("payPrintType");if(waitergopayprint==1){sendNewOrders(true,a,goToPayDesk)}else{sendNewOrders(false,a,goToPayDesk)}}else{if(notDeliveredProdsAvailable){goToPayDesk()}else{alert(W_NO_ORDERS[lang])}}}})}function goToPayDesk(){var a=$("#gopaydesk_btn").data("allowed");if(a.toLowerCase()=="yes"){window.location.href="paydesk.html?t="+$("#gopaydesk_btn").data("tableid")}else{alert("Fehlendes Benutzerrecht für Kasse")}}function createRoomOrTableList(b,c){var a=''+c+" ";$.each(b,function(f,e){a+=''+e.name+" "});return a}function handleClickInChangeTablemap(a){$("#changetablewhatdialog").data("totableid",a.tableid);$.mobile.changePage("#changetablewhatdialog")}function displayTableDialog(e,g,c){$("#header_tchange").html("Tischauswahl");var f=shallDisplayRoom(e);if(f.show){$("#roomOrTableList").hide();$("#tablemapcontentchangetable").show();d=new Date();$("#mapimgpartchangetable").attr("src","php/tablemap.php?command=getTableMapImgAsPng&roomid="+e+"&"+d.getTime());var b=new Tablemap(e,null,"");b.bindingForSelection("#mapimgpartchangetable",handleClickInChangeTablemap.bind(this),f.pos,e);if(c){$.mobile.changePage("#tablechangedialog")}$("#changetablebackbtn").off("click").on("click",function(h){$("#tablemapcontentchangetable").hide();$("#roomOrTableList").show()})}else{$("#roomOrTableList").show();var a=createRoomOrTableList(g,"Tische");$("#roomOrTableList").empty().append(a).promise().done(function(){if(c){$.mobile.changePage("#tablechangedialog")}refreshList("#roomOrTableList");$(this).off("click").on("click",".info-go",function(i){i.stopImmediatePropagation();i.preventDefault();var h=($(this).attr("id")).split("_")[1];$("#changetablewhatdialog").data("totableid",g[h].id);$.mobile.changePage("#changetablewhatdialog")})})}}function resultOfChangeTable(a){if(a.status!="OK"){alert("Fehler "+a.code+": "+a.msg+"\n\nMöglicherweise hat ein Kollege\nin der Zwischenzeit Produkte zugestellt.")}else{alert("Tischwechsel durchgeführt!")}window.location.href="waiter.html"}function bindChangetableButton(){$("#changetable_btn").off("click").on("click",function(c){c.stopImmediatePropagation();c.preventDefault();var b=$("#tables-page").data("allroomtables");var f=b.length;if(f==1){displayTableDialog(b[0].id,b[0].tables,true)}else{$("#header_tchange").html("Raumauswahl");var a=createRoomOrTableList(b,W_ROOMS[lang]);$("#roomOrTableList").empty().append(a).promise().done(function(){$.mobile.changePage("#tablechangedialog");refreshList("#roomOrTableList");$(this).off("click").on("click",".info-go",function(h){h.stopImmediatePropagation();h.preventDefault();var g=($(this).attr("id")).split("_")[1];displayTableDialog(b[g].id,b[g].tables,false)})})}})}function createHtmlOfKind(e,a,k){var g="";for(var b=0;b"+c+" "+h+" "}}return g}function createExtraParagraph(b){if((b==null)||(b=="")){return""}var c="";for(var a=0;a"}return c}function arrayContainsKind(b,e,g){var a=false;for(var c=0;c";if(o.status=="OK"){var b=o.msg;var f=$("#workprintarea").data("payPrintType");var g="";var m=$("#workprint_btn").data("tablename");if(arrayContainsKind(b,0,1)){var e="Speisen für "+m+" (Printer 1) ";var l=e+" "+i+" "+createHtmlOfKind(b,0,1)+" ";g+=l+" "}if(arrayContainsKind(b,0,2)){var e="Speisen für "+m+" (Printer 2) ";var l=e+" "+i+" "+createHtmlOfKind(b,0,2)+" ";g+=l+" "}if(arrayContainsKind(b,1,1)){var c="Getränke für "+m+" (Printer 1) ";var k=c+" "+i+" "+createHtmlOfKind(b,1,1)+" ";g+=k+" "}if(arrayContainsKind(b,1,2)){var c="Getränke für "+m+" (Printer 2) ";var k=c+" "+i+" "+createHtmlOfKind(b,1,2)+" ";g+=k+" "}$("#workprintarea").html(g);window.print();setTimeout(function(){document.location.href="waiter.html"},250)}else{alert("Druckdaten konnten nicht angefordert werden")}}function updateNotDeliveredList(){var a=$("#typprodpage").data("table-info");var c=a[1];var e="php/contenthandler.php?module=queue&command=getJsonLongNamesOfProdsForTableNotDelivered&tableid="+c;var b="#orderedprod-list-0";fillNotDeliveredProductsOfATable(e)}function doJsonAjax(a,b,f,e,c){$.ajax({type:a,url:b,dataType:"json",data:f,async:true,success:function(g){if(e!=null){e(g)}},error:function(l,g,h){var k=c+", Status: "+g+", Error:"+h+", Msg: "+l.responseText+" ("+b+")";if(b!="php/debug.php"){var i={cmd:b,fct:e.name,xhr:l.responseText,errormsg:c,status:g};if(c!=null){if($(".connectionstatus").is(":visible")){alert("Kommunikation zum Server ist unterbrochen!")}else{var k=c+h+" ("+b+")";alert("Kommunikationsfehler zum Server: "+k);doJsonAjax("POST","php/debug.php",i,null)}}}}})}function doJsonAjaxAsync(a,b,e,c,f){$.ajax({type:a,url:b,dataType:"json",data:e,async:f,success:function(g){if(c!=null){c(g)}},error:function(k,g,i){var h={cmd:b,fct:c.name,xhr:k.responseText,errormsg:i,status:g};doJsonAjax("POST","php/debug.php",h,null)}})}function doYouWantDelOrReorder(e,f,c,b,a){$("#delOrReorderDlg .sure-1").text(f);$("#delOrReorderDlg .sure-2").text(e);$("#delOrReorderDlg .sure-cancel").text(W_CANCEL[lang]);$("#delOrReorderDlg .sure-do").text(c).off("click.delOrReorderDlg").on("click.delOrReorderDlg",function(){b()});$("#delOrReorderDlg .reorder").text(W_REORDER[lang]).off("click.delOrReorderDlg").on("click.delOrReorderDlg",function(){a()});$(this).off("click.delOrReorderDlg");$.mobile.changePage("#delOrReorderDlg")}function areYouSure(c,b,a,e){$("#sure .sure-1").text(c);$("#sure .sure-2").text(b);$("#sure .sure-do").text(a).off("click.sure").on("click.sure",function(){e()});$(this).off("click.sure");$.mobile.changePage("#sure")}function changePriceInActPanel(a){if(rightchangeprice){$("#act-changepricefield").val(a.toFixed(2).replace(".",decpoint))}}function actionSelOnNewOrderElem(){var b=$("#actiononneworderel").data("entry");var a=$("#actiononneworderel").data("newcount");$("#act_count").html(a);$("#act_name").html(b.name+" ("+b.price.replace(".",decpoint)+" "+currency+")");if(b.option!=""){$("#act_option").html(" ("+b.option+")")}if(rightchangeprice){if(b.changedPrices!="NO"){$("#act-changepricefield").val(b.changedPrices)}}$("#act-select-comment").html(predefinedComments);$.mobile.changePage("#actiononneworderel");if(a==1){$("#actionneworderconfirm_all").html(W_ACT_CHANGE[lang]);$("#actionneworderconfirm_one").hide()}else{$("#actionneworderconfirm_all").html(W_ACT_CHANGE_ALL[lang]);$("#actionneworderconfirm_one").html(W_ACT_CHANGE_ONE[lang]);$("#actionneworderconfirm_one").show()}$("#act-select-comment").selectmenu("refresh");$("#togocheckbox").checkboxradio("refresh");$("#act-numberfield").off("keyup").on("keyup",function(h){var c=$("#actiononneworderel").data("newcount");var g=$("#act-numberfield").val().trim();if((g!="")&&($.isNumeric(g))){if((g>=0)&&(g<=1000)){var f=g;$("#actiononneworderel").data("newcount",f)}else{$("#act-numberfield").val(c)}}else{$("#act-numberfield").val(c)}actionSelOnNewOrderElem($("#actiononneworderel").data("entry"),$("#actiononneworderel").data("groupedListIndex"))});$("#actminusone").off("click").on("click",function(c){c.stopImmediatePropagation();c.preventDefault();reduceOneNewOrderItem();actionSelOnNewOrderElem($("#actiononneworderel").data("entry"),$("#actiononneworderel").data("groupedListIndex"))});$("#actplusone").off("click").on("click",function(c){c.stopImmediatePropagation();c.preventDefault();increaseOneNewOrderItem();actionSelOnNewOrderElem($("#actiononneworderel").data("entry"),$("#actiononneworderel").data("groupedListIndex"))});$("#actdel").off("click").on("click",function(c){delOneNewOrderItem();actionSelOnNewOrderElem($("#actiononneworderel").data("entry"),$("#actiononneworderel").data("groupedListIndex"));actionNewOrderConfirm(CHANGE_ONE)});$("#actionneworderconfirm_all").off("click").on("click",function(c){c.stopImmediatePropagation();c.preventDefault();$("#actiononneworderel").dialog("close");actionNewOrderConfirm(CHANGE_ALL)});$("#actionneworderconfirm_one").off("click").on("click",function(c){c.stopImmediatePropagation();c.preventDefault();$("#actiononneworderel").dialog("close");actionNewOrderConfirm(CHANGE_ONE)});$("#actionnewordercancel").off("click").on("click",function(c){binding_neworderelem()});$("#discount1").off("click").on("click",function(f){f.stopImmediatePropagation();f.preventDefault();var c=b.price;changePriceInActPanel(c-c*discount1/100)});$("#discount2").off("click").on("click",function(f){f.stopImmediatePropagation();f.preventDefault();var c=b.price;changePriceInActPanel(c-c*discount2/100)});$("#discount3").off("click").on("click",function(f){f.stopImmediatePropagation();f.preventDefault();var c=b.price;changePriceInActPanel(c-c*discount3/100)})}function actionNewOrderConfirm(o){var t=$("#actiononneworderel").data("entry");var k=$("#act-optionfield").val();if(rightchangeprice==1){var a=$("#act-changepricefield").val().trim();a=a.replace(",",".");if(a>999.99){alert(W_MAX_PRICE_EXCEEDED[lang]);return}if(a==""){a="NO"}else{if(!$.isNumeric(a)){alert(W_WRONG_FORMAT[lang]);return}else{$("#act-changepricefield").val("")}}}else{var g=getProdProperties(t.prodid);var l=g.unit;if(l!=1){a="NO"}else{var a=t.changedPrices;a=a.replace(",",".")}}var c=$("#togocheckbox").prop("checked");if(c){c=1}else{c=0}if(o==CHANGE_ONE){var e=t.origidxs;neworders[e[0]].option=k;neworders[e[0]].changedPrice=a;neworders[e[0]].togo=c}else{var e=t.origidxs;for(r=0;r0){var e=t.origidxs;var f=e[0];var m=neworders[f].prodid;var a=neworders[f].changedPrice;var c=neworders[f].togo;var k=neworders[f].option;var b=neworders[f].extras;for(r=0;r0){$("#actiononneworderel").data("newcount",a-1);$("#act-numberfield").val(a-1)}}function delOneNewOrderItem(){$("#actiononneworderel").data("newcount",0)}function increaseOneNewOrderItem(){var b=$("#actiononneworderel").data("entry");var a=$("#actiononneworderel").data("newcount");$("#actiononneworderel").data("newcount",a+1);$("#act-numberfield").val(a+1)}function group(h){var x=[];var e=[];var z=[];var s=[];var o=[];var g=[];var v=[];var w=[];var a=[];var m=[];var y={count:x,joinedvals:e,name:z,price:s,option:o,extras:g,prodids:v,origidxs:w,changedPrices:a,togos:m};var u=0;for(u=0;u+ "+toHtml(c[t].name)+""}}var q=z+"-"+o+"-"+b;if(f!="NO"){q=z+"-"+o+"-"+b+f}if(l==1){q+=" - To-Go"}var k=y.joinedvals.indexOf(q);if(k>=0){y.count[k]=y.count[k]+1;idxarr=y.origidxs[k];idxarr[idxarr.length]=u;y.origidxs[k]=idxarr}else{var n=y.count.length;y.count[n]=1;y.joinedvals[n]=q;y.name[n]=z;y.price[n]=s;y.option[n]=o;y.extras[n]=b;y.prodids[n]=p;y.changedPrices[n]=f;y.togos[n]=l;y.origidxs[n]=[u]}}return y};
@@ -54,7 +54,10 @@ var W_TABLES=["Tische","Tables","Mesas"];var W_ATABLE=["Tisch","Table","Mesa"];v
-
+
+
+ Tageslosung :
+
";c+=" ";for(var b=0;b'+a+""}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 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+=''+toHtml(e+" - "+l)+" "}else{b+=''+toHtml(e+" - "+l)+" "}}});$("#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;a1){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='"}}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='"}}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_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 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=["Bar bestand inkl. eigener Kassen-Eingaben/Entnahmen:","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 showHostTemplate=false;var guests=[];var internalguests=[];var hotelinterface=0;var PAYMENT_HS3=7;var PAYMENT_GUEST=8;var currentPaymentId=7;var showpayment2=1;var showpayment3=1;var showpayment4=1;var showpayment5=1;var showpayment6=1;var showpayment7=1;var showpayment8=1;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;showpayment2=a.showpayment2;showpayment3=a.showpayment3;showpayment4=a.showpayment4;showpayment5=a.showpayment5;showpayment6=a.showpayment6;showpayment7=a.showpayment7;showpayment8=a.showpayment8;$("#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;c ";g+=""+i+' ID:"+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+=''+toHtml(k+" - "+p)+" "}else{f+=''+toHtml(k+" - "+p)+" "}}});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)+" "}return a};