OrderSprinter 1.2.6

This commit is contained in:
Geno 2020-11-19 23:00:09 +01:00
parent 6097495d8d
commit 80221f90c7
51 changed files with 33920 additions and 184 deletions

Binary file not shown.

View File

@ -5,7 +5,7 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="author" content="Stefan Pichel">
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.2.5">
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.2.6">
<link rel="stylesheet" href="php/3rdparty/orderstyle/orderstyle.min.css" />
<link rel="stylesheet" href="php/3rdparty/orderstyle/jquery.mobile.icons.min.css" />

File diff suppressed because one or more lines are too long

1
webapp/css/actpanel.css Normal file
View File

@ -0,0 +1 @@
#actmenudlg{display:-webkit-flex;display:flex;-webkit-flex-flow:row wrap;flex-flow:row wrap;font-weight:bold;text-align:center;border:2px solid #73ad21;background-color:#ddd}#actmenudlg>*{padding:10px;flex:1 100%}#actprodinfo{background:coral}#actcounttogo,#actdiscount,#actremark,#actprice{display:-webkit-flex;display:flex;-webkit-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-align-items:stretch;align-items:stretch}.actbtn{background-color:#ff0;margin:10px;height:20px;width:100px;border-radius:4px;border:2px solid #73ad21;padding:20px;color:black;font-weight:bold;text-align:center;-webkit-justify-content:center;justify-content:center;box-shadow:10px 10px 5px #888}.actbtn_notclickable{background-color:#ff0;margin:10px;height:20px;width:100px;border-radius:4px;border:2px solid #73ad21;padding:20px;color:black;font-weight:bold;text-align:center;box-shadow:10px 10px 5px #888}

View File

@ -0,0 +1 @@
#selectiondialog{height:400;border:2px solid #73ad21}.extraschoice{list-style-type:none;padding:0;border:1px solid #ddd}.extraitem{padding:8px 16px;border-bottom:1px solid #ddd;background-color:white;height:40px;font-size:16px;font-weight:bold}.extraitem:last-child{border-bottom:0}.extraitemselected{padding:8px 16px;border-bottom:1px solid #ddd;background-color:#0f0;height:40px;font-size:16px;font-weight:bold}.extraitemselected:last-child{border-bottom:0}.uiextrabutton{background-color:#4caf50;border:0;color:white;padding:15px 32px;text-align:center;text-decoration:none;display:inline-block;font-size:16px}

1
webapp/css/groupitem.css Normal file
View File

@ -0,0 +1 @@
.groupitem{display:-webkit-flex;display:flex;-webkit-flex-flow:row wrap;flex-flow:row wrap;text-align:center;color:white;background-color:Gray;width:100px;height:30px;margin:10px;border:2px solid;border-top-right-radius:2em;border-bottom-right-radius:2em;padding:20px;color:black;font-weight:bold;text-align:center;box-shadow:10px 10px 5px #888}.groupitemchoice{background-color:#ffece4;width:100px;height:30px;margin:10px;border-radius:2px;border:2px solid #73ad21;padding:20px;color:black;font-weight:bold;text-align:center;box-shadow:10px 10px 5px #888}.groupitemchoiceselected{background-color:#ddece4;width:100px;height:30px;margin:10px;border-radius:2px;border:2px solid red;padding:20px;color:black;font-weight:bold;text-align:center;box-shadow:10px 10px 5px #888}

View File

@ -0,0 +1 @@
.grouppanel{display:-webkit-flex;display:flex;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-wrap:wrap;flex-flow:wrap;background-color:lightgrey}

View File

@ -1,30 +1 @@
@CHARSET "UTF-8";
.numfield {
border-radius:25px;
background: #bbbbbb;
padding: 10px;
border-style: solid;
border-color: green;
width: 280px;
border-spacing: 5px;
}
.numfield td {
border-radius: 15px;
background: #eeeeee;
padding: 10px;
border-style: solid;
border-color: black;
font-size: 30px;
text-align: center;
color: black;
}
.numfield td:hover {
background: #999999;
}
.numfield td.numnav {
color:red;
}
@charset "UTF-8";.numfield{border-radius:25px;background:#bbb;padding:10px;border-style:solid;border-color:green;width:280px;border-spacing:5px}.numfield td{border-radius:15px;background:#eee;padding:10px;border-style:solid;border-color:black;font-size:30px;text-align:center;color:black}.numfield td:hover{background:#999}.numfield td.numnav{color:red}

View File

@ -0,0 +1 @@
.ordereditem-container{display:-webkit-flex;display:flex;-webkit-flex-direction:column;flex-direction:column;background-color:lightgrey}.ordereditem-sentcontainer{display:-webkit-flex;display:flex;-webkit-flex-direction:row;flex-direction:row;-webkit-flex-wrap:wrap;flex-wrap:wrap;background-color:lightgrey}.ordereditem-item-new{background-color:cornflowerblue;height:120px;margin:5px;overflow:hidden}.ordereditem-item-sent{background-color:lightsteelblue;height:120px;margin:5px;width:200px;color:black;box-shadow:10px 10px 5px #888;overflow:hidden}.ordereditem-item-sent>*{width:100%}.ordereditem-name{font-weight:bold}#ordereditemdlg{display:-webkit-flex;display:flex;-webkit-flex-flow:row wrap;flex-flow:row wrap;font-weight:bold;text-align:center;border:2px solid #73ad21;background-color:#ddd}#ordereditem-info{width:100%}#orderedcancelpanel{width:100%}#ordereditemdlg>*{padding:10px}#ordereditemcancel{width:140px;background-color:#aaa}#ordereditemremove{background-color:red;width:140px}#ordereditemreorder{width:140px}

1
webapp/css/ospage.css Normal file
View File

@ -0,0 +1 @@
html{overflow-y:scroll}.ospage{display:-webkit-flex;display:flex;-webkit-flex-flow:row wrap;flex-flow:row wrap;text-align:center;color:white}.ospage>*{padding:10px;flex:100%}.main{text-align:left;background:cornflowerblue;-webkit-flex:5;flex:5;-webkit-flex-flow:nowrap;flex-flow:nowrap}.header{background:black}.footer{display:-webkit-flex;display:flex;-webkit-justify-content:center;justify-content:center;-webkit-flex-wrap:row nowrap;flex-flow:row nowrap;background:black;-webkit-align-items:stretch;align-items:stretch}#loggedinuser{text-align:left;width:50%}#versioninfo{text-align:right;color:white;width:50%}.aside1{background:moccasin;color:black;width:0;-webkit-flex:2;flex:2}.aside2{background:violet;-webkit-flex:1;flex:1}@media all and (min-width:400px){.aside1{order:1}.main{order:2}.aside2{order:3}.ordereditem-sentcontainer{order:4}.footer{order:5}}.input100{width:100%;height:50px}.input50{width:49%;height:50px}.inputwhite[type="text"]{background-color:white}.inputwhite[type="submit"]{background-color:white}.inputgreen[type="text"]{background-color:#0f0}.inputgreen[type="submit"]{background-color:#0f0}.infoarea{width:49%;background-color:#afa;color:black;font-weight:bold;font-size:20px;display:-webkit-flex;display:flex;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;align-items:center;border:2px solid red}.mainmenuchoice{list-style-type:none;padding:0;border:1px solid #ddd}.mainmenuitem{padding:8px 16px;border-bottom:1px solid #ddd;background-color:#fff6b5;height:40px;font-size:16px;font-weight:bold}.mainmenuitem:hover{background-color:#eed33f}.extraitem:last-child{border-bottom:0}#loggedinuser{color:black}.buttonarea{box-shadow:10px 10px 5px #888}

1
webapp/css/paypanel.css Normal file
View File

@ -0,0 +1 @@
.paypanel{display:-webkit-flex;display:flex;-webkit-justify-content:left;justify-content:left;-webkit-flex-wrap:row wrap;flex-flow:row wrap;background-color:lightgrey}.payitem{width:100px;height:100px;margin:10px;border-radius:25px;border:2px solid #73ad21;padding-top:20px;padding-left:20px;padding-bottom:0;padding-right:20px;color:black;font-weight:bold;text-align:center;font-size:12px;word-wrap:break-word;white-space:pre-line;overflow:hidden;display:-webkit-flex;display:flex;-webkit-justify-content:center;justify-content:center;-webkit-flex-wrap:row wrap;flex-flow:row wrap;box-shadow:10px 10px 5px #888}.paystillopen{background-color:#ff0}.payallaccounted{background-color:#ddd}#oben{color:black;font-weight:bold;font-size:20px;min-height:100px}#receiptpanel{position:relative;margin:10px auto;padding:0;width:100%;height:auto;border-collapse:collapse;background-color:#ddd;color:black;box-shadow:10px 10px 5px #888;border:2px solid #333}.payitem>*{flex:100%}.payitemmain{height:50px}.payitemaccounted{color:red;font-size:20px;font-weight:bold}.paymentitem{padding:8px 16px;border-bottom:1px solid #ddd;background-color:#ff9;height:40px;font-size:16px;font-weight:bold}.paymentitem:hover{padding:8px 16px;border-bottom:1px solid #ddd;background-color:#ff0;height:40px;font-size:16px;font-weight:bold}.paymentcancel{padding:8px 16px;border-bottom:1px solid #ddd;background-color:red;height:40px;font-size:16px;font-weight:bold}#paybuttonpanel{display:-webkit-flex;display:flex;-webkit-justify-content:center;justify-content:center;-webkit-flex-wrap:row nowrap;flex-flow:row nowrap}#paybuttonpanel>*{flex:100%}.btnswitchon{border:1px solid black;border-left:0;padding:.1em .3em;position:relative}.btnswitchon:before{display:block;content:".";color:transparent;font-size:0;border-left:5px solid green;height:100%;position:absolute;left:0;padding:1px 0;top:-1px;bottom:-1px}.btnswitchoff{border:1px solid black;border-left:0;padding:.1em .3em;position:relative}.btnswitchoff:before{display:block;content:".";color:transparent;font-size:0;border-left:5px solid red;height:100%;position:absolute;left:0;padding:1px 0;top:-1px;bottom:-1px}

View File

@ -0,0 +1 @@
.productspanel{display:-webkit-flex;display:flex;-webkit-justify-content:left;justify-content:left;-webkit-flex-wrap:row wrap;flex-flow:row wrap;background-color:lightgrey}.productitem{background-color:#ff0;width:100px;height:100px;margin:10px;border-radius:25px;border:2px solid #73ad21;padding:20px;color:black;font-weight:bold;text-align:center;box-shadow:10px 10px 5px #888;word-wrap:break-word}

1
webapp/css/roompanel.css Normal file
View File

@ -0,0 +1 @@
.roompanel{display:-webkit-flex;display:flex;-webkit-justify-content:center;justify-content:center;-webkit-flex-wrap:row nowrap;flex-flow:row nowrap;background-color:lightgrey;width:100%;-webkit-align-items:stretch;align-items:stretch}.roomitem{background-color:#fff6b5;height:60px;padding:10px;color:black;font-weight:bold;text-align:center;border:2px solid #aaa;-webkit-flex:1;flex:10;box-shadow:10px 10px 5px #888;word-wrap:break-word}.roomitemselected{background-color:#eee6b5;height:65px;padding:10px;color:black;font-weight:bold;text-align:center;border:2px solid red;-webkit-flex:1;flex:15;box-shadow:10px 10px 5px #888}.roomtogo{display:-webkit-flex;display:flex;-webkit-justify-content:center;justify-content:center;-webkit-flex-wrap:row wrap;flex-flow:row wrap}.roomname{width:100%}.roomtogoaccounted{background:white;color:black;-webkit-flex:1;flex:1;order:2;font-weight:normal}

View File

@ -0,0 +1 @@
.tablepanel{display:-webkit-flex;display:flex;-webkit-flex-flow:row wrap;flex-flow:row wrap;text-align:center;color:white}.tablepanel>*{padding:10px;-webkit-flex-wrap:wrap;flex-flow:wrap}.tablepanelcontent{display:-webkit-flex;display:flex;-webkit-flex-flow:row wrap;flex-flow:row wrap;text-align:center;color:white;-webkit-justify-content:center;justify-content:center}.tablepanelheader{background:black;flex:100%}.tableelement{display:-webkit-flex;display:flex;-webkit-flex-flow:row wrap;flex-flow:row wrap;font-weight:bold;text-align:center;width:100px;height:40px;padding:5px;box-shadow:10px 10px 5px #888}.tableelement>*{flex:1 100%}.tableitem{background-color:LightGreen;color:black;margin:5px;border-radius:15px;border:2px solid #73ad21;font-weight:bold;text-align:center}.tableitemselected{background-color:LightGreen;color:black;border-radius:15px;border:4px solid red;font-weight:bold;text-align:center}.tablename{order:1;padding:0;width:100%}.tableopen{background:white;color:black;-webkit-flex:1;flex:1;order:2;font-weight:normal}.tableready{background:white;color:black;-webkit-flex:1;flex:1;order:3}

View File

@ -4,7 +4,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.2.5">
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.2.6">
<link rel="stylesheet" href="php/3rdparty/orderstyle/orderstyle.min.css" />
<link rel="stylesheet" href="php/3rdparty/orderstyle/jquery.mobile.icons.min.css" />

BIN
webapp/img/grayscale.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 554 B

View File

@ -1,14 +1,13 @@
<html>
<head>
<head>
<title>OrderSprinter Startseite</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="author" content="Stefan Pichel">
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.2.5">
<link rel="stylesheet" type="text/css" href="css/numfield.css?v=1.2.5">
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.2.6">
<link rel="stylesheet" type="text/css" href="css/numfield.css?v=1.2.6">
<link rel="stylesheet" href="php/3rdparty/orderstyle/orderstyle.min.css" />
<link rel="stylesheet" href="php/3rdparty/orderstyle/jquery.mobile.icons.min.css" />
@ -64,12 +63,13 @@ function goToView(lastPageOfUser) {
window.location.href = lastPageOfUser;
}
function tryAuthenticate(userid,password) {
function tryAuthenticate(userid,password,modus) {
var date = new Date();
var data = {
userid: userid,
password: password,
modus:modus,
day: date.getDay(),
month: date.getMonth(),
year: date.getFullYear(),
@ -132,7 +132,8 @@ function binding() {
e.preventDefault();
var userid = $("#userlistselection").find(":selected").val();
var password = $("#passwordfield").val();
tryAuthenticate(userid,password);
var modus = $("#modus").val();
tryAuthenticate(userid,password,modus);
});
$("#logoutbutton").off("click").on("click", function (e) {
e.stopImmediatePropagation();
@ -160,7 +161,6 @@ function binding() {
showCharPanelUpper();
}
} else {
// REM* char input
var password = String($("#passwordfield").val());
$("#passwordfield").val(password + val);
}
@ -239,7 +239,12 @@ $(document).on("pageinit", "#index-page", function () {
<form method="post">
<table border=0>
<tr><td>Username: <td id="userlist"><tr>
<tr><td>Username: <td id="userlist"></tr>
<tr><td>Modus: <td>
<select name="modus" id="modus" data-theme="e">
<option value="0">Mobil</option>
<option value="1">Desktop</option>
</select></tr>
<tr><td>Passwort: <td><input type="password" name="password" id="passwordfield"/>
<!-- place for info -->
<tr />
@ -292,7 +297,7 @@ $(document).on("pageinit", "#index-page", function () {
<div data-role="collapsible" data-content-theme="c" data-collapsed="false" data-theme="e" id="logoutarea">
<H2>Abmelden</H2>
<form method="post">
<input type="submit" value="Abmelden" id="logoutbutton" data-theme="d"/>
<a class="ui-btn ui-btn-e ui-btn-icon-right ui-icon-carat-r" href="logout.php" target="_top">Abmelden</a>
</form>
</div>

View File

@ -679,7 +679,7 @@ $(document).ready(function() {
<tr id=updateline>
<td>&nbsp;</td>
<td align=center>
<button id="updatebtn">Update -> 1.2.5</button>
<button id="updatebtn">Update -> 1.2.6</button>
</td>
<td>&nbsp;</td>
</tr>

View File

@ -1346,6 +1346,26 @@ return true;
} catch (PDOException $e) {
return false;
}
}
function updateUserTable1205_1206($prefix, $version, $dbname) {
$pdo = $this->pdo;
try {
if ($version != "1.2.5") {
$ret = $this->updateUserTable1204_1205($prefix, $version, $dbname);
if (!$ret) {
return false;
}
}
DbUtils::overrulePrefix($prefix);
$this->updateVersion($pdo, '1.2.6');
return true;
} catch (PDOException $e) {
return false;
}
}
function setVersion($prefix,$theVersion) {
@ -1460,7 +1480,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.5')");
$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'version', '1.2.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')");
@ -1829,7 +1849,7 @@ $zones[] = $timezone_identifiers[$i];
echo json_encode($zones);
} else if ($command == 'update') {
$installerVersion = "1.2.5";
$installerVersion = "1.2.6";
$admin = new InstallAdmin();
$pdo = $admin->openDbAndReturnPdo($_POST['host'],$_POST['db'],$_POST['user'],$_POST['password']);
@ -1859,7 +1879,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.0","1.2.1","1.2.2", "1.2.3", "1.2.4","1.2.5"
);
if (!in_array($version, $supportedVersions)) {
@ -1867,7 +1887,7 @@ echo json_encode("Quellversion nicht unterstützt");
return;
}
$ret = $admin->updateUserTable1204_1205($_POST['prefix'], $version, $_POST['db']);
$ret = $admin->updateUserTable1205_1206($_POST['prefix'], $version, $_POST['db']);
if(session_id() == '') {
session_start();

View File

@ -5,7 +5,7 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="author" content="Stefan Pichel">
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.2.5">
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.2.6">
<link rel="stylesheet" href="php/3rdparty/orderstyle/orderstyle.min.css" />
<link rel="stylesheet" href="php/3rdparty/orderstyle/jquery.mobile.icons.min.css" />

View File

@ -5,7 +5,7 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="author" content="Stefan Pichel">
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.2.5">
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.2.6">
<link rel="stylesheet" href="php/3rdparty/orderstyle/orderstyle.min.css" />
<link rel="stylesheet" href="php/3rdparty/orderstyle/jquery.mobile.icons.min.css" />

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,43 @@
Copyright jQuery Foundation and other contributors, https://jquery.org/
This software consists of voluntary contributions made by many
individuals. For exact contribution history, see the revision history
available at https://github.com/jquery/jquery-ui
The following license applies to all parts of this software except as
documented below:
====
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
====
Copyright and related rights for sample code are waived via CC0. Sample
code is defined as all source code contained within the demos directory.
CC0: http://creativecommons.org/publicdomain/zero/1.0/
====
All files located in the node_modules and external directories are
externally maintained libraries used by this software which have their
own licenses; we recommend you read them, as their terms may differ from
the terms above.

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -129,7 +129,7 @@ class Admin {
}
if ($command == 'tryAuthenticate') {
$this->tryAuthenticate($_POST['userid'],$_POST['password'],$_POST['day'],$_POST['month'],$_POST['year'],$_POST['hour'],$_POST['minute'],$_POST["time"]);
$this->tryAuthenticate($_POST['userid'],$_POST['password'],$_POST['modus'],$_POST['day'],$_POST['month'],$_POST['year'],$_POST['hour'],$_POST['minute'],$_POST["time"]);
} else if ($command == 'setLastModuleOfUser') {
$this->setLastModuleOfUser($_POST['view']);
} else if ($command == 'getViewAfterLogin') {
@ -362,7 +362,7 @@ class Admin {
}
// for the login mask - if user is authenticated then the first page works different
function tryAuthenticate($userid,$password,$day,$month,$year,$hour,$minute,$unixtime) {
function tryAuthenticate($userid,$password,$modus,$day,$month,$year,$hour,$minute,$unixtime) {
$pdo = DbUtils::openDbAndReturnPdoStatic();
$authenticated = false;
@ -417,6 +417,7 @@ class Admin {
$_SESSION['userid'] = $zeile['id'];
$_SESSION['currentuser'] = $username;
$_SESSION['modus'] = $modus;
$workflow = $this->getConfigItemsAsString($pdo, "workflowconfig");
@ -716,7 +717,7 @@ class Admin {
$right_changeprice = 0;
$supplyRight = 0;
if ($userLoggedIn) {
$sql = "SELECT language,right_supply,right_changeprice,keeptypelevel,extrasapplybtnpos FROM %user% WHERE id=?";
$sql = "SELECT language,right_supply,right_changeprice,keeptypelevel,extrasapplybtnpos,right_paydesk FROM %user% WHERE id=?";
$stmt = $pdo->prepare(DbUtils::substTableAlias($sql));
$stmt->execute(array($_SESSION['userid']));
$row = $stmt->fetchObject();
@ -728,6 +729,7 @@ class Admin {
$retVal = array("config" => $configresult,
"rightchangeprice" => $row->right_changeprice,
"rightpaydesk" => $row->right_paydesk,
"supplyright" => $row->right_supply,
"userlanguage" => $row->language,
"buttonsizes" => $buttonSizes,
@ -995,6 +997,7 @@ class Admin {
function getViewAfterLogin() {
if ($this->isUserAlreadyLoggedInForPhp()) {
$userid = $_SESSION['userid'];
$modus = $_SESSION['modus'];
$rights = array($_SESSION['is_admin'],$_SESSION['right_waiter'],$_SESSION['right_kitchen'],
$_SESSION['right_bar'],$_SESSION['right_supply'],$_SESSION['right_paydesk'],
@ -1019,6 +1022,18 @@ class Admin {
$newView = $row->lastmodule;
if ($newView != null) {
$view = $newView;
if ($modus == 1) {
if ($view == "waiter.html") {
$view = "waiterdesktop.php";
} else if ($view == "paydesk.html") {
$view = "waiterdesktop.php";
}
} else {
if ($view == "waiterdesktop.php") {
$view = "waiter.html";
}
}
}
}
@ -1033,7 +1048,8 @@ class Admin {
"bill.html" => 'right_bill',
"products.html" => 'right_products',
"reservation.html" => 'right_reservation',
"rating.html" => 'right_rating'
"rating.html" => 'right_rating',
"waiterdesktop.php" => 'right_waiter'
);
$valid = false;
@ -1053,7 +1069,7 @@ class Admin {
$view = "preferences.html";
}
echo json_encode($view . "?v=1.2.5");
echo json_encode($view . "?v=1.2.6");
}
}
@ -1066,6 +1082,11 @@ class Admin {
}
}
// public static function startsWith($txt,$key) {
// $ret = (substr($txt, 0, strlen($key)) === $key);
// return (substr($txt, 0, strlen($key)) === $key);
// }
function isLoggedinUserAdminOrManagerOrTE() {
if ($this->hasCurrentUserRight('is_admin')) {
echo json_encode("admin");
@ -1242,8 +1263,9 @@ class Admin {
$loggedIn = false;
} else {
$lang = $_SESSION['language'];
$waiterdesktxt = array("Kellneransicht","Waiter's View","Vista de camareros");
$kitchentxt = array("K&uuml;che","Kitchen","Cocina");
$waitertxt = array("Kellner","Waiter","Camarero");
$waitertxt = array("Bestellung","Orderdesk","Camarero");
$paydesktxt = array("Kasse","Paydesk","Caja");
$settingtxt = array("Einstellungen","Preferences","Propriedades");
$admintxt = array("Verwaltung","Administration","Administrar");
@ -1262,20 +1284,26 @@ class Admin {
$_SESSION['right_closing']);
$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.2.5"); };
if ($_SESSION['right_kitchen']) { $mainMenu[] = array("name" => $kitchentxt[$lang], "link" => "kitchen.html?v=1.2.5"); };
if ($_SESSION['right_bar']) { $mainMenu[] = array("name" => "Bar", "link" => "bar.html?v=1.2.5"); };
if ($_SESSION['right_supply']) { $mainMenu[] = array("name" => $supplytxt[$lang], "link" => "supplydesk.html?v=1.2.5"); };
if ($_SESSION['right_paydesk']) { $mainMenu[] = array("name" => $paydesktxt[$lang], "link" => "paydesk.html?v=1.2.5"); };
if ($_SESSION['right_statistics']) { $mainMenu[] = array("name" => $stattxt[$lang], "link" => "reports.html?v=1.2.5"); };
if ($_SESSION['right_bill']) { $mainMenu[] = array("name" => $bontxt[$lang], "link" => "bill.html?v=1.2.5"); };
if ($_SESSION['right_products']) { $mainMenu[] = array("name" => $prodtxt[$lang], "link" => "products.html?v=1.2.5"); };
if ($_SESSION['right_reservation']) { $mainMenu[] = array("name" => $restxt[$lang], "link" => "reservation.html?v=1.2.5"); };
if ($_SESSION['right_rating']) { $mainMenu[] = array("name" => $ratingtxt[$lang], "link" => "rating.html?v=1.2.5"); };
if ($_SESSION['right_manager'] || $_SESSION['is_admin'] || $_SESSION['right_closing']) { $mainMenu[] = array("name" => $admintxt[$lang], "link" => "manager.html?v=1.2.5"); };
$mainMenu[] = array("name" => $settingtxt[$lang], "link" => "preferences.html?v=1.2.5");
$mainMenu[] = array("name" => "Feedback", "link" => "feedback.html?v=1.2.5");
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.6"); };
} else {
if ($_SESSION['right_waiter']) { $mainMenu[] = array("name" => $waiterdesktxt[$lang], "link" => "waiterdesktop.php?v=1.2.6"); };
}
if ($_SESSION['right_kitchen']) { $mainMenu[] = array("name" => $kitchentxt[$lang], "link" => "kitchen.html?v=1.2.6"); };
if ($_SESSION['right_bar']) { $mainMenu[] = array("name" => "Bar", "link" => "bar.html?v=1.2.6"); };
if ($_SESSION['right_supply']) { $mainMenu[] = array("name" => $supplytxt[$lang], "link" => "supplydesk.html?v=1.2.6"); };
if ($_SESSION['modus'] == 0) {
if ($_SESSION['right_paydesk']) { $mainMenu[] = array("name" => $paydesktxt[$lang], "link" => "paydesk.html?v=1.2.6"); };
}
if ($_SESSION['right_statistics']) { $mainMenu[] = array("name" => $stattxt[$lang], "link" => "reports.html?v=1.2.6"); };
if ($_SESSION['right_bill']) { $mainMenu[] = array("name" => $bontxt[$lang], "link" => "bill.html?v=1.2.6"); };
if ($_SESSION['right_products']) { $mainMenu[] = array("name" => $prodtxt[$lang], "link" => "products.html?v=1.2.6"); };
if ($_SESSION['right_reservation']) { $mainMenu[] = array("name" => $restxt[$lang], "link" => "reservation.html?v=1.2.6"); };
if ($_SESSION['right_rating']) { $mainMenu[] = array("name" => $ratingtxt[$lang], "link" => "rating.html?v=1.2.6"); };
if ($_SESSION['right_manager'] || $_SESSION['is_admin'] || $_SESSION['right_closing']) { $mainMenu[] = array("name" => $admintxt[$lang], "link" => "manager.html?v=1.2.6"); };
$mainMenu[] = array("name" => $settingtxt[$lang], "link" => "preferences.html?v=1.2.6");
$mainMenu[] = array("name" => "Feedback", "link" => "feedback.html?v=1.2.6");
}
$mainMenu[] = array("name" => $logout[$lang], "link" => "logout.php");
@ -1284,7 +1312,7 @@ class Admin {
$waiterMessage = $this->getMessage(null, "waitermessage");
}
// CAUTION: change version also in config.txt!!!
$mainMenuAndVersion = array ("version" => "OrderSprinter 1.2.5",
$mainMenuAndVersion = array ("version" => "OrderSprinter 1.2.6",
"user" => $currentUser,
"menu" => $mainMenu,
"waitermessage" => $waiterMessage,

View File

@ -233,7 +233,7 @@ class PrintQueue {
$stmt = $pdo->prepare($this->dbutils->resolveTablenamesInSqlString($printInsertSql));
$stmt->execute(array((string)($billid),'3',$printer));
if (!is_null($addprinter) && ($useaddrecprinter == 1)) {
if (!is_null($addprinter) && ($addprinter != "") && ($useaddrecprinter == 1)) {
$stmt->execute(array((string)($billid),'3',$addprinter));
}

View File

@ -1,5 +1,5 @@
<?php
defined('DECIMALSMALL') || define ( 'DECIMALSMALL','DECIMAL (5,2)' );
defined('DECIMALMIDDLE') || define ( 'DECIMALMIDDLE','DECIMAL (7,2)' );
defined('DECIMALBIG') || define ( 'DECIMALBIG','DECIMAL (9,2)' );
defined('DECIMALSMALL') || define ( 'DECIMALSMALL','DECIMAL (15,2)' );
defined('DECIMALMIDDLE') || define ( 'DECIMALMIDDLE','DECIMAL (17,2)' );
defined('DECIMALBIG') || define ( 'DECIMALBIG','DECIMAL (19,2)' );

View File

@ -5,7 +5,7 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="author" content="Stefan Pichel">
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.2.5">
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.2.6">
<link rel="stylesheet" href="php/3rdparty/orderstyle/orderstyle.min.css" />
<link rel="stylesheet" href="php/3rdparty/orderstyle/jquery.mobile.icons.min.css" />
@ -291,7 +291,6 @@ function fillKeepTypeLevel(preferKeepTypeLevel) {
$("#preferktlpartbox").trigger("create");
}
// REM* position iof apply button for extras
function fillExtrasApplyBtnPosPart(applyPos) {
$("#preferapplypospart").html(createPreferExtrasApplyBtnPosPart(applyPos, "preferapplyposlabel", PREF_APPLY_EXTRA_POS[l]));
$("#preferktlpartbox").trigger("create");

View File

@ -7,7 +7,7 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="author" content="Stefan Pichel">
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.2.5">
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.2.6">
<link rel="stylesheet" href="php/3rdparty/orderstyle/orderstyle.min.css" />
<link rel="stylesheet" href="php/3rdparty/orderstyle/jquery.mobile.icons.min.css" />

View File

@ -7,7 +7,7 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="author" content="Stefan Pichel">
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.2.5">
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.2.6">
<link rel="stylesheet" href="php/3rdparty/orderstyle/orderstyle.min.css" />
<link rel="stylesheet" href="php/3rdparty/orderstyle/jquery.mobile.icons.min.css" />

View File

@ -10,58 +10,8 @@ var P_NO = ["Anz.", "No.", "Nú."];
var P_DESCR = ["Beschreibung","Description","Descripción"];
var P_PRICE = ["Preis","Price","Precio"];
function genCreateReceiptHeader(lang,billid,tablename,username,currency) {
var priceStyle = 'style="border: solid black 0px;padding: 3px;text-align:right;vertical-align:bottom;"';
var tableinfo = P_TABLE[lang] + " " + tablename;
var waiterinfo = P_WAITER[lang] + " " + username;
var header = '';
header += '<tr><td colspan=6>&nbsp;</tr>';
header += '<tr><td colspan=4>' + tableinfo + ' <td id="billid" colspan=2 ' + priceStyle + '>ID:' + billid + '</tr>';
header += '<tr><td colspan=4>&nbsp;<td id="billdate" colspan=2 ' + priceStyle + '></tr>';
header += '<tr><td colspan=6>' + waiterinfo + "</tr>";
header += '<tr><td colspan=6>&nbsp</tr>';
header += '<tr><td>' + P_NO[lang] + '<td colspan=3>' + P_DESCR[lang] + '<td ' + priceStyle + '>' + P_PRICE[lang] + '<td ' + priceStyle + '>' + P_TOTAL[lang] + '</tr>';
return header;
}
function genCreateReceiptFooterNoSum(taxGerFormat, lang, companyInfo, taxes) {
return genCreateReceiptFooter(taxGerFormat, lang, companyInfo,"","","", taxes);
}
// REM* taxes must be strings with decpoint already country-specific!
function genCreateReceiptFooter(taxGerFormat, lang, companyInfo,mwst,netto,sum, taxes) {
var priceStyle = 'style="border: solid black 0px;padding: 3px;text-align:right;vertical-align:bottom;"';
var infoStyle = 'style="text-align:center;vertical-align:bottom;"';
var emptyLine = '<tr><td colspan=6>&nbsp</tr>';
var footer = emptyLine;
footer += '<tr><td colspan=2>' + P_MWST[lang] + '% <td ' + priceStyle + '>' + P_MWST[lang] + '<td ' + priceStyle + '>' + P_NETTO[lang] + '<td ' + priceStyle + ' colspan=2>' + P_BRUTTO[lang] + '</tr>';
// REM* for each tax create a line
for (var i=0;i<taxes.length;i++) {
var tax = taxes[i];
tax = tax.replace(",","-");
footer += '<tr><td id="taxval' + tax + '" colspan=2><td id="mwst' + tax + '" ' + priceStyle + '>' + mwst + '<td id="netto' + tax + '" ' + priceStyle + '>' + netto + '<td id="brutto' + tax + '" ' + priceStyle + ' colspan=2>' + sum + '</tr>';
}
footer += emptyLine;
footer += '<tr><td> &nbsp; <td colspan=3>' + P_SUM[lang] + '<td id="priceinreceipt2" ' + priceStyle + ' colspan=2>' + sum + '</td></tr>';
footer += emptyLine;
footer += '<tr><td ' + infoStyle + ' colspan=6><center>&nbsp;<br>';
footer += toHtml(companyInfo).replace(/(?:\r\n|\r|\n)/g, '<br />');
footer += '</center></tr>';
return footer;
}
// REM* this method is called in bill.html - not paydesk
function createReceiptFooterFromDbTaxes(lang, companyInfo,sum,taxes,decPoint) {
var priceStyle = 'style="border: solid black 0px;padding: 3px;text-align:right;vertical-align:bottom;"';
@ -92,32 +42,7 @@ function createReceiptFooterFromDbTaxes(lang, companyInfo,sum,taxes,decPoint) {
return footer;
}
function generateOneProdLine(count,productname,price,pricelevelname,decPoint,togo) {
var priceStyle = 'style="border: solid black 0px;padding: 3px;text-align:right;vertical-align:bottom;"';
var noStyle = 'style="border: solid black 0px;padding: 3px;text-align:center;vertical-align:bottom;"';
var formattedPrice = (parseFloat(price)).toFixed(2).replace(".",decPoint);
if (pricelevelname != "A") {
productname += " (" + pricelevelname + ")";
}
if (togo == 1) {
productname = "To-Go: " + productname;
}
var totalPrice = count * price;
var formattedTotal = totalPrice.toFixed(2).replace(".",decPoint);
var aProductLine = '<tr>';
var cutStyle = 'style="white-space: nowrap;overflow: hidden;text-overflow:ellipsis;width: 60%;"';
aProductLine += '<td ' + noStyle + ' id="count">' + count + '<td colspan=3 ' + cutStyle + '>' + productname;
aProductLine = aProductLine + '<td ' + priceStyle + '>' + formattedPrice;
aProductLine += '<td ' + priceStyle + '>' + totalPrice.toFixed(2).replace(".",decPoint) + '</tr>';
return aProductLine;
}
/**
* Generate the product part of a receipt on base of html table array elements
@ -129,9 +54,7 @@ function generateOneProdLine(count,productname,price,pricelevelname,decPoint,tog
function generateProdPart(decPoint,entryListForReceipt) {
var index=0;
tablecontent = '';
// REM* entryListForReceipt has entries of [0] count, [1] entry as object
for (index=0;index<entryListForReceipt.length;index++) {
// REM* for the html receipt
var anEntry = entryListForReceipt[index];
var count = parseInt(anEntry[0]);
@ -146,23 +69,7 @@ function generateProdPart(decPoint,entryListForReceipt) {
return tablecontent;
}
function generateProdPartByDbContent(decPoint,prods) {
var index=0;
tablecontent = '';
for (index=0;index<prods.length;index++) {
// for the html receipt
var anEntry = prods[index];
var count = anEntry.count;
var productname = anEntry.productname;
var price = anEntry.price;
var pricelevelname = anEntry.pricelevel;
tablecontent += generateOneProdLine(count,productname,price,pricelevelname,decPoint);
}
return tablecontent;
}
/**
* Generate HTML output on base of db content

View File

@ -7,7 +7,7 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="author" content="Stefan Pichel">
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.2.5">
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.2.6">
<link rel="stylesheet" href="php/3rdparty/orderstyle/orderstyle.min.css" />
<link rel="stylesheet" href="php/3rdparty/orderstyle/jquery.mobile.icons.min.css" />

View File

@ -5,7 +5,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="author" content="Stefan Pichel">
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.2.5">
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.2.6">
<link rel="stylesheet" href="php/3rdparty/orderstyle/orderstyle.min.css" />
<link rel="stylesheet" href="php/3rdparty/orderstyle/jquery.mobile.icons.min.css" />

View File

@ -5,7 +5,7 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="author" content="Stefan Pichel">
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.2.5">
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.2.6">
<link rel="stylesheet" href="php/3rdparty/orderstyle/orderstyle.min.css" />
<link rel="stylesheet" href="php/3rdparty/orderstyle/jquery.mobile.icons.min.css" />

View File

@ -110,7 +110,6 @@ function doAjaxAsync(getOrPost,url,data,functionToCallIfSuccess) {
}
},
error: function(xhr,status,error ) {
// REM* ignore
}
});
}

View File

@ -4,7 +4,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="author" content="Stefan Pichel">
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.2.5">
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.2.6">
<link rel="stylesheet" href="php/3rdparty/orderstyle/orderstyle.min.css" />
<link rel="stylesheet" href="php/3rdparty/orderstyle/jquery.mobile.icons.min.css" />

2713
webapp/waiterdesktop.php Normal file

File diff suppressed because it is too large Load Diff