OrderSprinter 1.3.1
This commit is contained in:
parent
40828e9b5b
commit
127558265b
Binary file not shown.
|
@ -85,7 +85,7 @@ class Installer {
|
|||
}
|
||||
Database::dropTables($pdo);
|
||||
Database::createEmptyTables($pdo, $prefix);
|
||||
Database::setVersion($pdo,$prefix,"1.3.0");
|
||||
Database::setVersion($pdo,$prefix,"1.3.1");
|
||||
Database::setAccessPassword($pdo,$prefix,$adminpass);
|
||||
Database::setRefreshRate($pdo,$prefix,"5"); // default: 5 times per hour
|
||||
return array("status" => "OK","msg" => "Installation successful");
|
||||
|
|
Binary file not shown.
|
@ -5,7 +5,7 @@
|
|||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<meta name="author" content="Stefan Pichel">
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.3.0">
|
||||
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.3.1">
|
||||
|
||||
<link rel="stylesheet" href="php/3rdparty/orderstyle/orderstyle.min.css" />
|
||||
<link rel="stylesheet" href="php/3rdparty/orderstyle/jquery.mobile.icons.min.css" />
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<meta name="author" content="Stefan Pichel">
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.3.0">
|
||||
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.3.1">
|
||||
|
||||
<link rel="stylesheet" href="php/3rdparty/orderstyle/orderstyle.min.css" />
|
||||
<link rel="stylesheet" href="php/3rdparty/orderstyle/jquery.mobile.icons.min.css" />
|
||||
|
|
|
@ -74,8 +74,12 @@ var CUS_PRINTBILL = ["Drucken","Print","Imprimir"];
|
|||
var CUS_DECLARE_ALL_PAY = ["Alle als bezahlt deklarieren","Declare all as paid","Declarar todo pagado"];
|
||||
var CUS_PRINT_ALL = ["Alle Bons drucken","Print all receipts","Imprimir todos los tiquetes"];
|
||||
var CUS_FILTER_OPEN_BILLS = ["Filter Gäste mit offenen Rechnungen","Filter on customers with ooen bills","Filtrar clientes con tiquets non-pagados"];
|
||||
var CUS_LOGBTN = ["Rechnungslog (csv)","Log of payments (csv)","Protocolo de los pagos (csv)"];
|
||||
var CUS_SEND_EMAIL = ["Email an alle Gruppenmitglieder senden","Send email to all group members","Enviar email a todos los miembros"];
|
||||
var CUS_EMAIL_WARNING = ["Emails lassen sich nur versenden, wenn die Email-Konfiguration vorgenommen wurde","Emails can only be sent if the email configuration was done","Sólo puede enviar emails si la configuración es completada"];
|
||||
var CUS_STORNO_QUEST_TITLE = ["Storno?","Cancel?","Contrapartida?"];
|
||||
var CUS_STORNO_QUEST_TEXT = ["Bon als vom Gast unbezahlt deklarieren?","Cancel the payment of the guest?","Contrapartida del tique por el cliente?"];
|
||||
var CUS_YES = ["Ja","Yes","Si"];
|
||||
|
||||
var l = 0;
|
||||
|
||||
|
@ -95,6 +99,7 @@ function setLanguage(language) {
|
|||
$("#newguestheader").html(CUS_NEW_CUS_HEADER[l]);
|
||||
$("#customerdatetxt").html(CUS_DATE[l]);
|
||||
$("#customeropenbillstxt").html(CUS_FILTER_OPEN_BILLS[l]);
|
||||
$("#customerlog").html(CUS_LOGBTN[l]);
|
||||
}
|
||||
|
||||
$(document).on("pageinit", "#info-page", function () {
|
||||
|
@ -159,12 +164,12 @@ $(document).on("pageinit", "#info-page", function () {
|
|||
|
||||
<div class="ui-field-contain">
|
||||
<label for="newcustomerphone" id="newcusphonelabel">Tel.:</label>
|
||||
<input id='newcustomerphone' type="text" value="" data-mini="true" placeholder="E-Mail" class="whiteinput" />
|
||||
<input id='newcustomerphone' type="text" value="" data-mini="true" placeholder="01234 - 56789" class="whiteinput" />
|
||||
</div>
|
||||
|
||||
<div class="ui-field-contain">
|
||||
<label for="newcustomermobil" id="newcusmobillabel">Handy:</label>
|
||||
<input id='newcustomermobil' type="text" value="" data-mini="true" placeholder="E-Mail" class="whiteinput" />
|
||||
<input id='newcustomermobil' type="text" value="" data-mini="true" placeholder="0170 - 1234567" class="whiteinput" />
|
||||
</div>
|
||||
|
||||
<div class="ui-field-contain">
|
||||
|
@ -174,7 +179,7 @@ $(document).on("pageinit", "#info-page", function () {
|
|||
|
||||
<div class="ui-field-contain">
|
||||
<label for="newcustomerwww">Homepage:</label>
|
||||
<input id='newcustomerwww' type="text" value="" data-mini="true" placeholder="E-Mail" class="whiteinput" />
|
||||
<input id='newcustomerwww' type="text" value="" data-mini="true" placeholder="www.the-homepage-of-the-guest.de" class="whiteinput" />
|
||||
</div>
|
||||
|
||||
<div data-role="fieldcontain" id="datepickerareacheckin">
|
||||
|
@ -202,6 +207,10 @@ $(document).on("pageinit", "#info-page", function () {
|
|||
</div>
|
||||
|
||||
<div id="customersearchresult"></div>
|
||||
|
||||
<div id="logarea">
|
||||
<button type="submit" data-theme="f" class="" data-icon="check" id="customerlog">Rechnungsprotokoll</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="groupsarea" style="display:none;">
|
||||
|
@ -253,6 +262,23 @@ $(document).on("pageinit", "#info-page", function () {
|
|||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- Dialog page -->
|
||||
<div data-role="dialog" id="cancelsure" data-title="Entfernen?">
|
||||
<div data-role="content">
|
||||
<h3 class="sure-1">?</h3>
|
||||
<p class="sure-2">?</p>
|
||||
<form>
|
||||
<label for="stornoreason"><span id="stornoreasontxt">Stornogrund:</span></label>
|
||||
<input type="text" id="stornoreason" value="" data-mini="true /">
|
||||
<label for="stornocode">Stornocode: </label>
|
||||
<input type="password" id="stornocode" value="" data-mini="true">
|
||||
<a href="#" class="sure-do" data-role="button" data-theme="b" data-rel="back"><span id="stornoyes">Ja</span></a>
|
||||
<a href="#" data-role="button" data-theme="c" id="nocancelbtn"><span id="stornono">Nein</span></a>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -4,7 +4,7 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.3.0">
|
||||
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.3.1">
|
||||
|
||||
<link rel="stylesheet" href="php/3rdparty/orderstyle/orderstyle.min.css" />
|
||||
<link rel="stylesheet" href="php/3rdparty/orderstyle/jquery.mobile.icons.min.css" />
|
||||
|
|
|
@ -9,8 +9,8 @@
|
|||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<meta name="author" content="Stefan Pichel">
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.3.0">
|
||||
<link rel="stylesheet" type="text/css" href="css/numfield.css?v=1.3.0">
|
||||
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.3.1">
|
||||
<link rel="stylesheet" type="text/css" href="css/numfield.css?v=1.3.1">
|
||||
|
||||
<link rel="stylesheet" href="php/3rdparty/orderstyle/orderstyle.min.css" />
|
||||
<link rel="stylesheet" href="php/3rdparty/orderstyle/jquery.mobile.icons.min.css" />
|
||||
|
@ -203,7 +203,7 @@ function handleResultOfInstallCheck(is_installed) {
|
|||
if (is_installed == "Yes") {
|
||||
useInstallation();
|
||||
} else {
|
||||
setTimeout(function(){document.location.href = "install.html?v=1.3.0"},500);
|
||||
setTimeout(function(){document.location.href = "install.html?v=1.3.1"},500);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -679,7 +679,7 @@ $(document).ready(function() {
|
|||
<tr id=updateline>
|
||||
<td> </td>
|
||||
<td align=center>
|
||||
<button id="updatebtn">Update -> 1.3.0</button>
|
||||
<button id="updatebtn">Update -> 1.3.1</button>
|
||||
</td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
|
|
|
@ -1780,6 +1780,34 @@ return false;
|
|||
}
|
||||
}
|
||||
|
||||
function updateUserTable1300_1301($prefix, $version, $dbname) {
|
||||
$pdo = $this->pdo;
|
||||
try {
|
||||
if ($version != "1.3.0") {
|
||||
$ret = $this->updateUserTable1222_1300($prefix, $version, $dbname);
|
||||
if (!$ret) {
|
||||
echo "Version update v1.2.22 to 1.3.0 not successful.";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
DbUtils::overrulePrefix($prefix);
|
||||
|
||||
$this->basedb->createCustomerLogTable($pdo);
|
||||
|
||||
$sql = "INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL,?,?)";
|
||||
$stmt = $pdo->prepare($this->basedb->resolveTablenamesInSqlString($sql));
|
||||
$stmt->execute(array('cancelguestcode',''));
|
||||
|
||||
|
||||
$this->updateVersion($pdo, '1.3.1');
|
||||
return true;
|
||||
} catch (PDOException $e) {
|
||||
echo "Error in v1.3.0 to 1.3.1: $e";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function setVersion($prefix,$theVersion) {
|
||||
$pdo = $this->pdo;
|
||||
|
@ -1857,6 +1885,7 @@ $this->basedb->createGroupsTable($pdo);
|
|||
$this->basedb->createGroupCustomerTable($pdo);
|
||||
$this->basedb->createVacationsTable($pdo);
|
||||
$this->basedb->createBillTable($pdo);
|
||||
$this->basedb->createCustomerLogTable($pdo);
|
||||
$this->basedb->createQueueTable($pdo);
|
||||
$this->basedb->createBillProductsTable($pdo);
|
||||
$this->basedb->createHistTables($pdo);
|
||||
|
@ -1905,7 +1934,7 @@ $this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VAL
|
|||
$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'billlanguage', $billlanguage)");
|
||||
$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'currency', '$currency')");
|
||||
$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'receiptfontsize', '12')");
|
||||
$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'version', '1.3.0')");
|
||||
$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'version', '1.3.1')");
|
||||
$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'paymentconfig', '0')");
|
||||
$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'remoteaccesscode', null)");
|
||||
$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'decpoint', '$decpoint')");
|
||||
|
@ -2286,7 +2315,7 @@ $zones[] = $timezone_identifiers[$i];
|
|||
}
|
||||
echo json_encode($zones);
|
||||
} else if ($command == 'update') {
|
||||
$installerVersion = "1.3.0";
|
||||
$installerVersion = "1.3.1";
|
||||
|
||||
$admin = new InstallAdmin();
|
||||
$pdo = $admin->openDbAndReturnPdo($_POST['host'],$_POST['db'],$_POST['user'],$_POST['password']);
|
||||
|
@ -2317,7 +2346,7 @@ $supportedVersions = array("1.0.22","1.0.23","1.0.24","1.0.25","1.0.26","1.0.27"
|
|||
"1.1.0","1.1.1","1.1.2","1.1.3","1.1.4","1.1.5","1.1.6","1.1.7","1.1.8", "1.1.9","1.1.10","1.1.11","1.1.12","1.1.13","1.1.14","1.1.15","1.1.16","1.1.17",
|
||||
"1.1.18","1.1.19","1.1.20","1.1.21","1.1.22","1.1.23","1.1.24","1.1.25","1.1.26","1.1.27","1.1.28","1.1.29","1.1.30",
|
||||
"1.2.0","1.2.1","1.2.2", "1.2.3", "1.2.4","1.2.5","1.2.6","1.2.7","1.2.8","1.2.9","1.2.10","1.2.11","1.2.12","1.2.13","1.2.14","1.2.15","1.2.16","1.2.17",
|
||||
"1.2.18","1.2.19","1.2.20","1.2.21","1.2.22"
|
||||
"1.2.18","1.2.19","1.2.20","1.2.21","1.2.22","1.3.0"
|
||||
);
|
||||
|
||||
if (!in_array($version, $supportedVersions)) {
|
||||
|
@ -2325,7 +2354,7 @@ echo json_encode("Quellversion nicht unterstützt");
|
|||
return;
|
||||
}
|
||||
|
||||
$ret = $admin->updateUserTable1222_1300($_POST['prefix'], $version, $_POST['db']);
|
||||
$ret = $admin->updateUserTable1300_1301($_POST['prefix'], $version, $_POST['db']);
|
||||
|
||||
if(session_id() == '') {
|
||||
session_start();
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<meta name="author" content="Stefan Pichel">
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.3.0">
|
||||
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.3.1">
|
||||
|
||||
<link rel="stylesheet" href="php/3rdparty/orderstyle/orderstyle.min.css" />
|
||||
<link rel="stylesheet" href="php/3rdparty/orderstyle/jquery.mobile.icons.min.css" />
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<meta name="author" content="Stefan Pichel">
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.3.0">
|
||||
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.3.1">
|
||||
|
||||
<link rel="stylesheet" href="php/3rdparty/orderstyle/orderstyle.min.css" />
|
||||
<link rel="stylesheet" href="php/3rdparty/orderstyle/jquery.mobile.icons.min.css" />
|
||||
|
@ -102,6 +102,7 @@ var MAN_XLSX_EXP_RECEIPTS = ["... Excel","... Excel","... Excel"];
|
|||
var MAN_CSV_EXP_ALL = ["CSV-Export komplett","CSV export all","Grabar todo en CSV"];
|
||||
var MAN_PRINT_ALL = ["Drucken Komplettbericht","Print all","Imprimir todo"];
|
||||
var MAN_PRINT_RECEIPT = ["Drucken Zusammenfassung auf Bon","Print summary on receipt","Imprimir resumen en tique"];
|
||||
var MAN_CSV_EXP_GUEST = ["CSV-Export Gastbezahlprotokoll","CSV Export Guest payments log","CSV Export Pagos del cliente"];
|
||||
var MAN_OF = [" vom "," of "," de "];
|
||||
var MAN_PERIOD = ["Zeitraum: ","Period: ","Período: "];
|
||||
var MAN_1ST_CLOSING = ["Erste Erstellung einer Tageslosung","First creation of a closing","Primer acción de cerrar"];
|
||||
|
@ -275,6 +276,7 @@ var MAN_TAX_USE = ["Wenn kein Steuersatz beim Produkt angegeben ist: MwSt/Tax/IV
|
|||
"If no tax is specified for a product, these tax settings are used. <b>For Austria other tax settings are relevant</b>, see above!",
|
||||
"Si no un producto no tiene un IVA asignado, se usa estas IVAs"];
|
||||
var MAN_CANCEL_UNPAID_CODE = ["Stornierungscode unbez. Best.", "Cancel code unpaid items","Codigo para cancelor productos impagados"];
|
||||
var MAN_CANCEL_GUEST_CODE = ["Stornierungscode Bezahlung (Modul Gast)","Cancel code for payment (module guest)","Codigo para cancelar pagado por cliente"];
|
||||
|
||||
var MAN_ROOM_PRINTER_NO = ["Kategorieeinstellung","Category setting","Configuración/categoria"];
|
||||
var MAN_ROOM_PRINTER_1 = ["Drucker 1","Printer 1","Imprimadora 1"];
|
||||
|
@ -371,6 +373,7 @@ var generalValuesSettings = [
|
|||
["reservationnote",MAN_RES_NOTE[lang],"i",0],
|
||||
["remoteaccesscode",MAN_REMOTE_ACCESS[lang],"i",0,""],
|
||||
["cancelunpaidcode",MAN_CANCEL_UNPAID_CODE[lang],"i",0,""],
|
||||
["cancelguestcode",MAN_CANCEL_GUEST_CODE[lang],"i",0,""],
|
||||
// REM SMTP settings
|
||||
["smtphost",MAN_SMTPHOST[lang],"i",0,""],
|
||||
["smtpauth",MAN_SMTPAUTH[lang],"s",5],
|
||||
|
@ -635,6 +638,7 @@ function insertGeneralConfigItems(configResult) {
|
|||
$("#webimpressum").val(values.webimpressum);
|
||||
|
||||
$("#cancelunpaidcode").val(values.cancelunpaidcode);
|
||||
$("#cancelguestcode").val(values.cancelguestcode);
|
||||
|
||||
$("#hsinfile").val(values.hsinfile);
|
||||
$("#hsoutfile").val(values.hsoutfile);
|
||||
|
@ -1045,6 +1049,13 @@ function binding() {
|
|||
window.location.href = "php/contenthandler.php?module=closing&command=exportCsv&closingid=" + closingid;
|
||||
});
|
||||
|
||||
$(".csvExportGuestButton").off("click").on("click", function (e) {
|
||||
var button_id = this.id;
|
||||
var pos_underscore = button_id.indexOf("_");
|
||||
var closingid = button_id.substr(pos_underscore+1,button_id.length-1);
|
||||
window.location.href = "php/contenthandler.php?module=closing&command=exportGuestCsv&closingid=" + closingid;
|
||||
});
|
||||
|
||||
$(".csvEmailAllButton").off("click").on("click", function (e) {
|
||||
var button_id = this.id;
|
||||
var pos_underscore = button_id.indexOf("_");
|
||||
|
@ -2079,6 +2090,8 @@ function createClosingPart (aText,id,totalsum,cashsum,usersums,taxessums,cashops
|
|||
|
||||
closingPart += '<button type="submit" data-theme="f" class="printsummary" data-icon="check" id="printsummary_' + id + '">' + MAN_PRINT_RECEIPT[lang] + '</button>';
|
||||
|
||||
closingPart += '<button type="submit" data-theme="f" class="csvExportGuestButton" data-icon="check" id="csvguestexport_' + id + '">' + MAN_CSV_EXP_GUEST[lang] + '</button>';
|
||||
|
||||
closingPart += '</p>';
|
||||
|
||||
closingPart += '</div>';
|
||||
|
@ -2500,6 +2513,10 @@ $(document).on("pageinit", "#admin-page", function () {
|
|||
<label for="cancelunpaidcode">Stornocode (unbez. Bestellungen):</label>
|
||||
<input type="password" value="" data-mini="true" id="cancelunpaidcode" class="genConfigEl"/>
|
||||
</div>
|
||||
<div data-role="fieldcontain">
|
||||
<label for="cancelguestcode">Stornocode (Modul Gast):</label>
|
||||
<input type="password" value="" data-mini="true" id="cancelguestcode" class="genConfigEl"/>
|
||||
</div>
|
||||
<div data-role="fieldcontain">
|
||||
<label for="printpass">Printcode:</label>
|
||||
<input type="password" value="" data-mini="true" id="printpass" class="genConfigEl"/>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<meta name="author" content="Stefan Pichel">
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.3.0">
|
||||
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.3.1">
|
||||
<link rel="stylesheet" href="php/3rdparty/orderstyle/orderstyle.min.css" />
|
||||
<link rel="stylesheet" href="php/3rdparty/orderstyle/jquery.mobile.icons.min.css" />
|
||||
|
||||
|
|
|
@ -777,6 +777,7 @@ class Admin {
|
|||
$version = CommonUtils::getConfigValue($pdo,"version",null);
|
||||
$payprinttype = CommonUtils::getConfigValue($pdo,"payprinttype",null);
|
||||
$cancelunpaidcode = CommonUtils::getConfigValue($pdo,"cancelunpaidcode",null);
|
||||
$cancelguestcode = CommonUtils::getConfigValue($pdo,"cancelguestcode",null);
|
||||
$tax = CommonUtils::getConfigValue($pdo,"tax",null);
|
||||
$togotax = CommonUtils::getConfigValue($pdo,"togotax",null);
|
||||
$taxaustrianormal = CommonUtils::getConfigValue($pdo,"taxaustrianormal",null);
|
||||
|
@ -863,7 +864,7 @@ class Admin {
|
|||
"rightchangeprice" => $right_changeprice, "bigfontworkreceipt" => $bigfontworkreceipt, "prominentsearch" => $prominentsearch,"groupworkitems" => $groupworkitems,
|
||||
"sday" => $now["mday"],"smonth" => $now["mon"], "syear" => $now["year"], "shour" => $now["hours"], "smin" => $now["minutes"],
|
||||
"smtphost" => $smtphost,"smtpauth" => $smtpauth,"smtpuser" => $smtpuser,"smtppass" => $smtppass,"smtpsecure" => $smtpsecure,"smtpport" => $smtpport,
|
||||
"webimpressum" => $webimpressum, "cancelunpaidcode" => $cancelunpaidcode, "discount1" => $discount1,"discount2" => $discount2,"discount3" => $discount3,
|
||||
"webimpressum" => $webimpressum, "cancelunpaidcode" => $cancelunpaidcode, "cancelguestcode" => $cancelguestcode, "discount1" => $discount1,"discount2" => $discount2,"discount3" => $discount3,
|
||||
"austria" => $austria, "digigopaysetready" => $digigopaysetready, "waitergopayprint" => $waitergopayprint, "oneprodworkreceipts" => $oneprodworkreceipts,
|
||||
"digiprintwork" => $digiprintwork, "memorylimit" => $memorylimit, "hs3refresh" => $hs3refresh,
|
||||
"paydeskid" => $paydeskid, "aeskey" => $aeskey, "certificatesn" => $certificatesn, "addreceipttoprinter" => $addreceipttoprinter,
|
||||
|
@ -960,7 +961,7 @@ class Admin {
|
|||
$view = "preferences.html";
|
||||
}
|
||||
|
||||
echo json_encode($view . "?v=1.3.0");
|
||||
echo json_encode($view . "?v=1.3.1");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1167,25 +1168,25 @@ class Admin {
|
|||
|
||||
if (!self::isOnlyRatingUser($rights, $right_rating, true)) {
|
||||
if ($_SESSION['modus'] == 0) {
|
||||
if ($_SESSION['right_waiter']) { $mainMenu[] = array("name" => $waitertxt[$lang], "link" => "waiter.html?v=1.3.0"); };
|
||||
if ($_SESSION['right_waiter']) { $mainMenu[] = array("name" => $waitertxt[$lang], "link" => "waiter.html?v=1.3.1"); };
|
||||
} else {
|
||||
if ($_SESSION['right_waiter']) { $mainMenu[] = array("name" => $waiterdesktxt[$lang], "link" => "waiterdesktop.php?v=1.3.0"); };
|
||||
if ($_SESSION['right_waiter']) { $mainMenu[] = array("name" => $waiterdesktxt[$lang], "link" => "waiterdesktop.php?v=1.3.1"); };
|
||||
}
|
||||
if ($_SESSION['right_kitchen']) { $mainMenu[] = array("name" => $kitchentxt[$lang], "link" => "kitchen.html?v=1.3.0"); };
|
||||
if ($_SESSION['right_bar']) { $mainMenu[] = array("name" => "Bar", "link" => "bar.html?v=1.3.0"); };
|
||||
if ($_SESSION['right_supply']) { $mainMenu[] = array("name" => $supplytxt[$lang], "link" => "supplydesk.html?v=1.3.0"); };
|
||||
if ($_SESSION['right_kitchen']) { $mainMenu[] = array("name" => $kitchentxt[$lang], "link" => "kitchen.html?v=1.3.1"); };
|
||||
if ($_SESSION['right_bar']) { $mainMenu[] = array("name" => "Bar", "link" => "bar.html?v=1.3.1"); };
|
||||
if ($_SESSION['right_supply']) { $mainMenu[] = array("name" => $supplytxt[$lang], "link" => "supplydesk.html?v=1.3.1"); };
|
||||
if ($_SESSION['modus'] == 0) {
|
||||
if ($_SESSION['right_paydesk']) { $mainMenu[] = array("name" => $paydesktxt[$lang], "link" => "paydesk.html?v=1.3.0"); };
|
||||
if ($_SESSION['right_paydesk']) { $mainMenu[] = array("name" => $paydesktxt[$lang], "link" => "paydesk.html?v=1.3.1"); };
|
||||
}
|
||||
if ($_SESSION['right_statistics']) { $mainMenu[] = array("name" => $stattxt[$lang], "link" => "reports.html?v=1.3.0"); };
|
||||
if ($_SESSION['right_bill']) { $mainMenu[] = array("name" => $bontxt[$lang], "link" => "bill.html?v=1.3.0"); };
|
||||
if ($_SESSION['right_products']) { $mainMenu[] = array("name" => $prodtxt[$lang], "link" => "products.html?v=1.3.0"); };
|
||||
if ($_SESSION['right_reservation']) { $mainMenu[] = array("name" => $restxt[$lang], "link" => "reservation.html?v=1.3.0"); };
|
||||
if ($_SESSION['right_rating']) { $mainMenu[] = array("name" => $ratingtxt[$lang], "link" => "rating.html?v=1.3.0"); };
|
||||
if ($_SESSION['right_customers']) { $mainMenu[] = array("name" => $customerstxt[$lang], "link" => "customers.html?v=1.3.0"); };
|
||||
if ($_SESSION['right_manager'] || $_SESSION['is_admin'] || $_SESSION['right_closing']) { $mainMenu[] = array("name" => $admintxt[$lang], "link" => "manager.html?v=1.3.0"); };
|
||||
$mainMenu[] = array("name" => $settingtxt[$lang], "link" => "preferences.html?v=1.3.0");
|
||||
$mainMenu[] = array("name" => "Feedback", "link" => "feedback.html?v=1.3.0");
|
||||
if ($_SESSION['right_statistics']) { $mainMenu[] = array("name" => $stattxt[$lang], "link" => "reports.html?v=1.3.1"); };
|
||||
if ($_SESSION['right_bill']) { $mainMenu[] = array("name" => $bontxt[$lang], "link" => "bill.html?v=1.3.1"); };
|
||||
if ($_SESSION['right_products']) { $mainMenu[] = array("name" => $prodtxt[$lang], "link" => "products.html?v=1.3.1"); };
|
||||
if ($_SESSION['right_reservation']) { $mainMenu[] = array("name" => $restxt[$lang], "link" => "reservation.html?v=1.3.1"); };
|
||||
if ($_SESSION['right_rating']) { $mainMenu[] = array("name" => $ratingtxt[$lang], "link" => "rating.html?v=1.3.1"); };
|
||||
if ($_SESSION['right_customers']) { $mainMenu[] = array("name" => $customerstxt[$lang], "link" => "customers.html?v=1.3.1"); };
|
||||
if ($_SESSION['right_manager'] || $_SESSION['is_admin'] || $_SESSION['right_closing']) { $mainMenu[] = array("name" => $admintxt[$lang], "link" => "manager.html?v=1.3.1"); };
|
||||
$mainMenu[] = array("name" => $settingtxt[$lang], "link" => "preferences.html?v=1.3.1");
|
||||
$mainMenu[] = array("name" => "Feedback", "link" => "feedback.html?v=1.3.1");
|
||||
}
|
||||
|
||||
$mainMenu[] = array("name" => $logout[$lang], "link" => "logout.php");
|
||||
|
@ -1194,7 +1195,7 @@ class Admin {
|
|||
$waiterMessage = $this->getMessage(null, "waitermessage");
|
||||
}
|
||||
// CAUTION: change version also in config.txt!!!
|
||||
$mainMenuAndVersion = array ("version" => "OrderSprinter 1.3.0",
|
||||
$mainMenuAndVersion = array ("version" => "OrderSprinter 1.3.1",
|
||||
"user" => $currentUser,
|
||||
"menu" => $mainMenu,
|
||||
"waitermessage" => $waiterMessage,
|
||||
|
@ -1469,6 +1470,7 @@ class Admin {
|
|||
"remoteaccesscode" => array("dbcol" => "remoteaccesscode","checknum" => 0),
|
||||
"webimpressum" => array("dbcol" => "webimpressum","checknum" => 0),
|
||||
"cancelunpaidcode" => array("dbcol" => "cancelunpaidcode","checknum" => 0),
|
||||
"cancelguestcode" => array("dbcol" => "cancelguestcode","checknum" => 0),
|
||||
"printandqueuejobs" => array("dbcol" => "printandqueuejobs","checknum" => 0),
|
||||
"cashenabled" => array("dbcol" => "cashenabled","checknum" => 0),
|
||||
"beepcooked" => array("dbcol" => "beepcooked","checknum" => 0),
|
||||
|
@ -1932,13 +1934,13 @@ class Admin {
|
|||
|
||||
private function getAllTablesToBackupRestore() {
|
||||
return array("closing","logo","printjobs","ratings","work","payment","room","resttables","tablepos","tablemaps","pricelevel","prodtype","products","config",
|
||||
"user","reservations","customers","groups","groupcustomer","vacations","bill","queue","billproducts","hsin","hsout","comments","histprod","histconfig","histuser","histactions","hist",
|
||||
"user","reservations","customers","groups","groupcustomer","vacations","bill","customerlog","queue","billproducts","hsin","hsout","comments","histprod","histconfig","histuser","histactions","hist",
|
||||
"extras","extrasprods","queueextras");
|
||||
}
|
||||
|
||||
private function getAllWithLogsTablesToBackupRestore() {
|
||||
return array("log","closing","logo","printjobs","ratings","work","payment","room","resttables","tablepos","tablemaps","pricelevel","prodtype","products","config",
|
||||
"user","reservations","customers","groups","groupcustomer","vacations","bill","queue","billproducts","hsin","hsout","comments","histprod","histconfig","histuser","histactions","hist",
|
||||
"user","reservations","customers","groups","groupcustomer","vacations","bill","customerlog","queue","billproducts","hsin","hsout","comments","histprod","histconfig","histuser","histactions","hist",
|
||||
"extras","extrasprods","queueextras");
|
||||
}
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@ require_once ('dbutils.php');
|
|||
require_once ('commonutils.php');
|
||||
require_once ('globals.php');
|
||||
require_once ('admin.php');
|
||||
require_once ('customers.php');
|
||||
require_once ('utilities/Emailer.php');
|
||||
|
||||
class Closing {
|
||||
|
@ -34,6 +35,8 @@ $this->createClosing($_POST['remark']);
|
|||
$this->getClosings($_GET['month'], $_GET['year']);
|
||||
} else if ($command == 'exportCsv') {
|
||||
$this->exportCsv($_GET['closingid']);
|
||||
} else if ($command == 'exportGuestCsv') {
|
||||
$this->exportGuestCsv($_GET['closingid']);
|
||||
} else if ($command == 'emailCsv') {
|
||||
$this->emailCsv($_GET['closingid'],$_GET['emailaddress'],$_GET['topic']);
|
||||
} else if ($command == 'getClosing') {
|
||||
|
@ -324,6 +327,14 @@ $pdo = DbUtils::openDbAndReturnPdoStatic();
|
|||
$this->retrieveClosingFromDb($pdo,$closingid, true, false);
|
||||
}
|
||||
|
||||
private function exportGuestCsv($closingid) {
|
||||
$pdo = DbUtils::openDbAndReturnPdoStatic();
|
||||
$prevClosingDate = self::getDateOfPreviousClosing($pdo,$closingid);
|
||||
$sql = "SELECT closingdate FROM %closing% WHERE id=?";
|
||||
$curClosingDateRow = CommonUtils::getRowSqlObject($pdo, $sql, array($closingid));
|
||||
$curClosingDate = $curClosingDateRow->closingdate;
|
||||
Customers::exportLog($pdo, $prevClosingDate, $curClosingDate);
|
||||
}
|
||||
private function emailCsvCore($pdo,$closingid,$toEmail,$topic,$startdate,$enddate,$billsum,$billcount) {
|
||||
$msg = $this->retrieveClosingFromDb($pdo,$closingid, false, true);
|
||||
|
||||
|
|
|
@ -29,9 +29,14 @@ class Customers {
|
|||
"printbill" => array("loggedin" => 1, "isadmin" => 0, "rights" => array("customers")),
|
||||
"payallbills" => array("loggedin" => 1, "isadmin" => 0, "rights" => array("customers")),
|
||||
"printallbills" => array("loggedin" => 1, "isadmin" => 0, "rights" => array("customers")),
|
||||
"emailGroup" => array("loggedin" => 1, "isadmin" => 0, "rights" => array("customers"))
|
||||
"emailGroup" => array("loggedin" => 1, "isadmin" => 0, "rights" => array("customers")),
|
||||
"exportLog" => array("loggedin" => 1, "isadmin" => 0, "rights" => array("customers")),
|
||||
"getPaymentsForGuest" => array("loggedin" => 1, "isadmin" => 0, "rights" => array("customers"))
|
||||
);
|
||||
|
||||
public static $CANCEL = 0;
|
||||
public static $PAY = 1;
|
||||
|
||||
private static function checkRights($command) {
|
||||
if(session_id() == '') {
|
||||
session_start();
|
||||
|
@ -114,17 +119,21 @@ class Customers {
|
|||
} else if ($command == 'getBills') {
|
||||
echo json_encode($this->getBills($pdo,$_GET['cusid']));
|
||||
} else if ($command == 'pay') {
|
||||
echo json_encode($this->pay($pdo,$_POST['id']));
|
||||
echo json_encode($this->pay($pdo,$_POST['id'],$_POST['paymentid']));
|
||||
} else if ($command == 'unpay') {
|
||||
echo json_encode($this->unpay($pdo,$_POST['id']));
|
||||
echo json_encode($this->unpay($pdo,$_POST['id'],$_POST["code"],$_POST["remark"]));
|
||||
} else if ($command == 'printbill') {
|
||||
echo json_encode($this->printBill($pdo,$_POST['id']));
|
||||
} else if ($command == 'payallbills') {
|
||||
echo json_encode($this->payallbills($pdo,$_POST['id']));
|
||||
echo json_encode($this->payallbills($pdo,$_POST['id'],$_POST['paymentid']));
|
||||
} else if ($command == 'printallbills') {
|
||||
echo json_encode($this->printallbills($pdo,$_POST['id']));
|
||||
} else if ($command == 'emailGroup') {
|
||||
echo json_encode($this->emailGroup($pdo,$_POST['groupid'],$_POST["subject"],$_POST["text"]));
|
||||
} else if ($command == 'getPaymentsForGuest') {
|
||||
echo json_encode($this->getPaymentsForGuest($pdo));
|
||||
} else if ($command == 'exportLog') {
|
||||
self::exportLog($pdo);
|
||||
} else {
|
||||
echo "Command not supported.";
|
||||
}
|
||||
|
@ -172,7 +181,7 @@ class Customers {
|
|||
$cusid = $pdo->lastInsertId();
|
||||
self::addVacationsCore($pdo,$cusid,$checkin,$checkout,$room,null);
|
||||
|
||||
$pdo->commit();;
|
||||
$pdo->commit();
|
||||
return array("status" => "OK","code" => $code, "value" => $number);
|
||||
} catch (Exception $e) {
|
||||
$pdo->rollBack();
|
||||
|
@ -267,14 +276,18 @@ class Customers {
|
|||
}
|
||||
}
|
||||
|
||||
private static function payOrUnpay($pdo,$id,$value) {
|
||||
private static function payOrUnpay($pdo,$id,$value,$doTransaction,$remark=null) {
|
||||
try {
|
||||
$pdo->beginTransaction();
|
||||
if ($doTransaction) {
|
||||
$pdo->beginTransaction();
|
||||
}
|
||||
$sql = "SELECT count(id) as countid FROM %bill% WHERE id=?";
|
||||
$row = CommonUtils::getRowSqlObject($pdo, $sql, array($id));
|
||||
if ($row->countid != 1) {
|
||||
$pdo->rollBack();
|
||||
return array("status" => "ERROR","msg" => "Bill entry not found");
|
||||
if ($doTransaction) {
|
||||
$pdo->rollBack();
|
||||
}
|
||||
return array("status" => "ERROR","msg" => "Bill with id=$id not found");
|
||||
} else {
|
||||
$sql = "SELECT intguestid FROM %bill% WHERE id=?";
|
||||
$row = CommonUtils::getRowSqlObject($pdo, $sql, array($id));
|
||||
|
@ -282,20 +295,43 @@ class Customers {
|
|||
|
||||
$sql = "UPDATE %bill% SET intguestpaid=? WHERE id=?";
|
||||
CommonUtils::execSql($pdo, $sql, array($value,$id));
|
||||
$pdo->commit();
|
||||
|
||||
date_default_timezone_set(DbUtils::getTimeZone());
|
||||
$currentTime = date('Y-m-d H:i:s');
|
||||
if(session_id() == '') {
|
||||
session_start();
|
||||
}
|
||||
$userid = $_SESSION['userid'];
|
||||
$sql = "INSERT INTO %customerlog% (date,action,customerid,userid,billid,remark) VALUES(?,?,?,?,?,?)";
|
||||
$action = (is_null($value) ? self::$CANCEL : self::$PAY);
|
||||
CommonUtils::execSql($pdo, $sql, array($currentTime,$action,$cusid,$userid,$id,$remark));
|
||||
|
||||
if ($doTransaction) {
|
||||
$pdo->commit();
|
||||
}
|
||||
return array("status" => "OK","cusid" => $cusid);
|
||||
}
|
||||
} catch (Exception $ex) {
|
||||
$pdo->rollBack();
|
||||
if ($doTransaction) {
|
||||
$pdo->rollBack();
|
||||
}
|
||||
return array("status" => "ERROR","msg" => $ex->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
private function pay($pdo,$id) {
|
||||
return (self::payOrUnpay($pdo, $id, 1));
|
||||
private function pay($pdo,$id,$paymentid) {
|
||||
$paymentname = self::getPaymentName($pdo,$paymentid);
|
||||
return (self::payOrUnpay($pdo, $id, 1,true,$paymentname));
|
||||
}
|
||||
private function unpay($pdo,$id) {
|
||||
return (self::payOrUnpay($pdo, $id, null));
|
||||
private function unpay($pdo,$id,$code,$remark) {
|
||||
$stornocode = CommonUtils::getConfigValue($pdo, 'cancelguestcode', null);
|
||||
if (is_null($stornocode)) {
|
||||
return array("status" => "ERROR","msg" => "Es wurde noch kein Stornocode in der Verwaltung festgelegt");
|
||||
}
|
||||
if ($stornocode != $code) {
|
||||
return array("status" => "ERROR","msg" => "Falscher Stornocode");
|
||||
}
|
||||
return (self::payOrUnpay($pdo, $id, null,true,$remark));
|
||||
}
|
||||
|
||||
private function printBill($pdo,$billid) {
|
||||
|
@ -321,11 +357,19 @@ class Customers {
|
|||
return array("status" => "OK");
|
||||
}
|
||||
|
||||
private function payallbills($pdo,$cusid) {
|
||||
private function payallbills($pdo,$cusid,$paymentid) {
|
||||
try {
|
||||
$pdo->beginTransaction();
|
||||
$sql = "UPDATE %bill% SET intguestpaid=? WHERE intguestid=?";
|
||||
CommonUtils::execSql($pdo, $sql, array(1,$cusid));
|
||||
$paymentname = self::getPaymentName($pdo,$paymentid);
|
||||
$sql = "SELECT id FROM %bill% WHERE intguestpaid is null AND intguestid=?";
|
||||
$result = CommonUtils::fetchSqlAll($pdo, $sql, array($cusid));
|
||||
foreach($result as $aBill) {
|
||||
$ok = self::payOrUnpay($pdo, $aBill["id"], 1,false,$paymentname);
|
||||
if ($ok["status"] != "OK") {
|
||||
$pdo->rollBack();
|
||||
return $ok;
|
||||
}
|
||||
}
|
||||
$pdo->commit();
|
||||
return array("status" => "OK","cusid" => $cusid);
|
||||
} catch (Exception $ex) {
|
||||
|
@ -557,4 +601,85 @@ class Customers {
|
|||
return array("status" => "ERROR","msg" => 'Not all emails could be sent');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static function exportLog($pdo,$startDate = null, $endDate = null) {
|
||||
header("Content-type: text/x-csv");
|
||||
header("Content-Disposition: attachment; filename=Gastbezahlungen.csv");
|
||||
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
|
||||
header("Pragma: no-cache");
|
||||
header("Expires: 0");
|
||||
|
||||
echo("Datum; Gast-ID; Gastname; Bon-ID; Aktion; Benutzer-ID; Benutzername; Stornobemerkung oder Zahlungsweg\n");
|
||||
|
||||
$sql = "SELECT %customerlog%.date as date,CASE WHEN action=0 THEN 'Bezahlung storniert' WHEN action=1 THEN 'bezahlt' ELSE 'undefiniert' END as action,";
|
||||
$sql .= " %customerlog%.billid as billid,%customerlog%.remark as remark, userid, username, customerid, %user%.username as username, %customers%.name as customername ";
|
||||
$sql .= " FROM %customerlog%,%user%,%customers% ";
|
||||
$sql .= " WHERE (userid=%user%.id AND customerid=%customers%.id) ";
|
||||
|
||||
$where = '';
|
||||
|
||||
if (is_null($startDate) && (!is_null($endDate))) {
|
||||
$where = " AND (date <= '$endDate') ";
|
||||
} else if (!is_null($startDate) && (!is_null($endDate))) {
|
||||
$where = " AND (date <= '$endDate') AND (date >= '$startDate') ";
|
||||
}
|
||||
$sql .= $where;
|
||||
|
||||
$result = CommonUtils::fetchSqlAll($pdo, $sql, null);
|
||||
|
||||
foreach($result as $aLog) {
|
||||
echo $aLog["date"] . ";";
|
||||
echo $aLog["customerid"] . ";";
|
||||
echo self::quoteForCsv($aLog["customername"]) . ";";
|
||||
echo $aLog["billid"] . ";";
|
||||
echo $aLog["action"] . ";";
|
||||
echo $aLog["userid"] . ";";
|
||||
echo self::quoteForCsv($aLog["username"]) . ";";
|
||||
echo self::quoteForCsv($aLog["remark"]) . ";";
|
||||
echo "\r\n";
|
||||
}
|
||||
}
|
||||
|
||||
public static function quoteForCsv($txt) {
|
||||
$txt = str_replace("\"","\"\"",$txt);
|
||||
return '"' . $txt . '"';
|
||||
}
|
||||
|
||||
|
||||
private function getPaymentsForGuest($pdo) {
|
||||
if(session_id() == '') {
|
||||
session_start();
|
||||
}
|
||||
|
||||
$where = " WHERE (id <> 7) AND (id <> 8)";
|
||||
|
||||
$lang = $_SESSION['language'];
|
||||
$sql = "SELECT id,name FROM %payment% $where";
|
||||
if ($lang == 1) {
|
||||
$sql = "SELECT id,name_en as name FROM %payment% $where";
|
||||
} else if ($lang == 2) {
|
||||
$sql = "SELECT id,name_esp as name FROM %payment% $where";
|
||||
}
|
||||
|
||||
$result = CommonUtils::fetchSqlAll($pdo, $sql, null);
|
||||
|
||||
return array("status" => "OK","msg" => $result);
|
||||
}
|
||||
|
||||
private static function getPaymentName ($pdo,$paymentid) {
|
||||
if(session_id() == '') {
|
||||
session_start();
|
||||
}
|
||||
|
||||
$lang = $_SESSION['language'];
|
||||
$sql = "SELECT id,name FROM %payment% WHERE id=?";
|
||||
if ($lang == 1) {
|
||||
$sql = "SELECT id,name_en as name FROM %payment% WHERE id=?";
|
||||
} else if ($lang == 2) {
|
||||
$sql = "SELECT id,name_esp as name FROM %payment% WHERE id=?";
|
||||
}
|
||||
|
||||
$row = CommonUtils::getRowSqlObject($pdo, $sql, array($paymentid));
|
||||
return $row->name;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,43 +2,6 @@
|
|||
// Datenbank-Verbindungsparameter
|
||||
require_once ('config.php');
|
||||
|
||||
define ('DB_QUEUE_TABLE', TAB_PREFIX . 'queue');
|
||||
define ('DB_PRODUCTS_TABLE', TAB_PREFIX . 'products');
|
||||
define ('DB_USER_TABLE', TAB_PREFIX . 'user');
|
||||
define ('DB_ROOM_TABLE', TAB_PREFIX . 'room');
|
||||
define ('DB_RESTTABLES_TABLE', TAB_PREFIX . 'resttables');
|
||||
define ('DB_PRODTYPE_TABLE', TAB_PREFIX . 'prodtype');
|
||||
define ('DB_TABLEMAPS_TABLE', TAB_PREFIX . 'tablemaps');
|
||||
define ('DB_TABLEPOS_TABLE', TAB_PREFIX . 'tablepos');
|
||||
define ('DB_BILL_TABLE', TAB_PREFIX . 'bill');
|
||||
define ('DB_CUSTOMERS_TABLE', TAB_PREFIX . 'customers');
|
||||
define ('DB_GROUPS_TABLE', TAB_PREFIX . 'groups');
|
||||
define ('DB_GROUPCUSTOMER_TABLE', TAB_PREFIX . 'groupcustomer');
|
||||
define ('DB_VACATIONS_TABLE', TAB_PREFIX . 'vacations');
|
||||
define ('DB_PRICELEVEL_TABLE', TAB_PREFIX . 'pricelevel');
|
||||
define ('DB_CONFIG_TABLE', TAB_PREFIX . 'config');
|
||||
define ('DB_CLOSING_TABLE', TAB_PREFIX . 'closing');
|
||||
define ('DB_PRINTJOB_TABLE', TAB_PREFIX . 'printjob');
|
||||
define ('DB_WORK_TABLE', TAB_PREFIX . 'work');
|
||||
define ('DB_COMMENTS_TABLE', TAB_PREFIX . 'comments');
|
||||
define ('DB_HSIN_TABLE', TAB_PREFIX . 'hsin');
|
||||
define ('DB_HSOUT_TABLE', TAB_PREFIX . 'hsout');
|
||||
define ('DB_LOGO_TABLE', TAB_PREFIX . 'logo');
|
||||
define ('DB_EXTRAS_TABLE', TAB_PREFIX . 'extras');
|
||||
define ('DB_EXTRASPRODS_TABLE', TAB_PREFIX . 'extrasprods');
|
||||
|
||||
define ('DB_HIST_TABLE', TAB_PREFIX . 'hist');
|
||||
define ('DB_HIST_PROD_TABLE', TAB_PREFIX . 'histprod');
|
||||
define ('DB_HIST_CONFIG_TABLE', TAB_PREFIX . 'histconfig');
|
||||
define ('DB_HIST_USER_TABLE', TAB_PREFIX . 'histuser');
|
||||
define ('DB_HIST_ACTIONS_TABLE', TAB_PREFIX . 'histactions');
|
||||
|
||||
define ('DB_HIST_PAYMENT_TABLE', TAB_PREFIX . 'payment');
|
||||
define ('DB_BILLPRODUCTS_TABLE', TAB_PREFIX . 'billproducts');
|
||||
define ('DB_RESERVATIONS_TABLE', TAB_PREFIX . 'reservations');
|
||||
define ('DB_QUEUEEXTRAS_TABLE', TAB_PREFIX . 'queueextras');
|
||||
define ('DB_RATINGS_TABLE', TAB_PREFIX . 'ratings');
|
||||
|
||||
class DbUtils {
|
||||
private static $timezone = null;
|
||||
private static $prefix = null;
|
||||
|
@ -81,7 +44,6 @@ class DbUtils {
|
|||
|
||||
function testDbAccess($host,$dbname,$user,$pass) {
|
||||
$dsn = 'mysql:host=' . $host . ';dbname=' . $dbname;
|
||||
$user = $user;
|
||||
$password = $pass;
|
||||
$pdo = null;
|
||||
try {
|
||||
|
@ -109,13 +71,17 @@ class DbUtils {
|
|||
if (!is_null(self::$prefix)) {
|
||||
$prefix = self::$prefix;
|
||||
}
|
||||
|
||||
return self::substTableAliasCore($sqlString, $prefix);
|
||||
}
|
||||
|
||||
public static function substTableAliasCore($sqlString,$prefix) {
|
||||
$out = str_replace("%queue%",$prefix . 'queue',$sqlString);
|
||||
$out = str_replace("%products%",$prefix . 'products',$out);
|
||||
$out = str_replace("%user%",$prefix . 'user',$out);
|
||||
$out = str_replace("%room%",$prefix . 'room',$out);
|
||||
$out = str_replace("%resttables%",$prefix . 'resttables',$out);
|
||||
$out = str_replace("%bill%",$prefix . 'bill',$out);
|
||||
$out = str_replace("%customerlog%", $prefix . 'customerlog', $out);
|
||||
$out = str_replace("%customers%",$prefix . 'customers',$out);
|
||||
$out = str_replace("%groups%",$prefix . 'groups',$out);
|
||||
$out = str_replace("%groupcustomer%",$prefix . 'groupcustomer',$out);
|
||||
|
@ -219,5 +185,4 @@ class DbUtils {
|
|||
array("col" => 'audio', "hist" => 1, "property" => "audio"),
|
||||
array("col" => 'removed', "hist" => 0)
|
||||
);
|
||||
}
|
||||
?>
|
||||
}
|
|
@ -142,6 +142,22 @@ class Products {
|
|||
}
|
||||
}
|
||||
|
||||
private static $proddefs = array(
|
||||
array("id" => "id","get" => "%products%.id as id","histid" => "prodid","histget" => "prodid","histexportname" => "Produktid","isnumber" => "0"),
|
||||
array("id" => "shortname", "get" => "shortname","histid" => "shortname","histget" => "shortname","histexportname" => "Kurzname","isnumber" => "0"),
|
||||
array("id" => "longname", "get" => "longname","histid" => "longname","histget" => "longname","histexportname" => "Langname","isnumber" => "0"),
|
||||
array("id" => "available", "get" => "available","histid" => "available","histget" => "available","histexportname" => "","histexportname" => "Verfügbarkeit","isnumber" => "0"),
|
||||
array("id" => "priceA", "get" => "priceA","histid" => "priceA","histget" => "priceA","histexportname" => "Preis (Stufe A)","isnumber" => "1"),
|
||||
array("id" => "priceB", "get" => "priceB","histid" => "priceB","histget" => "priceB","histexportname" => "Preis (Stufe B)","isnumber" => "1"),
|
||||
array("id" => "priceC", "get" => "priceC","histid" => "priceC","histget" => "priceC","histexportname" => "Preis (Stufe C)","isnumber" => "1"),
|
||||
array("id" => "tax", "get" => "IF(tax is not null, tax, 'null') as tax","histid" => "tax","histget" => "tax","histexportname" => "Steuer","isnumber" => "1"),
|
||||
array("id" => "taxaustria", "get" => "IF(taxaustria is not null, taxaustria, 'null') as taxaustria","histid" => "","histget" => "","histexportname" => "","isnumber" => "0"),
|
||||
array("id" => "amount", "get" => "IF(amount is not null, amount, 'null') as amount","histid" => "","histget" => "","histexportname" => "","isnumber" => "0"),
|
||||
array("id" => "audio", "get" => "IF(audio is not null, audio, '') as audio","histid" => "","histget" => "","histexportname" => "","isnumber" => "0"),
|
||||
array("id" => "favorite", "get" => "IF(favorite is not null, favorite, '') as favorite","histid" => "prodid","histget" => "favorite","histexportname" => "Favorit","isnumber" => "0"),
|
||||
array("id" => "type", "get" => "'p' as type","histid" => "","histget" => "","histexportname" => "","isnumber" => "0"),
|
||||
);
|
||||
|
||||
function getDateValueAsBoolInterpretatedIcon($aValue) {
|
||||
if ($aValue != '0' ) {
|
||||
$imgFile = "ok.png";
|
||||
|
@ -254,28 +270,22 @@ class Products {
|
|||
*/
|
||||
private function getProductsWithReferenz($pdo,$ref) {
|
||||
$prods = array();
|
||||
$sql = "SELECT id,shortname,longname,priceA,priceB,priceC,IF(tax is not null, tax, 'null') as tax,IF(taxaustria is not null, taxaustria, 'null') as taxaustria,available,IF(amount is not null, amount, 'null') as amount,audio from %products% where removed is null AND category is null ORDER BY sorting";
|
||||
|
||||
$sqlselecttxt = self::getSqlSearchForProducts();
|
||||
|
||||
$sql = "SELECT $sqlselecttxt from %products% where removed is null AND category is null ORDER BY sorting";
|
||||
if ($ref > 0) {
|
||||
$sql = "SELECT id,shortname,longname,priceA,priceB,priceC,IF(tax is not null, tax, 'null') as tax,IF(taxaustria is not null, taxaustria, 'null') as taxaustria,available,IF(amount is not null, amount, 'null') as amount,audio from %products% where removed is null AND category=$ref ORDER BY sorting";
|
||||
$sql = "SELECT $sqlselecttxt from %products% where removed is null AND category=$ref ORDER BY sorting";
|
||||
}
|
||||
$stmt = $pdo->prepare(DbUtils::substTableAlias($sql));
|
||||
$stmt->execute();
|
||||
$result = $stmt->fetchAll();
|
||||
|
||||
foreach($result as $zeile) {
|
||||
$prod_entry = array(
|
||||
"id" => $zeile['id'],
|
||||
"shortname" => $zeile['shortname'],
|
||||
"longname" => $zeile['longname'],
|
||||
"available" => $zeile['available'],
|
||||
"priceA" => $zeile['priceA'],
|
||||
"priceB" => $zeile['priceB'],
|
||||
"priceC" => $zeile['priceC'],
|
||||
"tax" => $zeile['tax'],
|
||||
"taxaustria" => $zeile['taxaustria'],
|
||||
"amount" => $zeile['amount'],
|
||||
"audio" => ($zeile['audio'] == null ? '' : $zeile['audio']),
|
||||
"type" => "p");
|
||||
$prod_entry = array("type" => "p");
|
||||
foreach(self::$proddefs as $aProdDef) {
|
||||
$prod_entry[$aProdDef["id"]] = $zeile[$aProdDef["id"]];
|
||||
}
|
||||
$prods[] = $prod_entry;
|
||||
}
|
||||
|
||||
|
@ -378,12 +388,13 @@ class Products {
|
|||
}
|
||||
$containedTypes = $stmt->fetchAll(PDO::FETCH_OBJ);
|
||||
|
||||
$sqlselecttxt = self::getSqlSearchForProducts();
|
||||
if (!is_null($ref) && ($ref>0)) {
|
||||
$sql = "SELECT id,shortname,longname,priceA,priceB,priceC,IF(tax is not null, tax, 'null') as tax,IF(taxaustria is not null, taxaustria, 'null') as taxaustria,available,IF(amount is not null, amount, 'null') as amount,favorite,audio,'p' as type from %products% where removed is null AND category=? ORDER BY sorting";
|
||||
$sql = "SELECT $sqlselecttxt from %products% where removed is null AND category=? ORDER BY sorting";
|
||||
$stmt = $pdo->prepare($this->dbutils->resolveTablenamesInSqlString($sql));
|
||||
$stmt->execute(array($ref));
|
||||
} else {
|
||||
$sql = "SELECT id,shortname,longname,priceA,priceB,priceC,IF(tax is not null, tax, 'null') as tax,IF(taxaustria is not null, taxaustria, 'null') as taxaustria,available,IF(amount is not null, amount, 'null') as amount,favorite,audio,'p' as type from %products% where removed is null AND category is null ORDER BY sorting";
|
||||
$sql = "SELECT $sqlselecttxt from %products% where removed is null AND category is null ORDER BY sorting";
|
||||
$stmt = $pdo->prepare($this->dbutils->resolveTablenamesInSqlString($sql));
|
||||
$stmt->execute();
|
||||
}
|
||||
|
@ -437,6 +448,35 @@ class Products {
|
|||
return($row->setting);
|
||||
}
|
||||
|
||||
public static function getSqlSearchForProducts() {
|
||||
$sqlselect = array();
|
||||
foreach(self::$proddefs as $aProdDef) {
|
||||
$sqlselect[] = $aProdDef["get"];
|
||||
}
|
||||
return (join(",",$sqlselect));
|
||||
}
|
||||
|
||||
public static function getSqlSearchForHistProducts() {
|
||||
$sqlselect = array();
|
||||
foreach(self::$proddefs as $aProdDef) {
|
||||
$theHistId = $aProdDef["histget"];
|
||||
if ($theHistId != '') {
|
||||
$sqlselect[] = $aProdDef["histget"];
|
||||
}
|
||||
}
|
||||
return (join(",",$sqlselect));
|
||||
}
|
||||
|
||||
public static function getHistProdExportNames() {
|
||||
$sqlselect = array();
|
||||
foreach(self::$proddefs as $aProdDef) {
|
||||
$theHistId = $aProdDef["histexportname"];
|
||||
if ($theHistId != '') {
|
||||
$sqlselect[] = $aProdDef["histexportname"];
|
||||
}
|
||||
}
|
||||
return (join(";",$sqlselect));
|
||||
}
|
||||
private function exportCsv() {
|
||||
$pdo = DbUtils::openDbAndReturnPdoStatic();
|
||||
|
||||
|
@ -447,12 +487,14 @@ class Products {
|
|||
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
|
||||
header("Pragma: no-cache");
|
||||
header("Expires: 0");
|
||||
echo("Eintragsid; Datum ; Produktid; Kurzname; Langname; Preis (Stufe A); Preis (Stufe B);");
|
||||
echo("Preis (Stufe C); Steuer; Verfügbarkeit; Favorit; Extras/Optionen; Beschreibung");
|
||||
echo("Eintragsid; Datum ;");
|
||||
echo self::getHistProdExportNames();
|
||||
echo("; Extras/Optionen; Beschreibung");
|
||||
echo("\n");
|
||||
|
||||
$sql = "SELECT DISTINCT %hist%.id as id,date,";
|
||||
$sql .= "prodid,shortname,longname,priceA,priceB,priceC,IF(tax is not null, tax, '-') as tax,available,favorite,extras,description ";
|
||||
$sql .= self::getSqlSearchForHistProducts();
|
||||
$sql .= ",extras,description ";
|
||||
$sql .= " FROM %hist%, %histprod%, %histactions% ";
|
||||
$sql .= " WHERE (refid=%histprod%.id) ";
|
||||
$sql .= " AND (action='1' OR action='4' OR action='5') ";
|
||||
|
@ -463,21 +505,35 @@ class Products {
|
|||
$stmt->execute();
|
||||
$result = $stmt->fetchAll();
|
||||
foreach($result as $zeile) {
|
||||
$val1 = $zeile['id'];
|
||||
$val2 = $zeile['date'];
|
||||
$val3 = $zeile['prodid'];
|
||||
$val4 = str_replace('"','""',$zeile['shortname']);
|
||||
$val5 = str_replace('"','""',$zeile['longname']);
|
||||
$val6 = str_replace(".",$decpoint,$zeile['priceA']);
|
||||
$val7 = str_replace(".",$decpoint,$zeile['priceB']);
|
||||
$val8 = str_replace(".",$decpoint,$zeile['priceC']);
|
||||
$val9 = str_replace(".",$decpoint,$zeile['tax']);
|
||||
$val10 = ($zeile['available'] == '1' ? "Ja" : "Nein");
|
||||
$val11 = ($zeile['favorite'] == '1' ? "Ja" : "Nein");
|
||||
$val12 = $zeile['extras'];
|
||||
$val13 = $zeile['description'];
|
||||
|
||||
echo "$val1; $val2; $val3; \"$val4\"; \"$val5\"; $val6; $val7; $val8; $val9; $val10; $val11; $val12; $val13\n";
|
||||
echo $zeile['id'] . ";" . $zeile['date'] . ";";
|
||||
foreach(self::$proddefs as $aProdDef) {
|
||||
$item = $aProdDef["histexportname"];
|
||||
$itemsql = $aProdDef["histget"];
|
||||
if ($item != "") {
|
||||
if ($itemsql == 'tax') {
|
||||
// IF(tax is not null, tax, '-') as tax
|
||||
$value = ($zeile['tax']);
|
||||
if ($value == null) {
|
||||
$value = '-';
|
||||
}
|
||||
$value = str_replace(".",$decpoint,$value);
|
||||
} else if ($itemsql == 'available') {
|
||||
$value = ($zeile['available'] == '1' ? "Ja" : "Nein");
|
||||
} else if ($itemsql == 'favorite') {
|
||||
$value = ($zeile['favorite'] == '1' ? "Ja" : "Nein");
|
||||
} else {
|
||||
$isNumber = $aProdDef["isnumber"];
|
||||
$value = $zeile[$aProdDef["histget"]];
|
||||
if ($isNumber == '1') {
|
||||
$value = str_replace(".",$decpoint,$value);
|
||||
} else {
|
||||
$value = str_replace('"','""',$value);
|
||||
}
|
||||
}
|
||||
echo $value . ";";
|
||||
}
|
||||
}
|
||||
echo $zeile['extras'] . ";" . $zeile['description'] . "\n";
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -654,8 +710,6 @@ class Products {
|
|||
}
|
||||
|
||||
private function delExtra($id) {
|
||||
// TODO: hist!
|
||||
// TODO: extrasprods cleanen
|
||||
try {
|
||||
$pdo = $this->dbutils->openDbAndReturnPdo();
|
||||
$sql = "UPDATE %extras% SET removed='1' WHERE id=?";
|
||||
|
@ -995,17 +1049,6 @@ class Products {
|
|||
|
||||
function createProduct(ProductEntry $prodEntry) {
|
||||
$typeId = $prodEntry->getCategory();
|
||||
$available = $prodEntry->getAvailable();
|
||||
$favorite = $prodEntry->getFavorite();
|
||||
$priceA = $prodEntry->getPriceA();
|
||||
$priceB = $prodEntry->getPriceB();
|
||||
$priceC = $prodEntry->getPriceC();
|
||||
$tax = $prodEntry->getTax();
|
||||
$taxaustria = $prodEntry->getTaxAustria();
|
||||
$audioFile = $prodEntry->getAudio();
|
||||
$shortname = $prodEntry->getShortName();
|
||||
$longname = $prodEntry->getLongName();
|
||||
$amount = $prodEntry->getAmount();
|
||||
|
||||
if (!is_numeric($typeId)) {
|
||||
return;
|
||||
|
|
|
@ -91,43 +91,7 @@ class Basedb {
|
|||
}
|
||||
|
||||
function resolveTablenamesInSqlString($sqlString) {
|
||||
$out = str_replace("%queue%",$this->prefix . "queue",$sqlString);
|
||||
$out = str_replace("%products%",$this->prefix . "products",$out);
|
||||
$out = str_replace("%user%",$this->prefix . "user",$out);
|
||||
$out = str_replace("%room%",$this->prefix . "room",$out);
|
||||
$out = str_replace("%resttables%",$this->prefix . "resttables",$out);
|
||||
$out = str_replace("%tablemaps%",$this->prefix . "tablemaps",$out);
|
||||
$out = str_replace("%tablepos%",$this->prefix . "tablepos",$out);
|
||||
$out = str_replace("%bill%",$this->prefix . "bill",$out);
|
||||
$out = str_replace("%customers%",$this->prefix . "customers",$out);
|
||||
$out = str_replace("%groups%",$this->prefix . "groups",$out);
|
||||
$out = str_replace("%groupcustomer%",$this->prefix . "groupcustomer",$out);
|
||||
$out = str_replace("%vacations%",$this->prefix . "vacations",$out);
|
||||
$out = str_replace("%pricelevel%",$this->prefix . "pricelevel",$out);
|
||||
$out = str_replace("%config%",$this->prefix . "config",$out);
|
||||
$out = str_replace("%closing%",$this->prefix . "closing",$out);
|
||||
$out = str_replace("%printjobs%",$this->prefix . "printjob",$out);
|
||||
$out = str_replace("%hist%",$this->prefix . "hist",$out);
|
||||
$out = str_replace("%histprod%",$this->prefix . "histprod",$out);
|
||||
$out = str_replace("%histconfig%",$this->prefix . "histconfig",$out);
|
||||
$out = str_replace("%histuser%",$this->prefix . "histuser",$out);
|
||||
$out = str_replace("%histactions%",$this->prefix . "histactions",$out);
|
||||
$out = str_replace("%payment%",$this->prefix . "payment",$out);
|
||||
$out = str_replace("%billproducts%",$this->prefix . "billproducts",$out);
|
||||
$out = str_replace("%work%",$this->prefix . "work",$out);
|
||||
$out = str_replace("%comments%",$this->prefix . "comments",$out);
|
||||
$out = str_replace("%hsin%",$this->prefix . "hsin",$out);
|
||||
$out = str_replace("%hsout%",$this->prefix . "hsout",$out);
|
||||
$out = str_replace("%reservations%",$this->prefix . "reservations",$out);
|
||||
$out = str_replace("%logo%",$this->prefix . "logo",$out);
|
||||
$out = str_replace("%log%",$this->prefix . "log",$out);
|
||||
$out = str_replace("%extras%",$this->prefix . "extras",$out);
|
||||
$out = str_replace("%extrasprods%",$this->prefix . "extrasprods", $out);
|
||||
$out = str_replace("%queueextras%",$this->prefix . "queueextras", $out);
|
||||
$out = str_replace("%ratings%",$this->prefix . "ratings", $out);
|
||||
$out = str_replace("%hsin%",$this->prefix . "hsin", $out);
|
||||
$out = str_replace("%hsout%",$this->prefix . "hsout", $out);
|
||||
return (str_replace("%prodtype%",$this->prefix . "prodtype",$out));
|
||||
return DbUtils::substTableAliasCore($sqlString, $this->prefix);
|
||||
}
|
||||
|
||||
function dropTables($pdo) {
|
||||
|
@ -149,6 +113,7 @@ class Basedb {
|
|||
$this->doSQLcatch($pdo, "drop TABLE `%billproducts%`");
|
||||
$this->doSQLcatch($pdo, "drop TABLE `%queue%`");
|
||||
$this->doSQLcatch($pdo, "drop TABLE `%printjobs%`");
|
||||
$this->doSQLcatch($pdo, "drop TABLE `%customerlog%`");
|
||||
$this->doSQLcatch($pdo, "drop TABLE `%bill%`");
|
||||
$this->doSQLcatch($pdo, "drop TABLE `%ratings%`");
|
||||
$this->doSQLcatch($pdo, "drop TABLE `%user%`");
|
||||
|
@ -171,46 +136,25 @@ class Basedb {
|
|||
$this->doSQLcatch($pdo, "drop TABLE `%logo%`");
|
||||
$this->doSQLcatch($pdo, "drop TABLE `%log%`");
|
||||
}
|
||||
|
||||
|
||||
function dropTablesNoCatch($pdo) {
|
||||
$this->doSQL($pdo, "DROP TABLE `%hsin%`");
|
||||
$this->doSQL($pdo, "DROP TABLE `%hsout%`");
|
||||
$this->doSQL($pdo, "DROP TABLE `%comments%`");
|
||||
$this->doSQL($pdo, "DROP TABLE `%reservations%`");
|
||||
$this->doSQL($pdo, "DROP TABLE `%work%`");
|
||||
$this->doSQL($pdo, "DROP TABLE `%hist%`");
|
||||
$this->doSQL($pdo, "DROP TABLE `%histprod%`");
|
||||
$this->doSQL($pdo, "DROP TABLE `%histconfig%`");
|
||||
$this->doSQL($pdo, "DROP TABLE `%histuser%`");
|
||||
$this->doSQL($pdo, "DROP TABLE `%histactions%`");
|
||||
|
||||
$this->doSQL($pdo, "drop TABLE `%queueextras%`");
|
||||
$this->doSQL($pdo, "drop TABLE `%extrasprods%`");
|
||||
$this->doSQL($pdo, "drop TABLE `%extras%`");
|
||||
|
||||
$this->doSQL($pdo, "drop TABLE `%billproducts%`");
|
||||
$this->doSQL($pdo, "drop TABLE `%queue%`");
|
||||
$this->doSQL($pdo, "drop TABLE `%printjobs%`");
|
||||
$this->doSQL($pdo, "drop TABLE `%bill%`");
|
||||
$this->doSQL($pdo, "drop TABLE `%ratings%`");
|
||||
$this->doSQL($pdo, "drop TABLE `%user%`");
|
||||
$this->doSQL($pdo, "drop TABLE `%closing%`");
|
||||
$this->doSQL($pdo, "drop TABLE `%config%`");
|
||||
$this->doSQL($pdo, "drop TABLE `%products%`");
|
||||
$this->doSQL($pdo, "drop TABLE `%prodtype%`");
|
||||
$this->doSQL($pdo, "drop TABLE `%pricelevel%`");
|
||||
$this->doSQL($pdo, "drop TABLE `%tablepos%`");
|
||||
$this->doSQL($pdo, "drop TABLE `%tablemaps%`");
|
||||
$this->doSQL($pdo, "drop TABLE `%resttables%`");
|
||||
$this->doSQL($pdo, "drop TABLE `%room%`");
|
||||
$this->doSQL($pdo, "drop TABLE `%payment%`");
|
||||
$this->doSQL($pdo, "drop TABLE `%logo%`");
|
||||
$this->doSQL($pdo, "drop TABLE `%log%`");
|
||||
|
||||
$this->doSQL($pdo, "drop TABLE `%groupcustomer%`");
|
||||
$this->doSQL($pdo, "drop TABLE `%vacations%`");
|
||||
$this->doSQL($pdo, "drop TABLE `%groups%`");
|
||||
$this->doSQL($pdo, "drop TABLE `%customers%`");
|
||||
function createCustomerLogTable($pdo) {
|
||||
$sql = "
|
||||
CREATE TABLE `%customerlog%` (
|
||||
`id` INT (3) NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
`date` DATETIME NULL,
|
||||
`customerid` INT(10) NULL,
|
||||
`billid` INT(10) NULL,
|
||||
`action` INT(2) NULL,
|
||||
`userid` INT(3) NULL,
|
||||
`remark` VARCHAR ( 500 ) NULL,
|
||||
FOREIGN KEY (billid) REFERENCES %bill%(id),
|
||||
FOREIGN KEY (customerid) REFERENCES %customers%(id),
|
||||
FOREIGN KEY (userid) REFERENCES %user%(id)
|
||||
) CHARACTER SET utf8 COLLATE utf8_general_ci ENGINE = InnoDb
|
||||
";
|
||||
$stmt = $pdo->prepare($this->resolveTablenamesInSqlString($sql));
|
||||
$stmt->execute();
|
||||
}
|
||||
|
||||
function createLogTable($pdo) {
|
||||
|
@ -875,6 +819,7 @@ class Basedb {
|
|||
$this->createGroupCustomerTable($pdo);
|
||||
$this->createVacationsTable($pdo);
|
||||
$this->createBillTable($pdo);
|
||||
$this->createCustomerLogTable($pdo);
|
||||
$this->createQueueTable($pdo);
|
||||
$this->createBillProductsTable($pdo);
|
||||
$this->createHistTables($pdo);
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<meta name="author" content="Stefan Pichel">
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.3.0">
|
||||
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.3.1">
|
||||
|
||||
<link rel="stylesheet" href="php/3rdparty/orderstyle/orderstyle.min.css" />
|
||||
<link rel="stylesheet" href="php/3rdparty/orderstyle/jquery.mobile.icons.min.css" />
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<meta name="author" content="Stefan Pichel">
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.3.0">
|
||||
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.3.1">
|
||||
<link rel="stylesheet" href="php/3rdparty/orderstyle/orderstyle.min.css" />
|
||||
<link rel="stylesheet" href="php/3rdparty/orderstyle/jquery.mobile.icons.min.css" />
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<meta name="author" content="Stefan Pichel">
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.3.0">
|
||||
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.3.1">
|
||||
<link rel="stylesheet" href="php/3rdparty/orderstyle/orderstyle.min.css" />
|
||||
<link rel="stylesheet" href="php/3rdparty/orderstyle/jquery.mobile.icons.min.css" />
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<meta name="author" content="Stefan Pichel">
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.3.0">
|
||||
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.3.1">
|
||||
<link rel="stylesheet" href="php/3rdparty/orderstyle/orderstyle.min.css" />
|
||||
<link rel="stylesheet" href="php/3rdparty/orderstyle/jquery.mobile.icons.min.css" />
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<meta name="author" content="Stefan Pichel">
|
||||
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.3.0">
|
||||
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.3.1">
|
||||
<link rel="stylesheet" href="php/3rdparty/orderstyle/orderstyle.min.css" />
|
||||
<link rel="stylesheet" href="php/3rdparty/orderstyle/jquery.mobile.icons.min.css" />
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<meta name="author" content="Stefan Pichel">
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.3.0">
|
||||
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.3.1">
|
||||
|
||||
<link rel="stylesheet" href="php/3rdparty/orderstyle/orderstyle.min.css" />
|
||||
<link rel="stylesheet" href="php/3rdparty/orderstyle/jquery.mobile.icons.min.css" />
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<meta name="author" content="Stefan Pichel">
|
||||
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.3.0">
|
||||
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.3.1">
|
||||
<link rel="stylesheet" href="php/3rdparty/orderstyle/orderstyle.min.css" />
|
||||
<link rel="stylesheet" href="php/3rdparty/orderstyle/jquery.mobile.icons.min.css" />
|
||||
|
||||
|
|
Loading…
Reference in New Issue