diff --git a/javaprinter/readme.txt b/javaprinter/readme.txt new file mode 100644 index 0000000..032621e --- /dev/null +++ b/javaprinter/readme.txt @@ -0,0 +1,27 @@ +Funktion: +========= +Der Javaprinter ist eine Alternative zum Windows-Printer. In der Standardconfiguration scant er alle USB-Ports und greift sich den ersten Drucker, den er +finden kann. Alle Druckjobtypen werden auf diesem einen Drucker ausgegeben. Es ist wichtig, dass der Drucker angeschlossen und eingeschaltet wurde, +bevor der java-printer gestartet wurde. Stimmte die Reihenfolge nicht, so hilft ein kurzes Abziehen und Wiederanstecken des USB-Kabels. + + +Installation: +============= +Wichtig sind zwei Komponenten: + - javaprinter.jar + die dazugehörigen Libs im entsprechenden Unterordner und + - eine Konfigurationsdatei (eine Standardkonfigurationsdatei mit dem Namen config.json liegt bei) + +Aufruf: +======= +Der Aufruf vom Javaprinter geschieht über die Kommandozeile + +java -jar javaprinter.jar /Pfad/zur/config.json. + +In der Konfigurationsdatei können unter anderem folgende Parameter gesetzt werden: +- printersize: maximale Anzahl der Zeichen pro Zeile, die der Drucker ausgeben kann +- printcode: Printcode, wie in der Verwaltungsoberfläche vom OrderSprinter angegeben ist. Wurde kein Printcode vergeben, können keine Druckjobs ausgegeben werden. +- logoscale: Skalierung des Logos auf dem Kassenbon. Mit diesem Wert kann die Abbildung vergrößert oder verkleiner werden. +- baseurl: Basis-Webadresse des Webservers auf dem OrderSprinter läuft (z.B. http://www.mein-restaurant.de/ordersprinter) +- baseusername und basepass: Ist der OrderSprinter-Webserver über BasicAuthentication geschützt, so können hier Benutzername und Passwort angegeben werden. +- smallformat: 1 bedeutet, dass weniger Leerzeilen gedruckt werden +- forreceiptprinters: Angabe der Drucker, für die die Bondrucks entgegen genommen werden sollen diff --git a/printserver/OrderSprinterPrintserver.exe b/printserver/OrderSprinterPrintserver.exe index 0a46e44..1d15123 100644 Binary files a/printserver/OrderSprinterPrintserver.exe and b/printserver/OrderSprinterPrintserver.exe differ diff --git a/webapp/OrderSprinterPrintserver.exe b/webapp/OrderSprinterPrintserver.exe index 0a46e44..1d15123 100644 Binary files a/webapp/OrderSprinterPrintserver.exe and b/webapp/OrderSprinterPrintserver.exe differ diff --git a/webapp/bar.html b/webapp/bar.html index 37161d3..f2c7544 100644 --- a/webapp/bar.html +++ b/webapp/bar.html @@ -5,7 +5,7 @@ - + diff --git a/webapp/bill.html b/webapp/bill.html index 98e2c03..636722c 100644 --- a/webapp/bill.html +++ b/webapp/bill.html @@ -5,7 +5,7 @@ - + diff --git a/webapp/feedback.html b/webapp/feedback.html index 5ad16d8..2d69439 100644 --- a/webapp/feedback.html +++ b/webapp/feedback.html @@ -4,7 +4,7 @@ - + diff --git a/webapp/index.html b/webapp/index.html index 438dcff..bc27043 100644 --- a/webapp/index.html +++ b/webapp/index.html @@ -7,8 +7,8 @@ - - + + diff --git a/webapp/install.html b/webapp/install.html index f680bf0..3956a3f 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 df51bd2..b7edf55 100644 --- a/webapp/install/installer.php +++ b/webapp/install/installer.php @@ -844,6 +844,18 @@ $ret &= $this->setVersion($prefix, '1.1.14'); return $ret; } +function updateUserTable1114_1115($prefix,$version) { +$ret = true; +if ($version != "1.1.14") { +$ret = $this->updateUserTable1113_1114($prefix,$version); +if (!$ret) { +return false; +} +} +$ret &= $this->setVersion($prefix, '1.1.15'); +return $ret; +} + function setVersion($prefix,$theVersion) { $pdo = $this->pdo; try { @@ -915,7 +927,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.1.14')"); +$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'version', '1.1.15')"); $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')"); @@ -1288,7 +1300,7 @@ return; $supportedVersions = array("1.0.22","1.0.23","1.0.24","1.0.25","1.0.26","1.0.27","1.0.28","1.0.29", "1.0.30","1.0.31","1.0.32","1.0.33","1.0.34","1.0.35","1.0.36","1.0.37","1.0.38","1.0.39", "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.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" ); if (!in_array($version, $supportedVersions)) { @@ -1296,7 +1308,7 @@ echo json_encode("Quellversion nicht unterstützt"); return; } -$ret = $admin->updateUserTable1113_1114($_POST['prefix'], $version); +$ret = $admin->updateUserTable1114_1115($_POST['prefix'], $version); if(session_id() == '') { session_start(); diff --git a/webapp/kitchen.html b/webapp/kitchen.html index 5504b7d..b65cba0 100644 --- a/webapp/kitchen.html +++ b/webapp/kitchen.html @@ -5,7 +5,7 @@ - + diff --git a/webapp/manager.html b/webapp/manager.html index 2bea823..8b8bbc3 100644 --- a/webapp/manager.html +++ b/webapp/manager.html @@ -5,7 +5,7 @@ - + @@ -243,11 +243,20 @@ var MAN_BILLSUMCASH = ["Ein-/Auslagen","Cash inserts","Entradas"]; var MAN_SIZE_NORMAL = ["normal","normal","normal"]; var MAN_SIZE_BIG = ["groß","big","grande"]; +var MAN_UNPAID1 = ["Es wurden folgende Tische noch nicht abgerechnet: ", + "These tables have unpaid products: ", + "Estas mesas tienen productos que no son pagados: "]; +var MAN_UNPAID2 = ["Soll die Tageserfassung vorgenommen werden? In diesem Fall wird die Tisch-Zuweisung der unbezahlten Artikel gelöscht!", + "Do you want to continue create the closing? In this case these products will be unassigned from the tables!", + "Quieres continuar y removar estos productos?"]; + var lang = 0; var generalVals = [12,2,0,3,0,1,1,0,0,1]; var numberOfClosings = 0; +var unpaidTables = ""; + var generalValuesSettings = [ ["usstval","MwSt","i",2,"Mehrwertsteuer ist kein Zahlenwert"], ["togotaxval","ToGo-MwSt","i",2,"Togo-Mehrwertsteuer ist kein Zahlenwert"], @@ -684,8 +693,21 @@ function reactOnConfigChange(result) { $(document).ready(function() { $.ajaxSetup({ cache: false }); + requestUnpaidTables(); + var refreshId = setInterval(function() { + requestUnpaidTables(); + }, 5000); }); +function requestUnpaidTables() { + doAjaxAsync("GET","php/contenthandler.php?module=queue&command=getUnpaidTables",null,insertUnpaidTables,null); +} + +function insertUnpaidTables(answer) { + if (answer.status == "OK") { + unpaidTables = answer.msg; + } +} function areYouSure(text1, text2, button, callback) { $("#sure .sure-1").text(text1); @@ -701,14 +723,26 @@ function isNumeric(n) { return !isNaN(parseFloat(n)) && isFinite(n); } +function startCreateClosing(remark) { + if (unpaidTables.length == "") { + doAjax("POST","php/contenthandler.php?module=closing&command=createClosing",{ remark: remark },createClosing,"Tagesabschluss"); + } else { + + + areYouSure("Tageserfassung", MAN_UNPAID1[lang] + unpaidTables + ". " + MAN_UNPAID2[lang], MAN_YES[lang], function() { + doAjax("POST","php/contenthandler.php?module=closing&command=createClosing",{ remark: remark },createClosing,"Tagesabschluss"); + }); + } +} + + function binding() { $("#createclosing").off("click").on("click", function (e) { var remarkText =$('#remarkfield').val(); $('#remarkfield').val(""); var filteredRemark = remarkText.replace(/\f/g,"").replace(/\n/g,"").replace(/\r/g,"").replace(/\t/g,"").replace(/\v/g,""); - - doAjax("POST","php/contenthandler.php?module=closing&command=createClosing",{ remark: filteredRemark },createClosing,"Tagesabschluss"); + startCreateClosing(filteredRemark); }); $(".csvExportButton").off("click").on("click", function (e) { diff --git a/webapp/paydesk.html b/webapp/paydesk.html index b7d7c12..02bdd89 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 4f17b66..6ac1b41 100644 --- a/webapp/php/admin.php +++ b/webapp/php/admin.php @@ -1108,19 +1108,19 @@ class Admin { $right_rating = $_SESSION['right_rating']; if (!self::isOnlyRatingUser($rights, $right_rating, true)) { - if ($_SESSION['right_waiter']) { $mainMenu[] = array("name" => $waitertxt[$lang], "link" => "waiter.html?v=1.1.14"); }; - if ($_SESSION['right_kitchen']) { $mainMenu[] = array("name" => $kitchentxt[$lang], "link" => "kitchen.html?v=1.1.14"); }; - if ($_SESSION['right_bar']) { $mainMenu[] = array("name" => "Bar", "link" => "bar.html?v=1.1.14"); }; - if ($_SESSION['right_supply']) { $mainMenu[] = array("name" => $supplytxt[$lang], "link" => "supplydesk.html?v=1.1.14"); }; + if ($_SESSION['right_waiter']) { $mainMenu[] = array("name" => $waitertxt[$lang], "link" => "waiter.html?v=1.1.15"); }; + if ($_SESSION['right_kitchen']) { $mainMenu[] = array("name" => $kitchentxt[$lang], "link" => "kitchen.html?v=1.1.15"); }; + if ($_SESSION['right_bar']) { $mainMenu[] = array("name" => "Bar", "link" => "bar.html?v=1.1.15"); }; + if ($_SESSION['right_supply']) { $mainMenu[] = array("name" => $supplytxt[$lang], "link" => "supplydesk.html?v=1.1.15"); }; if ($_SESSION['right_paydesk']) { $mainMenu[] = array("name" => $paydesktxt[$lang], "link" => "paydesk.html"); }; - if ($_SESSION['right_statistics']) { $mainMenu[] = array("name" => $stattxt[$lang], "link" => "reports.html?v=1.1.14"); }; - if ($_SESSION['right_bill']) { $mainMenu[] = array("name" => $bontxt[$lang], "link" => "bill.html?v=1.1.14"); }; - if ($_SESSION['right_products']) { $mainMenu[] = array("name" => $prodtxt[$lang], "link" => "products.html?v=1.1.14"); }; - if ($_SESSION['right_reservation']) { $mainMenu[] = array("name" => $restxt[$lang], "link" => "reservation.html?v=1.1.14"); }; - if ($_SESSION['right_rating']) { $mainMenu[] = array("name" => $ratingtxt[$lang], "link" => "rating.html?v=1.1.14"); }; - if ($_SESSION['right_manager'] || $_SESSION['is_admin']) { $mainMenu[] = array("name" => $admintxt[$lang], "link" => "manager.html?v=1.1.14"); }; - $mainMenu[] = array("name" => $settingtxt[$lang], "link" => "preferences.html?v=1.1.14"); - $mainMenu[] = array("name" => "Feedback", "link" => "feedback.html?v=1.1.14"); + if ($_SESSION['right_statistics']) { $mainMenu[] = array("name" => $stattxt[$lang], "link" => "reports.html?v=1.1.15"); }; + if ($_SESSION['right_bill']) { $mainMenu[] = array("name" => $bontxt[$lang], "link" => "bill.html?v=1.1.15"); }; + if ($_SESSION['right_products']) { $mainMenu[] = array("name" => $prodtxt[$lang], "link" => "products.html?v=1.1.15"); }; + if ($_SESSION['right_reservation']) { $mainMenu[] = array("name" => $restxt[$lang], "link" => "reservation.html?v=1.1.15"); }; + if ($_SESSION['right_rating']) { $mainMenu[] = array("name" => $ratingtxt[$lang], "link" => "rating.html?v=1.1.15"); }; + if ($_SESSION['right_manager'] || $_SESSION['is_admin']) { $mainMenu[] = array("name" => $admintxt[$lang], "link" => "manager.html?v=1.1.15"); }; + $mainMenu[] = array("name" => $settingtxt[$lang], "link" => "preferences.html?v=1.1.15"); + $mainMenu[] = array("name" => "Feedback", "link" => "feedback.html?v=1.1.15"); } $mainMenu[] = array("name" => $logout[$lang], "link" => "logout.php"); @@ -1129,7 +1129,7 @@ class Admin { $waiterMessage = $this->getMessage(null, "waitermessage"); } // CAUTION: change version also in config.txt!!! - $mainMenuAndVersion = array ("version" => "OrderSprinter 1.1.14", + $mainMenuAndVersion = array ("version" => "OrderSprinter 1.1.15", "user" => $currentUser, "menu" => $mainMenu, "waitermessage" => $waiterMessage, diff --git a/webapp/php/config.php b/webapp/php/config.php old mode 100644 new mode 100755 diff --git a/webapp/php/queuecontent.php b/webapp/php/queuecontent.php index ec7ae85..2f84fd2 100644 --- a/webapp/php/queuecontent.php +++ b/webapp/php/queuecontent.php @@ -84,6 +84,8 @@ class QueueContent { $this->declareProductNotBeDelivered($_POST['queueid']); } else if ($command == 'getJsonLongNamesOfProdsForTableNotDelivered') { $this->getJsonLongNamesOfProdsForTableNotDelivered($_GET["tableid"]); + } else if ($command == 'getUnpaidTables') { + $this->getUnpaidTables(); } else if ($command == 'getProdsForTableChange') { $this->getProdsForTableChange($_GET['tableId']); } else if ($command == 'changeTable') { @@ -963,6 +965,19 @@ class QueueContent { } } + function getUnpaidTables() { + $pdo = DbUtils::openDbAndReturnPdoStatic(); + $sql = "SELECT DISTINCT %resttables%.tableno as tablename FROM %queue%,%resttables% WHERE paidtime is null AND ordertime is not null and tablenr=%resttables%.id"; + $stmt = $pdo->prepare(DbUtils::substTableAlias($sql)); + $stmt->execute(); + $result = $stmt->fetchAll(); + $unpaidTables = array(); + foreach ($result as $anUnpaidTable) { + $unpaidTables[] = $anUnpaidTable["tablename"]; + } + echo json_encode(array("status" => "OK","msg" => join(",",$unpaidTables))); + } + /* * Return as JSON structure all products that are assigned to a specified table, with the * specification that they are not delivered yet. diff --git a/webapp/preferences.html b/webapp/preferences.html index 4cc8ff3..9645abc 100644 --- a/webapp/preferences.html +++ b/webapp/preferences.html @@ -5,7 +5,7 @@ - + diff --git a/webapp/products.html b/webapp/products.html index 8126502..547197e 100644 --- a/webapp/products.html +++ b/webapp/products.html @@ -7,7 +7,7 @@ - + diff --git a/webapp/rating.html b/webapp/rating.html index 385bdfa..7bf2041 100644 --- a/webapp/rating.html +++ b/webapp/rating.html @@ -7,7 +7,7 @@ - + diff --git a/webapp/reports.html b/webapp/reports.html index 9f73e38..00a04b6 100644 --- a/webapp/reports.html +++ b/webapp/reports.html @@ -7,7 +7,7 @@ - + diff --git a/webapp/reservation.html b/webapp/reservation.html index faf909a..95275ee 100644 --- a/webapp/reservation.html +++ b/webapp/reservation.html @@ -5,7 +5,7 @@ - + diff --git a/webapp/supplydesk.html b/webapp/supplydesk.html index fcb3b94..efe642e 100644 --- a/webapp/supplydesk.html +++ b/webapp/supplydesk.html @@ -5,7 +5,7 @@ - + diff --git a/webapp/waiter.html b/webapp/waiter.html index 78611cc..b484e5b 100644 --- a/webapp/waiter.html +++ b/webapp/waiter.html @@ -4,7 +4,7 @@ - +