From 49650b8881e435b4a7c3f3c2fc7db5ecd9bdef8b Mon Sep 17 00:00:00 2001 From: Geno Date: Thu, 19 Nov 2020 23:00:35 +0100 Subject: [PATCH] OrderSprinter 1.2.12 --- printserver/OrderSprinterPrintserver.exe | Bin 271872 -> 271872 bytes webapp/OrderSprinterPrintserver.exe | Bin 271872 -> 271872 bytes webapp/bar.html | 2 +- webapp/bill.html | 2 +- webapp/feedback.html | 2 +- webapp/index.html | 4 +- webapp/install.html | 2 +- webapp/install/installer.php | 29 +- webapp/kitchen.html | 2 +- webapp/manager.html | 15 +- webapp/paydesk.html | 2 +- webapp/php/admin.php | 379 +++++++---------------- webapp/php/bill.php | 22 +- webapp/php/closing.php | 15 +- webapp/php/commonutils.php | 2 +- webapp/php/utilities/HistFiller.php | 7 +- webapp/php/utilities/basedb.php | 2 +- webapp/preferences.html | 2 +- webapp/products.html | 2 +- webapp/rating.html | 2 +- webapp/reports.html | 2 +- webapp/reservation.html | 2 +- webapp/supplydesk.html | 2 +- webapp/waiter.html | 2 +- webapp/waiterdesktop.php | 2 +- 25 files changed, 193 insertions(+), 310 deletions(-) diff --git a/printserver/OrderSprinterPrintserver.exe b/printserver/OrderSprinterPrintserver.exe index 07b24e757ff37a1c2073184fb6a145b41de1b218..1b57065585fb18a4d8f62714b744f1056ba004f3 100644 GIT binary patch delta 162 zcmZoTBhYY0U_u9Tdiwsx?$&O`)^4V)-OT3e8F{uJUeD~Rsp4j4VPfR!W~gg!Y2d1B zV(Mz9YiVg>tZU(7WNhJNS|!(W}$23?Ch#* z;%4Tk>uBj>qHE^n=xSzSWNBgS=)7I$Ci5d5M#Js=Y%DW51%9x^DV)>E@?Uu+e_e`Z z^P25D_*wk;fYR)8EbUC3+zd<%j0_A6+}o!su*5S0#lI`EtOnB47b~-vvl=q!F&IoX NWK`PDsKWA}5daWSE@A)x diff --git a/webapp/OrderSprinterPrintserver.exe b/webapp/OrderSprinterPrintserver.exe index 07b24e757ff37a1c2073184fb6a145b41de1b218..1b57065585fb18a4d8f62714b744f1056ba004f3 100644 GIT binary patch delta 162 zcmZoTBhYY0U_u9Tdiwsx?$&O`)^4V)-OT3e8F{uJUeD~Rsp4j4VPfR!W~gg!Y2d1B zV(Mz9YiVg>tZU(7WNhJNS|!(W}$23?Ch#* z;%4Tk>uBj>qHE^n=xSzSWNBgS=)7I$Ci5d5M#Js=Y%DW51%9x^DV)>E@?Uu+e_e`Z z^P25D_*wk;fYR)8EbUC3+zd<%j0_A6+}o!su*5S0#lI`EtOnB47b~-vvl=q!F&IoX NWK`PDsKWA}5daWSE@A)x diff --git a/webapp/bar.html b/webapp/bar.html index 8365ac6..7a5006f 100644 --- a/webapp/bar.html +++ b/webapp/bar.html @@ -5,7 +5,7 @@ - + diff --git a/webapp/bill.html b/webapp/bill.html index a20acd2..37ac69d 100644 --- a/webapp/bill.html +++ b/webapp/bill.html @@ -5,7 +5,7 @@ - + diff --git a/webapp/feedback.html b/webapp/feedback.html index d5106e1..b37d4f9 100644 --- a/webapp/feedback.html +++ b/webapp/feedback.html @@ -4,7 +4,7 @@ - + diff --git a/webapp/index.html b/webapp/index.html index 531a7ff..9d96a42 100644 --- a/webapp/index.html +++ b/webapp/index.html @@ -6,8 +6,8 @@ - - + + diff --git a/webapp/install.html b/webapp/install.html index 369672c..664fe2e 100644 --- a/webapp/install.html +++ b/webapp/install.html @@ -679,7 +679,7 @@ $(document).ready(function() {   - +   diff --git a/webapp/install/installer.php b/webapp/install/installer.php index 831fec0..21d3e3b 100644 --- a/webapp/install/installer.php +++ b/webapp/install/installer.php @@ -1476,6 +1476,27 @@ return false; } } +function updateUserTable1211_1212($prefix, $version, $dbname) { +$pdo = $this->pdo; +try { +if ($version != "1.2.11") { +$ret = $this->updateUserTable1210_1211($prefix, $version, $dbname); +if (!$ret) { +return false; +} +} + +DbUtils::overrulePrefix($prefix); + +$this->execSql($pdo, "ALTER TABLE %histprod% MODIFY extras VARCHAR(300) NULL"); + +$this->updateVersion($pdo, '1.2.12'); +return true; +} catch (PDOException $e) { +return false; +} +} + function setVersion($prefix,$theVersion) { $pdo = $this->pdo; try { @@ -1593,7 +1614,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.2.11')"); +$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'version', '1.2.12')"); $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')"); @@ -1962,7 +1983,7 @@ $zones[] = $timezone_identifiers[$i]; echo json_encode($zones); } else if ($command == 'update') { -$installerVersion = "1.2.11"; +$installerVersion = "1.2.12"; $admin = new InstallAdmin(); $pdo = $admin->openDbAndReturnPdo($_POST['host'],$_POST['db'],$_POST['user'],$_POST['password']); @@ -1992,7 +2013,7 @@ $supportedVersions = array("1.0.22","1.0.23","1.0.24","1.0.25","1.0.26","1.0.27" "1.0.40","1.0.41","1.0.42","1.0.43", "1.1.0","1.1.1","1.1.2","1.1.3","1.1.4","1.1.5","1.1.6","1.1.7","1.1.8", "1.1.9","1.1.10","1.1.11","1.1.12","1.1.13","1.1.14","1.1.15","1.1.16","1.1.17", "1.1.18","1.1.19","1.1.20","1.1.21","1.1.22","1.1.23","1.1.24","1.1.25","1.1.26","1.1.27","1.1.28","1.1.29","1.1.30", -"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.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" ); if (!in_array($version, $supportedVersions)) { @@ -2000,7 +2021,7 @@ echo json_encode("Quellversion nicht unterstützt"); return; } -$ret = $admin->updateUserTable1210_1211($_POST['prefix'], $version, $_POST['db']); +$ret = $admin->updateUserTable1211_1212($_POST['prefix'], $version, $_POST['db']); if(session_id() == '') { session_start(); diff --git a/webapp/kitchen.html b/webapp/kitchen.html index ed431b4..c9a902b 100644 --- a/webapp/kitchen.html +++ b/webapp/kitchen.html @@ -5,7 +5,7 @@ - + diff --git a/webapp/manager.html b/webapp/manager.html index 371d67c..5acd26f 100644 --- a/webapp/manager.html +++ b/webapp/manager.html @@ -5,7 +5,7 @@ - + @@ -182,7 +182,8 @@ var MAN_REST_INFO = ["Der Import dauert eine Weile...","The import takes a while var MAN_UPLOAD_FILE = ["Diese Datei hochladen (importieren): ", "Upload this file: ","Importar este file: "]; var MAN_BAK_REST_HEAD = ["Sicherung und Import","Backup and Restore","Exportar y Importar"]; var MAN_BAK_BTN = ["Sicherung (Konfiguration)","Backup (Configuration)","Exportar (configuración)"]; -var MAN_BAK_BTN_ALL = ["Sicherung (Alles)","Backup (all)","Exportar (todo)"]; +var MAN_BAK_BTN_ALL = ["Sicherung (Alles ohne Logs)","Backup (all without logs)","Exportar (todo sin protocolo)"]; +var MAN_BAK_BTN_ALL_LOGS = ["Sicherung (Alles mit Logs)","Backup (all with logs)","Exportar (todo y protocolo)"]; var MAN_RESTORE_BTN = ["Importieren","Restore","Importar"]; var MAN_GO_LIVE = ["Starte Produktivbetrieb","Start productive mode","Empezar trabajar realmente"]; var MAN_SHUTDOWN = ["Server herunterfahren","Shutdown server","Apagar servidor"]; @@ -421,6 +422,7 @@ function setLanguage(l) { $("#bakrestxt").html(MAN_BAK_REST_HEAD[l]); $("#backupbtntxt").html(MAN_BAK_BTN[l]); $("#backupbtntxtall").html(MAN_BAK_BTN_ALL[l]); + $("#backupbtntxtalllogs").html(MAN_BAK_BTN_ALL_LOGS[l]) $("#restorebtntxt").html(MAN_RESTORE_BTN[l]); $("#golivetxt").html(MAN_GO_LIVE[l]); @@ -1183,6 +1185,12 @@ function binding() { e.preventDefault(); window.location.href = "php/contenthandler.php?module=admin&command=backup&type=all"; }); + + $("#backup_btnalllogs").off("click").on("click", function (e) { + e.stopImmediatePropagation(); + e.preventDefault(); + window.location.href = "php/contenthandler.php?module=admin&command=backup&type=alllogs"; + }); $("#restorebtntxt").off("click").on("click", function (e) { $("#restinfoafterclick").html(MAN_REST_INFO[lang]); @@ -2743,12 +2751,13 @@ $(document).on("pageinit", "#admin-page", function () {
+
- + Diese Datei hochladen (importieren):
diff --git a/webapp/paydesk.html b/webapp/paydesk.html index b855f25..12e9a2f 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 6ad2c0e..af33e06 100644 --- a/webapp/php/admin.php +++ b/webapp/php/admin.php @@ -290,7 +290,7 @@ class Admin { $notActive = json_encode(array("status" => "OK","msg" => 0)); // check printmode $pdo = DbUtils::openDbAndReturnPdoStatic(); - $printMode = $this->getValueFromConfigTable($pdo,'payprinttype'); + $printMode = CommonUtils::getConfigValue($pdo, 'payprinttype', "s"); if ($printMode != "s") { echo $active; return; @@ -751,184 +751,47 @@ class Admin { $userLoggedIn = $this->isUserAlreadyLoggedInForPhp(); if ($userLoggedIn || (!$forHtml)) { - $sql = "SELECT count(id) as number,setting FROM %config% WHERE name=?"; if (is_null($pdo)) { $pdo = $this->dbutils->openDbAndReturnPdo(); } - $stmt = $pdo->prepare($this->dbutils->resolveTablenamesInSqlString($sql)); - $stmt->execute(array("companyinfo")); - $row = $stmt->fetchObject(); - $companyInfo = $row->setting; - - $stmt->execute(array("rectemplate")); - $row = $stmt->fetchObject(); - $rectemplate = $row->setting; - - $stmt->execute(array("foodtemplate")); - $row = $stmt->fetchObject(); - $foodtemplate = $row->setting; - - $stmt->execute(array("drinktemplate")); - $row = $stmt->fetchObject(); - $drinktemplate = $row->setting; - - $stmt->execute(array("decpoint")); - $row = $stmt->fetchObject(); - $decpoint = $row->setting; - - $stmt->execute(array("version")); - $row = $stmt->fetchObject(); - $version = $row->setting; - - $stmt->execute(array("payprinttype")); - $row = $stmt->fetchObject(); - $payprinttype = $row->setting; - - $stmt->execute(array("cancelunpaidcode")); - $row = $stmt->fetchObject(); - $cancelunpaidcode = $row->setting; - - $stmt->execute(array("tax")); - $row = $stmt->fetchObject(); - $tax = $row->setting; - - $stmt->execute(array("togotax")); - $row = $stmt->fetchObject(); - $togotax = $row->setting; - - $stmt->execute(array("taxaustrianormal")); - $row = $stmt->fetchObject(); - $taxaustrianormal = $row->setting; - - $stmt->execute(array("taxaustriaerm1")); - $row = $stmt->fetchObject(); - $taxaustriaerm1 = $row->setting; - - $stmt->execute(array("taxaustriaerm2")); - $row = $stmt->fetchObject(); - $taxaustriaerm2 = $row->setting; - - $stmt->execute(array("taxaustriaspecial")); - $row = $stmt->fetchObject(); - $taxaustriaspecial = $row->setting; - - $stmt->execute(array("serverurl")); - $row = $stmt->fetchObject(); - $serverurl = $row->setting; - - $stmt->execute(array("email")); - $row = $stmt->fetchObject(); - $email = $row->setting; - - $stmt->execute(array("bigfontworkreceipt")); - $row = $stmt->fetchObject(); - $bigfontworkreceipt = $row->setting; - - $stmt->execute(array("prominentsearch")); - $row = $stmt->fetchObject(); - $prominentsearch = $row->setting; - - $stmt->execute(array("discount1")); - $row = $stmt->fetchObject(); - $discount1 = $row->setting; - $stmt->execute(array("discount2")); - $row = $stmt->fetchObject(); - $discount2 = $row->setting; - $stmt->execute(array("discount3")); - $row = $stmt->fetchObject(); - $discount3 = $row->setting; - $stmt->execute(array("austria")); - $row = $stmt->fetchObject(); - $austria = $row->setting; - $stmt->execute(array("digigopaysetready")); - $row = $stmt->fetchObject(); - $digigopaysetready = $row->setting; - if (is_null($digigopaysetready)) { - $digigopaysetready = 1; - } - $stmt->execute(array("waitergopayprint")); - $row = $stmt->fetchObject(); - $waitergopayprint = $row->setting; - if (is_null($waitergopayprint)) { - $waitergopayprint = 0; - } - - $stmt->execute(array("oneprodworkreceipts")); - $row = $stmt->fetchObject(); - $oneprodworkreceipts = $row->setting; - if (is_null($oneprodworkreceipts)) { - $oneprodworkreceipts = 0; - } - - $stmt->execute(array("digiprintwork")); - $row = $stmt->fetchObject(); - $digiprintwork = $row->setting; - if (is_null($digiprintwork)) { - $digiprintwork = 1; - } - - $stmt->execute(array("groupworkitems")); - $row = $stmt->fetchObject(); - $groupworkitems = $row->setting; - if (is_null($groupworkitems)) { - $groupworkitems = 1; - } - - // for update reasons check for null - $stmt->execute(array("receiveremail")); - $row = $stmt->fetchObject(); - $receiveremail = ""; - if (!is_null($row)) { - $receiveremail = $row->setting; - } - set_error_handler(function() { /* ignore errors */ }); - try { - $stmt->execute(array("emailbadrating")); - $row = $stmt->fetchObject(); - $emailbadrating = ""; - if (!is_null($row)) { - $emailbadrating = $row->setting; - } - } catch (Exception $e) { - // in previous version this was not configurable - $emailbadrating = ""; - } - try { - $stmt->execute(array("emailratingcontact")); - $row = $stmt->fetchObject(); - $emailratingcontact = ""; - if (!is_null($row)) { - $emailratingcontact = $row->setting; - } - } catch (Exception $e) { - // in previous version this was not configurable - $emailratingcontact = ""; - } - restore_error_handler(); - - $stmt->execute(array("billlanguage")); - $row = $stmt->fetchObject(); - $billlanguage = $row->setting; - - $stmt->execute(array("currency")); - $row = $stmt->fetchObject(); - $currency = $row->setting; - - $stmt->execute(array("receiptfontsize")); - $row = $stmt->fetchObject(); - $receiptfontsize = $row->setting; - - $stmt->execute(array("reservationnote")); - $row = $stmt->fetchObject(); - $reservationnote = $row->setting; - - set_error_handler(function() { /* ignore errors */ }); - - - $paymentconfig = $this->getConfigItemOrDefault("paymentconfig", $stmt, 0); - $workflowconfig = $this->getConfigItemOrDefault("workflowconfig", $stmt, 0); - $addreceipttoprinter = $this->getConfigItemOrDefault("addreceipttoprinter", $stmt, ""); + $companyInfo = CommonUtils::getConfigValue($pdo,"companyinfo",null); + $rectemplate = CommonUtils::getConfigValue($pdo,"rectemplate",null); + $foodtemplate = CommonUtils::getConfigValue($pdo,"foodtemplate",null); + $drinktemplate = CommonUtils::getConfigValue($pdo,"drinktemplate",null); + $decpoint = CommonUtils::getConfigValue($pdo,"decpoint",null); + $version = CommonUtils::getConfigValue($pdo,"version",null); + $payprinttype = CommonUtils::getConfigValue($pdo,"payprinttype",null); + $cancelunpaidcode = CommonUtils::getConfigValue($pdo,"cancelunpaidcode",null); + $tax = CommonUtils::getConfigValue($pdo,"tax",null); + $togotax = CommonUtils::getConfigValue($pdo,"togotax",null); + $taxaustrianormal = CommonUtils::getConfigValue($pdo,"taxaustrianormal",null); + $taxaustriaerm1 = CommonUtils::getConfigValue($pdo,"taxaustriaerm1",null); + $taxaustriaerm2 = CommonUtils::getConfigValue($pdo,"taxaustriaerm2",null); + $taxaustriaspecial = CommonUtils::getConfigValue($pdo,"taxaustriaspecial",null); + $serverurl = CommonUtils::getConfigValue($pdo,"serverurl",null); + $email = CommonUtils::getConfigValue($pdo,"email",null); + $bigfontworkreceipt = CommonUtils::getConfigValue($pdo,"bigfontworkreceipt",null); + $prominentsearch = CommonUtils::getConfigValue($pdo,"prominentsearch",null); + $discount1 = CommonUtils::getConfigValue($pdo,"discount1",null); + $discount2 = CommonUtils::getConfigValue($pdo,"discount2",null); + $discount3 = CommonUtils::getConfigValue($pdo,"discount3",null); + $austria = CommonUtils::getConfigValue($pdo,"austria",null); + $digigopaysetready = CommonUtils::getConfigValue($pdo,"digigopaysetready",1); + $waitergopayprint = CommonUtils::getConfigValue($pdo,"waitergopayprint",0); + $oneprodworkreceipts = CommonUtils::getConfigValue($pdo,"oneprodworkreceipts",0); + $digiprintwork = CommonUtils::getConfigValue($pdo,"digiprintwork",1); + $groupworkitems = CommonUtils::getConfigValue($pdo,"groupworkitems",1); + $receiveremail = CommonUtils::getConfigValue($pdo,"receiveremail",""); + $emailbadrating = CommonUtils::getConfigValue($pdo,"emailbadrating",""); + $emailratingcontact = CommonUtils::getConfigValue($pdo,"emailratingcontact",""); + $billlanguage = CommonUtils::getConfigValue($pdo,"billlanguage",null); + $currency = CommonUtils::getConfigValue($pdo,"currency",null); + $receiptfontsize = CommonUtils::getConfigValue($pdo,"receiptfontsize",null); + $reservationnote = CommonUtils::getConfigValue($pdo,"reservationnote",null); + $paymentconfig = CommonUtils::getConfigValue($pdo,"paymentconfig",0); + $workflowconfig = CommonUtils::getConfigValue($pdo,"workflowconfig",0); + $addreceipttoprinter = CommonUtils::getConfigValue($pdo,"addreceipttoprinter",""); $smtphost = ""; $smtpauth = 1; @@ -938,21 +801,18 @@ class Admin { $smtpport = ""; if ($_SESSION['is_admin'] || $_SESSION['right_manager']) { - $smtphost = $this->getConfigItemOrDefault("smtphost",$stmt,""); - $smtpauth = $this->getConfigItemOrDefault("smtpauth",$stmt,1); - $smtpuser = $this->getConfigItemOrDefault("smtpuser",$stmt,""); - $smtppass = $this->getConfigItemOrDefault("smtppass",$stmt,""); - $smtpsecure = $this->getConfigItemOrDefault("smtpsecure",$stmt,1); - $smtpport = $this->getConfigItemOrDefault("smtpport",$stmt,""); + $smtphost = CommonUtils::getConfigValue($pdo,"smtphost",""); + $smtpauth = CommonUtils::getConfigValue($pdo,"smtpauth",1); + $smtpuser = CommonUtils::getConfigValue($pdo,"smtpuser",""); + $smtppass = CommonUtils::getConfigValue($pdo,"smtppass",""); + $smtpsecure = CommonUtils::getConfigValue($pdo,"smtpsecure",1); + $smtpport = CommonUtils::getConfigValue($pdo,"smtpport",""); } - $paydeskid = $this->getConfigItemOrDefault("paydeskid",$stmt,""); - $aeskey = $this->getConfigItemOrDefault("aeskey",$stmt,""); - $certificatesn = $this->getConfigItemOrDefault("certificatesn", $stmt, ""); - - $webimpressum = $this->getConfigItemOrDefault("webimpressum",$stmt,""); - - restore_error_handler(); + $paydeskid = CommonUtils::getConfigValue($pdo,"paydeskid",""); + $aeskey = CommonUtils::getConfigValue($pdo,"aeskey",""); + $certificatesn = CommonUtils::getConfigValue($pdo,"certificatesn",""); + $webimpressum = CommonUtils::getConfigValue($pdo,"webimpressum",""); $userlang = 0; // of no interest, if not called from web $receiptprinter = 1; // of no interest, if not called from web @@ -997,25 +857,6 @@ class Admin { } } - function getConfigItemOrDefault($item,$stmt,$default) { - try { - $stmt->execute(array($item)); - $row = $stmt->fetchObject(); - $ret = $default; - - if ($row) { - if (($row->number) > 0) { - $ret = $row->setting; - } else { - $ret = $default; - } - } - } catch (Exception $e) { - $ret = $default; - } - return $ret; - } - function getViewAfterLogin() { if ($this->isUserAlreadyLoggedInForPhp()) { $userid = $_SESSION['userid']; @@ -1091,7 +932,7 @@ class Admin { $view = "preferences.html"; } - echo json_encode($view . "?v=1.2.11"); + echo json_encode($view . "?v=1.2.12"); } } @@ -1297,24 +1138,24 @@ 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.2.11"); }; + if ($_SESSION['right_waiter']) { $mainMenu[] = array("name" => $waitertxt[$lang], "link" => "waiter.html?v=1.2.12"); }; } else { - if ($_SESSION['right_waiter']) { $mainMenu[] = array("name" => $waiterdesktxt[$lang], "link" => "waiterdesktop.php?v=1.2.11"); }; + if ($_SESSION['right_waiter']) { $mainMenu[] = array("name" => $waiterdesktxt[$lang], "link" => "waiterdesktop.php?v=1.2.12"); }; } - if ($_SESSION['right_kitchen']) { $mainMenu[] = array("name" => $kitchentxt[$lang], "link" => "kitchen.html?v=1.2.11"); }; - if ($_SESSION['right_bar']) { $mainMenu[] = array("name" => "Bar", "link" => "bar.html?v=1.2.11"); }; - if ($_SESSION['right_supply']) { $mainMenu[] = array("name" => $supplytxt[$lang], "link" => "supplydesk.html?v=1.2.11"); }; + if ($_SESSION['right_kitchen']) { $mainMenu[] = array("name" => $kitchentxt[$lang], "link" => "kitchen.html?v=1.2.12"); }; + if ($_SESSION['right_bar']) { $mainMenu[] = array("name" => "Bar", "link" => "bar.html?v=1.2.12"); }; + if ($_SESSION['right_supply']) { $mainMenu[] = array("name" => $supplytxt[$lang], "link" => "supplydesk.html?v=1.2.12"); }; if ($_SESSION['modus'] == 0) { - if ($_SESSION['right_paydesk']) { $mainMenu[] = array("name" => $paydesktxt[$lang], "link" => "paydesk.html?v=1.2.11"); }; + if ($_SESSION['right_paydesk']) { $mainMenu[] = array("name" => $paydesktxt[$lang], "link" => "paydesk.html?v=1.2.12"); }; } - if ($_SESSION['right_statistics']) { $mainMenu[] = array("name" => $stattxt[$lang], "link" => "reports.html?v=1.2.11"); }; - if ($_SESSION['right_bill']) { $mainMenu[] = array("name" => $bontxt[$lang], "link" => "bill.html?v=1.2.11"); }; - if ($_SESSION['right_products']) { $mainMenu[] = array("name" => $prodtxt[$lang], "link" => "products.html?v=1.2.11"); }; - if ($_SESSION['right_reservation']) { $mainMenu[] = array("name" => $restxt[$lang], "link" => "reservation.html?v=1.2.11"); }; - if ($_SESSION['right_rating']) { $mainMenu[] = array("name" => $ratingtxt[$lang], "link" => "rating.html?v=1.2.11"); }; - if ($_SESSION['right_manager'] || $_SESSION['is_admin'] || $_SESSION['right_closing']) { $mainMenu[] = array("name" => $admintxt[$lang], "link" => "manager.html?v=1.2.11"); }; - $mainMenu[] = array("name" => $settingtxt[$lang], "link" => "preferences.html?v=1.2.11"); - $mainMenu[] = array("name" => "Feedback", "link" => "feedback.html?v=1.2.11"); + if ($_SESSION['right_statistics']) { $mainMenu[] = array("name" => $stattxt[$lang], "link" => "reports.html?v=1.2.12"); }; + if ($_SESSION['right_bill']) { $mainMenu[] = array("name" => $bontxt[$lang], "link" => "bill.html?v=1.2.12"); }; + if ($_SESSION['right_products']) { $mainMenu[] = array("name" => $prodtxt[$lang], "link" => "products.html?v=1.2.12"); }; + if ($_SESSION['right_reservation']) { $mainMenu[] = array("name" => $restxt[$lang], "link" => "reservation.html?v=1.2.12"); }; + if ($_SESSION['right_rating']) { $mainMenu[] = array("name" => $ratingtxt[$lang], "link" => "rating.html?v=1.2.12"); }; + if ($_SESSION['right_manager'] || $_SESSION['is_admin'] || $_SESSION['right_closing']) { $mainMenu[] = array("name" => $admintxt[$lang], "link" => "manager.html?v=1.2.12"); }; + $mainMenu[] = array("name" => $settingtxt[$lang], "link" => "preferences.html?v=1.2.12"); + $mainMenu[] = array("name" => "Feedback", "link" => "feedback.html?v=1.2.12"); } $mainMenu[] = array("name" => $logout[$lang], "link" => "logout.php"); @@ -1323,7 +1164,7 @@ class Admin { $waiterMessage = $this->getMessage(null, "waitermessage"); } // CAUTION: change version also in config.txt!!! - $mainMenuAndVersion = array ("version" => "OrderSprinter 1.2.11", + $mainMenuAndVersion = array ("version" => "OrderSprinter 1.2.12", "user" => $currentUser, "menu" => $mainMenu, "waitermessage" => $waiterMessage, @@ -1461,27 +1302,13 @@ class Admin { } function sendJsonValueFromConfigTable($pdo,$whichValue) { - $theVal = $this->getValueFromConfigTable($pdo,$whichValue); + $theVal = CommonUtils::getConfigValue($pdo, $whichValue, ""); if ($theVal == null) { echo json_encode(""); } else { echo json_encode($theVal); } } - - function getValueFromConfigTable($pdo,$whichValue) { - $sql = "SELECT count(id) as countid,setting FROM %config% WHERE name=?"; - $stmt = $pdo->prepare(DbUtils::substTableAlias($sql)); - $stmt->execute(array($whichValue)); - $row = $stmt->fetchObject(); - - $numberOfEntries = $row->countid; - $theValue = null; - if ($numberOfEntries == 1) { - $theValue = $row->setting; - } - return $theValue; - } private function deletelogo() { $pdo = $this->dbutils->openDbAndReturnPdo(); @@ -1747,16 +1574,24 @@ class Admin { function changepassword($userid,$password) { $pdo = DbUtils::openDbAndReturnPdoStatic(); - $sql = "SELECT count(id) as countid, is_admin FROM %user% WHERE active='1' AND id=?"; + $sql = "SELECT count(id) as countid FROM %user% WHERE active='1' AND id=?"; $stmt = $pdo->prepare(DbUtils::substTableAlias($sql)); $stmt->execute(array($userid)); $row = $stmt->fetchObject(); - $userToChgPassIsAdm = false; - if ($row->countid == 1) { - if ($row->is_admin == 1) { - $userToChgPassIsAdm = true; - } + if ($row->countid == 0) { + echo json_encode("ERROR"); + return; } + $sql = "SELECT is_admin FROM %user% WHERE active='1' AND id=?"; + $stmt = $pdo->prepare(DbUtils::substTableAlias($sql)); + $stmt->execute(array($userid)); + $row = $stmt->fetchObject(); + $userToChgPassIsAdm = false; + + if ($row->is_admin == 1) { + $userToChgPassIsAdm = true; + } + if(session_id() == '') { session_start(); @@ -1830,19 +1665,22 @@ class Admin { $pdo = DbUtils::openDbAndReturnPdoStatic(); $ok = true; - // is old password correct? - $sql = "SELECT count(id) as countid,userpassword FROM %user% WHERE username=? AND active='1'"; + + $sql = "SELECT count(id) as countid FROM %user% WHERE username=? AND active='1'"; + $stmt = $pdo->prepare(DbUtils::substTableAlias($sql)); + $stmt->execute(array($currentuser)); + $row = $stmt->fetchObject(); + if ($row->countid == 0) { + echo json_encode("FAILED"); + return; + } + + $sql = "SELECT userpassword FROM %user% WHERE username=? AND active='1'"; $stmt = $pdo->prepare(DbUtils::substTableAlias($sql)); $stmt->execute(array($currentuser)); $row = $stmt->fetchObject(); - $numberOfEntries = $row->countid; - if ($numberOfEntries == 1) { - if ($row->userpassword != $oldp_hash) { - $ok = false; - } - } else { - // user not found + if ($row->userpassword != $oldp_hash) { $ok = false; } @@ -1983,10 +1821,15 @@ class Admin { } private function getAllTablesToBackupRestore() { - return array("log","closing","logo","printjobs","ratings","work","payment","room","resttables","tablepos","tablemaps","pricelevel","prodtype","products","config", + return array("closing","logo","printjobs","ratings","work","payment","room","resttables","tablepos","tablemaps","pricelevel","prodtype","products","config", "user","reservations","bill","queue","billproducts","comments","histprod","histconfig","histuser","histactions","hist","extras","extrasprods","queueextras"); } + private function getAllWithLogsTablesToBackupRestore() { + return array("log","closing","logo","printjobs","ratings","work","payment","room","resttables","tablepos","tablemaps","pricelevel","prodtype","products","config", + "user","reservations","bill","queue","billproducts","comments","histprod","histconfig","histuser","histactions","hist","extras","extrasprods","queueextras"); + } + public function backup($theType,$remoteaccesscode) { date_default_timezone_set(DbUtils::getTimeZone()); $nowtime = date('Y-m-d'); @@ -1995,15 +1838,13 @@ class Admin { $pdo = DButils::openDbAndReturnPdoStatic(); if ($theType == "auto") { - $sql = "SELECT count(id) as number,setting FROM %config% WHERE name=?"; - $stmt = $pdo->prepare(DbUtils::substTableAlias($sql)); - $stmt->execute(array("remoteaccesscode")); - $row = $stmt->fetchObject(); - if ($row->number == 0) { + $code = CommonUtils::getConfigValue($pdo, 'remoteaccesscode', null); + + if (is_null($code)) { echo "No remote access code available - backup not allowed"; return; } - $code = $row->setting; + if (is_null($code) || (trim($code) == "")) { echo "No remote access code set - backup not allowed"; return; @@ -2021,13 +1862,18 @@ class Admin { $fileName = "backup-" . $version . "_" . $nowtime . "-configuration.json"; if ($theType == "all") { $fileName = "backup-" . $version . "_" . $nowtime . "-all.json"; + } else if ($theType == "alllogs") { + $fileName = "backup-" . $version . "_" . $nowtime . "-all-logs.json"; } if ($theType == "configuration") { $tables = $this->getConfigTablesToBackupRestore(); - } else { + } else if (($theType == "all") || ($theType == "auto")) { HistFiller::insertSaveHistEntry($pdo); $tables = $this->getAllTablesToBackupRestore(); + } else { + HistFiller::insertSaveHistEntry($pdo); + $tables = $this->getAllWithLogsTablesToBackupRestore(); } $binaryFields = array("signature","img","setting","content"); @@ -2083,9 +1929,9 @@ class Admin { } private function restore() { - ini_set('memory_limit', '1000M'); - set_time_limit(60*5); - + ini_set('memory_limit', '60000M'); + set_time_limit(60*10); + if ($_FILES['userfile']['error'] != UPLOAD_ERR_OK //checks for errors && is_uploaded_file($_FILES['userfile']['tmp_name'])) { //checks that file is uploaded header("Location: ../infopage.html?e=manager.html=Kann_Datei_nicht_laden."); @@ -2161,7 +2007,10 @@ class Admin { $sql = "INSERT INTO $tablename ($colstr) VALUES ($queststr)"; $stmt = $pdo->prepare($this->dbutils->resolveTablenamesInSqlString($sql)); - $stmt->execute($vals); + try { + $stmt->execute($vals); + } catch (Exception $e) { + } } if ($table['table'] == "bill") { diff --git a/webapp/php/bill.php b/webapp/php/bill.php index 8dc7711..0a7f952 100644 --- a/webapp/php/bill.php +++ b/webapp/php/bill.php @@ -617,12 +617,9 @@ class Bill { $currentTime = date('Y-m-d H:i:s'); // check if stornocode is correct - $sql = "SELECT count(id) as countid,setting FROM %config% WHERE name='stornocode'"; - $stmt = $pdo->prepare($this->dbutils->resolveTablenamesInSqlString($sql)); - $stmt->execute(); - $row = $stmt->fetchObject(); - $numberOfVals = $row->countid; - if ($numberOfVals != 1) { + $stornocodeInDb = CommonUtils::getConfigValue($pdo, 'stornocode', null); + + if (is_null($stornocodeInDb)) { // stornocode not fixed if ($doEcho) { echo json_encode(array("status" => "ERROR", "code" => ERROR_BILL_NOT_STORNO_CODE, "msg" => ERROR_BILL_NOT_STORNO_CODE_MSG)); @@ -630,8 +627,6 @@ class Bill { return false; } - $stornocodeInDb = $row->setting; - if ($checkStornoCode) { if ($stornocode != $stornocodeInDb) { if ($doEcho) { @@ -780,15 +775,14 @@ class Bill { private function autoBackupPdfSummary($remoteaccesscode) { $pdo = DbUtils::openDbAndReturnPdoStatic(); - $sql = "SELECT count(id) as number,setting FROM %config% WHERE name=?"; - $stmt = $pdo->prepare(DbUtils::substTableAlias($sql)); - $stmt->execute(array("remoteaccesscode")); - $row = $stmt->fetchObject(); - if ($row->number == 0) { + + $code = CommonUtils::getConfigValue($pdo, 'remoteaccesscode', null); + + if (is_null($code)) { echo "No remote access code available - backup not allowed"; return; } - $code = $row->setting; + if (is_null($code) || (trim($code) == "")) { echo "No remote access code set - backup not allowed"; return; diff --git a/webapp/php/closing.php b/webapp/php/closing.php index aa59d14..adbb761 100644 --- a/webapp/php/closing.php +++ b/webapp/php/closing.php @@ -210,7 +210,15 @@ echo json_encode(array("status" => "OK", "msg" => $content)); } private function getSumOfBillsWithClosingId($pdo,$closingid,$onlyBar) { -$sql = "SELECT count(id) as countid,sum(brutto) as billsum FROM %bill% WHERE closingid=?"; +$sql = "SELECT count(id) as countid FROM %bill% WHERE closingid=?"; +$stmt = $pdo->prepare(DbUtils::substTableAlias($sql)); +$stmt->execute(array($closingid)); +$row = $stmt->fetchObject(); +if ($row->countid == 0) { +return 0.0; +} + +$sql = "SELECT sum(brutto) as billsum FROM %bill% WHERE closingid=?"; if ($onlyBar) { $sql .= " AND paymentid='1'"; } @@ -218,11 +226,8 @@ $stmt = $pdo->prepare(DbUtils::substTableAlias($sql)); $stmt->execute(array($closingid)); $row = $stmt->fetchObject(); -$numberOfReturns = $row->countid; -$sum = 0.0; -if ($numberOfReturns > 0) { $sum = floatval($row->billsum); -} + return $sum; } diff --git a/webapp/php/commonutils.php b/webapp/php/commonutils.php index dca6591..0c83f91 100644 --- a/webapp/php/commonutils.php +++ b/webapp/php/commonutils.php @@ -286,7 +286,7 @@ class CommonUtils { if ($row->countid == 0) { return $default; } else { - self::getExistingConfigValue($pdo, $item); + return self::getExistingConfigValue($pdo, $item); } } diff --git a/webapp/php/utilities/HistFiller.php b/webapp/php/utilities/HistFiller.php index 0f14b7c..62b1f51 100644 --- a/webapp/php/utilities/HistFiller.php +++ b/webapp/php/utilities/HistFiller.php @@ -96,7 +96,12 @@ class HistFiller { private static function updateOrCreateEntryInHist($pdo,$id,$histaction,$colsInSourceTable,$idInHist,$sourcetable, $histtable,$extraCol,$extraVal) { - + if (!is_null($extraVal)) { + if (strlen($extraVal) > 299) { + $extraVal = substr($extraVal, 0, 299); + } + } + $sql = "SELECT * from %". $sourcetable . "% WHERE id=?"; $stmt = $pdo->prepare(DbUtils::substTableAlias($sql)); $stmt->execute(array($id)); diff --git a/webapp/php/utilities/basedb.php b/webapp/php/utilities/basedb.php index d5fdc26..c1e902b 100644 --- a/webapp/php/utilities/basedb.php +++ b/webapp/php/utilities/basedb.php @@ -576,7 +576,7 @@ class Basedb { `available` INT(2) NOT NULL, `favorite` INT(1) NULL, `audio` VARCHAR ( 150 ) NULL, - `extras` VARCHAR ( 250 ) NULL, + `extras` VARCHAR ( 300 ) NULL, FOREIGN KEY (prodid) REFERENCES %products%(id) ) CHARACTER SET utf8 COLLATE utf8_general_ci ENGINE = InnoDb "; diff --git a/webapp/preferences.html b/webapp/preferences.html index f8f341d..8d8a7fb 100644 --- a/webapp/preferences.html +++ b/webapp/preferences.html @@ -5,7 +5,7 @@ - + diff --git a/webapp/products.html b/webapp/products.html index b39a2b3..40b40d4 100644 --- a/webapp/products.html +++ b/webapp/products.html @@ -7,7 +7,7 @@ - + diff --git a/webapp/rating.html b/webapp/rating.html index adfd669..e078f56 100644 --- a/webapp/rating.html +++ b/webapp/rating.html @@ -7,7 +7,7 @@ - + diff --git a/webapp/reports.html b/webapp/reports.html index 75f172f..fbd09d3 100644 --- a/webapp/reports.html +++ b/webapp/reports.html @@ -7,7 +7,7 @@ - + diff --git a/webapp/reservation.html b/webapp/reservation.html index 1a69417..33f60dc 100644 --- a/webapp/reservation.html +++ b/webapp/reservation.html @@ -5,7 +5,7 @@ - + diff --git a/webapp/supplydesk.html b/webapp/supplydesk.html index 27c23cc..a0bb0ce 100644 --- a/webapp/supplydesk.html +++ b/webapp/supplydesk.html @@ -5,7 +5,7 @@ - + diff --git a/webapp/waiter.html b/webapp/waiter.html index 9e7f706..d228719 100644 --- a/webapp/waiter.html +++ b/webapp/waiter.html @@ -4,7 +4,7 @@ - + diff --git a/webapp/waiterdesktop.php b/webapp/waiterdesktop.php index 990941e..be7018d 100644 --- a/webapp/waiterdesktop.php +++ b/webapp/waiterdesktop.php @@ -26,7 +26,7 @@ +function sendNewOrders(b){var a=getTableid();if(neworders.length!=0){var c={tableid:a,prods:neworders,print:(b?1:0),payprinttype:"s"};doAjax("POST","php/contenthandler.php?module=queue&command=addProductListToQueue",c,handleSentNewOrders,"Fehler bei Produktversand",false)}else{alert("Es sind keine Produkte ausgewählt worden.")}}function handleSentNewOrders(a){if(a.status!="OK"){alert("Es ist ein Fehler beim Versenden der Bestellung aufgetreten")}else{neworders=[];$("#search").val("");refreshGui()}}function refreshGui(){requestRoomInformation();clearProductsSelection();requestProdInformation();requestOrderedInformation();displayPanels()}function getTableid(){if(selectedroomindex!==null){if(selectedroomindex<0){return 0}else{if(selectedtableindex!==null){var a=roominfo.roomstables[selectedroomindex].tables[selectedtableindex];return a.id}else{return 0}}}}function enableSendButton(){}function disableSendButton(){}function moveItems(){$("#selectiondialog").dialog({autoOpen:false,modal:true,height:400,buttons:{Abbrechen:function(){$(this).dialog("close")}}});var a=getRoomsForDialog();$("#selectiondialog").html(a);$("#selectiondialog").dialog("open");$(".ui-dialog-buttonset .ui-button").css("background-color","#44ff44");$(".ui-widget-header").css("background-color","#ff4400");bindMoveItemsRoom()}function bindMoveItemsRoom(){$(".roomchangeitem").off("click").on("click",function(c){c.stopImmediatePropagation();c.preventDefault();var b=parseInt(this.id.split("_")[1]);var a=getTablesForDialog(b);$("#selectiondialog").dialog("open");$("#selectiondialog").html(a);bindMoveItemsTable(b)})}function bindRightButtons(){$("#sendNewOrders").off("click").on("click",function(a){a.stopImmediatePropagation();a.preventDefault();sendNewOrders(false)});$("#paydeskbtn").off("click").on("click",function(a){a.stopImmediatePropagation();a.preventDefault();if(neworders.length>0){if(waitergopayprint==1){sendNewOrders(true)}else{sendNewOrders(false)}}goPayDesk()});$("#workbtn").off("click").on("click",function(a){if(neworders.length>0){sendNewOrders(true)}});$("#goorderbtn").off("click").on("click",function(a){a.stopImmediatePropagation();a.preventDefault();goOrderDesk()});$("#mainmenudlg").dialog({autoOpen:false,modal:true});$("#changetablebtn").off("click").on("click",function(a){a.stopImmediatePropagation();a.preventDefault();moveItems()})}function bindMoveItemsTable(a){$(".tablechangeitem").off("click").on("click",function(c){c.stopImmediatePropagation();c.preventDefault();moveToRoomIndex=a;var b=parseInt(this.id.split("_")[1]);var d=roominfo.roomstables[a].tables[b];moveToTableId=d.id;if(selectedroomindex!="-1"){var d=roominfo.roomstables[selectedroomindex].tables[selectedtableindex];moveFromTableId=d.id;$("#selectiondialog").dialog("close");doAjax("GET","php/contenthandler.php?module=queue&command=getProdsForTableChange",{tableId:moveFromTableId},insertProductsToChangeTableDlg,null,true)}else{$("#selectiondialog").dialog("close")}})}function insertProductsToChangeTableDlg(a){if(a.status!="OK"){alert("Fehler");return}prodsToMove=a.msg;allselected=1;updateProdToMoveList();$("#selectallnothing").off("click").on("click",function(d){d.stopImmediatePropagation();d.preventDefault();allselected=1-allselected;for(var c=0;c"+c.productname+b+"";a+="
  • "+f+"
  • "}$("#productsToMoveList").html(a);$("#moveItemdslg").dialog({autoOpen:false,modal:true,height:600,width:800,buttons:{Abbrechen:function(){$(this).dialog("close")},Verschieben:function(){$(this).dialog("close");doMoveItems()}}});$("#moveItemdslg").dialog("open");handleClickOnMoveableProd()}function handleClickOnMoveableProd(){$(".prodToMoveEl").off("click").on("click",function(d){d.stopImmediatePropagation();d.preventDefault();var b=this.id.split("_")[1];var a=prodsToMove[b];var c=a["class"];if(c=="unselecteditem"){a["class"]="selecteditem"}else{a["class"]="unselecteditem"}updateProdToMoveList()})}function doMoveItems(){$("#moveItemdslg").dialog("close");var a=[];for(var e=0;e'+d.name+"
    "}else{a+='
    '+d.name+"
    "}});var c=roominfo.takeawayprice.replace(".",decpoint)+" "+currency;if(c!=""){c='
    '+c+"
    "}if(selectedroomindex<0){a+='
    ';a+='
    Zum Mitnehmen
    ';a+=c;a+="
    "}else{a+='
    ';a+='
    Zum Mitnehmen
    ';a+=c;a+="
    "}$("#roompanel").html(a);$("#tablepanelcontent").html("");showRoomTableTextInfo();showTablesForRoomIndex();bindingRoom()}function getRoomsForDialog(){var b=roominfo.roomstables;var a="";$.each(b,function(d,c){a+='
    '+c.name+"
    "});return a}function bindingRoom(){$(".roomitem").off("click").on("click",function(b){b.stopImmediatePropagation();b.preventDefault();var a=parseInt(this.id.split("_")[1]);$("#changetablebtn").hide();if(panelMode=="waiter"){if(neworders.length>0){$("#unsentorderdlg").dialog({autoOpen:false,modal:true,height:400,buttons:{Nein:function(){$(this).dialog("close")},Ja:function(){$(this).dialog("close");discardChangeRoom(a)}}});$("#unsentorderdlg").dialog("open")}else{changeRoom(a);if(selectedroomindex=="-1"){startProductDisplay()}}}else{changeRoom(a);goPayDesk()}})}function discardChangeRoom(a){neworders=[];groupedNewOrders=null;showNewOrders();changeRoom(a)}function changeRoom(a){clearProductsSelection();selectedtableindex=null;selectedroomindex=a;showRooms()}function showRoomTableTextInfo(){var a="Keine Auswahl";if(selectedroomindex!==null){if(selectedroomindex<0){a="Zum Mitnehmen"}else{a="Raum: "+roominfo.roomstables[selectedroomindex].name;if(selectedtableindex!==null){var b=roominfo.roomstables[selectedroomindex].tables[selectedtableindex];a+=" - Tisch: "+b.name}}}$("#location").html(a)}function showTablesForRoomIndex(){if((selectedroomindex>=0)&&(selectedroomindex!==null)){var b=roominfo.roomstables[selectedroomindex].tables;var a="";$.each(b,function(d,e){if((selectedtableindex!=null)&&(b[selectedtableindex].id==e.id)){a+='
    '}else{a+='
    '}a+='
    '+e.name+"
    ";var f=e.pricesum;if(f!=0){var c=f.replace(".",decpoint)+" "+currency;a+='
    '+c+"
    "}a+="
    "});$("#tablepanelcontent").html(a)}else{$("#tablepanelcontent").html("")}bindingTable()}function getTablesForDialog(b){var c=roominfo.roomstables[b].tables;var a="";$.each(c,function(d,e){a+='
    '+e.name+"
    "});return a}function bindingTable(){$(".tableitem").off("click").on("click",function(b){b.stopImmediatePropagation();b.preventDefault();var a=parseInt(this.id.split("_")[1]);if(panelMode=="waiter"){$("#changetablebtn").show();if(neworders.length>0){$("#unsentorderdlg").dialog({autoOpen:false,modal:true,height:400,buttons:{Nein:function(){$(this).dialog("close")},Ja:function(){$(this).dialog("close");discardChangeTable(a)}}});$("#unsentorderdlg").dialog("open")}else{changeTable(a);startProductDisplay()}}else{changeTable(a);goPayDesk()}})}function discardChangeTable(a){neworders=[];groupedNewOrders=null;showNewOrders();changeTable(a)}function changeTable(a){selectedtableindex=a;showRoomTableTextInfo();showTablesForRoomIndex()}function startProductDisplay(){selectedtypeid=null;selectedprodid=null;clearProductsSelection();requestProdInformation();requestOrderedInformation();$("#search").val("");$("#searchpanel").show();$("#remarkpanel").show()}function clearProductsSelection(){neworders=[];groupedNewOrders=[];selectedtypeid=null;$("#groupchain").html("");$("#groupchoice").html("");$("#productspanel").html("");$("#remark").val("");$("#neworders").html("");$("#ordered").html("");$("#searchpanel").hide();$("#remarkpanel").hide()}var allOrderdItems=[];function requestOrderedInformation(){if(panelMode!="waiter"){return}var a=0;if(selectedroomindex!="-1"){var b=roominfo.roomstables[selectedroomindex].tables[selectedtableindex];a=b.id}doAjax("GET","php/contenthandler.php?module=queue&command=getJsonLongNamesOfProdsForTableNotDelivered&tableid="+a,null,insertOrderedInformation,true)}function insertOrderedInformation_old(b){var a="";$.each(b,function(c,d){a+='
    '+d.longname+"
    "});$("#ordered").html(a)}function insertOrderedInformation(b){allOrderdItems=b;var c=new Grouping(b,createTxtAssignedProd);c.group();var a="";a+=c.outputList(createListElOfAssignedProd);$("#ordered").html(a);bindOrderedItem()}function createTxtAssignedProd(d){var b="";if(d.option!=""){b="

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

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

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

    "}else{a+='
    '+c.name+"
    "}})}$("#groupchoice").html(a);showChain();bindType()}function bindType(){$(".groupitemchoice").off("click").on("click",function(a){a.stopImmediatePropagation();a.preventDefault();$("#search").val("");selectedtypeid=parseInt(this.id.split("_")[1]);updateProductInfoDisplay()})}function showAllProdsToChoose(){var a="";if((selectedroomindex=="-1")||(selectedtableindex!=null)){var b=getAllProds(productFilter);$.each(b,function(c,d){a+='
    '+d.name;if((d.amount!="null")&&(d.amount<11)){a+=" ("+W_ONLY[lang]+" "+d.amount+")"}a+="
    "})}$("#productspanel").html(a);bindProduct()}function getTypeChain(){var b=getType(selectedtypeid);if(b==null){return[]}var d=[b];var c=false;while(!c){var a=b.ref;if((a==null)||(a==0)){c=true;break}else{b=getType(a);d[d.length]=b}}return d}function showChain(){var a="";if((selectedroomindex=="-1")||(selectedtableindex!=null)){var d=getTypeChain();a+='
    Auswahl
    ';for(var c=d.length-1;c>=0;c--){var b=d[c];a+='
    '+b.name+"
    "}}$("#groupchain").html(a);bindChain();bindSearch()}function bindChain(){$(".groupitem").off("click").on("click",function(a){a.stopImmediatePropagation();a.preventDefault();selectedtypeid=parseInt(this.id.split("_")[1]);if(selectedtypeid=="-1"){selectedtypeid=null}updateProductInfoDisplay();$("#search").val("")})}function bindSearch(){$("#search").off("keyup").on("keyup",function(a){a.stopImmediatePropagation();a.preventDefault();productFilter=($("#search").val().trim().toLowerCase()).trim();if(productFilter==""){productFilter=null}showAllProdsToChoose()})}function bindProduct(){$(".productitem").off("click").on("click",function(d){d.stopImmediatePropagation();d.preventDefault();$("#search").val("");selectedprodid=parseInt(this.id.split("_")[1]);var c=$("#remark").val();var a=getProdEntry(selectedprodid);var b=a.extras;if((b!=null)&&(b.length>0)){showExtras(a,c)}else{addProductToNewOrders(selectedprodid,c,null,"NO",0)}})}function getProdEntry(c){var a=productInformation.prods;for(var b=0;b0){b+="

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

    "+toHtml(h)+"

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


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