OrderSprinter 2.0.0

This commit is contained in:
Geno 2020-11-19 23:14:48 +01:00
parent 502b9fc08f
commit 8fb71ae374
148 changed files with 16397 additions and 1681 deletions

View File

@ -9,8 +9,8 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8"> <meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="author" content="Stefan Pichel"> <meta name="author" content="Stefan Pichel">
<link rel="stylesheet" href="css/gueststyle.css?v=1.6.10" /> <link rel="stylesheet" href="css/gueststyle.css?v=2.0.0" />
<link rel="stylesheet" href="php/3rdparty/orderstyle/orderstyle.min.css?v=1.6.10" /> <link rel="stylesheet" href="php/3rdparty/orderstyle/orderstyle.min.css?v=2.0.0" />
<link rel="stylesheet" href="php/3rdparty/orderstyle/jquery.mobile.icons.min.css" /> <link rel="stylesheet" href="php/3rdparty/orderstyle/jquery.mobile.icons.min.css" />
<link rel="stylesheet" href="php/3rdparty/jquery.mobile-1.4.0.min.css" type="text/css" /> <link rel="stylesheet" href="php/3rdparty/jquery.mobile-1.4.0.min.css" type="text/css" />
<script src="php/3rdparty/jquery-1.11.3.min.js"></script> <script src="php/3rdparty/jquery-1.11.3.min.js"></script>
@ -115,7 +115,7 @@
<div data-role="footer" data-theme="b" id="thefooter1"> <div data-role="footer" data-theme="b" id="thefooter1">
<div class="ui-grid-a"> <div class="ui-grid-a">
<div class="ui-block-a">&nbsp;&nbsp;OrderSprinter</div> <div class="ui-block-a">&nbsp;&nbsp;OrderSprinter</div>
<div class="ui-block-b grid_right" id="versioninfo">1.6.10&nbsp;&nbsp;</div> <div class="ui-block-b grid_right" id="versioninfo">2.0.0&nbsp;&nbsp;</div>
</div><!-- /grid-a --> </div><!-- /grid-a -->
</div> </div>
</div> </div>

View File

@ -114,10 +114,10 @@ if (isset($_POST['code'])) {
} else { } else {
echo "<html>"; echo "<html>";
echo "<head><title>Installation Gastsystem</title>"; echo "<head><title>Installation Gastsystem</title>";
echo '<link rel="stylesheet" type="text/css" href="css/gueststyle.css?v=1.6.10">'; echo '<link rel="stylesheet" type="text/css" href="css/gueststyle.css?v=2.0.0">';
echo "</head>"; echo "</head>";
echo "<body><div class=surround>"; echo "<body><div class=surround>";
echo "<span class=headerline>Installation OrderSprinter-Gastsystem 1.6.10</span><br><br>"; echo "<span class=headerline>Installation OrderSprinter-Gastsystem 2.0.0</span><br><br>";
echo "<form action='install.php' method='post'><input class=installfield name=code id=code type=text placeholder='Installationscode' />"; echo "<form action='install.php' method='post'><input class=installfield name=code id=code type=text placeholder='Installationscode' />";
echo "<br><input type=submit value='Installation starten' class=installbtn />"; echo "<br><input type=submit value='Installation starten' class=installbtn />";
echo "</form></div></html>"; echo "</form></div></html>";

View File

@ -2,7 +2,7 @@
error_reporting(E_ERROR); error_reporting(E_ERROR);
// Database to use: 'mysql' or 'file' // Database to use: 'mysql' or 'file'
defined('DB') || define ( 'DB','file' ); defined('DB') || define ( 'DB','mysql' );
// Datenbank-Zugangsdaten // Datenbank-Zugangsdaten
defined('MYSQL_HOST') || define ( 'MYSQL_HOST','localhost' ); defined('MYSQL_HOST') || define ( 'MYSQL_HOST','localhost' );

View File

@ -33,7 +33,7 @@ class Menu {
$prodids[] = $p["id"]; $prodids[] = $p["id"];
} }
} }
$sql = "SELECT IFNULL(content,'') as content FROM %images% WHERE contenttype=? AND productid=?"; $sql = "SELECT COALESCE(content,'') as content FROM %images% WHERE contenttype=? AND productid=?";
foreach($prodids as $prodid) { foreach($prodids as $prodid) {
$img = DbUtils::getImageData($pdo, '', $prodid); $img = DbUtils::getImageData($pdo, '', $prodid);
if (!is_null($img)) { if (!is_null($img)) {

View File

@ -16,9 +16,9 @@ class Queue {
foreach($orders as $anOrder) { foreach($orders as $anOrder) {
$prodid = $anOrder["prodid"]; $prodid = $anOrder["prodid"];
DbUtils::execSql($pdo, $sql, array($ordertime,$prodid,$tableid,$tablecode,$dailycode)); DbUtils::execSql($pdo, $sql, array($ordertime,$prodid,$tableid,$tablecode,$dailycode));
$pdo->commit();
DbUtils::log("Added product with id $prodid to mysql queue table"); DbUtils::log("Added product with id $prodid to mysql queue table");
} }
$pdo->commit();
return array("status" => "OK"); return array("status" => "OK");
} else { } else {

Binary file not shown.

Binary file not shown.

View File

@ -19,7 +19,7 @@ java -jar javaprinter.jar /Pfad/zur/config.json.
In der Konfigurationsdatei können unter anderem folgende Parameter gesetzt werden: In der Konfigurationsdatei können unter anderem folgende Parameter gesetzt werden:
- printersize: maximale Anzahl der Zeichen pro Zeile, die der Drucker ausgeben kann - 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. - printcode: Printcode, wie in der Administrationsoberflä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. - 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) - 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. - baseusername und basepass: Ist der OrderSprinter-Webserver über BasicAuthentication geschützt, so können hier Benutzername und Passwort angegeben werden.

View File

@ -14,9 +14,13 @@ Spider ist eine eigenständige Webapplikation, mit der man verschiedene OrderSpr
printserver: printserver:
------------ ------------
In diesem Ordner befinden sich die beiden Printserver, einmal für Windows und einmal als Java-Version für den Einsatz auf Linux.Systemen.
printserver/windows:
--------------------
In diesem Ordner befindet sich der Windows-Printserver. Er kann alleine oder in Kombination mit dem Javaprinter eingesetzt werden. In diesem Ordner befindet sich der Windows-Printserver. Er kann alleine oder in Kombination mit dem Javaprinter eingesetzt werden.
javaprinter: printserver/javaprinter:
------------ ------------
In diesem Ordner befindet sich der Java-Printserver. Er eignet sich für den Einsatz auf Linux-Systemen. Er kann alleine oder in Kombination mit dem Windows-Printserver eingesetzt werden. In diesem Ordner befindet sich der Java-Printserver. Er eignet sich für den Einsatz auf Linux-Systemen. Er kann alleine oder in Kombination mit dem Windows-Printserver eingesetzt werden.
@ -29,3 +33,8 @@ gastsystem:
In diesem Ordner befindet sich die Webapplikation für das Gastbestellsystem. Wenn es also gewünscht ist, dass auch Gäste von ihrem Tisch aus Bestellungen aufgeben können, so benötigt man diese Komponente. In diesem Ordner befindet sich die Webapplikation für das Gastbestellsystem. Wenn es also gewünscht ist, dass auch Gäste von ihrem Tisch aus Bestellungen aufgeben können, so benötigt man diese Komponente.
Das Gastsystem setzt man bevorzugt auf einem Server auf, welches im Internet erreichbar ist. Es muss allerdings vom Webserver, auf dem die Kernapplikation läuft, erreichbar sein. Das Gastsystem setzt man bevorzugt auf einem Server auf, welches im Internet erreichbar ist. Es muss allerdings vom Webserver, auf dem die Kernapplikation läuft, erreichbar sein.
tseconnector:
-------------
In diesem Ordner befindet sich die Komponente für die Ansteuerung der TSE als Java-Programm. Im ersten Schritt werden nur die lokalen TSE der Firma Swissbit unterstützt.
Zur Benutzung sei auf die Beschreibung in der Bedienungsanleitung verwiesen.

View File

@ -20,7 +20,7 @@ Im Skript müssen am Anfang einige Variablen angepasst werden:
- der Gerätenamen des Sticks - der Gerätenamen des Sticks
- die Zugangsparameter der Datenbank (lassen sich aus der config.php) entnehmen, wenn nicht mehr bekannt. Die Angabe ist nur erforderlich, wenn mysqldump statt das OrderSprinter-internen Backup verwendet werden soll. - die Zugangsparameter der Datenbank (lassen sich aus der config.php) entnehmen, wenn nicht mehr bekannt. Die Angabe ist nur erforderlich, wenn mysqldump statt das OrderSprinter-internen Backup verwendet werden soll.
- die Server-Baseadresse - die Server-Baseadresse
- der Remoteaccess-Code, wie er zuvor in der Verwaltungsansicht eingestellt werden muss - der Remoteaccess-Code, wie er zuvor in der Administrationsansicht eingestellt werden muss
- das Format json oder zip: Wurde in der OrderSprinter-Konfiguration ein tmp-Verzeichnis festgelegt, so werden komprimierte Backups erzeugt (zip), anderenfalls ist json einzutragen. - das Format json oder zip: Wurde in der OrderSprinter-Konfiguration ein tmp-Verzeichnis festgelegt, so werden komprimierte Backups erzeugt (zip), anderenfalls ist json einzutragen.
Im Skript ist standardmäßig die OrderSprinter-interne Backuperstellung aktiviert (Zeile, die mit "wget" beginnt). Alternativ kann auch das MySQL-Dump verwendet werden, dazu ist die mit wget Im Skript ist standardmäßig die OrderSprinter-interne Backuperstellung aktiviert (Zeile, die mit "wget" beginnt). Alternativ kann auch das MySQL-Dump verwendet werden, dazu ist die mit wget

View File

@ -85,7 +85,7 @@ class Installer {
} }
Database::dropTables($pdo); Database::dropTables($pdo);
Database::createEmptyTables($pdo, $prefix); Database::createEmptyTables($pdo, $prefix);
Database::setVersion($pdo,$prefix,"1.6.10"); Database::setVersion($pdo,$prefix,"2.0.0");
Database::setAccessPassword($pdo,$prefix,$adminpass); Database::setAccessPassword($pdo,$prefix,$adminpass);
Database::setRefreshRate($pdo,$prefix,"5"); // default: 5 times per hour Database::setRefreshRate($pdo,$prefix,"5"); // default: 5 times per hour
return array("status" => "OK","msg" => "Installation successful"); return array("status" => "OK","msg" => "Installation successful");

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,202 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,202 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Binary file not shown.

Binary file not shown.

View File

@ -5,7 +5,7 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8"> <meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="author" content="Stefan Pichel"> <meta name="author" content="Stefan Pichel">
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.6.10"> <link rel="stylesheet" type="text/css" href="css/bestformat.css?v=2.0.0">
<link rel="stylesheet" href="php/contenthandler.php?module=admin&command=getmobilecss" /> <link rel="stylesheet" href="php/contenthandler.php?module=admin&command=getmobilecss" />
<link rel="stylesheet" href="php/3rdparty/orderstyle/jquery.mobile.icons.min.css" /> <link rel="stylesheet" href="php/3rdparty/orderstyle/jquery.mobile.icons.min.css" />
@ -13,8 +13,8 @@
<link rel="stylesheet" href="php/3rdparty/jquery.mobile-1.4.0.min.css" type="text/css" /> <link rel="stylesheet" href="php/3rdparty/jquery.mobile-1.4.0.min.css" type="text/css" />
<script src="php/3rdparty/jquery-2.0.3.min.js"></script> <script src="php/3rdparty/jquery-2.0.3.min.js"></script>
<script src="php/3rdparty/jquery.mobile-1.4.0.min.js"></script> <script src="php/3rdparty/jquery.mobile-1.4.0.min.js"></script>
<script src="utilities.js?v=1.6.10"></script> <script src="utilities.js?v=2.0.0"></script>
<script src="kitchenbar.js?v=1.6.10"></script> <script src="kitchenbar.js?v=2.0.0"></script>
<style> <style>
#tableWithEntriesToCook,#tableWithCookedEntries,#headertableToCook #tableWithEntriesToCook,#tableWithCookedEntries,#headertableToCook
@ -109,7 +109,7 @@ function initializeEverything() {
</ul> </ul>
</div><!-- /panel --> </div><!-- /panel -->
<div data-role="header" data-theme="b" data-position="fixed" id="headerline" style="background-color:black;"> <div data-role="header" data-theme="b" data-position="fixed" id="headerline" style="background-color:black;">
<h1>Bar <img src="img/connection.png" class="connectionstatus" style="display:none;" /> <img src="img/printerstatus.png" class="printerstatus" style="display:none;" /> <img src="img/tasksstatus.png" class="tasksstatus" style="display:none;" /></h1> <h1>Bar <img src="img/connection.png" class="connectionstatus" style="display:none;" /> <img src="img/printerstatus.png" class="printerstatus" style="display:none;" /> <img src="img/tsestatus.png" class="tsestatus" style="display:none;" /> <img src="img/tasksstatus.png" class="tasksstatus" style="display:none;" /></h1>
<div data-type="horizontal" style="top:0px;position:absolute;float:right;z-index:10;display:inline;" align="right" class="ui-btn-right"> <div data-type="horizontal" style="top:0px;position:absolute;float:right;z-index:10;display:inline;" align="right" class="ui-btn-right">
<a href="#" data-role="button" data-icon="arrow-d" data-ajax="false" id="menuswitch">Hauptmenü</a> <a href="#" data-role="button" data-icon="arrow-d" data-ajax="false" id="menuswitch">Hauptmenü</a>
</div> </div>

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 @@
.closingsums{border:solid black 3px;background-color:#ffe8bc}.closingsums td{border:solid black 1px;padding:3px;text-align:right;vertical-align:bottom}.opentable{color:white}.timeline{color:black}#tmpdirtxt,#tmpdirhint,#closingcreationtxt,#urlpath{color:black}.groundplan input[type=text]{color:black}a.genconflink{color:#196bdb !important}.clostable{color:black}.grouparea{border:1px solid #666;border-radius:25px;background-color:#08c;padding:10px}#remarkfield{color:black}.prodcount{color:black}

View File

@ -0,0 +1 @@
.closingsums{border:solid black 3px;background-color:#ffe8bc}.closingsums td{border:solid black 1px;padding:3px;text-align:right;vertical-align:bottom}.opentable{color:black}.timeline{color:black}.grouparea{border:1px solid #666;border-radius:25px;background-color:yellow;padding:10px}

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

@ -0,0 +1 @@
.closingsums{border:solid black 3px;background-color:#ffe8bc}.closingsums td{border:solid black 1px;padding:3px;text-align:right;vertical-align:bottom}.opentable{color:white}.timeline{color:black}#tmpdirtxt,#tmpdirhint,#closingcreationtxt,#urlpath{color:black}.groundplan input[type=text]{color:black}a.genconflink{color:#000 !important}.clostable{color:black}.grouparea{border:1px solid #666;border-radius:25px;background-color:#d6d6c2;padding:10px}#searchfield,#barcode,#optionfield{color:white !important}#searchfield::placeholder,#barcode::placeholder,#optionfield::placeholder{color:#222 !important}.prodcount{color:black}

View File

@ -0,0 +1 @@
.closingsums{border:solid black 3px;background-color:#ffe8bc}.closingsums td{border:solid black 1px;padding:3px;text-align:right;vertical-align:bottom}.opentable{color:white}.timeline{color:black}#tmpdirtxt,#tmpdirhint,#urlpath{color:black}.groundplan input[type=text]{color:black}a.genconflink{color:#196bdb !important}.clostable{color:black}.grouparea{border:1px solid #666;border-radius:25px;background-color:#330;padding:10px;color:white !important}.grouparea input{color:black !important}#remarkfield{color:black}

View File

@ -0,0 +1,37 @@
.closingsums {
border: solid black 3px;
background-color: rgb(255, 232, 188);
}
.closingsums td {
border: solid black 1px;
padding: 3px;
text-align:right;
vertical-align:bottom;
}
.opentable { color:black;} .timeline { color:black;}
#tmpdirtxt,#tmpdirhint,#closingcreationtxt,#urlpath { color:black;}
.groundplan input[type=text] {color:black;}
a.genconflink {color: black !important;}
.grouparea {
border: 1px solid #666666;
border-radius: 25px;
background-color: #ffffb3;
padding: 10px;
color: black;
}
#searchfield,#barcode,#optionfield {
color:#ffffff !important;
}
#searchField::placeholder,#barcode::placeholder,#optionfield::placeholder {
color:#eeeeee !important;
}
.ui-btn-e {
color: black !important;
}
#remarkfield {
color: black;
}
.prodcount {
color: black;
}

View File

@ -0,0 +1 @@
@charset "UTF-8";img.Hover{border:1px solid #000}.generalsettingtxt{font-size:15px}#timezonebtn{background-color:#239b56;color:black;font-weight:bold;font-size:20px;height:40px}.startbtn{border:10px solid greenyellow}.updatebtn{border:5px solid green}#setgeneralsettingsbtn{width:600px;height:60px;background-color:#239b56;color:black;font-weight:bold;font-size:20px}#companyinfo{width:100%;height:80px;font-size:16px;color:black}#printcode[type="text"],#cancelcode[type="text"],.genconfiginput[type="text"]{width:100%;color:black;background-color:white;font-size:16px}#gensettingstxt{background-color:#1e8449;font-size:20px}#gensettingschangeabletxt{background-color:#85c1e9;font-size:16px;font-style:italic;text-align:left}table.installtable{border-collapse:collapse;margin:0 auto}table.installtable td{_background:#999;color:#000;background:#999;font-size:8pt;border-bottom:1px solid #fafafa;border-bottom:1px solid rgba(255,255,255,.5);padding:6px 10px;_color:rgba(0,0,0,255)}table.installtable th{background:#111;color:white;font-size:10pt;border-bottom:1px solid rgba(255,255,255,.7);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2);-o-box-shadow:inset 0 1px 0 rgba(255,255,255,.2);box-shadow:inset 0 1px 0 rgba(255,255,255,.2);padding:6px 10px}.installcenterdiv{display:none;text-align:center;margin-left:auto;margin-right:auto}.installselect option{background-color:red;color:#eee}#langTable td:hover{background-color:#2a3947 !important;color:white !important}#startSettingsTableWorkflow td:hover{background-color:#2a3947 !important;color:white !important}#startSettingsTableSamples td:hover{background-color:#2a3947 !important;color:white !important}@media(min-width:900px){.loginarea form{display:inline-block}}

View File

@ -1 +1 @@
@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}.numfield td.keyboardapply{color:green} @charset "UTF-8";.numfield td:hover{background:#999}.numfield td.numnav{color:red}.numfield td.keyboardapply{color:green}.numfield{background:#bbb;border-style:solid;border-color:green}.numfield td{background:#eee;border-style:solid;border-color:black;text-align:center;color:black}@media(min-width:50px){.numfield{border-radius:10px;padding:5px;width:200px;border-spacing:2px;margin-left:20px}.numfield td{border-radius:3px;padding:4px;font-size:15px;text-align:center}}@media(min-width:500px){.numfield{border-radius:20px;padding:10px;width:280px;border-spacing:5px;margin-left:80px}.numfield td{border-radius:10px;padding:8px;font-size:20px;text-align:center}}@media(min-width:900px){.numfield{border-radius:25px;padding:10px;width:280px;border-spacing:5px;margin-left:80px}.numfield td{border-radius:15px;padding:10px;font-size:30px;text-align:center}}

View File

@ -1 +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}.waitermsg{color:black;background-color:#f1a899;font-weight:normal}#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} .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}.waitermsg{color:black;background-color:#f1a899;font-weight:normal}#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}#neworderinfo{background-color:black;color:white;font-weight:bold;font-size:20px;text-align:center}

View File

@ -0,0 +1 @@
.closingsums{border:solid black 3px;background-color:#ffe8bc}.closingsums td{border:solid black 1px;padding:3px;text-align:right;vertical-align:bottom}.opentable{color:black}.timeline{color:black}#tmpdirtxt,#tmpdirhint,#closingcreationtxt,#urlpath{color:black}.groundplan input[type=text]{color:black}a.genconflink{color:#196bdb !important}.grouparea{border:1px solid #666;border-radius:25px;background-color:#ffffb3;padding:10px}

View File

@ -0,0 +1,27 @@
.closingsums {
border: solid black 3px;
background-color: rgb(255, 232, 188);
}
.closingsums td {
border: solid black 1px;
padding: 3px;
text-align:right;
vertical-align:bottom;
}
.opentable { color:black;} .timeline { color:black;}
#tmpdirtxt,#tmpdirhint,#closingcreationtxt,#urlpath { color:black;}
.groundplan input[type=text] {color:black;}
a.genconflink {color: black !important;}
.grouparea {
border: 1px solid #666666;
border-radius: 25px;
background-color: #ffffb3;
padding: 10px;
}
#searchfield,#barcode,#optionfield {
color:black !important;
}
#searchfield::placeholder,#barcode::placeholder,#optionfield::placeholder {
color:#222222 !important;
}

View File

@ -0,0 +1 @@
.closingsums{border:solid black 3px;background-color:#ffe8bc}.closingsums td{border:solid black 1px;padding:3px;text-align:right;vertical-align:bottom}.clostable{color:black}#tmpdirtxt,#tmpdirhint,#closingcreationtxt,#urlpath{color:black}.groundplan input[type=text]{color:black}a.genconflink{color:#fff !important}.grouparea{border:1px solid #666;border-radius:25px;background-color:yellow;padding:10px}.prodcount{color:black}

View File

@ -0,0 +1,10 @@
{TAB:}
{-:links:Stornierung:hochbreit}
{table:links:Tisch}
{time:links:Zeit}
{longname:links:Artikel}
{extras:links: Extras}
{price:links:Preis}
{type:links:Typ}
{refworkid:links:zu stornierender Arb.bon}

View File

@ -0,0 +1,7 @@
{TAB::10}
{-:links:Barein-/auszahlung}{id:rechts:ID:hoch}
{TAB:}
{billdate:rechts}
{username:links:Anwender}
{cashtype:links:Kategorie}
{brutto:links:Betrag:hochbreit}

View File

@ -0,0 +1,69 @@
{TAB:}
{companyinfo:mittig}
{sn:links:SN}
{systemid:links:Kassen-ID}
{closingid:links:Tageserfassung Nr.:hoch}
# Zusammenfassung Daten der TE
{TAB:32:}
{closingdate::Datum}
{billcount::Bons}
{billsum::Summe:hoch}
{remark::Bemerkung}
# Info über Bar-Status
{TAB:30}
{-::Bargeld in Kasse}
{barTotalBeforeTE:: vor TE }
{barTotalAfterTE:: nach TE (errechnet) }
IF:counting:1
{counted:: nach TE (gezählt) }
{diffsollist:: Bargelddifferenz }
FI:counting
# Vorgänge nach Zahlungsweg und Vorgang aufgeschluesselt
{TAB:32}
{-::Vorgang}
{-:: EINL Bareinlage/-auslage}
{-:: VERK Verkauf, Umsatz}
{-:: BSTR Bonstorno}
{-:: PSTR Produktstorno}
{TAB:8:7:6:2:}
{-:rechts:Summe}{-:rechts:Netto}{-:rechts:Vorg.}{-:links: }{-:links:Zahl.weg}
{LINIE}
START:overview
{sum:rechts}{netto:rechts}{process:rechts}{-:: }{name:links}
END:overview
START:paymenttaxessum
{TAB:}
{payment}
{TAB:10:9:9}
{-:rechts:Steuersatz}{-:rechts: Brutto}{-:rechts: Netto}
START:paymenttaxessum
{t:rechts}{bruttosum:rechts}{nettosum:rechts}
END:paymenttaxessum
#Zählprotokoll
IF:counting:1
{TAB:32}
{-::Zählprotokoll}
{TAB:6:7:2:6:2:}
{-:rechts:Anzahl}{-:rechts:Wert}{-:links: }{-:rechts:Summe}{-:links: }{-:links:Typ}
{LINIE}
START:countingprotocol
{count:rechts}{value:rechts}{-:links: }{sum:rechts}{-:links: }{coinsornotes:links}
END:countingprotocol
FI:counting
#
# Produktverkaeufe
{TAB:3:1:9:8:6:}
{-::Anz}{-:: }{-::Produkt}{-:rechts:Preis}{-:rechts:%}{-:rechts:G.Preis}
START:details
{count:rechts}{-:: }{productname}{price:rechts}{tax:rechts}{sumprice:rechts}
END:details

View File

@ -0,0 +1,17 @@
{waiterphoto:30}
{TAB::10}
{-:links:Getränke:hochbreit}{workid:rechts:ID:hoch}
{TAB:}
{table:links::hoch}
{time:links}
START:products
{TAB::1:5}
{longname:links}{-: }{togo:links}
{TAB:}
START:extras
{name:links: + }
END:extras
{option:links: }
END:products

View File

@ -0,0 +1,17 @@
{waiterphoto:30}
{TAB::10}
{-:links:Speisen:hochbreit}{workid:rechts:ID:hoch}
{TAB:}
{table:links::hoch}
{time:links}
START:products
{TAB::1:5}
{longname:links}{-: }{togo:links}
{TAB:}
START:extras
{name:links: + }
END:extras
{option:links: }
END:products

View File

@ -0,0 +1,16 @@
{TAB:}
{-:links:Abholbon:hochbreit}
{workid:mittig::hochbreit}
{time:links:Uhrzeit}
START:products
{TAB::1:5}
{longname:links}{-: }{togo:links}
{TAB:}
START:extras
{name:links: + }
END:extras
{option:links: }
END:products

View File

@ -1,25 +1,35 @@
l; LOGO
t:llllllllllllllllllll; f: ; a_ID:rrrrrrrrrrr # Bondaten Kopf:
;f: ;d:w {TAB::10}
{table:links:Tisch}{id:rechts:ID:hoch}
{TAB:}
{billdate:rechts}
{username:links:Es bediente Sie}
{payment:links:Zahlungsweg}
g:v; c:v # Es folgt die Ausgabe aller Produkte:
{TAB:3:1::6:6}
{-:rechts:Anz:}{-:: }{-:links:Beschreibung}{-:rechts:Brutto}{-:rechts:Total}
{LINIE:=}
START:products
{count:rechts}{-:: }{productname:links}{price:rechts}{total:rechts}
END:products
k:rrr; s: ; m:v; s: ; n:rrrrrr; o:rrrrrrr # Es folgt die Ausgabe aller verwendeten Steuersätze:
f:- {TAB:7:7:8:8}
START_PRODUCTS {-:rechts:MwSt%}{-:rechts:MwSt}{-:rechts:Netto}{-:rechts:Brutto}
a:rrr; s: ; c:v; s: ; b:rrrrrr; d:rrrrrrr {LINIE}
END_PRODUCTS START:taxes
{tax:rechts}{mwst:rechts}{netto:rechts::h}{brutto:rechts}
END:taxes
p:rrrrr; q:rrrrrr; r:rrrrrrrr; n:rrrrrrrr {TAB:}
START_TAXES {brutto:mittig:Summe:hochbreit}
t:rrrrr; m:rrrrrr; n:rrrrrrrr; b:rrrrrrrr
END_TAXES
f: ; E_Summe:llllllllllllllllllll; {hospitality:links}
# Footer des Bons
{qrcode:100}
{companyinfo:mittig}
{{Betriebsinfo:v::}} {systemid:links:Kasse}
{uid:links:UID}
{{Kassenid:v::Kasse}}
{{UID:v::UID}}
{{Version:v::OrderSprinter-Version}}
{{SN:v::SN}}

View File

@ -5,62 +5,62 @@
# #
Speisen = KBF = 1 Speisen = KBF = 1
Fastfood = KBF = 1 Fastfood = KBF = 1
Pommes; 3,00 # Bildnr: 1 Pommes; 3,00 # Normal-Steuersatz: 2; Bildnr: 1
Schnitzel; 4,00 # Bildnr: 20 Schnitzel; 4,00 # Normal-Steuersatz: 2; Bildnr: 20
Brötchen = KBF = 1 Brötchen = KBF = 1
Camenbertbrötchen; 2,90 # Bildnr:4 Camenbertbrötchen; 2,90 # Normal-Steuersatz: 2; Bildnr:4
Käsebrötchen; 2,90 # Bildnr: 7 Käsebrötchen; 2,90 # Normal-Steuersatz: 2; Bildnr: 7
3 Brötchen; 3,00 # Bildnr: 3 3 Brötchen; 3,00 # Normal-Steuersatz: 2; Bildnr: 3
Vom Grill = KBF = 1 Vom Grill = KBF = 1
EL Greco 2 Personen; 26,00 # Kurzname:El Greco 2P; PreisB:20,00; PreisC:13,00 ; Bildnr: 1 EL Greco 2 Personen; 26,00 # Normal-Steuersatz: 2; Kurzname:El Greco 2P; PreisB:20,00; PreisC:13,00 ; Bildnr: 1
EL Greco 1 Person; 14,00 # Kurzname:El Greco 1P ; Bildnr: 1 EL Greco 1 Person; 14,00 # Normal-Steuersatz: 2; Kurzname:El Greco 1P ; Bildnr: 1
Fleisch-Gerichte = KBF = 1 Fleisch-Gerichte = KBF = 1
Lammkotelett; 13,00 # PreisB:11,00; PreisC:6,00 ; Bildnr: 1 Lammkotelett; 13,00 # Normal-Steuersatz: 2; PreisB:11,00; PreisC:6,00 ; Bildnr: 1
Zigeuner/Jägerschnitzel; 10,00 # PreisB:9,00; PreisC:3,00 ; Bildnr: 1 Zigeuner/Jägerschnitzel; 10,00 # Normal-Steuersatz: 2; PreisB:9,00; PreisC:3,00 ; Bildnr: 1
Suzukakia 4 Hacksteaks; 10,00 # Kurzname:Suzukakia 4H ; Bildnr: 1 Suzukakia 4 Hacksteaks; 10,00 # Normal-Steuersatz: 2; Kurzname:Suzukakia 4H ; Bildnr: 1
Suzukakia 2 Hacksteaks; 10,00 # Kurzname:Suzukakia 2H ; Bildnr: 1 Suzukakia 2 Hacksteaks; 10,00 # Normal-Steuersatz: 2; Kurzname:Suzukakia 2H ; Bildnr: 1
Souvlaki; 10,00 # ID:9 ; Bildnr: 1 Souvlaki; 10,00 # Normal-Steuersatz: 2; Bildnr: 1
Schaschlik; 5,00 # Bildnr: 23 Schaschlik; 5,00 # Normal-Steuersatz: 2; Bildnr: 23
Chili Con Carne; 9,00 # Bildnr:24 Chili Con Carne; 9,00 # Normal-Steuersatz: 2; Bildnr:24
Italienische Küche = KBF = 1 Italienische Küche = KBF = 1
Ital. Tagesspecial; 6,00 # Kurzname:Special ; Bildnr: 1 Ital. Tagesspecial; 6,00 # Normal-Steuersatz: 2; Kurzname:Special ; Bildnr: 1
Pizza = KBF = 1 Pizza = KBF = 1
Siciliana = KBF = 1 Siciliana = KBF = 1
Pizza Siciliana klein; 7,00 # Kurzname:klein ; Bildnr: 1 Pizza Siciliana klein; 7,00 # Normal-Steuersatz: 2; Kurzname:klein ; Bildnr: 1
Pizza Siciliana groß; 7,00 # Kurzname:groß; Bildnr: 1 Pizza Siciliana groß; 7,00 # Normal-Steuersatz: 2; Kurzname:groß; Bildnr: 1
Salami = KBF = 1 Salami = KBF = 1
Pizza Salami klein; 6,00 # Kurzname:klein; Bildnr: 1 Pizza Salami klein; 6,00 # Normal-Steuersatz: 2; Kurzname:klein; Bildnr: 1
Pizza Salami groß; 7,00 # Kurzname:groß; Bildnr: 1 Pizza Salami groß; 7,00 # Normal-Steuersatz: 2; Kurzname:groß; Bildnr: 1
Salate = KBF = 1 Salate = KBF = 1
Blattsalat ; 2,00 # Bildnr:25 Blattsalat ; 2,70 # Normal-Steuersatz: 2; Bildnr:25
Bunter Salat; 3,00 # Bildnr:26 Bunter Salat; 3,00 # Normal-Steuersatz: 2; Bildnr:26
Mix; 1,20 # Einheit: gr Mix; 1,20 # Normal-Steuersatz: 2; Einheit: gr
Deftiges = KBF = 1 Deftiges = KBF = 1
Mittagsgericht ; 12,00 # Bildnr:28 Mittagsgericht ; 12,00 # Normal-Steuersatz: 2; Bildnr:28
Pasta ; 5,00 # Bildnr:29 Pasta ; 5,00 # Normal-Steuersatz: 2; Bildnr:29
Kartoffelspalten ; 5,00 # Bildnr:27 Kartoffelspalten ; 5,00 # Normal-Steuersatz: 2; Bildnr:27
Rinderroulade ; 6,00 # Bildnr:31 Rinderroulade ; 6,800 # Normal-Steuersatz: 2; Bildnr:31
Rosenkohl; 3,00 # Bildnr:32 Rosenkohl; 3,00 # Normal-Steuersatz: 2; Bildnr:32
Dessert = KBF = 1 Dessert = KBF = 1
Mohnkuchen; 1,50 # Bildnr: 8 Mohnkuchen; 1,60 # Normal-Steuersatz: 2; Bildnr: 8
Kuchen all; 1,50 # Bildnr: 1 Kuchen all; 1,50 # Normal-Steuersatz: 2; Bildnr: 1
Käse-Mandarinenschnitte; 2,30 # Bildnr: 19 Käse-Mandarinenschnitte; 2,30 # Normal-Steuersatz: 2; Bildnr: 19
Schokoteilchen; 3,20 # Bildnr: 21 Schokoteilchen; 3,20 # Normal-Steuersatz: 2; Bildnr: 21
Kirschstreusel; 3,20 # Bildnr: 17 Kirschstreusel; 3,20 # Normal-Steuersatz: 2; Bildnr: 17
Vanilleteilchen; 3,40 # Bildnr: 22 Vanilleteilchen; 3,40 # Normal-Steuersatz: 2; Bildnr: 22
Suessigkeitenteller ; 10,00 # Bildnr:33 Suessigkeitenteller ; 10,00 # Normal-Steuersatz: 2; Bildnr:33
Eliseplätzchen ; 5,00 # Bildnr:30 Eliseplätzchen ; 5,00 # Normal-Steuersatz: 2; Bildnr:30
Waffeleis; 0,00 Waffeleis; 0,00 # Normal-Steuersatz: 2;
Bechereis; 0,00 Bechereis; 0,00 # Normal-Steuersatz: 2;
Kategorie Selbstbedienung = F = 1 Kategorie Selbstbedienung = F = 1
Frühstücksbuffet; 8,00 # Bildnr: 1 Frühstücksbuffet; 8,00 # Bildnr: 1
Frühstücksbuffet + Kaffe; 12,00 # Bildnr: 1 Frühstücksbuffet + Kaffe; 12,00 # Bildnr: 1
Kategorie vorbereitet = BF = 1 Kategorie vorbereitet = BF = 1
Deserts; 2,00 Deserts; 2,00 # Normal-Steuersatz: 2;
Fertigprodukte; 1,00 # Bildnr: 1 Fertigprodukte; 1,00 # Normal-Steuersatz: 2; Bildnr: 1
Kategorie Nur Küche = KF = 1 Kategorie Nur Küche = KF = 1
Tischzubereitung Fisch; 2,00 # Bildnr: 6 Tischzubereitung Fisch; 2,00 # Normal-Steuersatz: 2; Bildnr: 6
Tischzubereitung Fleischmenü; 1,00 # Bildnr: 1 Tischzubereitung Fleischmenü; 1,00 # Normal-Steuersatz: 2; Bildnr: 1
Getränke = KBD = 1 Getränke = KBD = 1
Kaffee = KBD = 1 Kaffee = KBD = 1
Cappuchino; 2,50 # Bildnr: 9 Cappuchino; 2,50 # Bildnr: 9
@ -90,6 +90,9 @@ Getränke = KBD = 1
Wein Lambrusco; 7,00 # Kurzname:Lambrusco ; Bildnr: 10 Wein Lambrusco; 7,00 # Kurzname:Lambrusco ; Bildnr: 10
Wein trocken; 7,00 # Bildnr: 10 Wein trocken; 7,00 # Bildnr: 10
Wein lieblich; 6,00 # Bildnr: 1 Wein lieblich; 6,00 # Bildnr: 1
Gutscheine = F = 1
Brunchgutschein; 9,90 # Normal-Steuersatz:1; Einheit:EinzweckgutscheinKauf
Brunchgutschein Einl.; 0,00 # Normal-Steuersatz:5; Einheit:EinzweckgutscheinEinl
# #
# Es folgen die Extras # Es folgen die Extras
!Sahne # Preis: 0,50 ; Max: 1; Zugewiesen: Tasse Kaffee , Becher Kaffee !Sahne # Preis: 0,50 ; Max: 1; Zugewiesen: Tasse Kaffee , Becher Kaffee

View File

@ -7,7 +7,7 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8"> <meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="author" content="Stefan Pichel"> <meta name="author" content="Stefan Pichel">
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.6.10"> <link rel="stylesheet" type="text/css" href="css/bestformat.css?v=2.0.0">
<link rel="stylesheet" href="php/contenthandler.php?module=admin&command=getmobilecss" /> <link rel="stylesheet" href="php/contenthandler.php?module=admin&command=getmobilecss" />
<link rel="stylesheet" href="php/3rdparty/orderstyle/jquery.mobile.icons.min.css" /> <link rel="stylesheet" href="php/3rdparty/orderstyle/jquery.mobile.icons.min.css" />
@ -23,8 +23,8 @@
<link rel="stylesheet" href="php/3rdparty/jqueryui1-11-4/jquery-ui.min.css" /> <link rel="stylesheet" href="php/3rdparty/jqueryui1-11-4/jquery-ui.min.css" />
<script src="php/3rdparty/jqueryui1-11-4/jquery-ui.min.js"></script> <script src="php/3rdparty/jqueryui1-11-4/jquery-ui.min.js"></script>
<script src="php/3rdparty/jqueryui1-11-4/jquery-ui-i18n.min.js"></script> <script src="php/3rdparty/jqueryui1-11-4/jquery-ui-i18n.min.js"></script>
<script src="utilities.js?v=1.6.10"></script> <script src="utilities.js?v=2.0.0"></script>
<script src="elements/customers.js?v=1.6.10"></script> <script src="elements/customers.js?v=2.0.0"></script>
</head> </head>
<body> <body>
@ -146,7 +146,7 @@ $(document).on("pageinit", "#info-page", function () {
</ul> </ul>
</div><!-- /panel --> </div><!-- /panel -->
<div data-role="header" data-theme="b" data-position="fixed" id="theheader" style="background-color:black;"> <div data-role="header" data-theme="b" data-position="fixed" id="theheader" style="background-color:black;">
<h1><span id="reportttitletxt">Gäste</span> <img src="img/connection.png" class="connectionstatus" style="display:none;" /> <img src="img/printerstatus.png" class="printerstatus" style="display:none;" /> <img src="img/tasksstatus.png" class="tasksstatus" style="display:none;" /></h1> <h1><span id="reportttitletxt">Gäste</span> <img src="img/connection.png" class="connectionstatus" style="display:none;" /> <img src="img/printerstatus.png" class="printerstatus" style="display:none;" /> <img src="img/tsestatus.png" class="tsestatus" style="display:none;" /> <img src="img/tasksstatus.png" class="tasksstatus" style="display:none;" /></h1>
<div data-type="horizontal" style="top:0px;position:absolute;float:right;z-index:10;display:inline;" align="right" class="ui-btn-right"> <div data-type="horizontal" style="top:0px;position:absolute;float:right;z-index:10;display:inline;" align="right" class="ui-btn-right">
<a href="#" data-role="button" data-icon="arrow-d" data-ajax="false" id="menuswitch">Hauptmenü</a> <a href="#" data-role="button" data-icon="arrow-d" data-ajax="false" id="menuswitch">Hauptmenü</a>
</div> </div>

View File

@ -4,7 +4,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="content-type" content="text/html; charset=utf-8"> <meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="author" content="Stefan Pichel"> <meta name="author" content="Stefan Pichel">
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.6.10"> <link rel="stylesheet" type="text/css" href="css/bestformat.css?v=2.0.0">
<link rel="stylesheet" href="css/ospage.css" /> <link rel="stylesheet" href="css/ospage.css" />
@ -17,7 +17,7 @@
<script src="php/3rdparty/jquery-2.0.3.min.js"></script> <script src="php/3rdparty/jquery-2.0.3.min.js"></script>
<script src="php/3rdparty/jquery.mobile-1.4.0.min.js"></script> <script src="php/3rdparty/jquery.mobile-1.4.0.min.js"></script>
<script src="utilities.js?v=1.6.10"></script> <script src="utilities.js?v=2.0.0"></script>
<script src="receiptutils.js"></script> <script src="receiptutils.js"></script>
<script src="elements/dash.js"></script> <script src="elements/dash.js"></script>
<script src="php/3rdparty/Chart.bundle.min.js"></script> <script src="php/3rdparty/Chart.bundle.min.js"></script>
@ -214,7 +214,7 @@
</ul> </ul>
</div><!-- /panel --> </div><!-- /panel -->
<div data-role="header" data-theme="b" data-position="fixed" id="theheader"> <div data-role="header" data-theme="b" data-position="fixed" id="theheader">
<h1>OrderSprinter <img src="img/connection.png" class="connectionstatus" style="display:none;" /> <img src="img/printerstatus.png" class="printerstatus" style="display:none;" /> <img src="img/tasksstatus.png" class="tasksstatus" style="display:none;" /></h1> <h1>OrderSprinter <img src="img/connection.png" class="connectionstatus" style="display:none;" /> <img src="img/printerstatus.png" class="printerstatus" style="display:none;" /> <img src="img/tsestatus.png" class="tsestatus" style="display:none;" /> <img src="img/tasksstatus.png" class="tasksstatus" style="display:none;" /></h1>
<div data-type="horizontal" style="top:0px;position:absolute;float:right;z-index:10;display:inline;" align="right" class="ui-btn-right"> <div data-type="horizontal" style="top:0px;position:absolute;float:right;z-index:10;display:inline;" align="right" class="ui-btn-right">
<a href="#" data-role="button" data-icon="arrow-d" data-ajax="false" id="menuswitch">Hauptmenü</a> <a href="#" data-role="button" data-icon="arrow-d" data-ajax="false" id="menuswitch">Hauptmenü</a>
</div> </div>

File diff suppressed because one or more lines are too long

View File

@ -163,7 +163,7 @@ function Groundplan() {
$("#createtableqrcodesbtn").off("click").on("click", function (e) { $("#createtableqrcodesbtn").off("click").on("click", function (e) {
e.stopImmediatePropagation(); e.stopImmediatePropagation();
e.preventDefault(); e.preventDefault();
window.open("php/contenthandler.php?module=roomtables&command=tableqrcodes&v=1.6.10",'_blank'); window.open("php/contenthandler.php?module=roomtables&command=tableqrcodes&v=2.0.0",'_blank');
}); });
this.bindRoomChanges(); this.bindRoomChanges();

View File

@ -4,7 +4,7 @@
<ul> <ul>
<li>Anzahl: Über den Plus- und Minus-Button kann er die Anzahl des Produktes wählen. Wird das Produkt anschließend angeklickt, so wird es mit der gewählten Anzahl in die Liste 'Neue Orders' eingefügt. Alternativ kann man auch in das weiße Feld zwischen den Plus- und Minus-Buttons klicken. In diesem Fall erscheint ein eigenes Fenster, in dem man die Anzahl festlegen kann. Anschließend wird das Produkt so behandelt, als wäre es nach Setzen der Anzahl angeklickt worden. Die Felder für die Wahl der Menge lassen sich ausblenden (Festlegung in den persönlichen Einstellungen). <li>Anzahl: Über den Plus- und Minus-Button kann er die Anzahl des Produktes wählen. Wird das Produkt anschließend angeklickt, so wird es mit der gewählten Anzahl in die Liste 'Neue Orders' eingefügt. Alternativ kann man auch in das weiße Feld zwischen den Plus- und Minus-Buttons klicken. In diesem Fall erscheint ein eigenes Fenster, in dem man die Anzahl festlegen kann. Anschließend wird das Produkt so behandelt, als wäre es nach Setzen der Anzahl angeklickt worden. Die Felder für die Wahl der Menge lassen sich ausblenden (Festlegung in den persönlichen Einstellungen).
<li>Bemerkung: Es kann ein freier Kommentar eingegeben oder ein Kommentar aus einer vordefinierten Liste (in der Angebotsansicht einstellbar) ausgewählt werden. <li>Bemerkung: Es kann ein freier Kommentar eingegeben oder ein Kommentar aus einer vordefinierten Liste (in der Artikelansicht einstellbar) ausgewählt werden.
</ul> </ul>
<p>Folgende Buttons können je nach festgelegtem Arbeitsablauf zur Verfügung stehen: <p>Folgende Buttons können je nach festgelegtem Arbeitsablauf zur Verfügung stehen:

View File

@ -4,8 +4,8 @@
<p>Die Einstellung kann individuell für die Desktopansicht (Einstellung: <i>Produktbilder in Desktopansicht</i>) und die Mobilansicht (Einstellung: <i>Produktbilder in Mobilansicht</i>) vorgenommen werden. <p>Die Einstellung kann individuell für die Desktopansicht (Einstellung: <i>Produktbilder in Desktopansicht</i>) und die Mobilansicht (Einstellung: <i>Produktbilder in Mobilansicht</i>) vorgenommen werden.
<p>Damit Bilder angezeigt werden können, müssen diese natürlich im System hinterlegt werden. Ein Benutzer mit dem Recht <i>Angebot</i> kann Bilder in der Angebotsansicht den Produkten zuweisen. <p>Damit Bilder angezeigt werden können, müssen diese natürlich im System hinterlegt werden. Ein Benutzer mit dem Recht <i>Artikel</i> kann Bilder in der Artikelansicht den Produkten zuweisen.
In der Angebotsansicht befindet sich eine aufklappbare Fläche, die mit <i>Bilduweisung</i> beschriftet ist. Dort sind alle Produkte in alphabetischer Reihenfolge aufgeführt. In der Artikelansicht befindet sich eine aufklappbare Fläche, die mit <i>Bilduweisung</i> beschriftet ist. Dort sind alle Produkte in alphabetischer Reihenfolge aufgeführt.
Wird ein Produkteintrag angeklickt, so öffnet sich eine Fläche, die ein möglicherweise bereits zugewiesenes Bild zeigt sowie ein Uploadwidget enthält, mit dem ein neues Bild hochgeladen oder das existierende Bild ersetzt werden kann. Wird ein Produkteintrag angeklickt, so öffnet sich eine Fläche, die ein möglicherweise bereits zugewiesenes Bild zeigt sowie ein Uploadwidget enthält, mit dem ein neues Bild hochgeladen oder das existierende Bild ersetzt werden kann.
<p>Das Hochladen eines Bildes ist über das Anklicken des Upload-Buttons oder per <b>Drag-and-Drop</b> einer Bilddatei auf den Upload-Button möglich. <p>Das Hochladen eines Bildes ist über das Anklicken des Upload-Buttons oder per <b>Drag-and-Drop</b> einer Bilddatei auf den Upload-Button möglich.

View File

@ -2,7 +2,7 @@
<p>Kassenbons werden bei einer Abrechnung immer erstellt, auch wenn diese nicht ausgedruckt werden. Erstellte Kassenbons können jederzeit erneut gedruckt werden. <p>Kassenbons werden bei einer Abrechnung immer erstellt, auch wenn diese nicht ausgedruckt werden. Erstellte Kassenbons können jederzeit erneut gedruckt werden.
<p>Auch Ein- und Auslagen werden intern als Kassenbons gespeichert, jedoch nicht in der Kassenbonansicht dargestellt. Ein-/Auslagen-Bons können jedoch über den Datenexport in der Verwaltungsansicht eingesehen werden. <p>Auch Ein- und Auslagen werden intern als Kassenbons gespeichert, jedoch nicht in der Kassenbonansicht dargestellt. Ein-/Auslagen-Bons können jedoch über den Datenexport in der Administrationsansicht eingesehen werden.
<p>Sind Kassenbons noch nicht in einem Tagesabschluss erfasst, so können sie nach Eingabe eines Stornocodes storniert werden. Es wird dabei ein negativer Kassenbon erzeugt. <p>Sind Kassenbons noch nicht in einem Tagesabschluss erfasst, so können sie nach Eingabe eines Stornocodes storniert werden. Es wird dabei ein negativer Kassenbon erzeugt.

View File

@ -12,6 +12,6 @@
<p>In der Desktop-Ansicht werden die Bestell- und Kassenansicht zur <i>Kellneransicht</i> zusammengefasst. <p>In der Desktop-Ansicht werden die Bestell- und Kassenansicht zur <i>Kellneransicht</i> zusammengefasst.
<p>Verfügt der Benutzer über Verwaltungsrechte oder das Recht, einen Tagesabschluss durchzuführen, sieht er auch die <i>Verwaltungsansicht</i>. <p>Verfügt der Benutzer über Verwaltungsrechte oder das Recht, einen Tagesabschluss durchzuführen, sieht er auch die <i>Administrationsansicht</i>.
<p>Immer sichtbar ist die <i>Feedbackansicht</i>. In dieser Ansicht kann der Anwender dem Programmautor ein Nachricht zukommen lassen. Das funktioniert jedoch nur, wenn der OrderSprinter-Server einen Zugang zum Internet besitzt und der Administrator die Email-Konfiguration vorgenommen hat. <p>Immer sichtbar ist die <i>Feedbackansicht</i>. In dieser Ansicht kann der Anwender dem Programmautor ein Nachricht zukommen lassen. Das funktioniert jedoch nur, wenn der OrderSprinter-Server einen Zugang zum Internet besitzt und der Administrator die Email-Konfiguration vorgenommen hat.

View File

@ -31,7 +31,7 @@ function ident(depth) {
return txt; return txt;
} }
function newProduct(id, longname, shortname,priceA,priceB,priceC,barcode,unit,display,days,tax,taxaustria,amount,available,audio,favorite) { function newProduct(id, longname, shortname,priceA,priceB,priceC,barcode,unit,display,days,tax,togotax,taxaustria,amount,available,audio,favorite) {
var product = { var product = {
id:id, id:id,
longname:longname, longname:longname,
@ -44,6 +44,7 @@ function newProduct(id, longname, shortname,priceA,priceB,priceC,barcode,unit,di
display: display, display: display,
days: days, days: days,
tax: tax, tax: tax,
togotax: togotax,
taxaustria: taxaustria, taxaustria: taxaustria,
amount: amount, amount: amount,
available: available, available: available,
@ -64,6 +65,7 @@ function newProduct(id, longname, shortname,priceA,priceB,priceC,barcode,unit,di
+ "<td><input type='text' class='proddisplay'></input>" + "<td><input type='text' class='proddisplay'></input>"
+ "<td><input type='text' class='proddays'></input>" + "<td><input type='text' class='proddays'></input>"
+ "<td><input type='text' class='prodtax'></input>" + "<td><input type='text' class='prodtax'></input>"
+ "<td><input type='text' class='prodtogotax'></input>"
+ "<td>" + this.createTaxAustriaSelection("prodtaxaustriasel_" + this.id) + "<td>" + this.createTaxAustriaSelection("prodtaxaustriasel_" + this.id)
+ "<td><input type='text' class='prodamount'></input>" + "<td><input type='text' class='prodamount'></input>"
+ "<td>" + this.createAudioSelection(audiofiles,"audiosel_" + this.id) + "<td>" + this.createAudioSelection(audiofiles,"audiosel_" + this.id)
@ -87,7 +89,6 @@ function newProduct(id, longname, shortname,priceA,priceB,priceC,barcode,unit,di
} else { } else {
$("#prodleaf_" + this.id + " input.proddays").val(this.days); $("#prodleaf_" + this.id + " input.proddays").val(this.days);
} }
$("#prodleaf_" + this.id + " input.prodtax").val(this.tax);
$("#prodleaf_" + this.id + " input.prodamount").val(this.amount); $("#prodleaf_" + this.id + " input.prodamount").val(this.amount);
}, },
@ -152,6 +153,23 @@ function newProduct(id, longname, shortname,priceA,priceB,priceC,barcode,unit,di
return txt; return txt;
}, },
createTaxSelection:function(id,thetax) {
var txt = "<select id='" + id + "'>";
if ((thetax == 0) || (thetax == 'null')) {
thetax = 1;
}
var instance = this;
var taxval = "";
taxesDefs.forEach(function(item) {
if (item.value != null) {
taxval = " - " + item.value + "%";
}
txt += instance.createOption(item.key,thetax,(item.key + taxval + ": " + item.name));
});
txt += "</select>";
return txt;
},
createDisplaySelection:function(id) { createDisplaySelection:function(id) {
var txt = "<select id='" + id + "'>"; var txt = "<select id='" + id + "'>";
if ((this.display == 0) || (this.display == 'null') || (this.display == 'KG')) { if ((this.display == 0) || (this.display == 'null') || (this.display == 'KG')) {
@ -189,6 +207,13 @@ function newProduct(id, longname, shortname,priceA,priceB,priceC,barcode,unit,di
+ '</div></p>'; + '</div></p>';
return txt; return txt;
}, },
createTaxField:function(id,labeltext,thetax) {
var txt = '<p><div data-role="fieldcontain" >'
+ '<label for="' + id + '">' + labeltext + ':</label>'
+ this.createTaxSelection(id,thetax)
+ '</div></p>';
return txt;
},
createDisplayField:function(id) { createDisplayField:function(id) {
var txt = '<p><div data-role="fieldcontain" >' var txt = '<p><div data-role="fieldcontain" >'
@ -269,7 +294,11 @@ function newProduct(id, longname, shortname,priceA,priceB,priceC,barcode,unit,di
+ createInputField("proddays_" + this.id,"proddays_input_" + this.id,"days") + createInputField("proddays_" + this.id,"proddays_input_" + this.id,"days")
+ createInputField("prodtax_" + this.id,"prodtax_input_" + this.id,"tax") + "<div id=unitcont_" + this.id + ">"
+ this.createTaxField("prodtax_input_" + this.id, "Normaler Steuersatz",this.tax)
+ this.createTaxField("prodtogotax_input_" + this.id,"To-Go Steuersatz",this.togotax)
+ "</div>"
//+ createInputField("prodtax_" + this.id,"prodtax_input_" + this.id,"tax")
+ '</div></p>' + '</div></p>'
+ createInputField("prodamount_" + this.id,"prodamount_input_" + this.id,"amount") + createInputField("prodamount_" + this.id,"prodamount_input_" + this.id,"amount")
@ -325,7 +354,9 @@ function newProduct(id, longname, shortname,priceA,priceB,priceC,barcode,unit,di
$("#produnit_" + this.id).html(PROD_UNIT[lang]); $("#produnit_" + this.id).html(PROD_UNIT[lang]);
$("#proddisplay_" + this.id).html(PROD_DISPLAY[lang]); $("#proddisplay_" + this.id).html(PROD_DISPLAY[lang]);
$("#proddays_" + this.id).html(PROD_DAYS[lang]); $("#proddays_" + this.id).html(PROD_DAYS[lang]);
$("#prodtax_" + this.id).html(PROD_TAX[lang]); $("#prodtax_" + this.id).html(this.createTaxField("prodtax_input_" + this.id,"Normaler Steuersatz",1));
$("#prodtogotax_" + this.id).html(this.createTaxField("prodtogotax_input_" + this.id,"To-Go Steuersatz",2));
//$("#prodtax_" + this.id).html(PROD_TAX[lang]);
$("#prodtaxaustria_" + this.id).html(PROD_TAXAUSTRIA[lang]); $("#prodtaxaustria_" + this.id).html(PROD_TAXAUSTRIA[lang]);
$("#prodamount_" + this.id).html(PROD_AMOUNT[lang]); $("#prodamount_" + this.id).html(PROD_AMOUNT[lang]);
$("#prodpriceA_input_" + this.id).val(this.priceA.toString().replace(".",decpoint)); $("#prodpriceA_input_" + this.id).val(this.priceA.toString().replace(".",decpoint));

91
webapp/elements/tse.js Normal file
View File

@ -0,0 +1,91 @@
function TSE() {
this.outputelem = null;
this.getTseParams = function() {
var tseurl = $("#tseurl").val();
var tsepass = $("#tsepass").val();
var tseclientid = $("#tseclientid").val();
var tsepin = $("#tsepin").val();
var tsepuk = $("#tsepuk").val();
var tsecredseed = $("#tsecredseed").val();
var data = {
url: tseurl,
pass: tsepass,
clientid: tseclientid,
pin: tsepin,
puk: tsepuk,
credseed: tsecredseed
};
return data;
};
this.binding = function(outputelem) {
var instance = this;
this.outputelem = outputelem;
$("#dotsesetup").off("click").on("click", function (e) {
e.stopImmediatePropagation();
e.preventDefault();
var data = instance.getTseParams();
data["request"]= "setup";
doAjax("POST","php/contenthandler.php?module=tse&command=tsecmd",data,instance.handleTseAnswer.bind(instance),null,true);
});
$("#submittsecmd").off("click").on("click", function (e) {
e.stopImmediatePropagation();
e.preventDefault();
var request = $("#tsecmdsel").val();
if (request == "decom") {
var answer = confirm("TSE wirklich stillegen?");
if (!answer) {
return;
}
} else if (request == "exportdownload") {
// like windows.location.href, but with poszt data
var tseData = instance.getTseParams();
var dataToTransfer = {
pass: tseData.pass,
pin: tseData.pin.split(","),
puk: tseData.puk.split(","),
clientid: "nothing",
cmd: "exportdownload"
};
var dataToTransferJson = JSON.stringify(dataToTransfer);
var encodedDataToTransfer = "data=" + window.btoa(dataToTransferJson);
var url = tseData.url + "/admin";
$.post(url,encodedDataToTransfer, function(data, status){
alert("Data received: " + data);
$( "body" ).html(data);
})
.fail(function(xhr, status, error) {
var msg = xhr.responseText;
alert("Fehler beim Export-Aufruf");
});
// TODO: it always ends in the fail state (maybe wrong content sent?)
alert("Nach Post");
} else {
$(instance.outputelem).val('Command: ' + request);
var data = instance.getTseParams();
data["request"]= request;
doAjax("POST","php/contenthandler.php?module=tse&command=tsecmd",data,instance.handleTseAnswer.bind(instance),null,true);
}
});
};
this.handleTseAnswer = function(answer) {
if (answer.status != "OK") {
var txt = $(this.outputelem).val();
$(this.outputelem).val(txt + "\n\nERROR: " + answer.msg);
} else {
var txt = $(this.outputelem).val();
$(this.outputelem).val(txt + "\n\nAnswer: " + answer.msg);
}
};
}

View File

@ -4,7 +4,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="content-type" content="text/html; charset=utf-8"> <meta http-equiv="content-type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.6.10"> <link rel="stylesheet" type="text/css" href="css/bestformat.css?v=2.0.0">
<link rel="stylesheet" href="php/contenthandler.php?module=admin&command=getmobilecss" /> <link rel="stylesheet" href="php/contenthandler.php?module=admin&command=getmobilecss" />
<link rel="stylesheet" href="php/3rdparty/orderstyle/jquery.mobile.icons.min.css" /> <link rel="stylesheet" href="php/3rdparty/orderstyle/jquery.mobile.icons.min.css" />
@ -12,7 +12,7 @@
<link rel="stylesheet" href="php/3rdparty/jquery.mobile-1.4.0.min.css" type="text/css" /> <link rel="stylesheet" href="php/3rdparty/jquery.mobile-1.4.0.min.css" type="text/css" />
<script src="php/3rdparty/jquery-2.0.3.min.js"></script> <script src="php/3rdparty/jquery-2.0.3.min.js"></script>
<script src="php/3rdparty/jquery.mobile-1.4.0.min.js"></script> <script src="php/3rdparty/jquery.mobile-1.4.0.min.js"></script>
<script src="utilities.js?v=1.6.10"></script> <script src="utilities.js?v=2.0.0"></script>
<script src="kitchenbar.js"></script> <script src="kitchenbar.js"></script>
<style> <style>
@ -326,7 +326,7 @@ function insertErrorlog(answer) {
<input id="contactinfo" type="text" placeholder="Kontaktinformation, falls Rückmeldung gewünscht" style="background:white;"/> <input id="contactinfo" type="text" placeholder="Kontaktinformation, falls Rückmeldung gewünscht" style="background:white;"/>
<input id="remark" type="text" placeholder="Bemerkung" style="background:white;"/> <input id="remark" type="text" placeholder="Bemerkung" style="background:white;"/>
<p><i>Wenn Sie auf den Senden-Button drücken, so wird das obige Error.log an den Webserver des Anbieters (www.ordersprinter.de) inklusive der in der Verwaltungsansicht eingetragenen Betriebsinformation und der verwendeten PHP- und OrderSprinter-Version übertragen. Diese Information wird zum Zwecke der Problemlösung bis zu 4 Wochen auf dem Server des Anbieters gespeichert!</i> <p><i>Wenn Sie auf den Senden-Button drücken, so wird das obige Error.log an den Webserver des Anbieters (www.ordersprinter.de) inklusive der in der Administrationsansicht eingetragenen Betriebsinformation und der verwendeten PHP- und OrderSprinter-Version übertragen. Diese Information wird zum Zwecke der Problemlösung bis zu 4 Wochen auf dem Server des Anbieters gespeichert!</i>
<p><i>Wenn Sie eine Kontaktaufnahme seitens des Anbieters wünschen, geben Sie bitte oben eine entsprechende Kontaktinformation an.</i> <p><i>Wenn Sie eine Kontaktaufnahme seitens des Anbieters wünschen, geben Sie bitte oben eine entsprechende Kontaktinformation an.</i>

View File

@ -9,8 +9,8 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8"> <meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="author" content="Stefan Pichel"> <meta name="author" content="Stefan Pichel">
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.6.10"> <link rel="stylesheet" type="text/css" href="css/bestformat.css?v=2.0.0">
<link rel="stylesheet" type="text/css" href="css/numfield.css?v=1.6.10"> <link rel="stylesheet" type="text/css" href="css/numfield.css?v=2.0.0">
<link rel="stylesheet" href="php/3rdparty/orderstyle/orderstyle.min.css" /> <link rel="stylesheet" href="php/3rdparty/orderstyle/orderstyle.min.css" />
<link rel="stylesheet" href="php/3rdparty/orderstyle/jquery.mobile.icons.min.css" /> <link rel="stylesheet" href="php/3rdparty/orderstyle/jquery.mobile.icons.min.css" />
@ -18,7 +18,7 @@
<link rel="stylesheet" href="php/3rdparty/jquery.mobile-1.4.0.min.css" type="text/css" /> <link rel="stylesheet" href="php/3rdparty/jquery.mobile-1.4.0.min.css" type="text/css" />
<script src="php/3rdparty/jquery-2.0.3.min.js"></script> <script src="php/3rdparty/jquery-2.0.3.min.js"></script>
<script src="php/3rdparty/jquery.mobile-1.4.0.min.js"></script> <script src="php/3rdparty/jquery.mobile-1.4.0.min.js"></script>
<script src="utilities.js?v=1.6.10"></script> <script src="utilities.js?v=2.0.0"></script>
</head> </head>
<body> <body>
@ -39,7 +39,7 @@ $(document).on("pageinit", "#help-page", function () {
</ul> </ul>
</div><!-- /panel --> </div><!-- /panel -->
<div data-role="header" data-theme="b" data-position="fixed" id="theheader" style="background-color:black;"> <div data-role="header" data-theme="b" data-position="fixed" id="theheader" style="background-color:black;">
<h1>OrderSprinter Hilfe <img src="img/connection.png" class="connectionstatus" style="display:none;" /> <img src="img/printerstatus.png" class="printerstatus" style="display:none;" /> <img src="img/tasksstatus.png" class="tasksstatus" style="display:none;" /></h1> <h1>OrderSprinter Hilfe <img src="img/connection.png" class="connectionstatus" style="display:none;" /> <img src="img/printerstatus.png" class="printerstatus" style="display:none;" /> <img src="img/tsestatus.png" class="tsestatus" style="display:none;" /> <img src="img/tasksstatus.png" class="tasksstatus" style="display:none;" /></h1>
<div data-type="horizontal" style="top:0px;position:absolute;float:right;z-index:10;display:inline;" align="right" class="ui-btn-right"> <div data-type="horizontal" style="top:0px;position:absolute;float:right;z-index:10;display:inline;" align="right" class="ui-btn-right">
<a href="#" data-role="button" data-icon="arrow-d" data-ajax="false" id="menuswitch">Hauptmenü</a> <a href="#" data-role="button" data-icon="arrow-d" data-ajax="false" id="menuswitch">Hauptmenü</a>
</div> </div>

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 KiB

BIN
webapp/img/person.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

BIN
webapp/img/tsestatus.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 857 B

View File

@ -10,16 +10,16 @@
<meta name="author" content="Stefan Pichel"> <meta name="author" content="Stefan Pichel">
<link rel="manifest" href="manifest.webmanifest"> <link rel="manifest" href="manifest.webmanifest">
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.6.10"> <link rel="stylesheet" type="text/css" href="css/bestformat.css?v=2.0.0">
<link rel="stylesheet" type="text/css" href="css/numfield.css?v=1.6.10"> <link rel="stylesheet" type="text/css" href="css/numfield.css?v=2.0.0">
<link rel="stylesheet" href="php/3rdparty/orderstyle/orderstyle.min.css" /> <link rel="stylesheet" href="php/3rdparty/orderstyle/orderstyle-cool.min.css" />
<link rel="stylesheet" href="php/3rdparty/orderstyle/jquery.mobile.icons.min.css" /> <link rel="stylesheet" href="php/3rdparty/orderstyle/jquery.mobile.icons.min.css" />
<link rel="stylesheet" href="php/3rdparty/jquery.mobile-1.4.0.min.css" type="text/css" /> <link rel="stylesheet" href="php/3rdparty/jquery.mobile-1.4.0.min.css" type="text/css" />
<script src="php/3rdparty/jquery-2.0.3.min.js"></script> <script src="php/3rdparty/jquery-2.0.3.min.js"></script>
<script src="php/3rdparty/jquery.mobile-1.4.0.min.js"></script> <script src="php/3rdparty/jquery.mobile-1.4.0.min.js"></script>
<script src="utilities.js?v=1.6.10"></script> <script src="utilities.js?v=2.0.0"></script>
</head> </head>
<body> <body>
@ -133,7 +133,7 @@ function displayLoginOrLogoutMask(jsonContent) {
// user needs to log in! // user needs to log in!
$("#passwordfield").val(""); $("#passwordfield").val("");
$("#logoutarea").hide(); $("#logoutarea").hide();
setTimeout(function(){document.location.href = "index.html?v=1.6.10"},250); setTimeout(function(){document.location.href = "index.html?v=2.0.0"},250);
} }
} }
@ -233,7 +233,7 @@ function handleResultOfInstallCheck(is_installed) {
if (is_installed == "Yes") { if (is_installed == "Yes") {
useInstallation(); useInstallation();
} else { } else {
setTimeout(function(){document.location.href = "install.html?v=1.6.10"},500); setTimeout(function(){document.location.href = "install.html?v=2.0.0"},500);
} }
} }
@ -288,7 +288,7 @@ $(document).on("pageinit", "#index-page", function () {
</ul> </ul>
</div><!-- /panel --> </div><!-- /panel -->
<div data-role="header" data-theme="b" data-position="fixed" id="theheader" style="background-color:black;"> <div data-role="header" data-theme="b" data-position="fixed" id="theheader" style="background-color:black;">
<h1>OrderSprinter <img src="img/connection.png" class="connectionstatus" style="display:none;" /> <img src="img/printerstatus.png" class="printerstatus" style="display:none;" /></h1> <h1>OrderSprinter <img src="img/connection.png" class="connectionstatus" style="display:none;" /> <img src="img/printerstatus.png" class="printerstatus" style="display:none;" /> <img src="img/tsestatus.png" class="tsestatus" style="display:none;" /> </h1>
<div data-type="horizontal" style="top:0px;position:absolute;float:right;z-index:10;display:inline;" align="right" class="ui-btn-right"> <div data-type="horizontal" style="top:0px;position:absolute;float:right;z-index:10;display:inline;" align="right" class="ui-btn-right">
<a href="#" data-role="button" data-icon="arrow-d" data-ajax="false" id="menuswitch">Hauptmenü</a> <a href="#" data-role="button" data-icon="arrow-d" data-ajax="false" id="menuswitch">Hauptmenü</a>
</div> </div>
@ -296,23 +296,24 @@ $(document).on("pageinit", "#index-page", function () {
<div data-role="content"> <div data-role="content">
<p><div id="toplogolocation" style="text-align: center;display:none;"><img src="php/contenthandler.php?module=printqueue&command=getLogoAsPngWithAlphaChannel&v=1.6.10&style=always" style="max-height:150px;"/></div> <p><div id="toplogolocation" style="text-align: center;display:none;"><img src="php/contenthandler.php?module=printqueue&command=getLogoAsPngWithAlphaChannel&v=2.0.0&style=always" style="max-height:150px;"/></div>
<div data-role="collapsible" data-content-theme="c" data-collapsed="false" data-theme="e" id="loginmask"> <div data-role="collapsible" data-content-theme="c" data-collapsed="false" data-theme="e" id="loginmask">
<H2>Anmelden</H2> <H2>Anmelden</H2>
<p><div id="middlelogolocation" style="text-align: left;padding-left: 80px;padding-right:80px;display:none;"><img src="php/contenthandler.php?module=printqueue&command=getLogoAsPngWithAlphaChannel&v=1.6.10&style=always" style="max-height:150px;"/></div> <p><div id="middlelogolocation" style="text-align: left;padding-left: 80px;padding-right:80px;display:none;"><img src="php/contenthandler.php?module=printqueue&command=getLogoAsPngWithAlphaChannel&v=2.0.0&style=always" style="max-height:150px;"/></div>
<div class="loginarea">
<form method="post"> <form method="post">
<table border=0> <table class="logintable">
<tr><td>Name: <td id="userlist"></tr> <tr><td class="formlabel">Name: <td id="userlist"></tr>
<tr><td>Modus: <td id="moduscell"> <tr><td class="formlabel">Modus: <td id="moduscell">
<select name="modus" id="modus" data-theme="e"> <select name="modus" id="modus" data-theme="e">
<option value="0">Mobil</option> <option value="0">Mobil</option>
<option value="1">Desktop (Firefox)</option> <option value="1">Desktop (Firefox)</option>
</select></tr> </select></tr>
<tr><td>Passwort: <td><input type="password" name="password" id="passwordfield" style="background:white;"/> <tr><td class="formlabel">Passwort: <td><input type="password" name="password" id="passwordfield" style="background:white;"/>
<!-- place for info --> <!-- place for info -->
<tr /> </tr>
</table> </table>
@ -352,11 +353,12 @@ $(document).on("pageinit", "#index-page", function () {
<tr><td>?<td>_<td class=numnav>1<td class=numnav>a</tr> <tr><td>?<td>_<td class=numnav>1<td class=numnav>a</tr>
</table> </table>
<table border=0 style="width:280px;"> <table border=0 style="width:100%;">
<tr><td align=center><input type="submit" value="Anmelden" id="loginbutton" data-theme="d"/></tr> <tr><td align=center><input type="submit" value="Anmelden" id="loginbutton" data-theme="e"/></tr>
</table> </table>
</form> </form>
</div> <!-- loginarea -->
</div> <!-- Login-Maske --> </div> <!-- Login-Maske -->
<div data-role="collapsible" data-content-theme="c" data-collapsed="false" data-theme="e" id="logoutarea"> <div data-role="collapsible" data-content-theme="c" data-collapsed="false" data-theme="e" id="logoutarea">

View File

@ -4,7 +4,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="author" content="Stefan Pichel"> <meta name="author" content="Stefan Pichel">
<title>Setup</title> <title>Setup</title>
<link rel="stylesheet" type="text/css" href="css/bestformat.css"> <link rel="stylesheet" type="text/css" href="css/installstyle.css?v=2.0.0">
<script src="php/3rdparty/jquery-2.0.3.min.js"></script> <script src="php/3rdparty/jquery-2.0.3.min.js"></script>
<script src="utilities.js"></script> <script src="utilities.js"></script>
@ -50,7 +50,7 @@ var ERROR = ["Installation/Update nicht erfolgreich: ", "Install/Update not perf
var UPDATE_OK = ["Update erfolgreich! Bitte install-Verzeichnis löschen. Bitte beachten Sie, dass die Software im Fehlerfall Debug-Daten an den Anbieter sendet. Mehr Infos dazu auf der Homepage.","Update successful! Please remove install directory. Please be aware that debug data will be sent to the provider in case of malfunctions.","Update completo. Esta recomendado removar el fichero 'install'. Por favor dar cuenta que debug data esta enviado fuera en caso de malfunctions."]; var UPDATE_OK = ["Update erfolgreich! Bitte install-Verzeichnis löschen. Bitte beachten Sie, dass die Software im Fehlerfall Debug-Daten an den Anbieter sendet. Mehr Infos dazu auf der Homepage.","Update successful! Please remove install directory. Please be aware that debug data will be sent to the provider in case of malfunctions.","Update completo. Esta recomendado removar el fichero 'install'. Por favor dar cuenta que debug data esta enviado fuera en caso de malfunctions."];
var AUTO_UPDATE_OK = ["Update erfolgreich! Bitte vergessen Sie nicht, auch den Printserver zu updaten, wenn Sie dessen neuen Funktionen nutzen möchten. Bitte beachten Sie, dass die Software im Fehlerfall Debug-Daten an den Anbieter sendet. Mehr Infos dazu auf der Homepage.","Update successful! Please do not forget to update the printservers if you want to use its new features. Please be aware that debug data will be sent to the provider in case of malfunctions.","Update completo. No olvide el printserver si quiere usa sus funciones nuevas. Por favor dar cuenta que debug data esta enviado fuera en caso de malfunctions."]; var AUTO_UPDATE_OK = ["Update erfolgreich! Bitte vergessen Sie nicht, auch den Printserver zu updaten, wenn Sie dessen neuen Funktionen nutzen möchten. Bitte beachten Sie, dass die Software im Fehlerfall Debug-Daten an den Anbieter sendet. Mehr Infos dazu auf der Homepage.","Update successful! Please do not forget to update the printservers if you want to use its new features. Please be aware that debug data will be sent to the provider in case of malfunctions.","Update completo. No olvide el printserver si quiere usa sus funciones nuevas. Por favor dar cuenta que debug data esta enviado fuera en caso de malfunctions."];
var SAMPLE_HEADLINE = ["Sie können die Datenbank mit Beispieldaten füllen. Diese können später beliebig wieder in der Verwaltungs- und Angebotsansicht verändert werden.", var SAMPLE_HEADLINE = ["Sie können die Datenbank mit Beispieldaten füllen. Diese können später beliebig wieder in der Administrations- und Artikelansicht verändert werden.",
"You can fill the data base with sample data. The content can later be changed in the manager and product view.", "You can fill the data base with sample data. The content can later be changed in the manager and product view.",
"Puede insertar data de ejemplo, que por supuesto puede cambiar despues en la vista de administración y productos."]; "Puede insertar data de ejemplo, que por supuesto puede cambiar despues en la vista de administración y productos."];
@ -103,13 +103,21 @@ var NOT_ALL_PHP_OK = ["Die Installation kann trotzdem fortgesetzt werden. Bitte
"Se puede continuar la instalación pero leer las recomendaciones!"]; "Se puede continuar la instalación pero leer las recomendaciones!"];
var NEXT_NXT = ["Weiter","Continue","Continuar"]; var NEXT_NXT = ["Weiter","Continue","Continuar"];
var RESTMODE_TXT = ["Restaurantmodus","Restaurant mode","Restaurante"]; var RESTMODE_TXT = ["Restaurantmodus","Restaurant mode","Restaurante"];
var COMPANY_INFO_TXT = ["Betriebsinfo","Company information","Información general"];
var COMPANY_INFO_DEFAULT = ["Musterrestaurant\nBeispielstraße 123\n12345 Musterstadt","Example company\nA Street 123\n12345 Town","Restaurante Ejemplo\n123, Calle Ejemplo\nUna Ciudad"]; var DSF_NAME = ["Name","Name","Nombre"];
var DSF_STREET = ["Strasse","Street","Calle"];
var DSF_PLZ = ["PLZ","Postal Code","Código Postal"];
var DSF_CITY = ["Stadt","City","Ciudad"];
var DSF_COUNTRY = ["Land","Country","País"];
var DSF_STNR = ["Steuernummer","Tax Number","Número de impuestos"];
var DSF_USTID = ["Umsatzsteuer-Identifikationsnummer","Sales tax identification number", "Número de identificación del impuesto sobre las ventas"];
var PAYDESKID = ["Kassen-ID","Paydesk ID","ID de sistema"];
var DEFAULT_VIEW = ["Standard-Kellneransicht","Defaut waiter's view","Vista estandardo"]; var DEFAULT_VIEW = ["Standard-Kellneransicht","Defaut waiter's view","Vista estandardo"];
var CANCEL_CODE_TXT = ["Bon-Stornocode","Receipt cancel code","Codigo de revocar"]; var CANCEL_CODE_TXT = ["Bon-Stornocode","Receipt cancel code","Codigo de revocar"];
var PRINT_CODE = ["Printcode","Printcode","Printcode"]; var PRINT_CODE = ["Printcode","Printcode","Printcode"];
var GEN_SETTINGS_TXT = ["Allgemeine Einstellungen","General settings","Parametrizaciones generales"]; var GEN_SETTINGS_TXT = ["Allgemeine Einstellungen","General settings","Parametrizaciones generales"];
var GEN_SETTINGS_CHANGEABLE_TXT = ["Alle Einstellungen können jederzeit später wieder in der Verwaltungsansicht geändert werden.<br><br>Soll nur ein Versionsupdate vorgenommen werden, so sind diese Angaben irrelevant.","All these settings can be changed at any time later in the administration view.<br><br>If you only intend to update the version these settings are of no interest.","Todos los ajustes se pueden cambiar en cualquier momento en la vista de administración.<br><br>Si sólo quiere update la versión estas parameters no estan importantes."]; var GEN_SETTINGS_CHANGEABLE_TXT = ["Alle Einstellungen können jederzeit später wieder in der Administrationsansicht geändert werden.<br><br>Soll nur ein Versionsupdate vorgenommen werden, so sind diese Angaben irrelevant.","All these settings can be changed at any time later in the administration view.<br><br>If you only intend to update the version these settings are of no interest.","Todos los ajustes se pueden cambiar en cualquier momento en la vista de administración.<br><br>Si sólo quiere update la versión estas parameters no estan importantes."];
var lang = 0; var lang = 0;
var workflow = 1; var workflow = 1;
@ -118,7 +126,16 @@ var doOnlyUpdate = false;
// generalsettings // generalsettings
var gen_restaurantmode = 1; var gen_restaurantmode = 1;
var gen_companyinfo = "";
var dsfinvk_name = "";
var dsfinvk_street = "";
var dsfinvk_postalcode = "";
var dsfinvk_city = "";
var dsfinvk_country = "";
var dsfinvk_stnr = "";
var dsfinvk_ustid = "";
var paydeskid = 1;
var gen_defaultview = 0; var gen_defaultview = 0;
var gen_stornocode = 123; var gen_stornocode = 123;
var gen_printpass = 123; var gen_printpass = 123;
@ -177,7 +194,16 @@ function setLanguage(langIndex) {
$("#setgeneralsettingsbtntxt").html(NEXT_NXT[lang]); $("#setgeneralsettingsbtntxt").html(NEXT_NXT[lang]);
$("#restmodetxt").html(RESTMODE_TXT[lang]); $("#restmodetxt").html(RESTMODE_TXT[lang]);
$("#companyinfotxt").html(COMPANY_INFO_TXT[lang]);
$("#dsfinvk_name_txt").html(DSF_NAME[lang]);
$("#dsfinvk_street_txt").html(DSF_STREET[lang]);
$("#dsfinvk_postalcode_txt").html(DSF_PLZ[lang]);
$("#dsfinvk_city_txt").html(DSF_CITY[lang]);
$("#dsfinvk_country_txt").html(DSF_COUNTRY[lang]);
$("#dsfinvk_stnr_txt").html(DSF_STNR[lang]);
$("#dsfinvk_ustid_txt").html(DSF_USTID[lang]);
$("#paydeskid_txt").html(PAYDESKID[lang]);
$("#defaultviewtxt").html(DEFAULT_VIEW[lang]); $("#defaultviewtxt").html(DEFAULT_VIEW[lang]);
$("#cancelcodetxt").html(CANCEL_CODE_TXT[lang]); $("#cancelcodetxt").html(CANCEL_CODE_TXT[lang]);
$("#printcodetxt").html(PRINT_CODE[lang]); $("#printcodetxt").html(PRINT_CODE[lang]);
@ -299,9 +325,9 @@ function insertPhpStatus(phpStatus) {
} }
if (allOk) { if (allOk) {
txt = "<span style='color:green;'>OK!</span>"; txt = "<span style='color:green;font-weight:bold;'>OK!</span>";
} else { } else {
txt = "<span style='color:red;'>" + txt + "<p><i>" + NOT_ALL_PHP_OK[lang] + "</i></p></span>"; txt = "<span style='color:red;font-weight:bold;'>" + txt + "<p><i>" + NOT_ALL_PHP_OK[lang] + "</i></p></span>";
} }
$("#phpstatusfield").html(txt); $("#phpstatusfield").html(txt);
} }
@ -316,11 +342,13 @@ function startupdateajax(cmd) {
prefix: $("#table_prefix").val(), prefix: $("#table_prefix").val(),
autoupdate: (doOnlyUpdate ? 1 : 0) autoupdate: (doOnlyUpdate ? 1 : 0)
} }
doAjax("POST", doAjax("POST",
"install/installer.php?command=" + cmd, "install/installer.php?command=" + cmd,
data, data,
resultOfUpdate, resultOfUpdate,
"Fehler beim Versionsupdate"); "Fehler beim Versionsupdate");
} else { } else {
alert(DB_SETTING_WRONG[lang]); alert(DB_SETTING_WRONG[lang]);
} }
@ -369,19 +397,29 @@ function startinstall() {
lang: langid, lang: langid,
point: point, point: point,
timezone:timezone, timezone:timezone,
companyinfo: gen_companyinfo, dsfinvk_name: dsfinvk_name,
dsfinvk_street: dsfinvk_street,
dsfinvk_postalcode: dsfinvk_postalcode,
dsfinvk_city: dsfinvk_city,
dsfinvk_country: dsfinvk_country,
dsfinvk_stnr: dsfinvk_stnr,
dsfinvk_ustid: dsfinvk_ustid,
paydeskid: paydeskid,
restaurantmode: gen_restaurantmode, restaurantmode: gen_restaurantmode,
cancelcode: gen_stornocode, cancelcode: gen_stornocode,
printpass: gen_printpass, printpass: gen_printpass,
defaultview: gen_defaultview defaultview: gen_defaultview
} }
$("#progress").html("<img src='php/3rdparty/images/ajax-loader.gif' alt='Progress indication' /> <b style='color:red;'>" + WORKING[langid] + "</b>");
setTimeout(function(){$("#installprogressindicator").show();},500); $("#freshinstallprogressindicator").show();
doAjax("POST", setTimeout(function(){
doAjax("POST",
"install/installer.php?command=install", "install/installer.php?command=install",
data, data,
resultOfInstall, resultOfInstall,
"Fehler bei der Installation"); "Fehler bei der Installation");
},500);
} else { } else {
alert("Installation nicht möglich"); alert("Installation nicht möglich");
} }
@ -395,11 +433,12 @@ function resultOfUpdate(jsonAnswer) {
} else { } else {
alert(AUTO_UPDATE_OK[lang]); alert(AUTO_UPDATE_OK[lang]);
} }
setTimeout(function(){document.location.href = "index.html";},500); var d = new Date();
var n = d.getTime();
setTimeout(function(){document.location.href = "index.html?nocache=" + n;},500);
} else { } else {
alert(ERROR[lang] + jsonAnswer); alert(ERROR[lang] + jsonAnswer);
setTimeout(function(){$("#installprogressindicator").hide();},500); setTimeout(function(){$("#installprogressindicator").hide();},500);
$("#installprogressindicator").hide();
} }
} }
@ -488,7 +527,9 @@ function binding() {
$("#updatebtn").off("click").on("click", function(e) { $("#updatebtn").off("click").on("click", function(e) {
e.stopImmediatePropagation(); e.stopImmediatePropagation();
e.preventDefault(); e.preventDefault();
startupdateajax("update"); setTimeout(function(){
startupdateajax("update");
},250);
}); });
$(".flags").hover( $(".flags").hover(
@ -537,7 +578,15 @@ function binding() {
gen_defaultview = $("#defaultmodeselection").val(); gen_defaultview = $("#defaultmodeselection").val();
gen_stornocode = $("#cancelcode").val(); gen_stornocode = $("#cancelcode").val();
gen_printpass = $("#printcode").val(); gen_printpass = $("#printcode").val();
gen_companyinfo = $("#companyinfo").val();
dsfinvk_name = $("#dsfinvk_name").val();
dsfinvk_street = $("#dsfinvk_street").val();
dsfinvk_postalcode = $("#dsfinvk_postalcode").val();
dsfinvk_city = $("#dsfinvk_city").val();
dsfinvk_country = $("#dsfinvk_country").val();
dsfinvk_stnr = $("#dsfinvk_stnr").val();
dsfinvk_ustid = $("#dsfinvk_ustid").val();
paydeskid = $("#paydeskid").val();
$("#installsettings").show(); $("#installsettings").show();
}); });
@ -584,7 +633,15 @@ function setSelectedLanguage(e,l) {
e.stopImmediatePropagation(); e.stopImmediatePropagation();
e.preventDefault(); e.preventDefault();
setLanguage(l); setLanguage(l);
$("#companyinfo").val(COMPANY_INFO_DEFAULT[lang]);
$("#dsfinvk_name").val("Musterrestaurant");
$("#dsfinvk_street").val("ABC-Straße 123");
$("#dsfinvk_postalcode").val("12345");
$("#dsfinvk_city").val("Beispielstadt");
$("#dsfinvk_country").val("Deutschland");
$("#dsfinvk_stnr").val("123");
$("#dsfinvk_ustid").val("456");
$("#paydeskid").val(1);
$("#languagesettings").hide(); $("#languagesettings").hide();
$("#timezones").hide(); $("#timezones").hide();
@ -664,7 +721,9 @@ $(document).ready(function() {
$("#updatebtn").hide(); $("#updatebtn").hide();
$("#updateinprogresstxt").show(); $("#updateinprogresstxt").show();
startupdateajax("update"); setTimeout(function(){
startupdateajax("update");
},250);
} else { } else {
$("#languagesettings").show(); $("#languagesettings").show();
@ -679,62 +738,39 @@ $(document).ready(function() {
</script> </script>
<style> <style>
img.Hover { border: 1px solid #000; }
.generalsettingtxt {
font-size:15px;
}
#companyinfo {
width: 100%;
height: 80px;
font-size:16px;
color: black;
}
#printcode[type="text"],#cancelcode[type="text"] {
width:100%;
color:black;
background-color:white;
font-size: 16px;
}
#gensettingstxt {
background-color: #1e8449;
font-size: 20px;
}
#gensettingschangeabletxt {
background-color: #85c1e9;
font-size: 16px;
font-style: italic;
text-align: left;
}
</style> </style>
</head> </head>
<body style="background-color:SaddleBrown ;"> <body style="background-color:#3c5265 ;">
<center><img src=img/bannerwithphone.png style="width:800px;" alt="Banner" /></center> <div style="background-color: #2a3947;text-align:center;margin: -10px;">
<img src=img/installbanner.png style="height:300px;" alt="Banner" />
</div>
<div id=languagesettings style="display:none;"> <div id="languagesettings" class="installcenterdiv">
<br> <br>
<br> <br>
<center>
<table class="viewtable" id=langTable> <table class="installtable" id="langTable" >
<tr><th>Sprache auswählen - Select language - Qué idioma?</tr> <tr><th>Sprache auswählen - Select language - Qué idioma?</tr>
<tr><td class="germanflag"><img class="flags" src=img/germanflag.png style="width:35px;height:23px;" />&nbsp;&nbsp;&nbsp;<span style="font-size:20px;">Deutsch</span></tr> <tr><td class="germanflag"><img class="flags" src=img/germanflag.png style="width:35px;height:23px;" />&nbsp;&nbsp;&nbsp;<span style="font-size:20px;">Deutsch</span></tr>
<tr><td class="ukflag"><img class="flags" src=img/ukflag.png style="width:35px;height:23px;" />&nbsp;&nbsp;&nbsp;<span style="font-size:20px;">English</span></tr> <tr><td class="ukflag"><img class="flags" src=img/ukflag.png style="width:35px;height:23px;" />&nbsp;&nbsp;&nbsp;<span style="font-size:20px;">English</span></tr>
<tr><td class="spainflag"><img class="flags" src=img/spainflag.png style="width:35px;height:23px;" />&nbsp;&nbsp;&nbsp;<span style="font-size:20px;">Español</span></tr> <tr><td class="spainflag"><img class="flags" src=img/spainflag.png style="width:35px;height:23px;" />&nbsp;&nbsp;&nbsp;<span style="font-size:20px;">Español</span></tr>
</table> </table>
</center>
</div> </div>
<div id=timezones style="display:none;">
<div id="timezones" class="installcenterdiv">
<br><br> <br><br>
<center><form> <form>
<table class="viewtable" id=langTable> <table class="installtable" id="timezoneTable">
<tr><th colspan=2><span id=timezoneheader>Zeitzone</span></tr> <tr><th colspan=2><span id=timezoneheader>Zeitzone</span></tr>
<tr><td><select id=zoneselection style="height:50px;font-family : monospace;font-size : 17pt;"> <tr><td><select id=zoneselection style="height:50px;font-family : monospace;font-size : 17pt;" class="installselect">
</select> </select>
<td><input id="timezonebtn" type="submit" value="->" style="height:40px;background-color:green;"/> <td><input id="timezonebtn" type="submit" value="&gt;&gt;" />
</tr> </tr>
</table> </table>
</form> </form>
@ -743,17 +779,17 @@ $(document).ready(function() {
(<span id=ignoretimezonehint>Uninteressant bei reinem Versionsupdate</span>) (<span id=ignoretimezonehint>Uninteressant bei reinem Versionsupdate</span>)
</div> </div>
<br> <br>
<div id="datasec_de" style="text-align:left;border: 1px solid #666666;border-radius: 25px;padding: 10px;background-color: #fef79b;display:none;"> <div id="datasec_de" style="text-align:left;border: 1px solid #666666;border-radius: 25px;padding: 10px;background-color: #cccccc;color:black;display:none;">
<br><b><u>Hinweise zum Datenschutz:</u></b><br> <br><b><u>Hinweise zum Datenschutz:</u></b><br>
Der OrderSprinter-Webservice benötigt keine Verbindung zum Internet. Kann der OrderSprinter-Webserver jedoch eine Verbindung zum Internet aufbauen, stehen folgende Der OrderSprinter-Webservice benötigt keine Verbindung zum Internet. Kann der OrderSprinter-Webserver jedoch eine Verbindung zum Internet aufbauen, stehen folgende
Funktionen zur Verfügung: Funktionen zur Verfügung:
<ul> <ul>
<li>Semi-Automatische Softwareupdates: Während der Arbeit in der Verwaltungsansicht prüft OrderSprinter durch verschiedene Auslöser getriggert (z.B. Seitenaufruf, <li>Semi-Automatische Softwareupdates: Während der Arbeit in der Administrationsansicht prüft OrderSprinter durch verschiedene Auslöser getriggert (z.B. Seitenaufruf,
Tageserfassungserstellung, Konfigurationsänderung), ob es eine neuere als die installierte Version der Software gibt. Ist dies der Fall, so kann ein Tageserfassungserstellung, Konfigurationsänderung), ob es eine neuere als die installierte Version der Software gibt. Ist dies der Fall, so kann ein
Benutzer mit Administrationsrechten innerhalb der Verwaltungsansicht durch einen einfachen Buttonklick das Versionsupdate auf dem Server vornehmen. Im Rahmen Benutzer mit Administrationsrechten innerhalb der Administrationsansicht durch einen einfachen Buttonklick das Versionsupdate auf dem Server vornehmen. Im Rahmen
der Versionsüberprüfung übermittelt der Server die eigene Version und das Installationsdatum an die OrderSprinter-Seite www.ordersprinter.de. Der Webserver der Versionsüberprüfung übermittelt der Server die eigene Version und das Installationsdatum an die OrderSprinter-Seite www.ordersprinter.de. Der Webserver
protokolliert überdies die Uhrzeit, die IP-Nummer und den Browsertyp (User Agent) des anfragenden Rechners. protokolliert überdies die Uhrzeit, die IP-Nummer und den Browsertyp (User Agent) des anfragenden Rechners.
<li>Email-Benachrichtigungen: Tageserfassungen können an festgelegte und frei eingebbare E-Mail-Adressen verschickt werden. Im Gastmodul können Reservierungsbestätigungen an Gäste gemailt werden. Über das Feedbackformular können Anwender Nachrichten an den Anbieter verschicken und dabei den Umfang der Datenübermittlung festlegen. Der E-Mail-Dienst funktioniert nur, wenn die E-Mail-Konfiguration in der Verwaltungsansicht eingegeben wurde (Ausnahme: das Feedbackformular übermittelt die Nachrichten über http). <li>Email-Benachrichtigungen: Tageserfassungen können an festgelegte und frei eingebbare E-Mail-Adressen verschickt werden. Im Gastmodul können Reservierungsbestätigungen an Gäste gemailt werden. Über das Feedbackformular können Anwender Nachrichten an den Anbieter verschicken und dabei den Umfang der Datenübermittlung festlegen. Der E-Mail-Dienst funktioniert nur, wenn die E-Mail-Konfiguration in der Administrationsansicht eingegeben wurde (Ausnahme: das Feedbackformular übermittelt die Nachrichten über http).
<li>Automatische Erstellung einer Kundenwebseite, die sich aus der konfigurierten Speisekarte ergibt. <li>Automatische Erstellung einer Kundenwebseite, die sich aus der konfigurierten Speisekarte ergibt.
<li>Verwaltung aus der Ferne über die Komponente "OrderSprinter Spider" <li>Verwaltung aus der Ferne über die Komponente "OrderSprinter Spider"
<li>Falls ein Fehler auf der Serverseite passiert, wird ein Debugreport an www.ordersprinter.de übermittelt. Dieses dient nur der Verbesserung der Software. Folgende Informationen werden übermittelt: <li>Falls ein Fehler auf der Serverseite passiert, wird ein Debugreport an www.ordersprinter.de übermittelt. Dieses dient nur der Verbesserung der Software. Folgende Informationen werden übermittelt:
@ -807,10 +843,9 @@ El servicio web OrderSprinter no requiere una conexión a Internet. Sin embargo,
</div> </div>
</div> </div>
<div id="generalsettings" style="display:none;"> <div id="generalsettings" class="installcenterdiv">
<form id="generalsettingsform" > <form id="generalsettingsform" >
<center> <p><table class="installtable">
<p><table border="0" cellpadding="5" cellspacing="0" class="viewtable">
<tr><th id="gensettingstxt" colspan="2">Gen. Einst.</tr> <tr><th id="gensettingstxt" colspan="2">Gen. Einst.</tr>
<tr><th id="category" width="200px" style="padding-top: 20px;" >Kategorie<th id="setting" style="padding-top: 20px;" width="300px">Einstellung</tr> <tr><th id="category" width="200px" style="padding-top: 20px;" >Kategorie<th id="setting" style="padding-top: 20px;" width="300px">Einstellung</tr>
<tr><td><span id="restmodetxt" class="generalsettingtxt">Restmode</span> <tr><td><span id="restmodetxt" class="generalsettingtxt">Restmode</span>
@ -819,9 +854,32 @@ El servicio web OrderSprinter no requiere una conexión a Internet. Sin embargo,
<option value="0">Aus</option> <option value="0">Aus</option>
</select> </select>
</tr> </tr>
<tr><td><span id="companyinfotxt" class="generalsettingtxt">Betriebsinformation</span>
<td><textarea id="companyinfo"></textarea> <tr><td><span id="dsfinvk_name_txt" class="generalsettingtxt">Name</span>
<td><input type="text" id="dsfinvk_name" class="genconfiginput" />
</tr> </tr>
<tr><td><span id="dsfinvk_street_txt" class="generalsettingtxt">Str</span>
<td><input type="text" id="dsfinvk_street" class="genconfiginput" />
</tr>
<tr><td><span id="dsfinvk_postalcode_txt" class="generalsettingtxt">PLZ</span>
<td><input type="text" id="dsfinvk_postalcode" class="genconfiginput" />
</tr>
<tr><td><span id="dsfinvk_city_txt" class="generalsettingtxt">Ort</span>
<td><input type="text" id="dsfinvk_city" class="genconfiginput" />
</tr>
<tr><td><span id="dsfinvk_country_txt" class="generalsettingtxt">Land</span>
<td><input type="text" id="dsfinvk_country" class="genconfiginput" />
</tr>
<tr><td><span id="dsfinvk_stnr_txt" class="generalsettingtxt">Stnr</span>
<td><input type="text" id="dsfinvk_stnr" class="genconfiginput" />
</tr>
<tr><td><span id="dsfinvk_ustid_txt" class="generalsettingtxt">UStID</span>
<td><input type="text" id="dsfinvk_ustid" class="genconfiginput" />
</tr>
<tr><td><span id="paydeskid_txt" class="generalsettingtxt">ID</span>
<td><input type="text" id="paydeskid" class="genconfiginput" />
</tr>
<tr> <tr>
<td><span id="defaultviewtxt" class="generalsettingtxt">Standardview</span> <td><span id="defaultviewtxt" class="generalsettingtxt">Standardview</span>
<td><select id="defaultmodeselection" style="height:50px;font-family : monospace;font-size : 17pt;width:100%;"> <td><select id="defaultmodeselection" style="height:50px;font-family : monospace;font-size : 17pt;width:100%;">
@ -837,17 +895,15 @@ El servicio web OrderSprinter no requiere una conexión a Internet. Sin embargo,
<td><span id="printcodetxt" class="generalsettingtxt">P.code</span> <td><span id="printcodetxt" class="generalsettingtxt">P.code</span>
<td><input id="printcode" type="text" /> <td><input id="printcode" type="text" />
</tr> </tr>
<tr><td id="gensettingschangeabletxt" colspan="2"></tr> <tr><td id="gensettingschangeabletxt" colspan="2" style="background-color: grey;color:black;"></tr>
<tr><td colspan="2"><button id="setgeneralsettingsbtn"><span id="setgeneralsettingsbtntxt">Weiter </span>&nbsp;&gt;&gt;</button></tr>
</table> </table>
<p><button id="setgeneralsettingsbtn" style="width:600px;height:60px;background-color: #239b56;color:black;font-weight:bold;"><span id="setgeneralsettingsbtntxt">Weiter</span></button>
</center>
</form> </form>
</div> <!-- generalsettings --> </div> <!-- generalsettings -->
<div id=installsettings style="display:none;"> <div id="installsettings" class="installcenterdiv">
<form id="formid"> <form id="formid">
<center> <table class="installtable">
<table border="0" cellpadding="5" cellspacing="0" class="viewtable">
<tr><th id="category" width=200px>Kategorie<th id="setting" width=200px;>Einstellung<th id="value" width=200px>Wert</tr> <tr><th id="category" width=200px>Kategorie<th id="setting" width=200px;>Einstellung<th id="value" width=200px>Wert</tr>
<tr> <tr>
<td id="db" rowspan=7>Datenbank <td id="db" rowspan=7>Datenbank
@ -902,7 +958,7 @@ El servicio web OrderSprinter no requiere una conexión a Internet. Sin embargo,
</tr> </tr>
<tr class="applarea"> <tr class="applarea">
<td id="decimalpoint" align="right">Dezimaltrennzeichen:</td> <td id="decimalpoint" align="right">Dezimaltrennzeichen:</td>
<td><select name="point" id="point" size="1"> <td><select name="point" id="point" style="width:100%;">
<option id="commachar" selected>Komma</option> <option id="commachar" selected>Komma</option>
<option id="pointchar">Punkt</option> <option id="pointchar">Punkt</option>
</td> </td>
@ -914,43 +970,39 @@ El servicio web OrderSprinter no requiere una conexión a Internet. Sin embargo,
<tr id=updateline> <tr id=updateline>
<td>&nbsp;</td> <td>&nbsp;</td>
<td align=center> <td align=center>
<button id="updatebtn">Update -> 1.6.10</button> <button id="updatebtn" class="updatebtn">Update -> 2.0.0</button>
<span id="updateinprogresstxt" style="display:none;"><img id="installprogressindicator" src="php/3rdparty/images/ajax-loader.gif" alt="Progress indication" style="display:none;"/> Update... bitte warten.</span> <span id="updateinprogresstxt" style="display:none;"><img id="installprogressindicator" src="php/3rdparty/images/ajax-loader.gif" alt="Progress indication" /> Update... bitte warten.</span>
</td> </td>
<td>&nbsp;</td> <td>&nbsp;</td>
</tr> </tr>
<tr> <tr>
<td align=center colspan=2><button type="submit" id="startinstall" onclick="startinstall();">Starte Installation</button> <td align=center colspan=2><button type="submit" id="startinstall" onclick="startinstall();" class="startbtn">Starte Installation</button>
<td><div id=progress>&nbsp;</div> <td><div id=progress>&nbsp;<img id="freshinstallprogressindicator" style="display:none;" src="php/3rdparty/images/ajax-loader.gif" alt="Progress indication"/></div>
</tr> </tr>
</table> </table>
</center>
</form> </form>
</div> <!-- installsettings --> </div> <!-- installsettings -->
<div id="workflowsettings" style="display:none;"> <div id="workflowsettings" class="installcenterdiv">
<br><br> <br><br>
<center>
<span id="workflowheadline" style="font-size:20px;color:white;">WorkflowTitel</span> <span id="workflowheadline" style="font-size:20px;color:white;">WorkflowTitel</span>
<br><br> <br><br>
<table class="viewtable" id=startSettingsTable> <table class="installtable" id="startSettingsTableWorkflow">
<tr><th><span id=workflowtabletitle>Start</span></tr> <tr><th><span id=workflowtabletitle>Start</span></tr>
<tr><td id="workflow_digi_btn"><span id="workflowdigital" style="font-size:20px;">digi</span></tr> <tr><td id="workflow_digi_btn"><span id="workflowdigital" style="font-size:20px;">digi</span></tr>
<tr><td id="workflow_receipts_btn"><span id="workflowworkreceipts" style="font-size:20px;">work receipts</span></tr> <tr><td id="workflow_receipts_btn"><span id="workflowworkreceipts" style="font-size:20px;">work receipts</span></tr>
<tr><td id="workflow_both_btn"><span id="workflowworkboth" style="font-size:20px;">both</span></tr> <tr><td id="workflow_both_btn"><span id="workflowworkboth" style="font-size:20px;">both</span></tr>
</table> </table>
<br> <br>
</center>
</div> <!-- workflowsettings --> </div> <!-- workflowsettings -->
<div id=samplesettings style="display:none;"> <div id=samplesettings class="installcenterdiv">
<br> <br>
<br> <br>
<center>
<span id="sampleheadline" style="font-size:20px;color:white;">Titel</span> <span id="sampleheadline" style="font-size:20px;color:white;">Titel</span>
<br><br> <br><br>
<table class="viewtable" id=startSettingsTable> <table class="installtable" id="startSettingsTableSamples">
<tr><th><span id=samplesettingstitel>Start</span></tr> <tr><th><span id=samplesettingstitel>Start</span></tr>
<tr><td id="sample_empty"><span id="sampleempty" style="font-size:20px;">leer<br>nur Admin-Benutzer</span></tr> <tr><td id="sample_empty"><span id="sampleempty" style="font-size:20px;">leer<br>nur Admin-Benutzer</span></tr>
<tr><td id="sample_tables_user_menu"><span id="sampletableuser" style="font-size:20px;">6 Tische<br>Beispielspeisekarte<br>Admin- und Kellner-Benutzer</span></tr> <tr><td id="sample_tables_user_menu"><span id="sampletableuser" style="font-size:20px;">6 Tische<br>Beispielspeisekarte<br>Admin- und Kellner-Benutzer</span></tr>
@ -958,7 +1010,6 @@ El servicio web OrderSprinter no requiere una conexión a Internet. Sin embargo,
</table> </table>
<br> <br>
<span id="samplewaiterinfo" style="font-size:20px;color:white;" ></span> <span id="samplewaiterinfo" style="font-size:20px;color:white;" ></span>
</center>
</div> <!-- samplesettings --> </div> <!-- samplesettings -->

View File

@ -162,8 +162,8 @@ function insertUser($username,$adminpass,$roleid,$lang,$prefertablemap) {
$md5adminpass = md5($adminpass); $md5adminpass = md5($adminpass);
$pdo = $this->pdo; $pdo = $this->pdo;
$userInsertSql = "INSERT INTO `%user%` (`username` , `userpassword`, `roleid`,`language`,`prefertablemap`,`keeptypelevel`,`extrasapplybtnpos`,`showplusminus`,`preferimgdesk`,`preferimgmobile`,`active`) " $userInsertSql = "INSERT INTO `%user%` (`username` , `userpassword`, `roleid`,`language`,`prefertablemap`,`keeptypelevel`,`extrasapplybtnpos`,`showplusminus`,`preferimgdesk`,`preferimgmobile`,`mobiletheme`,`active`) "
. "VALUES (?,?,?,?,?,?,'1','1','1','1','1')"; . "VALUES (?,?,?,?,?,?,'1','1','1','1','5','1')";
$stmt = $pdo->prepare(DbUtils::substTableAlias($userInsertSql)); $stmt = $pdo->prepare(DbUtils::substTableAlias($userInsertSql));
$stmt->execute(array($username,$md5adminpass,$roleid,$lang,$prefertablemap,1)); $stmt->execute(array($username,$md5adminpass,$roleid,$lang,$prefertablemap,1));
@ -347,12 +347,21 @@ echo json_encode("Fehler beim Update: " . $updResult["msg"]);
return; return;
} }
$companyinfo = "Musterrestaurant\nMusterstrasse 123\n12345 Musterstadt"; $dsfinvk_name = "Musterrestaurant";
$dsfinvk_street = "Beispielstrasse 123";
$dsfinvk_postalcode = "12345";
$dsfinvk_city = "Beispielstadt";
$dsfinvk_country = "Deutschland";
$dsfinvk_stnr = "123-456";
$dsfinvk_ustid = "123-ABC";
$paydeskid = 1;
$companyinfo = "$dsfinvk_name\n$dsfinvk_street\n$dsfinvk_postalcode $dsfinvk_city\n$dsfinvk_country\nStNR: $dsfinvk_stnr\nUStID:$dsfinvk_ustid";
$restaurantmode = 1; $restaurantmode = 1;
$cancelcode = "123"; $cancelcode = "123";
$printpass = md5("123"); $printpass = md5("123");
$defaultview = 0; $defaultview = 0;
$basedb->changeInitialConfig($pdo,$restaurantmode,$companyinfo,$defaultview,$cancelcode,$printpass); $basedb->changeInitialConfig($pdo,$restaurantmode,$dsfinvk_name,$dsfinvk_street,$dsfinvk_postalcode,$dsfinvk_city,$dsfinvk_country,$dsfinvk_stnr,$dsfinvk_ustid,$paydeskid,$companyinfo,$defaultview,$cancelcode,$printpass);
$admin->signLastBillId(); $admin->signLastBillId();
$roleid = Roles::insertAdminRole($pdo); $roleid = Roles::insertAdminRole($pdo);
@ -392,12 +401,23 @@ echo json_encode("Fehler beim Update: " . $updResult["msg"]);
return; return;
} }
$companyinfo = $_POST["companyinfo"];
$dsfinvk_name = $_POST["dsfinvk_name"];
$dsfinvk_street = $_POST["dsfinvk_street"];
$dsfinvk_postalcode = $_POST["dsfinvk_postalcode"];
$dsfinvk_city = $_POST["dsfinvk_city"];
$dsfinvk_country = $_POST["dsfinvk_country"];
$dsfinvk_stnr = $_POST["dsfinvk_stnr"];
$dsfinvk_ustid = $_POST["dsfinvk_ustid"];
$paydeskid = $_POST["paydeskid"];
$companyinfo = "$dsfinvk_name\n$dsfinvk_street\n$dsfinvk_postalcode $dsfinvk_city\n$dsfinvk_country\nStNR: $dsfinvk_stnr\nUStID:$dsfinvk_ustid";
$restaurantmode = $_POST["restaurantmode"]; $restaurantmode = $_POST["restaurantmode"];
$cancelcode = $_POST["cancelcode"]; $cancelcode = $_POST["cancelcode"];
$printpass = md5($_POST["printpass"]); $printpass = md5($_POST["printpass"]);
$defaultview = $_POST["defaultview"]; $defaultview = $_POST["defaultview"];
$basedb->changeInitialConfig($pdo,$restaurantmode,$companyinfo,$defaultview,$cancelcode,$printpass); $basedb->changeInitialConfig($pdo,$restaurantmode,$dsfinvk_name,$dsfinvk_street,$dsfinvk_postalcode,$dsfinvk_city,$dsfinvk_country,$dsfinvk_stnr,$dsfinvk_ustid,$paydeskid,$companyinfo,$defaultview,$cancelcode,$printpass);
$admin->signLastBillId(); $admin->signLastBillId();
@ -460,7 +480,7 @@ return;
} }
set_time_limit(60*30); set_time_limit(60*30);
$installerVersion = "1.6.10"; $installerVersion = "2.0.0";
$admin = new InstallAdmin(); $admin = new InstallAdmin();
$pdo = $admin->openDbAndReturnPdo($_POST['host'],$_POST['db'],$_POST['user'],$_POST['password']); $pdo = $admin->openDbAndReturnPdo($_POST['host'],$_POST['db'],$_POST['user'],$_POST['password']);

View File

@ -5,7 +5,7 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8"> <meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="author" content="Stefan Pichel"> <meta name="author" content="Stefan Pichel">
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.6.10"> <link rel="stylesheet" type="text/css" href="css/bestformat.css?v=2.0.0">
<link rel="stylesheet" href="php/contenthandler.php?module=admin&command=getmobilecss" /> <link rel="stylesheet" href="php/contenthandler.php?module=admin&command=getmobilecss" />
<link rel="stylesheet" href="php/3rdparty/orderstyle/jquery.mobile.icons.min.css" /> <link rel="stylesheet" href="php/3rdparty/orderstyle/jquery.mobile.icons.min.css" />
@ -13,8 +13,8 @@
<link rel="stylesheet" href="php/3rdparty/jquery.mobile-1.4.0.min.css" type="text/css" /> <link rel="stylesheet" href="php/3rdparty/jquery.mobile-1.4.0.min.css" type="text/css" />
<script src="php/3rdparty/jquery-2.0.3.min.js"></script> <script src="php/3rdparty/jquery-2.0.3.min.js"></script>
<script src="php/3rdparty/jquery.mobile-1.4.0.min.js"></script> <script src="php/3rdparty/jquery.mobile-1.4.0.min.js"></script>
<script src="utilities.js?v=1.6.10"></script> <script src="utilities.js?v=2.0.0"></script>
<script src="kitchenbar.js?v=1.6.10"></script> <script src="kitchenbar.js?v=2.0.0"></script>
<style> <style>
#tableWithEntriesToCook,#tableWithCookedEntries,#headertableToCook #tableWithEntriesToCook,#tableWithCookedEntries,#headertableToCook
@ -111,7 +111,7 @@ function initializeEverything() {
</ul> </ul>
</div><!-- /panel --> </div><!-- /panel -->
<div data-role="header" data-theme="b" data-position="fixed" id="headerline" style="background-color:black;"> <div data-role="header" data-theme="b" data-position="fixed" id="headerline" style="background-color:black;">
<h1><span id="moduleheadline">Küche</span> <img src="img/connection.png" class="connectionstatus" style="display:none;" /> <img src="img/printerstatus.png" class="printerstatus" style="display:none;" /> <img src="img/tasksstatus.png" class="tasksstatus" style="display:none;" /></h1> <h1><span id="moduleheadline">Küche</span> <img src="img/connection.png" class="connectionstatus" style="display:none;" /> <img src="img/printerstatus.png" class="printerstatus" style="display:none;" /> <img src="img/tsestatus.png" class="tsestatus" style="display:none;" /> <img src="img/tasksstatus.png" class="tasksstatus" style="display:none;" /></h1>
<div data-type="horizontal" style="top:0px;position:absolute;float:right;z-index:10;display:inline;" align="right" class="ui-btn-right"> <div data-type="horizontal" style="top:0px;position:absolute;float:right;z-index:10;display:inline;" align="right" class="ui-btn-right">
<a href="#" data-role="button" data-icon="arrow-d" data-ajax="false" id="menuswitch">Hauptmenü</a> <a href="#" data-role="button" data-icon="arrow-d" data-ajax="false" id="menuswitch">Hauptmenü</a>
</div> </div>

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 it is too large Load Diff

File diff suppressed because one or more lines are too long

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 it is too large Load Diff

File diff suppressed because one or more lines are too long

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 it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -119,7 +119,7 @@
define('QR_LOG_DIR', false); // default error logs dir define('QR_LOG_DIR', false); // default error logs dir
define('QR_FIND_BEST_MASK', true); // if true, estimates best mask (spec. default, but extremally slow; set to false to significant performance boost but (propably) worst quality code define('QR_FIND_BEST_MASK', true); // if true, estimates best mask (spec. default, but extremally slow; set to false to significant performance boost but (propably) worst quality code
define('QR_FIND_FROM_RANDOM', 2); // if false, checks all masks available, otherwise value tells count of masks need to be checked, mask id are got randomly define('QR_FIND_FROM_RANDOM', false); // if false, checks all masks available, otherwise value tells count of masks need to be checked, mask id are got randomly
define('QR_DEFAULT_MASK', 2); // when QR_FIND_BEST_MASK === false define('QR_DEFAULT_MASK', 2); // when QR_FIND_BEST_MASK === false
define('QR_PNG_MAXIMUM_SIZE', 1024); // maximum allowed png image width (in pixels), tune to make sure GD and PHP can handle such big images define('QR_PNG_MAXIMUM_SIZE', 1024); // maximum allowed png image width (in pixels), tune to make sure GD and PHP can handle such big images

Some files were not shown because too many files have changed in this diff Show More